agent

package
v0.18.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 26, 2025 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func StreamWithCallback added in v0.18.0

func StreamWithCallback(ctx context.Context, reader *schema.StreamReader[*schema.Message], callback func(string)) (*schema.Message, error)

StreamWithCallback streams content with real-time callbacks and returns complete response IMPORTANT: Tool calls are only processed after EOF is reached to ensure we have the complete and final tool call information. This prevents premature tool execution on partial data. Handles different provider streaming patterns: - Anthropic: Text content first, then tool calls streamed incrementally - OpenAI/Others: Tool calls first or alone - Mixed: Tool calls and content interleaved

Types

type Agent added in v0.10.0

type Agent struct {
	// contains filtered or unexported fields
}

Agent is the agent with real-time tool call display.

func NewAgent added in v0.10.0

func NewAgent(ctx context.Context, config *AgentConfig) (*Agent, error)

NewAgent creates an agent with MCP tool integration and real-time tool call display

func (*Agent) Close added in v0.10.0

func (a *Agent) Close() error

Close closes the agent and cleans up resources

func (*Agent) GenerateWithLoop added in v0.10.0

func (a *Agent) GenerateWithLoop(ctx context.Context, messages []*schema.Message,
	onToolCall ToolCallHandler, onToolExecution ToolExecutionHandler, onToolResult ToolResultHandler, onResponse ResponseHandler, onToolCallContent ToolCallContentHandler) (*GenerateWithLoopResult, error)

GenerateWithLoop processes messages with a custom loop that displays tool calls in real-time

func (*Agent) GenerateWithLoopAndStreaming added in v0.18.0

func (a *Agent) GenerateWithLoopAndStreaming(ctx context.Context, messages []*schema.Message,
	onToolCall ToolCallHandler, onToolExecution ToolExecutionHandler, onToolResult ToolResultHandler, onResponse ResponseHandler, onToolCallContent ToolCallContentHandler, onStreamingResponse StreamingResponseHandler) (*GenerateWithLoopResult, error)

GenerateWithLoopAndStreaming processes messages with a custom loop that displays tool calls in real-time and supports streaming callbacks

func (*Agent) GetLoadingMessage added in v0.18.0

func (a *Agent) GetLoadingMessage() string

GetLoadingMessage returns the loading message from provider creation (e.g., GPU fallback info)

func (*Agent) GetTools added in v0.10.0

func (a *Agent) GetTools() []tool.BaseTool

GetTools returns the list of available tools

type AgentConfig added in v0.10.0

type AgentConfig struct {
	ModelConfig      *models.ProviderConfig
	MCPConfig        *config.Config
	SystemPrompt     string
	MaxSteps         int
	StreamingEnabled bool
}

AgentConfig is the config for agent.

type GenerateWithLoopResult added in v0.17.0

type GenerateWithLoopResult struct {
	FinalResponse        *schema.Message
	ConversationMessages []*schema.Message // All messages in the conversation (including tool calls and results)
}

GenerateWithLoopResult contains the result and conversation history

type ResponseHandler added in v0.10.0

type ResponseHandler func(content string)

ResponseHandler is a function type for handling LLM responses

type StreamingResponseHandler added in v0.18.0

type StreamingResponseHandler func(content string)

StreamingResponseHandler is a function type for handling streaming LLM responses

type ToolCallContentHandler added in v0.10.0

type ToolCallContentHandler func(content string)

ToolCallContentHandler is a function type for handling content that accompanies tool calls

type ToolCallHandler added in v0.10.0

type ToolCallHandler func(toolName, toolArgs string)

ToolCallHandler is a function type for handling tool calls as they happen

type ToolExecutionHandler added in v0.11.0

type ToolExecutionHandler func(toolName string, isStarting bool)

ToolExecutionHandler is a function type for handling tool execution start/end

type ToolResultHandler added in v0.10.0

type ToolResultHandler func(toolName, toolArgs, result string, isError bool)

ToolResultHandler is a function type for handling tool results

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL