Documentation
¶
Overview ¶
Package deep provides a prebuilt agent with deep task orchestration.
Index ¶
Constants ¶
View Source
const (
SessionKeyTodos = "deep_agent_session_key_todos"
)
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Config ¶
type Config struct {
// Name is the identifier for the Deep agent.
Name string
// Description provides a brief explanation of the agent's purpose.
Description string
// ChatModel is the model used by DeepAgent for reasoning and task execution.
// If the agent uses any tools, this model must support the model.WithTools call option,
// as that's how the agent configures the model with tool information.
ChatModel model.BaseChatModel
// Instruction contains the system prompt that guides the agent's behavior.
// When empty, a built-in default system prompt will be used, which includes general assistant
// behavior guidelines, security policies, coding style guidelines, and tool usage policies.
Instruction string
// SubAgents are specialized agents that can be invoked by the agent.
SubAgents []adk.Agent
// ToolsConfig provides the tools and tool-calling configurations available for the agent to invoke.
ToolsConfig adk.ToolsConfig
// MaxIteration limits the maximum number of reasoning iterations the agent can perform.
MaxIteration int
// Backend provides filesystem operations used by tools and offloading.
// If set, filesystem tools (read_file, write_file, edit_file, glob, grep) will be registered.
// Optional.
Backend filesystem.Backend
// Shell provides shell command execution capability.
// If set, an execute tool will be registered to support shell command execution.
// Optional. Mutually exclusive with StreamingShell.
Shell filesystem.Shell
// StreamingShell provides streaming shell command execution capability.
// If set, a streaming execute tool will be registered to support streaming shell command execution.
// Optional. Mutually exclusive with Shell.
StreamingShell filesystem.StreamingShell
// WithoutWriteTodos disables the built-in write_todos tool when set to true.
WithoutWriteTodos bool
// WithoutGeneralSubAgent disables the general-purpose subagent when set to true.
WithoutGeneralSubAgent bool
// TaskToolDescriptionGenerator allows customizing the description for the task tool.
// If provided, this function generates the tool description based on available subagents.
TaskToolDescriptionGenerator func(ctx context.Context, availableAgents []adk.Agent) (string, error)
Middlewares []adk.AgentMiddleware
// Handlers configures interface-based handlers for extending agent behavior.
// Unlike Middlewares (struct-based), Handlers allow users to:
// - Add custom methods to their handler implementations
// - Return modified context from handler methods
// - Centralize configuration in struct fields instead of closures
//
// Handlers are processed after Middlewares, in registration order.
// See adk.ChatModelAgentMiddleware documentation for when to use Handlers vs Middlewares.
Handlers []adk.ChatModelAgentMiddleware
ModelRetryConfig *adk.ModelRetryConfig
// OutputKey stores the agent's response in the session.
// Optional. When set, stores output via AddSessionValue(ctx, outputKey, msg.Content).
OutputKey string
}
Config defines the configuration for creating a DeepAgent.
Click to show internal directories.
Click to hide internal directories.