agent

package
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Feb 25, 2026 License: MIT Imports: 27 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ServiceProvider    = "provider"
	ServiceMemory      = "memory"
	ServiceToolManager = "tool_manager"
	ServiceEventBus    = "event_bus"
	ServiceLogger      = "logger"
)

众所周知的服务名称

View Source
const (
	MemoryShortTerm  = types.MemoryWorking    // 短期记忆 -> Working
	MemoryWorking    = types.MemoryWorking    // 工作记忆
	MemoryLongTerm   = types.MemorySemantic   // 长期记忆 -> Semantic
	MemoryEpisodic   = types.MemoryEpisodic   // 情节记忆
	MemorySemantic   = types.MemorySemantic   // 语义记忆 (新增)
	MemoryProcedural = types.MemoryProcedural // 程序记忆 (新增)
)

记忆类型常数 - 映射到统一类型. 内存类型 折旧:使用类型。 记忆工作,类型。 记忆 Essodic等.

Variables

View Source
var (
	ErrProviderNotSet = NewError(ErrCodeProviderNotSet, "LLM provider not configured")
	ErrAgentNotReady  = NewError(ErrCodeNotReady, "agent not in ready state")
	ErrAgentBusy      = NewError(ErrCodeBusy, "agent is busy executing another task")
)

预定义错误(向后兼容)

Functions

func CanTransition

func CanTransition(from, to State) bool

CanTransition 检查状态转换是否合法

func DurationPtr

func DurationPtr(d time.Duration) *time.Duration

DurationPtr returns a pointer to the given time.Duration.

func Float32Ptr

func Float32Ptr(f float32) *float32

Float32Ptr returns a pointer to the given float32.

func InitGlobalRegistry

func InitGlobalRegistry(logger *zap.Logger)

Init Global Registry将全球代理登记初始化。 此函数可以安全多次调用 - 只有第一个调用会初始化 。

func IntPtr

func IntPtr(i int) *int

IntPtr returns a pointer to the given int.

func IsRetryable

func IsRetryable(err error) bool

如果代理错误可以重试, 是否可重试

func StringPtr

func StringPtr(s string) *string

StringPtr returns a pointer to the given string.

func WithRunConfig

func WithRunConfig(ctx context.Context, rc *RunConfig) context.Context

WithRunConfig stores a RunConfig in the context.

func WithRuntimeStreamEmitter

func WithRuntimeStreamEmitter(ctx context.Context, emit RuntimeStreamEmitter) context.Context

Types

type Action

type Action struct {
	Type     string         `json:"type"`
	Content  string         `json:"content"`
	Metadata map[string]any `json:"metadata"`
}

Action 需要审批的动作

type AfterExecutePlugin added in v1.2.0

type AfterExecutePlugin interface {
	AgentPlugin
	AfterExecute(ctx context.Context, pc *PipelineContext) error
}

AfterExecutePlugin runs after the core execution pipeline.

type Agent

type Agent interface {
	// 身份标识
	ID() string
	Name() string
	Type() AgentType

	// 生命周期
	State() State
	Init(ctx context.Context) error
	Teardown(ctx context.Context) error

	// 核心执行
	Plan(ctx context.Context, input *Input) (*PlanResult, error)
	Execute(ctx context.Context, input *Input) (*Output, error)
	Observe(ctx context.Context, feedback *Feedback) error
}

Agent 定义核心行为接口

func CreateAgent

func CreateAgent(
	config Config,
	provider llm.Provider,
	memory MemoryManager,
	toolManager ToolManager,
	bus EventBus,
	logger *zap.Logger,
) (Agent, error)

Create Agent 使用全球登记册创建代理

type AgentBuilder

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

AgentBuilder 提供流式构建 Agent 的能力 支持链式调用,简化 Agent 创建过程

func BuildFromDefinition added in v1.2.0

func BuildFromDefinition(def *declarative.AgentDefinition, logger *zap.Logger) (*AgentBuilder, error)

BuildFromDefinition loads a declarative AgentDefinition, validates it, converts it to an agent.Config, and returns a configured AgentBuilder.

The caller must still set a Provider (and optionally other dependencies) before calling Build():

builder, err := agent.BuildFromDefinition(def, logger)
if err != nil { ... }
ag, err := builder.WithProvider(myProvider).Build()

func BuildFromFile added in v1.2.0

func BuildFromFile(path string, logger *zap.Logger) (*AgentBuilder, error)

BuildFromFile loads a YAML/JSON agent definition file and returns a configured AgentBuilder. This is a convenience wrapper around BuildFromDefinition.

func NewAgentBuilder

func NewAgentBuilder(config Config) *AgentBuilder

NewAgentBuilder 创建 Agent 构建器

func (*AgentBuilder) Build

func (b *AgentBuilder) Build() (*BaseAgent, error)

Build 构建 Agent 实例

func (*AgentBuilder) Orchestrator added in v1.2.0

func (b *AgentBuilder) Orchestrator() OrchestratorRunner

Orchestrator returns the configured orchestrator runner (may be nil).

func (*AgentBuilder) ReasoningRegistry added in v1.2.0

func (b *AgentBuilder) ReasoningRegistry() *reasoning.PatternRegistry

ReasoningRegistry returns the configured reasoning pattern registry (may be nil).

func (*AgentBuilder) Validate

func (b *AgentBuilder) Validate() error

Validate 验证配置是否有效

func (*AgentBuilder) WithConversationStore added in v1.1.0

func (b *AgentBuilder) WithConversationStore(store ConversationStoreProvider) *AgentBuilder

WithConversationStore sets the conversation store for persisting chat history.

func (*AgentBuilder) WithDefaultEnhancedMemory

func (b *AgentBuilder) WithDefaultEnhancedMemory(config *memory.EnhancedMemoryConfig) *AgentBuilder

通过DefaultEnhancedMemory,可以使内置增强的内存系统与内存存储相通.

func (*AgentBuilder) WithDefaultLSPServer

func (b *AgentBuilder) WithDefaultLSPServer(name, version string) *AgentBuilder

WithDefaultLSPServer 启用默认名称/版本的内置 LSP 运行时。

func (*AgentBuilder) WithDefaultMCPServer

func (b *AgentBuilder) WithDefaultMCPServer(name, version string) *AgentBuilder

With DefaultMCPServer 启用默认名称/版本的内置的MCP服务器.

func (*AgentBuilder) WithDefaultSkills

func (b *AgentBuilder) WithDefaultSkills(directory string, config *skills.SkillManagerConfig) *AgentBuilder

With DefaultSkills 启用了内置的技能管理器,并可以选择扫描一个目录.

func (*AgentBuilder) WithEnhancedMemory

func (b *AgentBuilder) WithEnhancedMemory(mem EnhancedMemoryRunner) *AgentBuilder

WithEnhancedMemory 启用增强记忆系统

func (*AgentBuilder) WithEventBus

func (b *AgentBuilder) WithEventBus(bus EventBus) *AgentBuilder

WithEventBus 设置事件总线

func (*AgentBuilder) WithLSP

func (b *AgentBuilder) WithLSP(client LSPClientRunner) *AgentBuilder

WithLSP 启用 LSP 集成。

func (*AgentBuilder) WithLSPWithLifecycle added in v1.0.0

func (b *AgentBuilder) WithLSPWithLifecycle(client LSPClientRunner, lifecycle LSPLifecycleOwner) *AgentBuilder

WithLSPWithLifecycle 启用 LSP 集成,并注册可选生命周期对象。

func (*AgentBuilder) WithLogger

func (b *AgentBuilder) WithLogger(logger *zap.Logger) *AgentBuilder

WithLogger 设置日志器

func (*AgentBuilder) WithMCP

func (b *AgentBuilder) WithMCP(server MCPServerRunner) *AgentBuilder

WithMCP 启用 MCP 集成

func (*AgentBuilder) WithMaxReActIterations

func (b *AgentBuilder) WithMaxReActIterations(n int) *AgentBuilder

WithMaxReActIterations 设置 ReAct 最大迭代次数。 n <= 0 时忽略,使用默认值 10。

func (*AgentBuilder) WithMemory

func (b *AgentBuilder) WithMemory(memory MemoryManager) *AgentBuilder

WithMemory 设置记忆管理器

func (*AgentBuilder) WithObservability

func (b *AgentBuilder) WithObservability(obs ObservabilityRunner) *AgentBuilder

WithObservability 启用可观测性系统

func (*AgentBuilder) WithOrchestrator added in v1.2.0

func (b *AgentBuilder) WithOrchestrator(orchestrator OrchestratorRunner) *AgentBuilder

WithOrchestrator sets the orchestration runner for multi-agent coordination.

func (*AgentBuilder) WithPromptEnhancer

func (b *AgentBuilder) WithPromptEnhancer(config *PromptEnhancerConfig) *AgentBuilder

WithPromptEnhancer 启用提示词增强

func (*AgentBuilder) WithPromptStore added in v1.1.0

func (b *AgentBuilder) WithPromptStore(store PromptStoreProvider) *AgentBuilder

WithPromptStore sets the prompt store for loading prompts from MongoDB.

func (*AgentBuilder) WithProvider

func (b *AgentBuilder) WithProvider(provider llm.Provider) *AgentBuilder

WithProvider 设置 LLM Provider

func (*AgentBuilder) WithReasoning added in v1.2.0

func (b *AgentBuilder) WithReasoning(registry *reasoning.PatternRegistry) *AgentBuilder

WithReasoning sets the reasoning pattern registry for advanced reasoning strategies.

func (*AgentBuilder) WithReflection

func (b *AgentBuilder) WithReflection(config *ReflectionExecutorConfig) *AgentBuilder

WithReflection 启用 Reflection 机制

func (*AgentBuilder) WithRunStore added in v1.1.0

func (b *AgentBuilder) WithRunStore(store RunStoreProvider) *AgentBuilder

WithRunStore sets the run store for recording execution logs.

func (*AgentBuilder) WithSkills

func (b *AgentBuilder) WithSkills(discoverer SkillDiscoverer) *AgentBuilder

WithSkills 启用 Skills 系统

func (*AgentBuilder) WithToolManager

func (b *AgentBuilder) WithToolManager(toolManager ToolManager) *AgentBuilder

WithToolManager 设置工具管理器

func (*AgentBuilder) WithToolProvider

func (b *AgentBuilder) WithToolProvider(provider llm.Provider) *AgentBuilder

WithToolProvider 设置工具调用专用的 LLM Provider。 ReAct 循环中的推理和工具调用将使用此 Provider,而最终内容生成仍使用主 Provider。 如果不设置,所有调用都使用主 Provider(向后兼容)。

func (*AgentBuilder) WithToolSelection

func (b *AgentBuilder) WithToolSelection(config *ToolSelectionConfig) *AgentBuilder

WithToolSelection 启用动态工具选择

type AgentFactory

type AgentFactory func(
	config Config,
	provider llm.Provider,
	memory MemoryManager,
	toolManager ToolManager,
	bus EventBus,
	logger *zap.Logger,
) (Agent, error)

Agent Factory 是创建 Agent 实例的函数

type AgentFactoryFunc

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

Agent FactoryFunc 创建具有预配置依赖关系的代理.

func NewAgentFactoryFunc

func NewAgentFactoryFunc(container *Container) *AgentFactoryFunc

新AgentFactoryFunc创建了新的代理工厂.

func (*AgentFactoryFunc) CreateAgent

func (f *AgentFactoryFunc) CreateAgent(config Config) (Agent, error)

Create Agent 根据提供的配置创建代理 。

func (*AgentFactoryFunc) CreateModular

func (f *AgentFactoryFunc) CreateModular(config ModularAgentConfig) (*ModularAgent, error)

Create Modular 创建模块化代理.

type AgentIdentity

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

代理身份管理代理身份信息.

func NewAgentIdentity

func NewAgentIdentity(id, name string, agentType AgentType) *AgentIdentity

新代理身份创建了新的代理身份.

func (*AgentIdentity) Description

func (i *AgentIdentity) Description() string

描述返回代理描述.

func (*AgentIdentity) ID

func (i *AgentIdentity) ID() string

ID 返回代理的唯一标识符 。

func (*AgentIdentity) Name

func (i *AgentIdentity) Name() string

名称返回代理名.

func (*AgentIdentity) SetDescription

func (i *AgentIdentity) SetDescription(desc string)

设置 Description 设置代理描述 。

func (*AgentIdentity) Type

func (i *AgentIdentity) Type() AgentType

类型返回代理类型 。

type AgentPlugin added in v1.2.0

type AgentPlugin interface {
	Name() string
	Priority() int // Lower number = higher priority (runs first)
	Phase() PluginPhase
	Init(ctx context.Context) error
	Shutdown(ctx context.Context) error
}

AgentPlugin is the unified interface for agent functionality plugins.

type AgentPluginRegistry added in v1.2.0

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

AgentPluginRegistry manages agent plugins, sorted by priority.

func NewAgentPluginRegistry added in v1.2.0

func NewAgentPluginRegistry() *AgentPluginRegistry

NewAgentPluginRegistry creates a new plugin registry.

func (*AgentPluginRegistry) AfterPlugins added in v1.2.0

func (r *AgentPluginRegistry) AfterPlugins() []AfterExecutePlugin

AfterPlugins returns all AfterExecutePlugin instances, sorted by priority.

func (*AgentPluginRegistry) All added in v1.2.0

func (r *AgentPluginRegistry) All() []AgentPlugin

All returns all registered plugins.

func (*AgentPluginRegistry) AroundPlugins added in v1.2.0

func (r *AgentPluginRegistry) AroundPlugins() []AroundExecutePlugin

AroundPlugins returns all AroundExecutePlugin instances, sorted by priority.

func (*AgentPluginRegistry) BeforePlugins added in v1.2.0

func (r *AgentPluginRegistry) BeforePlugins() []BeforeExecutePlugin

BeforePlugins returns all BeforeExecutePlugin instances, sorted by priority.

func (*AgentPluginRegistry) InitAll added in v1.2.0

func (r *AgentPluginRegistry) InitAll(ctx context.Context) error

InitAll initializes all registered plugins.

func (*AgentPluginRegistry) Register added in v1.2.0

func (r *AgentPluginRegistry) Register(p AgentPlugin)

Register adds a plugin and maintains priority ordering.

func (*AgentPluginRegistry) ShutdownAll added in v1.2.0

func (r *AgentPluginRegistry) ShutdownAll(ctx context.Context) error

ShutdownAll shuts down all registered plugins in reverse priority order.

type AgentRegistry

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

Agent Registry 管理代理类型注册和创建 它提供了一种集中的方式 注册和即时处理不同的代理类型

var (
	GlobalRegistry *AgentRegistry
)

Global Registry 是默认代理注册实例

func NewAgentRegistry

func NewAgentRegistry(logger *zap.Logger) *AgentRegistry

新建代理注册

func (*AgentRegistry) Create

func (r *AgentRegistry) Create(
	config Config,
	provider llm.Provider,
	memory MemoryManager,
	toolManager ToolManager,
	bus EventBus,
	logger *zap.Logger,
) (Agent, error)

创建指定类型的新代理实例

func (*AgentRegistry) IsRegistered

func (r *AgentRegistry) IsRegistered(agentType AgentType) bool

如果已注册代理类型, 正在注册检查

func (*AgentRegistry) ListTypes

func (r *AgentRegistry) ListTypes() []AgentType

列表类型返回所有已注册代理类型

func (*AgentRegistry) Register

func (r *AgentRegistry) Register(agentType AgentType, factory AgentFactory)

登记册登记具有工厂功能的新代理类型

func (*AgentRegistry) Unregister

func (r *AgentRegistry) Unregister(agentType AgentType)

未注册从注册簿中删除代理类型

type AgentTool

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

AgentTool wraps an Agent instance as a callable tool, enabling lightweight agent-to-agent delegation via the standard tool-calling interface.

func NewAgentTool

func NewAgentTool(agent Agent, config *AgentToolConfig) *AgentTool

NewAgentTool creates an AgentTool that wraps the given Agent. If config is nil, defaults are used.

func (*AgentTool) Agent

func (at *AgentTool) Agent() Agent

Agent returns the underlying Agent instance.

func (*AgentTool) Execute

func (at *AgentTool) Execute(ctx context.Context, call types.ToolCall) llmtools.ToolResult

Execute handles a ToolCall by delegating to the wrapped Agent.

func (*AgentTool) Name

func (at *AgentTool) Name() string

Name returns the tool name.

func (*AgentTool) Schema

func (at *AgentTool) Schema() types.ToolSchema

Schema returns the ToolSchema describing this agent-as-tool.

type AgentToolConfig

type AgentToolConfig struct {
	// Name overrides the default tool name (default: "agent_<agent.Name()>").
	Name string

	// Description overrides the agent's description in the tool schema.
	Description string

	// Timeout limits the agent execution time. Zero means no extra timeout.
	Timeout time.Duration
}

AgentToolConfig configures how an Agent is exposed as a tool.

type AgentType

type AgentType string

AgentType 定义 Agent 类型 这是一个可扩展的字符串类型,用户可以定义自己的 Agent 类型

const (
	TypeGeneric    AgentType = "generic"    // 通用 Agent
	TypeAssistant  AgentType = "assistant"  // 助手
	TypeAnalyzer   AgentType = "analyzer"   // 分析
	TypeTranslator AgentType = "translator" // 翻译
	TypeSummarizer AgentType = "summarizer" // 摘要
	TypeReviewer   AgentType = "reviewer"   // 审查
)

预定义的常见 Agent 类型(可选使用)

type ApprovalPolicy

type ApprovalPolicy interface {
	RequiresApproval(ctx context.Context, agentID string, action Action) bool
}

ApprovalPolicy 审批策略

type ApprovalRequest

type ApprovalRequest struct {
	ID          string            `json:"id"`
	AgentID     string            `json:"agent_id"`
	Type        ApprovalType      `json:"type"`
	Content     string            `json:"content"`
	Context     map[string]any    `json:"context"`
	Status      ApprovalStatus    `json:"status"`
	RequestedAt time.Time         `json:"requested_at"`
	RespondedAt time.Time         `json:"responded_at,omitempty"`
	Response    *ApprovalResponse `json:"response,omitempty"`
	Timeout     time.Duration     `json:"timeout"`
	// contains filtered or unexported fields
}

ApprovalRequest 审批请求

type ApprovalRequestedEvent

type ApprovalRequestedEvent struct {
	RequestID    string
	AgentID      string
	ApprovalType ApprovalType
	Content      string
	Timestamp_   time.Time
}

ApprovalRequestedEvent 审批请求事件

func (*ApprovalRequestedEvent) Timestamp

func (e *ApprovalRequestedEvent) Timestamp() time.Time

func (*ApprovalRequestedEvent) Type

type ApprovalRespondedEvent

type ApprovalRespondedEvent struct {
	RequestID  string
	Approved   bool
	Reason     string
	Timestamp_ time.Time
}

ApprovalRespondedEvent 审批响应事件

func (*ApprovalRespondedEvent) Timestamp

func (e *ApprovalRespondedEvent) Timestamp() time.Time

func (*ApprovalRespondedEvent) Type

type ApprovalResponse

type ApprovalResponse struct {
	Approved bool           `json:"approved"`
	Reason   string         `json:"reason,omitempty"`
	Feedback string         `json:"feedback,omitempty"`
	Metadata map[string]any `json:"metadata,omitempty"`
}

ApprovalResponse 审批响应

type ApprovalStatus

type ApprovalStatus string

ApprovalStatus 审批状态

const (
	ApprovalStatusPending   ApprovalStatus = "pending"
	ApprovalStatusApproved  ApprovalStatus = "approved"
	ApprovalStatusRejected  ApprovalStatus = "rejected"
	ApprovalStatusTimeout   ApprovalStatus = "timeout"
	ApprovalStatusCancelled ApprovalStatus = "cancelled"
)

type ApprovalStore

type ApprovalStore interface {
	Save(ctx context.Context, request *ApprovalRequest) error
	Load(ctx context.Context, requestID string) (*ApprovalRequest, error)
	List(ctx context.Context, agentID string, status ApprovalStatus, limit int) ([]*ApprovalRequest, error)
	Update(ctx context.Context, request *ApprovalRequest) error
}

ApprovalStore 审批存储接口

type ApprovalType

type ApprovalType string

ApprovalType 审批类型

const (
	ApprovalTypeToolCall    ApprovalType = "tool_call"    // 工具调用审批
	ApprovalTypeOutput      ApprovalType = "output"       // 输出审批
	ApprovalTypeStateChange ApprovalType = "state_change" // 状态变更审批
	ApprovalTypeDataAccess  ApprovalType = "data_access"  // 数据访问审批
	ApprovalTypeCustom      ApprovalType = "custom"       // 自定义审批
)

type AroundExecutePlugin added in v1.2.0

type AroundExecutePlugin interface {
	AgentPlugin
	AroundExecute(ctx context.Context, pc *PipelineContext, next func(context.Context, *PipelineContext) error) error
}

AroundExecutePlugin wraps the core execution (e.g. Observability, Reflection).

type AsyncExecution

type AsyncExecution struct {
	ID        string
	AgentID   string
	Input     *Input
	StartTime time.Time
	// contains filtered or unexported fields
}

AsyncExecution 异步执行状态

func (*AsyncExecution) GetEndTime

func (e *AsyncExecution) GetEndTime() time.Time

GetEndTime returns when the execution finished.

func (*AsyncExecution) GetError

func (e *AsyncExecution) GetError() string

GetError returns the error message, if any.

func (*AsyncExecution) GetOutput

func (e *AsyncExecution) GetOutput() *Output

GetOutput returns the execution output, if completed.

func (*AsyncExecution) GetStatus

func (e *AsyncExecution) GetStatus() ExecutionStatus

GetStatus returns the current execution status.

func (*AsyncExecution) Wait

func (e *AsyncExecution) Wait(ctx context.Context) (*Output, error)

Wait 等待执行完成。可安全地被多次调用。 如果 ctx 被取消,返回 ctx.Err() 但不缓存该错误,后续调用仍可获取实际结果。

type AsyncExecutor

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

AsyncExecutor 异步 Agent 执行器(基于 Anthropic 2026 标准) 支持异步 Subagent 创建和实时协调

func NewAsyncExecutor

func NewAsyncExecutor(agent Agent, logger *zap.Logger) *AsyncExecutor

NewAsyncExecutor 创建异步执行器

func (*AsyncExecutor) ExecuteAsync

func (e *AsyncExecutor) ExecuteAsync(ctx context.Context, input *Input) (*AsyncExecution, error)

ExecuteAsync 异步执行任务

func (*AsyncExecutor) ExecuteWithSubagents

func (e *AsyncExecutor) ExecuteWithSubagents(ctx context.Context, input *Input, subagents []Agent) (*Output, error)

ExecuteWithSubagents 使用 Subagents 并行执行

type BaseAgent

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

BaseAgent 提供可复用的状态管理、记忆、工具与 LLM 能力

func BuildFromYAML added in v1.2.0

func BuildFromYAML(data []byte, provider llm.Provider, logger *zap.Logger) (*BaseAgent, error)

BuildFromYAML parses YAML bytes into an agent definition and returns a configured AgentBuilder.

func NewBaseAgent

func NewBaseAgent(
	cfg Config,
	provider llm.Provider,
	memory MemoryManager,
	toolManager ToolManager,
	bus EventBus,
	logger *zap.Logger,
) *BaseAgent

NewBaseAgent 创建基础 Agent

func (*BaseAgent) AddInputValidator

func (b *BaseAgent) AddInputValidator(v guardrails.Validator)

添加自定义输入验证器 1.7: 支持海关验证规则的登记和延期

func (*BaseAgent) AddOutputFilter

func (b *BaseAgent) AddOutputFilter(f guardrails.Filter)

添加 OutputFilter 添加自定义输出过滤器

func (*BaseAgent) AddOutputValidator

func (b *BaseAgent) AddOutputValidator(v guardrails.Validator)

添加输出变量添加自定义输出验证器 1.7: 支持海关验证规则的登记和延期

func (*BaseAgent) ChatCompletion

func (b *BaseAgent) ChatCompletion(ctx context.Context, messages []llm.Message) (*llm.ChatResponse, error)

ChatCompletion 调用 LLM 完成对话

func (*BaseAgent) Config

func (b *BaseAgent) Config() Config

Config 返回配置

func (*BaseAgent) ContextEngineEnabled

func (b *BaseAgent) ContextEngineEnabled() bool

ContextEngineEnabled 返回上下文工程是否启用

func (*BaseAgent) EnableEnhancedMemory

func (b *BaseAgent) EnableEnhancedMemory(memorySystem EnhancedMemoryRunner)

EnableEnhancedMemory 启用增强记忆系统

func (*BaseAgent) EnableLSP

func (b *BaseAgent) EnableLSP(client LSPClientRunner)

EnableLSP 启用 LSP 集成。

func (*BaseAgent) EnableLSPWithLifecycle

func (b *BaseAgent) EnableLSPWithLifecycle(client LSPClientRunner, lifecycle LSPLifecycleOwner)

EnableLSPWithLifecycle 启用 LSP,并注册可选生命周期对象(例如 *ManagedLSP)。

func (*BaseAgent) EnableMCP

func (b *BaseAgent) EnableMCP(server MCPServerRunner)

EnableMCP 启用 MCP 集成

func (*BaseAgent) EnableObservability

func (b *BaseAgent) EnableObservability(obsSystem ObservabilityRunner)

EnableObservability 启用可观测性系统

func (*BaseAgent) EnablePromptEnhancer

func (b *BaseAgent) EnablePromptEnhancer(enhancer PromptEnhancerRunner)

EnablePromptEnhancer 启用提示词增强

func (*BaseAgent) EnableReflection

func (b *BaseAgent) EnableReflection(executor ReflectionRunner)

EnableReflection 启用 Reflection 机制

func (*BaseAgent) EnableSkills

func (b *BaseAgent) EnableSkills(manager SkillDiscoverer)

EnableSkills 启用 Skills 系统

func (*BaseAgent) EnableToolSelection

func (b *BaseAgent) EnableToolSelection(selector DynamicToolSelectorRunner)

EnableToolSelection 启用动态工具选择

func (*BaseAgent) EnsureReady

func (b *BaseAgent) EnsureReady() error

EnsureReady 确保 Agent 处于就绪状态

func (*BaseAgent) Execute

func (b *BaseAgent) Execute(ctx context.Context, input *Input) (_ *Output, execErr error)

Execute 执行任务(完整的 ReAct 循环) 这是 Agent 的核心执行方法,包含完整的推理-行动循环 Requirements 1.7: 集成输入验证 Requirements 2.4: 输出验证失败时支持重试

func (*BaseAgent) ExecuteEnhanced

func (b *BaseAgent) ExecuteEnhanced(ctx context.Context, input *Input, options EnhancedExecutionOptions) (*Output, error)

ExecuteEnhanced 增强执行(集成所有功能)

func (*BaseAgent) ExportConfiguration

func (b *BaseAgent) ExportConfiguration() map[string]any

ExportConfiguration 导出配置(用于持久化或分享)

func (*BaseAgent) GetFeatureMetrics

func (b *BaseAgent) GetFeatureMetrics() map[string]any

GetFeatureMetrics 获取功能使用指标

func (*BaseAgent) GetFeatureStatus

func (b *BaseAgent) GetFeatureStatus() map[string]bool

GetFeatureStatus 获取功能启用状态

func (*BaseAgent) GuardrailsEnabled

func (b *BaseAgent) GuardrailsEnabled() bool

是否启用了护栏

func (*BaseAgent) ID

func (b *BaseAgent) ID() string

ID 返回 Agent ID

func (*BaseAgent) Init

func (b *BaseAgent) Init(ctx context.Context) error

Init 初始化 Agent

func (*BaseAgent) Logger

func (b *BaseAgent) Logger() *zap.Logger

Logger 返回日志器

func (*BaseAgent) Memory

func (b *BaseAgent) Memory() MemoryManager

Memory 返回记忆管理器

func (*BaseAgent) Name

func (b *BaseAgent) Name() string

Name 返回 Agent 名称

func (*BaseAgent) Observe

func (b *BaseAgent) Observe(ctx context.Context, feedback *Feedback) error

Observe 处理反馈并更新 Agent 状态 这个方法允许 Agent 从外部反馈中学习和改进

func (*BaseAgent) Plan

func (b *BaseAgent) Plan(ctx context.Context, input *Input) (*PlanResult, error)

Plan 生成执行计划 使用 LLM 分析任务并生成详细的执行步骤

func (*BaseAgent) PrintFeatureStatus

func (b *BaseAgent) PrintFeatureStatus()

PrintFeatureStatus 打印功能状态

func (*BaseAgent) Provider

func (b *BaseAgent) Provider() llm.Provider

Provider 返回 LLM Provider

func (*BaseAgent) QuickSetup

func (b *BaseAgent) QuickSetup(ctx context.Context, options QuickSetupOptions) (*QuickSetupResult, error)

QuickSetup validates the requested feature configuration and returns a list of features that still need to be enabled. NOTE: This method does NOT automatically enable any features. The caller must inspect RequiredSetups and invoke the corresponding Enable* methods with concrete implementations (e.g. via agent/runtime.QuickSetup).

func (*BaseAgent) RecallMemory

func (b *BaseAgent) RecallMemory(ctx context.Context, query string, topK int) ([]MemoryRecord, error)

RecallMemory 检索记忆

func (*BaseAgent) SaveMemory

func (b *BaseAgent) SaveMemory(ctx context.Context, content string, kind MemoryKind, metadata map[string]any) error

SaveMemory 保存记忆并同步更新本地缓存

func (*BaseAgent) SetContextManager

func (b *BaseAgent) SetContextManager(cm ContextManager)

SetContextManager 设置上下文管理器

func (*BaseAgent) SetConversationStore added in v1.1.0

func (b *BaseAgent) SetConversationStore(store ConversationStoreProvider)

SetConversationStore sets the conversation store provider.

func (*BaseAgent) SetGuardrails

func (b *BaseAgent) SetGuardrails(cfg *guardrails.GuardrailsConfig)

设置守护栏为代理设置守护栏 1.7: 支持海关验证规则的登记和延期

func (*BaseAgent) SetPromptStore added in v1.1.0

func (b *BaseAgent) SetPromptStore(store PromptStoreProvider)

SetPromptStore sets the prompt store provider.

func (*BaseAgent) SetRunStore added in v1.1.0

func (b *BaseAgent) SetRunStore(store RunStoreProvider)

SetRunStore sets the run store provider.

func (*BaseAgent) SetToolProvider

func (b *BaseAgent) SetToolProvider(p llm.Provider)

SetToolProvider 设置工具调用专用的 LLM Provider

func (*BaseAgent) State

func (b *BaseAgent) State() State

State 返回当前状态

func (*BaseAgent) StreamCompletion

func (b *BaseAgent) StreamCompletion(ctx context.Context, messages []llm.Message) (<-chan llm.StreamChunk, error)

StreamCompletion 流式调用 LLM

func (*BaseAgent) Teardown

func (b *BaseAgent) Teardown(ctx context.Context) error

Teardown 清理资源

func (*BaseAgent) ToolProvider

func (b *BaseAgent) ToolProvider() llm.Provider

ToolProvider 返回工具调用专用的 LLM Provider(可能为 nil)

func (*BaseAgent) Tools

func (b *BaseAgent) Tools() ToolManager

Tools 返回工具注册中心

func (*BaseAgent) Transition

func (b *BaseAgent) Transition(ctx context.Context, to State) error

Transition 状态转换(带校验)

func (*BaseAgent) TryLockExec

func (b *BaseAgent) TryLockExec() bool

TryLockExec 尝试获取执行锁,防止并发执行

func (*BaseAgent) Type

func (b *BaseAgent) Type() AgentType

Type 返回 Agent 类型

func (*BaseAgent) UnlockExec

func (b *BaseAgent) UnlockExec()

UnlockExec 释放执行锁

func (*BaseAgent) ValidateConfiguration

func (b *BaseAgent) ValidateConfiguration() error

ValidateConfiguration 验证配置

type BeforeExecutePlugin added in v1.2.0

type BeforeExecutePlugin interface {
	AgentPlugin
	BeforeExecute(ctx context.Context, pc *PipelineContext) error
}

BeforeExecutePlugin runs before the core execution pipeline.

type CachingResolver added in v1.0.0

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

CachingResolver resolves agent IDs to live Agent instances, creating them on demand via AgentRegistry and caching them for reuse. It uses singleflight to ensure concurrent requests for the same agentID only trigger one Create+Init cycle.

func NewCachingResolver added in v1.0.0

func NewCachingResolver(registry *AgentRegistry, provider llm.Provider, logger *zap.Logger) *CachingResolver

NewCachingResolver creates a CachingResolver backed by the given registry and LLM provider.

func (*CachingResolver) Resolve added in v1.0.0

func (r *CachingResolver) Resolve(ctx context.Context, agentID string) (Agent, error)

Resolve returns a cached Agent for agentID, or creates and initialises one.

func (*CachingResolver) TeardownAll added in v1.0.0

func (r *CachingResolver) TeardownAll(ctx context.Context)

TeardownAll tears down all cached agent instances. Intended to be called during graceful shutdown.

func (*CachingResolver) WithConversationStore added in v1.1.0

func (r *CachingResolver) WithConversationStore(s ConversationStoreProvider) *CachingResolver

WithConversationStore sets the ConversationStoreProvider for resolved agents.

func (*CachingResolver) WithMemory added in v1.1.0

func (r *CachingResolver) WithMemory(m MemoryManager) *CachingResolver

WithMemory sets the MemoryManager used when creating new agent instances. When non-nil, agents created by this resolver will have memory capabilities.

func (*CachingResolver) WithPromptStore added in v1.1.0

func (r *CachingResolver) WithPromptStore(s PromptStoreProvider) *CachingResolver

WithPromptStore sets the PromptStoreProvider for resolved agents.

func (*CachingResolver) WithRunStore added in v1.1.0

func (r *CachingResolver) WithRunStore(s RunStoreProvider) *CachingResolver

WithRunStore sets the RunStoreProvider for resolved agents.

type Checkpoint

type Checkpoint struct {
	ID        string              `json:"id"`
	ThreadID  string              `json:"thread_id"` // 会话线程 ID
	AgentID   string              `json:"agent_id"`
	Version   int                 `json:"version"` // 版本号(线程内递增)
	State     State               `json:"state"`
	Messages  []CheckpointMessage `json:"messages"`
	Metadata  map[string]any      `json:"metadata"`
	CreatedAt time.Time           `json:"created_at"`
	ParentID  string              `json:"parent_id,omitempty"` // 父检查点 ID

	// ExecutionContext 工作流执行上下文
	ExecutionContext *ExecutionContext `json:"execution_context,omitempty"`
}

Checkpoint Agent 执行检查点(基于 LangGraph 2026 标准)

type CheckpointDiff

type CheckpointDiff struct {
	ThreadID     string        `json:"thread_id"`
	Version1     int           `json:"version1"`
	Version2     int           `json:"version2"`
	StateChanged bool          `json:"state_changed"`
	OldState     State         `json:"old_state"`
	NewState     State         `json:"new_state"`
	MessagesDiff string        `json:"messages_diff"`
	MetadataDiff string        `json:"metadata_diff"`
	TimeDiff     time.Duration `json:"time_diff"`
}

检查站 Diff 代表两个检查站版本之间的差异

type CheckpointManager

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

CheckpointManager 检查点管理器

func NewCheckpointManager

func NewCheckpointManager(store CheckpointStore, logger *zap.Logger) *CheckpointManager

NewCheckpointManager 创建检查点管理器

func (*CheckpointManager) CompareVersions

func (m *CheckpointManager) CompareVersions(ctx context.Context, threadID string, version1, version2 int) (*CheckpointDiff, error)

比较Version 比较两个检查点版本并返回差异

func (*CheckpointManager) CreateCheckpoint

func (m *CheckpointManager) CreateCheckpoint(ctx context.Context, agent Agent, threadID string) error

创建检查点来抓取当前代理状态并将其保存为检查点

func (*CheckpointManager) DisableAutoSave

func (m *CheckpointManager) DisableAutoSave()

禁用自动保存停止自动检查

func (*CheckpointManager) EnableAutoSave

func (m *CheckpointManager) EnableAutoSave(ctx context.Context, agent Agent, threadID string, interval time.Duration) error

启用自动保存以指定间隔自动保存检查点

func (*CheckpointManager) ListVersions

func (m *CheckpointManager) ListVersions(ctx context.Context, threadID string) ([]CheckpointVersion, error)

ListVersion 列出用于线索的所有检查点版本

func (*CheckpointManager) LoadCheckpoint

func (m *CheckpointManager) LoadCheckpoint(ctx context.Context, checkpointID string) (*Checkpoint, error)

LoadCheckpoint 加载检查点

func (*CheckpointManager) LoadLatestCheckpoint

func (m *CheckpointManager) LoadLatestCheckpoint(ctx context.Context, threadID string) (*Checkpoint, error)

LoadLatestCheckpoint 加载最新检查点

func (*CheckpointManager) ResumeFromCheckpoint

func (m *CheckpointManager) ResumeFromCheckpoint(ctx context.Context, agent Agent, checkpointID string) error

ResumeFromCheckpoint 从检查点恢复执行

func (*CheckpointManager) RollbackToVersion

func (m *CheckpointManager) RollbackToVersion(ctx context.Context, agent Agent, threadID string, version int) error

Rollback ToVersion 将代理拖回特定检查点版本

func (*CheckpointManager) SaveCheckpoint

func (m *CheckpointManager) SaveCheckpoint(ctx context.Context, checkpoint *Checkpoint) error

SaveCheckpoint 保存检查点

type CheckpointMessage

type CheckpointMessage struct {
	Role      string               `json:"role"`
	Content   string               `json:"content"`
	ToolCalls []CheckpointToolCall `json:"tool_calls,omitempty"`
	Metadata  map[string]any       `json:"metadata,omitempty"`
}

CheckpointMessage 检查点消息

type CheckpointStore

type CheckpointStore interface {
	// Save 保存检查点
	Save(ctx context.Context, checkpoint *Checkpoint) error

	// Load 加载检查点
	Load(ctx context.Context, checkpointID string) (*Checkpoint, error)

	// LoadLatest 加载线程最新检查点
	LoadLatest(ctx context.Context, threadID string) (*Checkpoint, error)

	// List 列出线程的所有检查点
	List(ctx context.Context, threadID string, limit int) ([]*Checkpoint, error)

	// Delete 删除检查点
	Delete(ctx context.Context, checkpointID string) error

	// DeleteThread 删除整个线程
	DeleteThread(ctx context.Context, threadID string) error

	// LoadVersion 加载指定版本的检查点
	LoadVersion(ctx context.Context, threadID string, version int) (*Checkpoint, error)

	// ListVersions 列出线程的所有版本
	ListVersions(ctx context.Context, threadID string) ([]CheckpointVersion, error)

	// Rollback 回滚到指定版本
	Rollback(ctx context.Context, threadID string, version int) error
}

CheckpointStore 检查点存储接口(Agent 层)。

注意:项目中存在两个 CheckpointStore 接口,操作不同的检查点类型:

  • agent.CheckpointStore(本接口) — 操作 *agent.Checkpoint,含 List/DeleteThread/Rollback
  • workflow.CheckpointStore — 操作 *workflow.EnhancedCheckpoint,用于 DAG 工作流时间旅行

两者的检查点结构体字段不同(Agent 状态 vs DAG 节点结果),无法统一。

type CheckpointToolCall

type CheckpointToolCall struct {
	ID        string          `json:"id"`
	Name      string          `json:"name"`
	Arguments json.RawMessage `json:"arguments"`
	Result    json.RawMessage `json:"result,omitempty"`
	Error     string          `json:"error,omitempty"`
}

CheckpointToolCall 工具调用记录

type CheckpointVersion

type CheckpointVersion struct {
	Version   int       `json:"version"`
	ID        string    `json:"id"`
	CreatedAt time.Time `json:"created_at"`
	State     State     `json:"state"`
	Summary   string    `json:"summary"`
}

CheckpointVersion 检查点版本元数据

type Config

type Config struct {
	ID           string            `json:"id"`
	Name         string            `json:"name"`
	Type         AgentType         `json:"type"`
	Description  string            `json:"description,omitempty"`
	Model        string            `json:"model"`                   // LLM 模型
	Provider     string            `json:"provider,omitempty"`      // LLM Provider
	MaxTokens    int               `json:"max_tokens,omitempty"`    // 最大 token
	Temperature  float32           `json:"temperature,omitempty"`   // 温度
	PromptBundle PromptBundle      `json:"prompt_bundle,omitempty"` // 模块化提示词包
	Tools        []string          `json:"tools,omitempty"`         // 可用工具列表
	Metadata     map[string]string `json:"metadata,omitempty"`

	// 2025 新增配置(可选)
	EnableReflection     bool `json:"enable_reflection,omitempty"`
	EnableToolSelection  bool `json:"enable_tool_selection,omitempty"`
	EnablePromptEnhancer bool `json:"enable_prompt_enhancer,omitempty"`
	EnableSkills         bool `json:"enable_skills,omitempty"`
	EnableMCP            bool `json:"enable_mcp,omitempty"`
	EnableLSP            bool `json:"enable_lsp,omitempty"`
	EnableEnhancedMemory bool `json:"enable_enhanced_memory,omitempty"`
	EnableObservability  bool `json:"enable_observability,omitempty"`

	// ReAct 最大迭代次数,默认 10
	MaxReActIterations int `json:"max_react_iterations,omitempty"`

	// 2026 Guardrails 配置
	// Requirements 1.7: 支持自定义验证规则的注册和扩展
	Guardrails *guardrails.GuardrailsConfig `json:"guardrails,omitempty"`
}

Config Agent 配置

type Container

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

集装箱拥有建立代理的所有依赖性。

func NewContainer

func NewContainer() *Container

NewContaner创建了新的依赖容器.

func (*Container) CreateBaseAgent

func (c *Container) CreateBaseAgent(config Config) (*BaseAgent, error)

CreatBaseAgent 使用容器依赖性创建 BaseAgent 。

func (*Container) CreateModularAgent

func (c *Container) CreateModularAgent(config ModularAgentConfig) (*ModularAgent, error)

创建 ModularAgent 使用容器依赖性创建了 ModularAgent 。

func (*Container) EventBus

func (c *Container) EventBus() EventBus

EventBus 返回事件总线 。

func (*Container) Logger

func (c *Container) Logger() *zap.Logger

Logger 返回记录器 。

func (*Container) Memory

func (c *Container) Memory() MemoryManager

内存返回内存管理器.

func (*Container) Provider

func (c *Container) Provider() llm.Provider

提供方返回 LLM 提供者 。

func (*Container) ToolManager

func (c *Container) ToolManager() ToolManager

ToolManager返回工具管理器.

func (*Container) WithEventBus

func (c *Container) WithEventBus(bus EventBus) *Container

用 EventBus 设置活动总线 。

func (*Container) WithGuardrailsFactory

func (c *Container) WithGuardrailsFactory(factory func() any) *Container

与Guardrails Factory 设置了护栏延长工厂.

func (*Container) WithLogger

func (c *Container) WithLogger(logger *zap.Logger) *Container

由Logger设置日志 。

func (*Container) WithMemory

func (c *Container) WithMemory(memory MemoryManager) *Container

与记忆设定内存管理器.

func (*Container) WithProvider

func (c *Container) WithProvider(provider llm.Provider) *Container

由Provider设置 LLM 提供者.

func (*Container) WithReflectionFactory

func (c *Container) WithReflectionFactory(factory func() any) *Container

随着ReflectionFactory设置了反射延伸工厂.

func (*Container) WithToolManager

func (c *Container) WithToolManager(toolManager ToolManager) *Container

与 ToolManager 设置工具管理器 。

func (*Container) WithToolSelectionFactory

func (c *Container) WithToolSelectionFactory(factory func() any) *Container

With ToolSelectFactory 设置工具选择扩展厂.

type ContextManager

type ContextManager interface {
	PrepareMessages(ctx context.Context, messages []llm.Message, currentQuery string) ([]llm.Message, error)
	GetStatus(messages []llm.Message) any
	EstimateTokens(messages []llm.Message) int
}

ContextManager 上下文管理器接口 使用 pkg/context.AgentContextManager 作为标准实现

type ConversationDoc added in v1.1.0

type ConversationDoc struct {
	ID       string                `json:"id"`
	AgentID  string                `json:"agent_id"`
	TenantID string                `json:"tenant_id"`
	UserID   string                `json:"user_id"`
	Messages []ConversationMessage `json:"messages"`
}

ConversationDoc is a minimal conversation document for the agent layer.

type ConversationMessage added in v1.1.0

type ConversationMessage struct {
	Role      string    `json:"role"`
	Content   string    `json:"content"`
	Timestamp time.Time `json:"timestamp"`
}

ConversationMessage is a single message in a conversation document.

type ConversationStoreProvider added in v1.1.0

type ConversationStoreProvider interface {
	Create(ctx context.Context, doc *ConversationDoc) error
	GetByID(ctx context.Context, id string) (*ConversationDoc, error)
	AppendMessages(ctx context.Context, conversationID string, msgs []ConversationMessage) error
}

ConversationStoreProvider persists conversation history. Implemented by: *mongodb.MongoConversationStore (agent/persistence/mongodb/)

type Critique

type Critique struct {
	Score       float64  `json:"score"`        // 0-1 分数
	IsGood      bool     `json:"is_good"`      // 是否达标
	Issues      []string `json:"issues"`       // 问题列表
	Suggestions []string `json:"suggestions"`  // 改进建议
	RawFeedback string   `json:"raw_feedback"` // 原始反馈
}

Critique 评审结果

type DefaultApprovalPolicy

type DefaultApprovalPolicy struct {
	// 需要审批的工具列表
	RequireApprovalTools []string

	// 需要审批的状态变更
	RequireApprovalStates []State

	// 总是需要审批
	AlwaysRequireApproval bool
}

DefaultApprovalPolicy 默认审批策略

func (*DefaultApprovalPolicy) RequiresApproval

func (p *DefaultApprovalPolicy) RequiresApproval(ctx context.Context, agentID string, action Action) bool

RequiresApproval 检查是否需要审批

type DefensivePromptConfig

type DefensivePromptConfig struct {
	// 失败处理模式
	FailureModes []FailureMode `json:"failure_modes"`

	// 输出 Schema 强制
	OutputSchema *OutputSchema `json:"output_schema,omitempty"`

	// 护栏规则
	GuardRails []GuardRail `json:"guard_rails"`

	// 提示注入防护
	InjectionDefense *InjectionDefenseConfig `json:"injection_defense,omitempty"`
}

DefensivePromptConfig 防御性提示配置(基于 2025 年生产最佳实践)

func DefaultDefensivePromptConfig

func DefaultDefensivePromptConfig() DefensivePromptConfig

DefaultDefensivePromptConfig 返回默认防御性提示配置

type DefensivePromptEnhancer

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

DefensivePromptEnhancer 防御性提示增强器

func NewDefensivePromptEnhancer

func NewDefensivePromptEnhancer(config DefensivePromptConfig) *DefensivePromptEnhancer

NewDefensivePromptEnhancer 创建防御性提示增强器

func (*DefensivePromptEnhancer) EnhancePromptBundle

func (e *DefensivePromptEnhancer) EnhancePromptBundle(bundle PromptBundle) PromptBundle

EnhancePromptBundle 增强提示词包(添加防御性规则)

func (*DefensivePromptEnhancer) SanitizeUserInput

func (e *DefensivePromptEnhancer) SanitizeUserInput(input string) (string, bool)

SanitizeUserInput 清理用户输入(防止提示注入)

func (*DefensivePromptEnhancer) ValidateOutput

func (e *DefensivePromptEnhancer) ValidateOutput(output string) error

ValidateOutput 验证输出是否符合 Schema

type DynamicToolSelector

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

DynamicToolSelector 动态工具选择器

func NewDynamicToolSelector

func NewDynamicToolSelector(agent *BaseAgent, config ToolSelectionConfig) *DynamicToolSelector

NewDynamicToolSelector 创建动态工具选择器

func (*DynamicToolSelector) ScoreTools

func (s *DynamicToolSelector) ScoreTools(ctx context.Context, task string, tools []llm.ToolSchema) ([]ToolScore, error)

ScoreTools 对工具进行评分

func (*DynamicToolSelector) SelectTools

func (s *DynamicToolSelector) SelectTools(ctx context.Context, task string, availableTools []llm.ToolSchema) ([]llm.ToolSchema, error)

SelectTools 选择最佳工具

func (*DynamicToolSelector) UpdateToolStats

func (s *DynamicToolSelector) UpdateToolStats(toolName string, success bool, latency time.Duration, cost float64)

UpdateToolStats 更新工具统计信息

type DynamicToolSelectorRunner added in v1.0.0

type DynamicToolSelectorRunner interface {
	SelectTools(ctx context.Context, task string, availableTools any) (any, error)
}

DynamicToolSelectorRunner dynamically selects tools relevant to a given task. This uses any for availableTools to match the integration.go call site signature. Implemented by: *DynamicToolSelector (agent/tool_selector.go) via adapter

func AsToolSelectorRunner added in v1.0.0

func AsToolSelectorRunner(selector *DynamicToolSelector) DynamicToolSelectorRunner

AsToolSelectorRunner wraps a *DynamicToolSelector as a DynamicToolSelectorRunner.

type EnhancedExecutionOptions

type EnhancedExecutionOptions struct {
	// Reflection 选项
	UseReflection bool

	// 工具选择选项
	UseToolSelection bool

	// 提示词增强选项
	UsePromptEnhancer bool

	// Skills 选项
	UseSkills   bool
	SkillsQuery string

	// 记忆选项
	UseEnhancedMemory   bool
	LoadWorkingMemory   bool
	LoadShortTermMemory bool
	SaveToMemory        bool

	// 可观测性选项
	UseObservability bool
	RecordMetrics    bool
	RecordTrace      bool
}

EnhancedExecutionOptions 增强执行选项

func DefaultEnhancedExecutionOptions

func DefaultEnhancedExecutionOptions() EnhancedExecutionOptions

DefaultEnhancedExecutionOptions 默认增强执行选项

type EnhancedMemoryLoadStep added in v1.2.0

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

EnhancedMemoryLoadStep loads enhanced memory context.

func (*EnhancedMemoryLoadStep) Execute added in v1.2.0

func (*EnhancedMemoryLoadStep) Name added in v1.2.0

func (s *EnhancedMemoryLoadStep) Name() string

type EnhancedMemoryRunner added in v1.0.0

type EnhancedMemoryRunner interface {
	LoadWorking(ctx context.Context, agentID string) ([]any, error)
	LoadShortTerm(ctx context.Context, agentID string, limit int) ([]any, error)
	SaveShortTerm(ctx context.Context, agentID, content string, metadata map[string]any) error
	RecordEpisode(ctx context.Context, event *memory.EpisodicEvent) error
}

EnhancedMemoryRunner provides advanced memory capabilities. Implemented by: *memory.EnhancedMemorySystem (agent/memory/)

type EnhancedMemorySaveStep added in v1.2.0

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

EnhancedMemorySaveStep saves output to the enhanced memory system.

func (*EnhancedMemorySaveStep) Execute added in v1.2.0

func (*EnhancedMemorySaveStep) Name added in v1.2.0

func (s *EnhancedMemorySaveStep) Name() string

type ErrInvalidTransition

type ErrInvalidTransition struct {
	From State
	To   State
}

ErrInvalidTransition 状态转换错误

func (ErrInvalidTransition) Error

func (e ErrInvalidTransition) Error() string

func (ErrInvalidTransition) ToAgentError

func (e ErrInvalidTransition) ToAgentError() *Error

ToAgentError 将 ErrInvalidTransition 转换为 Agent.Error

type Error

type Error struct {
	Base      *types.Error   `json:"base,inline"`
	AgentID   string         `json:"agent_id,omitempty"`
	AgentType AgentType      `json:"agent_type,omitempty"`
	Timestamp time.Time      `json:"timestamp"`
	Metadata  map[string]any `json:"metadata,omitempty"`
}

Error Agent 统一错误类型 Uses Base *types.Error for unified error handling across the framework. Agent-specific fields (AgentID, AgentType, Timestamp, Metadata) extend the base. Access base fields via promoted-style helpers: e.Code, e.Message, e.Retryable, e.Cause.

func NewError

func NewError(code ErrorCode, message string) *Error

NewError 创建新的 Agent 错误

func NewErrorWithCause

func NewErrorWithCause(code ErrorCode, message string, cause error) *Error

NewErrorWithCause 创建带原因的错误

func (*Error) Error

func (e *Error) Error() string

Error 实现 error 接口

func (*Error) Unwrap

func (e *Error) Unwrap() error

Unwrap 支持 errors.Unwrap — delegates to Base

func (*Error) WithAgent

func (e *Error) WithAgent(id string, agentType AgentType) *Error

WithAgent 添加 Agent 信息

func (*Error) WithCause

func (e *Error) WithCause(cause error) *Error

WithCause 添加原因错误

func (*Error) WithMetadata

func (e *Error) WithMetadata(key string, value any) *Error

WithMetadata 添加元数据

func (*Error) WithRetryable

func (e *Error) WithRetryable(retryable bool) *Error

WithRetryable 设置是否可重试

type ErrorCode

type ErrorCode = types.ErrorCode

ErrorCode 定义 Agent 错误码 用途类型。 ErrorCode作为与框架保持一致的基础类型.

const (
	// 状态相关错误
	ErrCodeInvalidTransition ErrorCode = "AGENT_INVALID_TRANSITION"
	ErrCodeNotReady          ErrorCode = "AGENT_NOT_READY"
	ErrCodeBusy              ErrorCode = "AGENT_BUSY"
	ErrCodeNotFound          ErrorCode = "AGENT_NOT_FOUND"

	// 配置相关错误
	ErrCodeProviderNotSet ErrorCode = "AGENT_PROVIDER_NOT_SET"
	ErrCodeInvalidConfig  ErrorCode = "AGENT_INVALID_CONFIG"

	// 执行相关错误
	ErrCodeExecutionFailed ErrorCode = "AGENT_EXECUTION_FAILED"
	ErrCodePlanningFailed  ErrorCode = "AGENT_PLANNING_FAILED"
	ErrCodeTimeout         ErrorCode = "AGENT_TIMEOUT"

	// 工具相关错误
	ErrCodeToolNotFound   ErrorCode = "AGENT_TOOL_NOT_FOUND"
	ErrCodeToolNotAllowed ErrorCode = "AGENT_TOOL_NOT_ALLOWED"
	ErrCodeToolExecFailed ErrorCode = "AGENT_TOOL_EXEC_FAILED"
	ErrCodeToolValidation ErrorCode = "AGENT_TOOL_VALIDATION"

	// 记忆相关错误
	ErrCodeMemoryNotSet     ErrorCode = "AGENT_MEMORY_NOT_SET"
	ErrCodeMemorySaveFailed ErrorCode = "AGENT_MEMORY_SAVE_FAILED"
	ErrCodeMemoryLoadFailed ErrorCode = "AGENT_MEMORY_LOAD_FAILED"

	// Reflection 相关错误
	ErrCodeReflectionFailed ErrorCode = "AGENT_REFLECTION_FAILED"
	ErrCodeCritiqueFailed   ErrorCode = "AGENT_CRITIQUE_FAILED"

	// 上下文相关错误
	ErrCodeContextOptimizationFailed ErrorCode = "AGENT_CONTEXT_OPTIMIZATION_FAILED"

	// Guardrails 相关错误
	ErrCodeGuardrailsViolated ErrorCode = "AGENT_GUARDRAILS_VIOLATED"
)

特定代理错误代码 这些扩展了类型/error.go中定义的基础错误代码

func GetErrorCode

func GetErrorCode(err error) ErrorCode

GetErrorCode 从错误中提取出错误代码

type Event

type Event interface {
	Timestamp() time.Time
	Type() EventType
}

Event 事件接口

type EventBus

type EventBus interface {
	Publish(event Event)
	Subscribe(eventType EventType, handler EventHandler) string
	Unsubscribe(subscriptionID string)
	Stop()
}

EventBus 定义事件总线接口

func NewEventBus

func NewEventBus(logger ...*zap.Logger) EventBus

NewEventBus 创建新的事件总线

type EventHandler

type EventHandler func(Event)

EventHandler 事件处理器

type EventType

type EventType string

EventType 事件类型

const (
	EventStateChange       EventType = "state_change"
	EventToolCall          EventType = "tool_call"
	EventFeedback          EventType = "feedback"
	EventApprovalRequested EventType = "approval_requested"
	EventApprovalResponded EventType = "approval_responded"
	EventSubagentCompleted EventType = "subagent_completed"
)

type Example

type Example struct {
	User      string `json:"user"`
	Assistant string `json:"assistant"`
}

type ExecutionContext

type ExecutionContext struct {
	WorkflowID  string         `json:"workflow_id,omitempty"`
	CurrentNode string         `json:"current_node,omitempty"`
	NodeResults map[string]any `json:"node_results,omitempty"`
	Variables   map[string]any `json:"variables,omitempty"`
}

ExecutionContext 工作流执行上下文

type ExecutionStatus

type ExecutionStatus string

ExecutionStatus 执行状态

const (
	ExecutionStatusPending   ExecutionStatus = "pending"
	ExecutionStatusRunning   ExecutionStatus = "running"
	ExecutionStatusCompleted ExecutionStatus = "completed"
	ExecutionStatusFailed    ExecutionStatus = "failed"
	ExecutionStatusCanceled  ExecutionStatus = "canceled"
)

type ExecutionStep added in v1.2.0

type ExecutionStep interface {
	Name() string
	Execute(ctx context.Context, pc *PipelineContext, next StepFunc) error
}

ExecutionStep is a single step in the execution pipeline.

type ExtensionManager

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

扩展管理器管理可选代理扩展 。

func NewExtensionManager

func NewExtensionManager(logger *zap.Logger) *ExtensionManager

NewExtensionManager创建了新的扩展管理器.

func (*ExtensionManager) EnhancedMemory

func (em *ExtensionManager) EnhancedMemory() types.EnhancedMemoryExtension

增强记忆返回增强的内存扩展.

func (*ExtensionManager) Guardrails

func (em *ExtensionManager) Guardrails() types.GuardrailsExtension

护卫员把护卫员的分机还给我

func (*ExtensionManager) HasGuardrails

func (em *ExtensionManager) HasGuardrails() bool

如果有护栏,就检查护栏

func (*ExtensionManager) HasObservability

func (em *ExtensionManager) HasObservability() bool

如果存在可观察性,则有可观察性检查。

func (*ExtensionManager) HasReflection

func (em *ExtensionManager) HasReflection() bool

如果存在反射, 请进行反射检查 。

func (*ExtensionManager) HasToolSelection

func (em *ExtensionManager) HasToolSelection() bool

如果可以选择工具, HasTooLSsection 检查 。

func (*ExtensionManager) MCP

MCP返回MCP扩展.

func (*ExtensionManager) Observability

func (em *ExtensionManager) Observability() types.ObservabilityExtension

可观察性返回可观察性扩展.

func (*ExtensionManager) PromptEnhancer

func (em *ExtensionManager) PromptEnhancer() types.PromptEnhancerExtension

PowerEnhancer 返回快速增强器扩展 。

func (*ExtensionManager) Reflection

func (em *ExtensionManager) Reflection() types.ReflectionExtension

反射返回反射扩展.

func (*ExtensionManager) SetEnhancedMemory

func (em *ExtensionManager) SetEnhancedMemory(ext types.EnhancedMemoryExtension)

Set Enhanced Memory 设置了增强的内存扩展名.

func (*ExtensionManager) SetGuardrails

func (em *ExtensionManager) SetGuardrails(ext types.GuardrailsExtension)

SetGuardrails设置了护栏扩展.

func (*ExtensionManager) SetMCP

func (em *ExtensionManager) SetMCP(ext types.MCPExtension)

SetMCP设置了MCP扩展.

func (*ExtensionManager) SetObservability

func (em *ExtensionManager) SetObservability(ext types.ObservabilityExtension)

SetObservacy设置可观察扩展.

func (*ExtensionManager) SetPromptEnhancer

func (em *ExtensionManager) SetPromptEnhancer(ext types.PromptEnhancerExtension)

SetPrompt Enhancer 设置了快速增强器扩展.

func (*ExtensionManager) SetReflection

func (em *ExtensionManager) SetReflection(ext types.ReflectionExtension)

设定反射设置反射扩展 。

func (*ExtensionManager) SetSkills

func (em *ExtensionManager) SetSkills(ext types.SkillsExtension)

SetSkills 设置技能扩展.

func (*ExtensionManager) SetToolSelection

func (em *ExtensionManager) SetToolSelection(ext types.ToolSelectionExtension)

SetTools Selection 设置工具选择扩展名.

func (*ExtensionManager) Skills

func (em *ExtensionManager) Skills() types.SkillsExtension

技能返回技能扩展。

func (*ExtensionManager) ToolSelection

func (em *ExtensionManager) ToolSelection() types.ToolSelectionExtension

ToolSection 返回工具选择扩展名.

type ExtensionRegistry added in v1.1.0

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

ExtensionRegistry encapsulates the 9 optional extension fields extracted from BaseAgent.

func NewExtensionRegistry added in v1.1.0

func NewExtensionRegistry(logger *zap.Logger) *ExtensionRegistry

NewExtensionRegistry creates a new ExtensionRegistry.

func (*ExtensionRegistry) EnableEnhancedMemory added in v1.1.0

func (r *ExtensionRegistry) EnableEnhancedMemory(memorySystem EnhancedMemoryRunner)

EnableEnhancedMemory enables the enhanced memory system.

func (*ExtensionRegistry) EnableLSP added in v1.1.0

func (r *ExtensionRegistry) EnableLSP(client LSPClientRunner)

EnableLSP enables LSP integration.

func (*ExtensionRegistry) EnableLSPWithLifecycle added in v1.1.0

func (r *ExtensionRegistry) EnableLSPWithLifecycle(client LSPClientRunner, lifecycle LSPLifecycleOwner)

EnableLSPWithLifecycle enables LSP with an optional lifecycle owner.

func (*ExtensionRegistry) EnableMCP added in v1.1.0

func (r *ExtensionRegistry) EnableMCP(server MCPServerRunner)

EnableMCP enables MCP integration.

func (*ExtensionRegistry) EnableObservability added in v1.1.0

func (r *ExtensionRegistry) EnableObservability(obsSystem ObservabilityRunner)

EnableObservability enables the observability system.

func (*ExtensionRegistry) EnablePromptEnhancer added in v1.1.0

func (r *ExtensionRegistry) EnablePromptEnhancer(enhancer PromptEnhancerRunner)

EnablePromptEnhancer enables prompt enhancement.

func (*ExtensionRegistry) EnableReflection added in v1.1.0

func (r *ExtensionRegistry) EnableReflection(executor ReflectionRunner)

EnableReflection enables the reflection mechanism.

func (*ExtensionRegistry) EnableSkills added in v1.1.0

func (r *ExtensionRegistry) EnableSkills(manager SkillDiscoverer)

EnableSkills enables the skills system.

func (*ExtensionRegistry) EnableToolSelection added in v1.1.0

func (r *ExtensionRegistry) EnableToolSelection(selector DynamicToolSelectorRunner)

EnableToolSelection enables dynamic tool selection.

func (*ExtensionRegistry) EnhancedMemoryExt added in v1.1.0

func (r *ExtensionRegistry) EnhancedMemoryExt() EnhancedMemoryRunner

EnhancedMemoryExt returns the enhanced memory runner.

func (*ExtensionRegistry) ExecuteWithReflection added in v1.1.0

func (r *ExtensionRegistry) ExecuteWithReflection(ctx context.Context, input *Input) (any, error)

ExecuteWithReflection delegates to the reflection executor.

func (*ExtensionRegistry) GetFeatureStatus added in v1.1.0

func (r *ExtensionRegistry) GetFeatureStatus() map[string]bool

GetFeatureStatus returns a map of feature name to enabled status.

func (*ExtensionRegistry) LSPClientExt added in v1.1.0

func (r *ExtensionRegistry) LSPClientExt() LSPClientRunner

LSPClientExt returns the LSP client runner.

func (*ExtensionRegistry) LSPLifecycleExt added in v1.1.0

func (r *ExtensionRegistry) LSPLifecycleExt() LSPLifecycleOwner

LSPLifecycleExt returns the LSP lifecycle owner.

func (*ExtensionRegistry) MCPServerExt added in v1.1.0

func (r *ExtensionRegistry) MCPServerExt() MCPServerRunner

MCPServerExt returns the MCP server runner.

func (*ExtensionRegistry) ObservabilitySystemExt added in v1.1.0

func (r *ExtensionRegistry) ObservabilitySystemExt() ObservabilityRunner

ObservabilitySystemExt returns the observability runner.

func (*ExtensionRegistry) PromptEnhancerExt added in v1.1.0

func (r *ExtensionRegistry) PromptEnhancerExt() PromptEnhancerRunner

PromptEnhancerExt returns the prompt enhancer runner.

func (*ExtensionRegistry) ReflectionExecutor added in v1.1.0

func (r *ExtensionRegistry) ReflectionExecutor() ReflectionRunner

ReflectionExecutor returns the reflection runner.

func (*ExtensionRegistry) SaveToEnhancedMemory added in v1.1.0

func (r *ExtensionRegistry) SaveToEnhancedMemory(ctx context.Context, agentID string, input *Input, output *Output, useReflection bool)

SaveToEnhancedMemory saves output to enhanced memory and records an episode.

func (*ExtensionRegistry) SkillManagerExt added in v1.1.0

func (r *ExtensionRegistry) SkillManagerExt() SkillDiscoverer

SkillManagerExt returns the skill discoverer.

func (*ExtensionRegistry) TeardownExtensions added in v1.1.0

func (r *ExtensionRegistry) TeardownExtensions(ctx context.Context) error

TeardownExtensions cleans up extension resources.

func (*ExtensionRegistry) ToolSelector added in v1.1.0

func (r *ExtensionRegistry) ToolSelector() DynamicToolSelectorRunner

ToolSelector returns the tool selector runner.

func (*ExtensionRegistry) ValidateConfiguration added in v1.1.0

func (r *ExtensionRegistry) ValidateConfiguration(cfg Config) []string

ValidateConfiguration validates that enabled features have their executors set.

type FailureMode

type FailureMode struct {
	Condition string `json:"condition"` // "missing_data", "ambiguous_input", "conflicting_requirements", "tool_unavailable"
	Action    string `json:"action"`    // "return_error", "request_clarification", "use_default", "escalate_to_human"
	Template  string `json:"template"`  // 错误消息模板
	Example   string `json:"example,omitempty"`
}

FailureMode 失败模式定义

type FeatureManager

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

特性管理器管理可选代理特性. 它囊括了之前在BaseAgent中的特性管理逻辑.

func NewFeatureManager

func NewFeatureManager(logger *zap.Logger) *FeatureManager

NewFeatureManager创建了新的功能管理器.

func (*FeatureManager) DisableAll

func (fm *FeatureManager) DisableAll()

禁用所有特性 。

func (*FeatureManager) DisableEnhancedMemory

func (fm *FeatureManager) DisableEnhancedMemory()

禁用增强的记忆功能 。

func (*FeatureManager) DisableLSP

func (fm *FeatureManager) DisableLSP()

DisableLSP disables the LSP feature.

func (*FeatureManager) DisableMCP

func (fm *FeatureManager) DisableMCP()

禁用 MCP 禁用 MCP 特性 。

func (*FeatureManager) DisableObservability

func (fm *FeatureManager) DisableObservability()

禁用可观察性可以禁用可观察性特性 。

func (*FeatureManager) DisablePromptEnhancer

func (fm *FeatureManager) DisablePromptEnhancer()

禁用Prompt Enhancer 禁用快速增强器特性 。

func (*FeatureManager) DisableReflection

func (fm *FeatureManager) DisableReflection()

禁用反射功能 。

func (*FeatureManager) DisableSkills

func (fm *FeatureManager) DisableSkills()

禁用技能特性 。

func (*FeatureManager) DisableToolSelection

func (fm *FeatureManager) DisableToolSelection()

禁用工具选择功能 。

func (*FeatureManager) EnableEnhancedMemory

func (fm *FeatureManager) EnableEnhancedMemory(system EnhancedMemoryRunner)

启用 Enhanced Memory 启用增强的内存功能 。

func (*FeatureManager) EnableLSP

func (fm *FeatureManager) EnableLSP(client LSPClientRunner)

EnableLSP enables the LSP feature.

func (*FeatureManager) EnableMCP

func (fm *FeatureManager) EnableMCP(server MCPServerRunner)

启用 MCP 启用 MCP( 模式背景协议) 特性 。

func (*FeatureManager) EnableObservability

func (fm *FeatureManager) EnableObservability(system ObservabilityRunner)

启用可观察性可以实现可观察性特性.

func (*FeatureManager) EnablePromptEnhancer

func (fm *FeatureManager) EnablePromptEnhancer(enhancer PromptEnhancerRunner)

启用Prompt Enhancer 启用了即时增强器特性 。

func (*FeatureManager) EnableReflection

func (fm *FeatureManager) EnableReflection(executor ReflectionRunner)

启用反射功能可以实现反射功能 。

func (*FeatureManager) EnableSkills

func (fm *FeatureManager) EnableSkills(manager SkillDiscoverer)

启用技能可以实现技能特性 。

func (*FeatureManager) EnableToolSelection

func (fm *FeatureManager) EnableToolSelection(selector DynamicToolSelectorRunner)

启用工具选择允许动态工具选择功能 。

func (*FeatureManager) EnabledFeatures

func (fm *FeatureManager) EnabledFeatures() []string

启用 Features 返回已启用的特性名列表 。

func (*FeatureManager) GetEnhancedMemory

func (fm *FeatureManager) GetEnhancedMemory() EnhancedMemoryRunner

Get Enhanced Memory 返回增强的内存系统.

func (*FeatureManager) GetLSP

func (fm *FeatureManager) GetLSP() LSPClientRunner

GetLSP returns the LSP client.

func (*FeatureManager) GetMCPServer

func (fm *FeatureManager) GetMCPServer() MCPServerRunner

GetMCPServer 返回 MCP 服务器.

func (*FeatureManager) GetObservability

func (fm *FeatureManager) GetObservability() ObservabilityRunner

GetObservacy返回可观察系统.

func (*FeatureManager) GetPromptEnhancer

func (fm *FeatureManager) GetPromptEnhancer() PromptEnhancerRunner

GetPrompt Enhancer 返回快速增强器 。

func (*FeatureManager) GetReflection

func (fm *FeatureManager) GetReflection() ReflectionRunner

Get Reflection 返回反射执行器 。

func (*FeatureManager) GetSkillManager

func (fm *FeatureManager) GetSkillManager() SkillDiscoverer

GetSkillManager返回技能管理器.

func (*FeatureManager) GetToolSelector

func (fm *FeatureManager) GetToolSelector() DynamicToolSelectorRunner

GetTooSelector 返回工具选择器。

func (*FeatureManager) IsEnhancedMemoryEnabled

func (fm *FeatureManager) IsEnhancedMemoryEnabled() bool

如果启用了增强内存, IsEnhanced Memory Enabled 检查。

func (*FeatureManager) IsLSPEnabled

func (fm *FeatureManager) IsLSPEnabled() bool

IsLSPEnabled checks if LSP is enabled.

func (*FeatureManager) IsMCPEnabled

func (fm *FeatureManager) IsMCPEnabled() bool

如果启用 MCP , IsMCP 可启用检查 。

func (*FeatureManager) IsObservabilityEnabled

func (fm *FeatureManager) IsObservabilityEnabled() bool

如果启用可观察性, 则可以进行可观察性检查 。

func (*FeatureManager) IsPromptEnhancerEnabled

func (fm *FeatureManager) IsPromptEnhancerEnabled() bool

IsPrompt EnhancerEnabled 检查如果启用了即时增强器。

func (*FeatureManager) IsReflectionEnabled

func (fm *FeatureManager) IsReflectionEnabled() bool

是否启用了反射功能 。

func (*FeatureManager) IsSkillsEnabled

func (fm *FeatureManager) IsSkillsEnabled() bool

IsSkills 启用技能后可以检查 。

func (*FeatureManager) IsToolSelectionEnabled

func (fm *FeatureManager) IsToolSelectionEnabled() bool

如果启用了工具选择, IsTools Selection 可启用检查 。

type Feedback

type Feedback struct {
	Type    string         `json:"type"` // approval/rejection/correction
	Content string         `json:"content,omitempty"`
	Data    map[string]any `json:"data,omitempty"`
}

Feedback 反馈信息

type FeedbackEvent

type FeedbackEvent struct {
	AgentID_     string
	FeedbackType string
	Content      string
	Data         map[string]any
	Timestamp_   time.Time
}

FeedbackEvent 反馈事件

func (*FeedbackEvent) Timestamp

func (e *FeedbackEvent) Timestamp() time.Time

func (*FeedbackEvent) Type

func (e *FeedbackEvent) Type() EventType

type FileCheckpointStore

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

FileCheckpointStore 文件检查点存储(用于本地开发和测试)

func NewFileCheckpointStore

func NewFileCheckpointStore(basePath string, logger *zap.Logger) (*FileCheckpointStore, error)

NewFileCheckpointStore 创建文件检查点存储

func (*FileCheckpointStore) Delete

func (s *FileCheckpointStore) Delete(ctx context.Context, checkpointID string) error

Delete 删除检查点

func (*FileCheckpointStore) DeleteThread

func (s *FileCheckpointStore) DeleteThread(ctx context.Context, threadID string) error

DeleteThread 删除线程

func (*FileCheckpointStore) List

func (s *FileCheckpointStore) List(ctx context.Context, threadID string, limit int) ([]*Checkpoint, error)

List 列出检查点

func (*FileCheckpointStore) ListVersions

func (s *FileCheckpointStore) ListVersions(ctx context.Context, threadID string) ([]CheckpointVersion, error)

ListVersions 列出线程的所有版本

func (*FileCheckpointStore) Load

func (s *FileCheckpointStore) Load(ctx context.Context, checkpointID string) (*Checkpoint, error)

Load 加载检查点

func (*FileCheckpointStore) LoadLatest

func (s *FileCheckpointStore) LoadLatest(ctx context.Context, threadID string) (*Checkpoint, error)

LoadLatest 加载最新检查点

func (*FileCheckpointStore) LoadVersion

func (s *FileCheckpointStore) LoadVersion(ctx context.Context, threadID string, version int) (*Checkpoint, error)

LoadVersion 加载指定版本的检查点

func (*FileCheckpointStore) Rollback

func (s *FileCheckpointStore) Rollback(ctx context.Context, threadID string, version int) error

Rollback 回滚到指定版本

func (*FileCheckpointStore) Save

func (s *FileCheckpointStore) Save(ctx context.Context, checkpoint *Checkpoint) error

Save 保存检查点

type GuardRail

type GuardRail struct {
	Type        string   `json:"type"`     // "never", "always", "boundary", "constraint"
	Category    string   `json:"category"` // "data_safety", "action_limit", "disclosure", "ethical"
	Description string   `json:"description"`
	Examples    []string `json:"examples,omitempty"`
	Severity    string   `json:"severity"` // "critical", "high", "medium", "low"
}

GuardRail 护栏规则(负面指令)

type GuardrailsCoordinator

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

护栏协调员利用护栏协调输入/输出验证。 它囊括了先前在BaseAgent中存在的护栏逻辑.

func NewGuardrailsCoordinator

func NewGuardrailsCoordinator(config *guardrails.GuardrailsConfig, logger *zap.Logger) *GuardrailsCoordinator

新护卫组织协调员设立了一个新的护卫组织协调员。

func (*GuardrailsCoordinator) AddInputValidator

func (gc *GuardrailsCoordinator) AddInputValidator(v guardrails.Validator)

添加InputValidator为输入链添加了验证符.

func (*GuardrailsCoordinator) AddOutputFilter

func (gc *GuardrailsCoordinator) AddOutputFilter(f guardrails.Filter)

添加 OutputFilter 为输出验证器添加了过滤器 。

func (*GuardrailsCoordinator) AddOutputValidator

func (gc *GuardrailsCoordinator) AddOutputValidator(v guardrails.Validator)

添加输出变量在输出验证符中添加一个验证符.

func (*GuardrailsCoordinator) BuildValidationFeedbackMessage

func (gc *GuardrailsCoordinator) BuildValidationFeedbackMessage(result *guardrails.ValidationResult) string

BuildValidationFeed BackMessage为验证失败创建了反馈消息. 此消息可以发回LLM,请求更正回复.

func (*GuardrailsCoordinator) Enabled

func (gc *GuardrailsCoordinator) Enabled() bool

启用是否启用了守护栏 。

func (*GuardrailsCoordinator) GetConfig

GetConfig 返回守护链配置 。

func (*GuardrailsCoordinator) GetInputValidatorChain

func (gc *GuardrailsCoordinator) GetInputValidatorChain() *guardrails.ValidatorChain

GetInputValidator Chain 返回输入验证器链.

func (*GuardrailsCoordinator) GetOutputValidator

func (gc *GuardrailsCoordinator) GetOutputValidator() *guardrails.OutputValidator

GetOutputValidator 返回输出验证器 。

func (*GuardrailsCoordinator) InputValidatorCount

func (gc *GuardrailsCoordinator) InputValidatorCount() int

输入ValidatorCount 返回输入验证器的数量 。

func (*GuardrailsCoordinator) SetEnabled

func (gc *GuardrailsCoordinator) SetEnabled(enabled bool)

设置可启用或禁用护栏 。

func (*GuardrailsCoordinator) ValidateInput

func (gc *GuardrailsCoordinator) ValidateInput(ctx context.Context, input string) (*guardrails.ValidationResult, error)

验证输入验证输入内容. 返回验证结果时发现任何错误 。

func (*GuardrailsCoordinator) ValidateOutput

func (gc *GuardrailsCoordinator) ValidateOutput(ctx context.Context, output string) (string, *guardrails.ValidationResult, error)

校验输出验证和过滤输出内容. 返回被过滤的输出和验证结果。

type GuardrailsError

type GuardrailsError struct {
	Type    GuardrailsErrorType          `json:"type"`
	Message string                       `json:"message"`
	Errors  []guardrails.ValidationError `json:"errors"`
}

Guardrails Error 代表一个 Guardrails 验证错误 要求1.6:有故障原因退回详细错误信息

func (*GuardrailsError) Error

func (e *GuardrailsError) Error() string

执行错误接口时出错

type GuardrailsErrorType

type GuardrailsErrorType string

Guardrails ErrorType 定义了 Guardrails 错误的类型

const (
	// Guardrails 错误输入表示输入验证失败
	GuardrailsErrorTypeInput GuardrailsErrorType = "input"
	// Guardrails ErrorTypeOutput 表示输出验证失败
	GuardrailsErrorTypeOutput GuardrailsErrorType = "output"
)

type GuardrailsManager added in v1.2.0

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

GuardrailsManager encapsulates guardrails-related fields and methods extracted from BaseAgent.

func NewGuardrailsManager added in v1.2.0

func NewGuardrailsManager(logger *zap.Logger) *GuardrailsManager

NewGuardrailsManager creates a new GuardrailsManager.

func (*GuardrailsManager) AddInputValidator added in v1.2.0

func (g *GuardrailsManager) AddInputValidator(v guardrails.Validator)

AddInputValidator adds a custom input validator.

func (*GuardrailsManager) AddOutputFilter added in v1.2.0

func (g *GuardrailsManager) AddOutputFilter(f guardrails.Filter)

AddOutputFilter adds a custom output filter.

func (*GuardrailsManager) AddOutputValidator added in v1.2.0

func (g *GuardrailsManager) AddOutputValidator(v guardrails.Validator)

AddOutputValidator adds a custom output validator.

func (*GuardrailsManager) Enabled added in v1.2.0

func (g *GuardrailsManager) Enabled() bool

Enabled returns whether guardrails are enabled.

func (*GuardrailsManager) Init added in v1.2.0

Init initializes guardrails from the given config.

func (*GuardrailsManager) SetConfig added in v1.2.0

func (g *GuardrailsManager) SetConfig(cfg *guardrails.GuardrailsConfig)

SetConfig replaces the guardrails configuration.

func (*GuardrailsManager) ValidateAndFilterOutput added in v1.2.0

func (g *GuardrailsManager) ValidateAndFilterOutput(ctx context.Context, content string) (string, *guardrails.ValidationResult, error)

ValidateAndFilterOutput validates and filters output content.

func (*GuardrailsManager) ValidateInput added in v1.2.0

func (g *GuardrailsManager) ValidateInput(ctx context.Context, content string) (*guardrails.ValidationResult, error)

ValidateInput validates input content using the input validator chain.

type HealthStatus

type HealthStatus struct {
	Healthy   bool      `json:"healthy"`
	State     State     `json:"state"`
	LastCheck time.Time `json:"last_check"`
	Message   string    `json:"message,omitempty"`
}

HealthStatus 健康状态

type HumanInLoopManager

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

HumanInLoopManager Human-in-the-Loop 管理器(生产级) 支持人工审批、反馈和干预

func NewHumanInLoopManager

func NewHumanInLoopManager(store ApprovalStore, eventBus EventBus, logger *zap.Logger) *HumanInLoopManager

NewHumanInLoopManager 创建 Human-in-the-Loop 管理器

func (*HumanInLoopManager) CancelApproval

func (m *HumanInLoopManager) CancelApproval(ctx context.Context, requestID string) error

CancelApproval 取消审批请求

func (*HumanInLoopManager) GetPendingRequests

func (m *HumanInLoopManager) GetPendingRequests(agentID string) []*ApprovalRequest

GetPendingRequests 获取待审批请求

func (*HumanInLoopManager) RequestApproval

func (m *HumanInLoopManager) RequestApproval(ctx context.Context, agentID string, approvalType ApprovalType, content string, timeout time.Duration) (*ApprovalResponse, error)

RequestApproval 请求人工审批

func (*HumanInLoopManager) RespondToApproval

func (m *HumanInLoopManager) RespondToApproval(ctx context.Context, requestID string, response *ApprovalResponse) error

RespondToApproval 响应审批请求

type InMemoryApprovalStore

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

InMemoryApprovalStore 内存审批存储

func NewInMemoryApprovalStore

func NewInMemoryApprovalStore() *InMemoryApprovalStore

NewInMemoryApprovalStore 创建内存审批存储

func (*InMemoryApprovalStore) List

func (s *InMemoryApprovalStore) List(ctx context.Context, agentID string, status ApprovalStatus, limit int) ([]*ApprovalRequest, error)

func (*InMemoryApprovalStore) Load

func (s *InMemoryApprovalStore) Load(ctx context.Context, requestID string) (*ApprovalRequest, error)

func (*InMemoryApprovalStore) Save

func (*InMemoryApprovalStore) Update

func (s *InMemoryApprovalStore) Update(ctx context.Context, request *ApprovalRequest) error

type InjectionDefenseConfig

type InjectionDefenseConfig struct {
	Enabled           bool     `json:"enabled"`
	DetectionPatterns []string `json:"detection_patterns"`
	UseDelimiters     bool     `json:"use_delimiters"`
	SanitizeInput     bool     `json:"sanitize_input"`
	RoleIsolation     bool     `json:"role_isolation"` // 分离用户输入和系统指令
}

InjectionDefenseConfig 提示注入防护配置

type Input

type Input struct {
	TraceID   string            `json:"trace_id"`
	TenantID  string            `json:"tenant_id,omitempty"`
	UserID    string            `json:"user_id,omitempty"`
	ChannelID string            `json:"channel_id,omitempty"`
	Content   string            `json:"content"`
	Context   map[string]any    `json:"context,omitempty"`   // 额外上下文
	Variables map[string]string `json:"variables,omitempty"` // 变量替换
}

Input Agent 输入

type InputGuardrailStep added in v1.2.0

type InputGuardrailStep struct{}

InputGuardrailStep validates the input content using guardrails.

func (*InputGuardrailStep) Execute added in v1.2.0

func (s *InputGuardrailStep) Execute(ctx context.Context, pc *PipelineContext, next StepFunc) error

func (*InputGuardrailStep) Name added in v1.2.0

func (s *InputGuardrailStep) Name() string

type LLMEngine added in v1.1.0

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

LLMEngine encapsulates all LLM-related fields and methods extracted from BaseAgent.

func NewLLMEngine added in v1.1.0

func NewLLMEngine(
	provider llm.Provider,
	toolProvider llm.Provider,
	cfg LLMEngineConfig,
	toolManager ToolManager,
	bus EventBus,
	logger *zap.Logger,
) *LLMEngine

NewLLMEngine creates a new LLMEngine.

func (*LLMEngine) ChatCompletion added in v1.1.0

func (e *LLMEngine) ChatCompletion(ctx context.Context, messages []llm.Message) (*llm.ChatResponse, error)

ChatCompletion calls the LLM to complete a conversation.

func (*LLMEngine) ContextEngineEnabled added in v1.1.0

func (e *LLMEngine) ContextEngineEnabled() bool

ContextEngineEnabled returns whether context engineering is enabled.

func (*LLMEngine) MaxReActIterations added in v1.1.0

func (e *LLMEngine) MaxReActIterations() int

MaxReActIterations returns the effective max ReAct iterations (default 10).

func (*LLMEngine) Provider added in v1.1.0

func (e *LLMEngine) Provider() llm.Provider

Provider returns the primary LLM provider.

func (*LLMEngine) SetContextManager added in v1.1.0

func (e *LLMEngine) SetContextManager(cm ContextManager)

SetContextManager sets the context manager for message optimization.

func (*LLMEngine) SetToolProvider added in v1.1.0

func (e *LLMEngine) SetToolProvider(p llm.Provider)

SetToolProvider sets the tool-call-specific LLM provider.

func (*LLMEngine) StreamCompletion added in v1.1.0

func (e *LLMEngine) StreamCompletion(ctx context.Context, messages []llm.Message) (<-chan llm.StreamChunk, error)

StreamCompletion streams LLM responses.

func (*LLMEngine) ToolProvider added in v1.1.0

func (e *LLMEngine) ToolProvider() llm.Provider

ToolProvider returns the tool-call-specific LLM provider (may be nil).

type LLMEngineConfig added in v1.1.0

type LLMEngineConfig struct {
	Model              string
	MaxTokens          int
	Temperature        float32
	Tools              []string
	MaxReActIterations int
	AgentID            string
}

LLMEngineConfig holds the configuration subset relevant to LLM interactions.

type LLMExecutionStep added in v1.2.0

type LLMExecutionStep struct{}

LLMExecutionStep calls the LLM and handles output guardrail validation with retries.

func (*LLMExecutionStep) Execute added in v1.2.0

func (s *LLMExecutionStep) Execute(ctx context.Context, pc *PipelineContext, next StepFunc) error

func (*LLMExecutionStep) Name added in v1.2.0

func (s *LLMExecutionStep) Name() string

type LLMExecutor

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

LLM执行器处理LLM交互.

func NewLLMExecutor

func NewLLMExecutor(provider llm.Provider, config LLMExecutorConfig, logger *zap.Logger) *LLMExecutor

NewLLMExecutor创建了新的LLMExecutor.

func (*LLMExecutor) Complete

func (e *LLMExecutor) Complete(ctx context.Context, messages []llm.Message) (*llm.ChatResponse, error)

完整向LLM发送完成请求.

func (*LLMExecutor) Provider

func (e *LLMExecutor) Provider() llm.Provider

提供者返回基本的 LLM 提供者 。

func (*LLMExecutor) SetContextManager

func (e *LLMExecutor) SetContextManager(cm ContextManager)

SetContextManager 设置信息优化的上下文管理器.

func (*LLMExecutor) Stream

func (e *LLMExecutor) Stream(ctx context.Context, messages []llm.Message) (<-chan llm.StreamChunk, error)

Stream 向 LLM 发送流报请求 。

type LLMExecutorConfig

type LLMExecutorConfig struct {
	Model       string
	MaxTokens   int
	Temperature float32
}

LLMExecutorconfig 配置 LLM 执行器 。

type LSPClientRunner added in v1.0.0

type LSPClientRunner interface {
	Shutdown(ctx context.Context) error
}

LSPClientRunner represents an LSP client instance. Implemented by: *lsp.LSPClient (agent/lsp/) Used in Teardown for Shutdown call.

type LSPLifecycleOwner added in v1.0.0

type LSPLifecycleOwner interface {
	Close() error
}

LSPLifecycleOwner represents an optional lifecycle owner for LSP (e.g. *ManagedLSP). Used in Teardown for Close call.

type LifecycleManager

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

LifecycleManager 管理 Agent 的生命周期 提供启动、停止、健康检查等功能

func NewLifecycleManager

func NewLifecycleManager(agent Agent, logger *zap.Logger) *LifecycleManager

NewLifecycleManager 创建生命周期管理器

func (*LifecycleManager) GetHealthStatus

func (lm *LifecycleManager) GetHealthStatus() HealthStatus

GetHealthStatus 获取健康状态

func (*LifecycleManager) IsRunning

func (lm *LifecycleManager) IsRunning() bool

IsRunning 检查是否正在运行

func (*LifecycleManager) Restart

func (lm *LifecycleManager) Restart(ctx context.Context) error

Restart 重启 Agent

func (*LifecycleManager) Start

func (lm *LifecycleManager) Start(ctx context.Context) error

Start 启动 Agent

func (*LifecycleManager) Stop

func (lm *LifecycleManager) Stop(ctx context.Context) error

Stop 停止 Agent

type MCPServerRunner added in v1.0.0

type MCPServerRunner interface{}

MCPServerRunner represents an MCP server instance. Implemented by: *mcp.MCPServer (agent/protocol/mcp/) Currently used only for nil-check (feature status); no methods called directly.

type ManagedLSP

type ManagedLSP struct {
	Client *agentlsp.LSPClient
	Server *agentlsp.LSPServer
	// contains filtered or unexported fields
}

ManagedLSP 封装了进程内的 LSP client/server 及其生命周期。

func NewManagedLSP

func NewManagedLSP(info agentlsp.ServerInfo, logger *zap.Logger) *ManagedLSP

NewManagedLSP 创建并启动一个进程内的 LSP runtime。

func (*ManagedLSP) Close

func (m *ManagedLSP) Close() error

Close 关闭 runtime 并回收后台 goroutine。

type MemoryCache added in v1.1.0

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

MemoryCache encapsulates memory-related fields and methods extracted from BaseAgent.

func NewMemoryCache added in v1.1.0

func NewMemoryCache(agentID string, memory MemoryManager, logger *zap.Logger) *MemoryCache

NewMemoryCache creates a new MemoryCache.

func (*MemoryCache) GetRecentMessages added in v1.1.0

func (mc *MemoryCache) GetRecentMessages() []llm.Message

GetRecentMessages converts cached recent memory into LLM messages.

func (*MemoryCache) HasMemory added in v1.1.0

func (mc *MemoryCache) HasMemory() bool

HasMemory returns whether a memory manager is configured.

func (*MemoryCache) HasRecentMemory added in v1.1.0

func (mc *MemoryCache) HasRecentMemory() bool

HasRecentMemory returns whether there are cached recent memory records.

func (*MemoryCache) LoadRecent added in v1.1.0

func (mc *MemoryCache) LoadRecent(ctx context.Context)

LoadRecent loads recent memory records into the cache.

func (*MemoryCache) Manager added in v1.1.0

func (mc *MemoryCache) Manager() MemoryManager

Manager returns the underlying MemoryManager.

func (*MemoryCache) Recall added in v1.1.0

func (mc *MemoryCache) Recall(ctx context.Context, query string, topK int) ([]MemoryRecord, error)

Recall searches memory by query.

func (*MemoryCache) Save added in v1.1.0

func (mc *MemoryCache) Save(ctx context.Context, content string, kind MemoryKind, metadata map[string]any) error

Save saves a memory record and updates the local cache (write-through).

type MemoryConfig

type MemoryConfig struct {
	Enabled bool `json:"enabled,omitempty"`
}

type MemoryCoordinator

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

内存协调员在缓存支持下协调内存操作. 它囊括了先前在BaseAgent中的内存管理逻辑.

func NewMemoryCoordinator

func NewMemoryCoordinator(agentID string, memory MemoryManager, logger *zap.Logger) *MemoryCoordinator

新记忆协调员创建了新的记忆协调员.

func (*MemoryCoordinator) ClearRecentMemory

func (mc *MemoryCoordinator) ClearRecentMemory()

ClearRecent Memory 清除了被缓存的最近记忆.

func (*MemoryCoordinator) GetMemoryManager

func (mc *MemoryCoordinator) GetMemoryManager() MemoryManager

Get MemoryManager 返回基本内存管理器.

func (*MemoryCoordinator) GetRecentMemory

func (mc *MemoryCoordinator) GetRecentMemory() []MemoryRecord

GetRecentMemory 返回缓存的最近记忆 。

func (*MemoryCoordinator) HasMemory

func (mc *MemoryCoordinator) HasMemory() bool

是否配置了内存管理器 。

func (*MemoryCoordinator) LoadRecent

func (mc *MemoryCoordinator) LoadRecent(ctx context.Context, kind MemoryKind, limit int) error

最近将最近的记忆加载到缓存中 。

func (*MemoryCoordinator) RecallRelevant

func (mc *MemoryCoordinator) RecallRelevant(ctx context.Context, query string, topK int) ([]MemoryRecord, error)

RecallRelvant 回顾与查询相关的记忆.

func (*MemoryCoordinator) Save

func (mc *MemoryCoordinator) Save(ctx context.Context, content string, kind MemoryKind, metadata map[string]any) error

保存内存记录并同步更新本地缓存 。

func (*MemoryCoordinator) SaveConversation

func (mc *MemoryCoordinator) SaveConversation(ctx context.Context, input, output string) error

保存 Conversation 保存一个对话转折(输入和输出).

func (*MemoryCoordinator) Search

func (mc *MemoryCoordinator) Search(ctx context.Context, query string, topK int) ([]MemoryRecord, error)

搜索匹配查询的记忆 。

type MemoryKind

type MemoryKind = types.MemoryCategory

MemoryKind 记忆类型 折旧:使用类型。 用于新代码的内存类型 。 此别名用于后向相容性 。

type MemoryLoadStep added in v1.2.0

type MemoryLoadStep struct{}

MemoryLoadStep loads recent memory records into context messages.

func (*MemoryLoadStep) Execute added in v1.2.0

func (s *MemoryLoadStep) Execute(ctx context.Context, pc *PipelineContext, next StepFunc) error

func (*MemoryLoadStep) Name added in v1.2.0

func (s *MemoryLoadStep) Name() string

type MemoryManager

type MemoryManager interface {
	MemoryWriter
	MemoryReader
}

MemoryManager 组合读写接口

type MemoryReader

type MemoryReader interface {
	// LoadRecent 加载最近的记忆(按时间倒序)
	LoadRecent(ctx context.Context, agentID string, kind MemoryKind, limit int) ([]MemoryRecord, error)
	// Search 语义检索(长期记忆)
	Search(ctx context.Context, agentID string, query string, topK int) ([]MemoryRecord, error)
	// Get 获取单条记忆
	Get(ctx context.Context, id string) (*MemoryRecord, error)
}

MemoryReader 记忆读取接口

type MemoryRecord

type MemoryRecord struct {
	ID        string               `json:"id"`
	AgentID   string               `json:"agent_id"`
	Kind      types.MemoryCategory `json:"kind"`
	Content   string               `json:"content"`
	Metadata  map[string]any       `json:"metadata,omitempty"`
	VectorID  string               `json:"vector_id,omitempty"` // Qdrant 向量 ID
	CreatedAt time.Time            `json:"created_at"`
	// Deprecated: ExpiresAt is reserved for future TTL-based expiration.
	// Currently unused; memory expiration is handled by the MemoryManager implementation.
	ExpiresAt *time.Time `json:"expires_at,omitempty"`
}

MemoryRecord 统一记忆结构 用途类型。 用于 Kind 字段的内存类型,以确保一致性 。

type MemorySaveStep added in v1.2.0

type MemorySaveStep struct{}

MemorySaveStep saves the user input and agent response to the memory cache.

func (*MemorySaveStep) Execute added in v1.2.0

func (s *MemorySaveStep) Execute(ctx context.Context, pc *PipelineContext, next StepFunc) error

func (*MemorySaveStep) Name added in v1.2.0

func (s *MemorySaveStep) Name() string

type MemoryWriter

type MemoryWriter interface {
	// Save 保存记忆
	Save(ctx context.Context, rec MemoryRecord) error
	// Delete 删除记忆
	Delete(ctx context.Context, id string) error
	// Clear 清空 Agent 的所有记忆
	Clear(ctx context.Context, agentID string, kind MemoryKind) error
}

MemoryWriter 记忆写入接口

type MessageBuildStep added in v1.2.0

type MessageBuildStep struct{}

MessageBuildStep assembles the full message list for the LLM call.

func (*MessageBuildStep) Execute added in v1.2.0

func (s *MessageBuildStep) Execute(ctx context.Context, pc *PipelineContext, next StepFunc) error

func (*MessageBuildStep) Name added in v1.2.0

func (s *MessageBuildStep) Name() string

type MiddlewarePlugin

type MiddlewarePlugin interface {
	Plugin
	// 环绕执行函数 。
	Wrap(next func(ctx context.Context, input *Input) (*Output, error)) func(ctx context.Context, input *Input) (*Output, error)
}

MiddlewarePlugin 包装代理执行 。

type ModularAgent

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

模块化代理(ModularAgent)是一种使用组成来取代继承的再造代理. 它将责任下放给专门部门。

func NewModularAgent

func NewModularAgent(
	config ModularAgentConfig,
	provider llm.Provider,
	memory MemoryManager,
	tools ToolManager,
	bus EventBus,
	logger *zap.Logger,
) *ModularAgent

新ModularAgent创建了新的ModularAgent.

func (*ModularAgent) Execute

func (a *ModularAgent) Execute(ctx context.Context, input *Input) (*Output, error)

执行任务 。

func (*ModularAgent) Extensions

func (a *ModularAgent) Extensions() *ExtensionManager

扩展返回扩展管理器 。

func (*ModularAgent) ID

func (a *ModularAgent) ID() string

身份证还给探员的身份证

func (*ModularAgent) Init

func (a *ModularAgent) Init(ctx context.Context) error

输入初始化代理。

func (*ModularAgent) LLM

func (a *ModularAgent) LLM() *LLMExecutor

LLM 返回 LLM 执行器 。

func (*ModularAgent) Memory

func (a *ModularAgent) Memory() MemoryManager

内存返回内存管理器.

func (*ModularAgent) Name

func (a *ModularAgent) Name() string

名称返回代理名.

func (*ModularAgent) Observe

func (a *ModularAgent) Observe(ctx context.Context, feedback *Feedback) error

观察处理反馈.

func (*ModularAgent) Plan

func (a *ModularAgent) Plan(ctx context.Context, input *Input) (*PlanResult, error)

计划产生一个执行计划。

func (*ModularAgent) State

func (a *ModularAgent) State() State

状态返回当前状态 。

func (*ModularAgent) Teardown

func (a *ModularAgent) Teardown(ctx context.Context) error

倒地打扫了经纪人.

func (*ModularAgent) Tools

func (a *ModularAgent) Tools() ToolManager

工具返回工具管理器 。

func (*ModularAgent) Type

func (a *ModularAgent) Type() AgentType

类型返回代理类型 。

type ModularAgentConfig

type ModularAgentConfig struct {
	ID          string
	Name        string
	Type        AgentType
	Description string
	LLM         LLMExecutorConfig
}

ModularAgentConfig 配置一个ModularAgent.

type ObservabilityRunner added in v1.0.0

type ObservabilityRunner interface {
	StartTrace(traceID, agentID string)
	EndTrace(traceID, status string, err error)
	RecordTask(agentID string, success bool, duration time.Duration, tokens int, cost, quality float64)
}

ObservabilityRunner provides metrics, tracing, and logging. Implemented by: *observability.ObservabilitySystem (agent/observability/)

type ObservabilityStep added in v1.2.0

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

ObservabilityStep wraps the pipeline with observability tracing.

func (*ObservabilityStep) Execute added in v1.2.0

func (s *ObservabilityStep) Execute(ctx context.Context, pc *PipelineContext, next StepFunc) error

func (*ObservabilityStep) Name added in v1.2.0

func (s *ObservabilityStep) Name() string

type OrchestrationTaskInput added in v1.2.0

type OrchestrationTaskInput struct {
	ID          string         `json:"id"`
	Description string         `json:"description"`
	Input       string         `json:"input"`
	Agents      []string       `json:"agents,omitempty"`
	Metadata    map[string]any `json:"metadata,omitempty"`
}

OrchestrationTaskInput is the input for an orchestration task.

type OrchestrationTaskOutput added in v1.2.0

type OrchestrationTaskOutput struct {
	Pattern   string         `json:"pattern"`
	Output    string         `json:"output"`
	AgentUsed []string       `json:"agent_used,omitempty"`
	Duration  time.Duration  `json:"duration"`
	Metadata  map[string]any `json:"metadata,omitempty"`
}

OrchestrationTaskOutput is the output from an orchestration task.

type OrchestratorRunner added in v1.2.0

type OrchestratorRunner interface {
	Execute(ctx context.Context, task *OrchestrationTaskInput) (*OrchestrationTaskOutput, error)
}

OrchestratorRunner executes a multi-agent orchestration task. Implemented by: *orchestration.OrchestratorAdapter (agent/orchestration/)

type Output

type Output struct {
	TraceID      string         `json:"trace_id"`
	Content      string         `json:"content"`
	Metadata     map[string]any `json:"metadata,omitempty"`
	TokensUsed   int            `json:"tokens_used,omitempty"`
	Cost         float64        `json:"cost,omitempty"`
	Duration     time.Duration  `json:"duration"`
	FinishReason string         `json:"finish_reason,omitempty"`
}

Output Agent 输出

type OutputSchema

type OutputSchema struct {
	Type       string         `json:"type"`             // "json", "markdown", "structured_text"
	Schema     map[string]any `json:"schema,omitempty"` // JSON Schema
	Required   []string       `json:"required,omitempty"`
	Example    string         `json:"example,omitempty"`
	Validation string         `json:"validation,omitempty"` // 验证规则描述
}

OutputSchema 输出格式 Schema

type PersistStep added in v1.2.0

type PersistStep struct{}

PersistStep persists the conversation and updates the run status to completed.

func (*PersistStep) Execute added in v1.2.0

func (s *PersistStep) Execute(ctx context.Context, pc *PipelineContext, next StepFunc) error

func (*PersistStep) Name added in v1.2.0

func (s *PersistStep) Name() string

type PersistenceStores added in v1.2.0

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

PersistenceStores encapsulates MongoDB persistence store fields extracted from BaseAgent.

func NewPersistenceStores added in v1.2.0

func NewPersistenceStores(logger *zap.Logger) *PersistenceStores

NewPersistenceStores creates a new PersistenceStores.

func (*PersistenceStores) ConversationStore added in v1.2.0

func (p *PersistenceStores) ConversationStore() ConversationStoreProvider

ConversationStore returns the conversation store provider.

func (*PersistenceStores) LoadPrompt added in v1.2.0

func (p *PersistenceStores) LoadPrompt(ctx context.Context, agentType, name, tenantID string) *PromptDocument

LoadPrompt attempts to load the active prompt from PromptStore. Returns nil if unavailable.

func (*PersistenceStores) PersistConversation added in v1.2.0

func (p *PersistenceStores) PersistConversation(ctx context.Context, conversationID, agentID, tenantID, userID, inputContent, outputContent string)

PersistConversation saves user input and agent output to ConversationStore.

func (*PersistenceStores) PromptStore added in v1.2.0

func (p *PersistenceStores) PromptStore() PromptStoreProvider

PromptStore returns the prompt store provider.

func (*PersistenceStores) RecordRun added in v1.2.0

func (p *PersistenceStores) RecordRun(ctx context.Context, agentID, tenantID, traceID, input string, startTime time.Time) string

RecordRun records an execution run start. Returns the run ID (empty on failure).

func (*PersistenceStores) RestoreConversation added in v1.2.0

func (p *PersistenceStores) RestoreConversation(ctx context.Context, conversationID string) []llm.Message

RestoreConversation restores conversation history from the store.

func (*PersistenceStores) RunStore added in v1.2.0

func (p *PersistenceStores) RunStore() RunStoreProvider

RunStore returns the run store provider.

func (*PersistenceStores) SetConversationStore added in v1.2.0

func (p *PersistenceStores) SetConversationStore(store ConversationStoreProvider)

SetConversationStore sets the conversation store provider.

func (*PersistenceStores) SetPromptStore added in v1.2.0

func (p *PersistenceStores) SetPromptStore(store PromptStoreProvider)

SetPromptStore sets the prompt store provider.

func (*PersistenceStores) SetRunStore added in v1.2.0

func (p *PersistenceStores) SetRunStore(store RunStoreProvider)

SetRunStore sets the run store provider.

func (*PersistenceStores) UpdateRunStatus added in v1.2.0

func (p *PersistenceStores) UpdateRunStatus(ctx context.Context, runID, status string, output *RunOutputDoc, errMsg string) error

UpdateRunStatus updates the status of a run.

type Pipeline added in v1.2.0

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

Pipeline manages a chain of execution steps.

func NewPipeline added in v1.2.0

func NewPipeline(steps ...ExecutionStep) *Pipeline

NewPipeline creates a new Pipeline from the given steps.

func (*Pipeline) Run added in v1.2.0

func (p *Pipeline) Run(ctx context.Context, pc *PipelineContext) error

Run executes the pipeline by building a middleware chain from the steps.

type PipelineContext added in v1.2.0

type PipelineContext struct {
	Input            *Input
	Messages         []llm.Message
	RestoredMessages []llm.Message
	ContextMessages  []llm.Message
	RunID            string
	ConversationID   string
	Response         *llm.ChatResponse
	OutputContent    string
	StartTime        time.Time
	FinishReason     string
	TokensUsed       int
	Metadata         map[string]any
	// contains filtered or unexported fields
}

PipelineContext carries intermediate state through the pipeline.

func (*PipelineContext) AgentID added in v1.2.0

func (pc *PipelineContext) AgentID() string

AgentID returns the ID of the agent executing this pipeline. This is a convenience accessor for plugins in sub-packages.

type PlanConfig

type PlanConfig struct {
	Enabled bool `json:"enabled,omitempty"`
}

type PlanResult

type PlanResult struct {
	Steps    []string       `json:"steps"`              // 执行步骤
	Estimate time.Duration  `json:"estimate,omitempty"` // 预估耗时
	Metadata map[string]any `json:"metadata,omitempty"`
}

PlanResult 规划结果

type Plugin

type Plugin interface {
	// 名称返回插件名称 。
	Name() string
	// 类型返回插件类型 。
	Type() PluginType
	// Init 初始化插件 。
	Init(ctx context.Context) error
	// Shutdown 优雅关闭插件 。
	Shutdown(ctx context.Context) error
}

插件定义代理插件的接口 。

type PluginAfterStep added in v1.2.0

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

PluginAfterStep executes all AfterExecutePlugin instances after the core pipeline.

func (*PluginAfterStep) Execute added in v1.2.0

func (s *PluginAfterStep) Execute(ctx context.Context, pc *PipelineContext, next StepFunc) error

func (*PluginAfterStep) Name added in v1.2.0

func (s *PluginAfterStep) Name() string

type PluginAroundStep added in v1.2.0

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

PluginAroundStep wraps the downstream pipeline with all AroundExecutePlugin instances. The outermost around-plugin (lowest priority) wraps the next one, forming a chain.

func (*PluginAroundStep) Execute added in v1.2.0

func (s *PluginAroundStep) Execute(ctx context.Context, pc *PipelineContext, next StepFunc) error

func (*PluginAroundStep) Name added in v1.2.0

func (s *PluginAroundStep) Name() string

type PluginBeforeStep added in v1.2.0

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

PluginBeforeStep executes all BeforeExecutePlugin instances before the core pipeline.

func (*PluginBeforeStep) Execute added in v1.2.0

func (s *PluginBeforeStep) Execute(ctx context.Context, pc *PipelineContext, next StepFunc) error

func (*PluginBeforeStep) Name added in v1.2.0

func (s *PluginBeforeStep) Name() string

type PluginEnabledAgent

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

插件可启用代理用插件支持将代理包入。

func NewPluginEnabledAgent

func NewPluginEnabledAgent(agent Agent, registry *PluginRegistry) *PluginEnabledAgent

NewPluginEnabled Agent 创建了插件启用的代理包.

func (*PluginEnabledAgent) Execute

func (a *PluginEnabledAgent) Execute(ctx context.Context, input *Input) (*Output, error)

用插件管道执行执行 。

func (*PluginEnabledAgent) ID

func (a *PluginEnabledAgent) ID() string

ID返回代理ID.

func (*PluginEnabledAgent) Init

func (a *PluginEnabledAgent) Init(ctx context.Context) error

初始化代理和插件 。

func (*PluginEnabledAgent) Name

func (a *PluginEnabledAgent) Name() string

名称返回代理名称 。

func (*PluginEnabledAgent) Observe

func (a *PluginEnabledAgent) Observe(ctx context.Context, feedback *Feedback) error

观察处理反馈.

func (*PluginEnabledAgent) Plan

func (a *PluginEnabledAgent) Plan(ctx context.Context, input *Input) (*PlanResult, error)

计划产生一个执行计划。

func (*PluginEnabledAgent) Registry

func (a *PluginEnabledAgent) Registry() *PluginRegistry

注册返回插件注册 。

func (*PluginEnabledAgent) State

func (a *PluginEnabledAgent) State() State

国家归还代理国.

func (*PluginEnabledAgent) Teardown

func (a *PluginEnabledAgent) Teardown(ctx context.Context) error

倒地清理代理和插件.

func (*PluginEnabledAgent) Type

func (a *PluginEnabledAgent) Type() AgentType

类型返回代理类型。

func (*PluginEnabledAgent) UnderlyingAgent

func (a *PluginEnabledAgent) UnderlyingAgent() Agent

地下特工还原被包裹的特工.

type PluginPhase added in v1.2.0

type PluginPhase string

PluginPhase defines which execution phase a plugin participates in.

const (
	PhaseBeforeExecute PluginPhase = "before_execute"
	PhaseAroundExecute PluginPhase = "around_execute"
	PhaseAfterExecute  PluginPhase = "after_execute"
)

type PluginRegistry

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

插件注册管理插件注册和生命周期.

func NewPluginRegistry

func NewPluginRegistry() *PluginRegistry

NewPluginRegistry创建了新的插件注册.

func (*PluginRegistry) Get

func (r *PluginRegistry) Get(name string) (Plugin, bool)

获取一个名称的插件 。

func (*PluginRegistry) Init

func (r *PluginRegistry) Init(ctx context.Context) error

Init 初始化所有插件 。

func (*PluginRegistry) List

func (r *PluginRegistry) List() []Plugin

列表返回所有已注册的插件 。

func (*PluginRegistry) MiddlewarePlugins

func (r *PluginRegistry) MiddlewarePlugins() []MiddlewarePlugin

MiddlewarePlugins返回所有中间软件插件.

func (*PluginRegistry) PostProcessPlugins

func (r *PluginRegistry) PostProcessPlugins() []PostProcessPlugin

PostProcessPlugins 返回所有后进程插件.

func (*PluginRegistry) PreProcessPlugins

func (r *PluginRegistry) PreProcessPlugins() []PreProcessPlugin

PrecessPlugins 返回所有预处理插件 。

func (*PluginRegistry) Register

func (r *PluginRegistry) Register(plugin Plugin) error

注册注册插件 。

func (*PluginRegistry) Shutdown added in v1.0.0

func (r *PluginRegistry) Shutdown(ctx context.Context) error

关闭所有插件 。

func (*PluginRegistry) Unregister

func (r *PluginRegistry) Unregister(name string) error

未注册删除插件 。

type PluginType

type PluginType string

插件Type 定义了插件的类型 。

const (
	PluginTypePreProcess  PluginType = "pre_process"  // Runs before execution
	PluginTypePostProcess PluginType = "post_process" // Runs after execution
	PluginTypeMiddleware  PluginType = "middleware"   // Wraps execution
	PluginTypeExtension   PluginType = "extension"    // Adds new capabilities
)

type PostProcessPlugin

type PostProcessPlugin interface {
	Plugin
	// 程序执行后处理输出 。
	PostProcess(ctx context.Context, output *Output) (*Output, error)
}

后ProcessPlugin在代理执行后运行.

type PostgreSQLCheckpointStore

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

PostgreSQLCheckpointStore PostgreSQL 检查点存储

func NewPostgreSQLCheckpointStore

func NewPostgreSQLCheckpointStore(db PostgreSQLClient, logger *zap.Logger) *PostgreSQLCheckpointStore

NewPostgreSQLCheckpointStore 创建 PostgreSQL 检查点存储

func (*PostgreSQLCheckpointStore) Delete

func (s *PostgreSQLCheckpointStore) Delete(ctx context.Context, checkpointID string) error

Delete 删除检查点

func (*PostgreSQLCheckpointStore) DeleteThread

func (s *PostgreSQLCheckpointStore) DeleteThread(ctx context.Context, threadID string) error

DeleteThread 删除线程

func (*PostgreSQLCheckpointStore) List

func (s *PostgreSQLCheckpointStore) List(ctx context.Context, threadID string, limit int) ([]*Checkpoint, error)

List 列出检查点

func (*PostgreSQLCheckpointStore) ListVersions

func (s *PostgreSQLCheckpointStore) ListVersions(ctx context.Context, threadID string) ([]CheckpointVersion, error)

ListVersions 列出线程的所有版本

func (*PostgreSQLCheckpointStore) Load

func (s *PostgreSQLCheckpointStore) Load(ctx context.Context, checkpointID string) (*Checkpoint, error)

Load 加载检查点

func (*PostgreSQLCheckpointStore) LoadLatest

func (s *PostgreSQLCheckpointStore) LoadLatest(ctx context.Context, threadID string) (*Checkpoint, error)

LoadLatest 加载最新检查点

func (*PostgreSQLCheckpointStore) LoadVersion

func (s *PostgreSQLCheckpointStore) LoadVersion(ctx context.Context, threadID string, version int) (*Checkpoint, error)

LoadVersion 加载指定版本的检查点

func (*PostgreSQLCheckpointStore) Rollback

func (s *PostgreSQLCheckpointStore) Rollback(ctx context.Context, threadID string, version int) error

Rollback 回滚到指定版本

func (*PostgreSQLCheckpointStore) Save

func (s *PostgreSQLCheckpointStore) Save(ctx context.Context, checkpoint *Checkpoint) error

Save 保存检查点

type PostgreSQLClient

type PostgreSQLClient interface {
	Exec(ctx context.Context, query string, args ...any) error
	QueryRow(ctx context.Context, query string, args ...any) Row
	Query(ctx context.Context, query string, args ...any) (Rows, error)
}

PostgreSQLClient PostgreSQL 客户端接口

type PreProcessPlugin

type PreProcessPlugin interface {
	Plugin
	// Precess 执行前处理输入.
	PreProcess(ctx context.Context, input *Input) (*Input, error)
}

PrecessPlugin 在代理执行前运行.

type PromptBundle

type PromptBundle struct {
	Version     string            `json:"version"`
	System      SystemPrompt      `json:"system"`
	Tools       []llm.ToolSchema  `json:"tools,omitempty"`
	Examples    []Example         `json:"examples,omitempty"`
	Memory      MemoryConfig      `json:"memory,omitempty"`
	Plan        *PlanConfig       `json:"plan,omitempty"`
	Reflection  *ReflectionConfig `json:"reflection,omitempty"`
	Constraints []string          `json:"constraints,omitempty"`
}

PromptBundle 模块化提示词包(按版本管理)。

说明:当前版本主要承载 System 模块,其他模块作为扩展点保留。

func NewPromptBundleFromIdentity

func NewPromptBundleFromIdentity(version, identity string) PromptBundle

func (*PromptBundle) AppendExamples

func (b *PromptBundle) AppendExamples(examples ...Example)

AppendExamples 追加 Examples

func (PromptBundle) EffectiveVersion

func (b PromptBundle) EffectiveVersion(defaultVersion string) string

func (PromptBundle) ExtractVariables

func (b PromptBundle) ExtractVariables() []string

ExtractVariables 从 PromptBundle 中提取所有模板变量名

func (PromptBundle) HasExamples

func (b PromptBundle) HasExamples() bool

HasExamples 检查是否有 Few-shot Examples

func (PromptBundle) IsZero

func (b PromptBundle) IsZero() bool

func (PromptBundle) RenderExamplesAsMessages

func (b PromptBundle) RenderExamplesAsMessages() []llm.Message

RenderExamplesAsMessages 将 Examples 渲染为 LLM Message 格式

func (PromptBundle) RenderExamplesAsMessagesWithVars

func (b PromptBundle) RenderExamplesAsMessagesWithVars(vars map[string]string) []llm.Message

RenderExamplesAsMessagesWithVars 渲染 Examples 并替换变量

func (PromptBundle) RenderSystemPrompt

func (b PromptBundle) RenderSystemPrompt() string

func (PromptBundle) RenderSystemPromptWithVars

func (b PromptBundle) RenderSystemPromptWithVars(vars map[string]string) string

RenderSystemPromptWithVars 渲染系统提示词并替换模板变量

func (PromptBundle) RenderWithVars

func (b PromptBundle) RenderWithVars(vars map[string]string) PromptBundle

RenderWithVars 渲染完整提示词包并替换变量(包括 Examples 中的变量)

type PromptDocument added in v1.1.0

type PromptDocument struct {
	Version     string       `json:"version"`
	System      SystemPrompt `json:"system"`
	Constraints []string     `json:"constraints,omitempty"`
}

PromptDocument is a minimal representation of a stored prompt bundle. Mirrors the fields agent/ needs from mongodb.PromptDocument.

type PromptEnhancer

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

PromptEnhancer 提示词增强器

func NewPromptEnhancer

func NewPromptEnhancer(config PromptEnhancerConfig) *PromptEnhancer

NewPromptEnhancer 创建提示词增强器

func (*PromptEnhancer) EnhancePromptBundle

func (e *PromptEnhancer) EnhancePromptBundle(bundle PromptBundle) PromptBundle

EnhancePromptBundle 增强提示词包

func (*PromptEnhancer) EnhanceUserPrompt

func (e *PromptEnhancer) EnhanceUserPrompt(prompt string, outputFormat string) string

EnhanceUserPrompt 增强用户提示词

type PromptEnhancerConfig

type PromptEnhancerConfig struct {
	UseChainOfThought   bool `json:"use_chain_of_thought"`   // Use Chain of Thought (CoT)
	UseSelfConsistency  bool `json:"use_self_consistency"`   // Use self-consistency
	UseStructuredOutput bool `json:"use_structured_output"`  // Use structured output
	UseFewShot          bool `json:"use_few_shot"`           // Use few-shot learning
	MaxExamples         int  `json:"max_examples,omitempty"` // Maximum number of examples
	UseDelimiters       bool `json:"use_delimiters"`         // Use delimiters
}

PromptEnhancerConfig 提示词增强配置

func DefaultPromptEnhancerConfig

func DefaultPromptEnhancerConfig() *PromptEnhancerConfig

DefaultPromptEnhancerConfig 返回默认的提示词增强器配置

type PromptEnhancerRunner added in v1.0.0

type PromptEnhancerRunner interface {
	EnhanceUserPrompt(prompt, context string) (string, error)
}

PromptEnhancerRunner enhances user prompts with additional context. Implemented by: *PromptEnhancer (agent/prompt_enhancer.go)

func AsPromptEnhancerRunner added in v1.0.0

func AsPromptEnhancerRunner(enhancer *PromptEnhancer) PromptEnhancerRunner

AsPromptEnhancerRunner wraps a *PromptEnhancer as a PromptEnhancerRunner.

type PromptEnhancerStep added in v1.2.0

type PromptEnhancerStep struct{}

PromptEnhancerStep enhances the user prompt using the prompt enhancer extension.

func (*PromptEnhancerStep) Execute added in v1.2.0

func (s *PromptEnhancerStep) Execute(ctx context.Context, pc *PipelineContext, next StepFunc) error

func (*PromptEnhancerStep) Name added in v1.2.0

func (s *PromptEnhancerStep) Name() string

type PromptOptimizer

type PromptOptimizer struct{}

PromptOptimizer 提示词优化器(基于最佳实践)

func NewPromptOptimizer

func NewPromptOptimizer() *PromptOptimizer

NewPromptOptimizer 创建提示词优化器

func (*PromptOptimizer) OptimizePrompt

func (o *PromptOptimizer) OptimizePrompt(prompt string) string

OptimizePrompt 优化提示词 基于 2025 年最佳实践: 1. 明确具体 2. 提供示例 3. 让模型思考 4. 使用分隔符 5. 拆分复杂任务

type PromptStoreProvider added in v1.1.0

type PromptStoreProvider interface {
	GetActive(ctx context.Context, agentType, name, tenantID string) (PromptDocument, error)
}

PromptStoreProvider loads active prompt bundles from persistent storage. Implemented by: *mongodb.MongoPromptStore (agent/persistence/mongodb/)

type PromptTemplate

type PromptTemplate struct {
	Name        string
	Description string
	Template    string
	Variables   []string
	Examples    []Example
}

PromptTemplate 提示词模板

type PromptTemplateLibrary

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

PromptTemplateLibrary 提示词模板库

func NewPromptTemplateLibrary

func NewPromptTemplateLibrary() *PromptTemplateLibrary

NewPromptTemplateLibrary 创建提示词模板库

func (*PromptTemplateLibrary) GetTemplate

func (l *PromptTemplateLibrary) GetTemplate(name string) (PromptTemplate, bool)

GetTemplate 获取模板

func (*PromptTemplateLibrary) ListTemplates

func (l *PromptTemplateLibrary) ListTemplates() []string

ListTemplates 列出所有模板

func (*PromptTemplateLibrary) RegisterTemplate

func (l *PromptTemplateLibrary) RegisterTemplate(template PromptTemplate)

RegisterTemplate 注册自定义模板

func (*PromptTemplateLibrary) RenderTemplate

func (l *PromptTemplateLibrary) RenderTemplate(name string, vars map[string]string) (string, error)

RenderTemplate 渲染模板

type QuickSetupOptions

type QuickSetupOptions struct {
	EnableAllFeatures bool

	// 功能开关
	EnableReflection     bool
	EnableToolSelection  bool
	EnablePromptEnhancer bool
	EnableSkills         bool
	EnableMCP            bool
	EnableLSP            bool
	EnableEnhancedMemory bool
	EnableObservability  bool

	// 配置
	ReflectionMaxIterations int
	ToolSelectionMaxTools   int
	SkillsDirectory         string
	MCPServerName           string
	LSPServerName           string
	LSPServerVersion        string
	MemoryTTL               time.Duration
}

QuickSetupOptions 快速设置选项

func DefaultQuickSetupOptions

func DefaultQuickSetupOptions() QuickSetupOptions

DefaultQuickSetupOptions 默认快速设置选项

type QuickSetupResult added in v1.1.0

type QuickSetupResult struct {
	RequiredSetups []string `json:"required_setups"`
}

QuickSetupResult holds the list of features that the caller must manually enable by calling the corresponding Enable* methods on BaseAgent.

type RealtimeCoordinator

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

RealtimeCoordinator 实时协调器 支持 Subagents 之间的实时通信和协调

func NewRealtimeCoordinator

func NewRealtimeCoordinator(manager *SubagentManager, eventBus EventBus, logger *zap.Logger) *RealtimeCoordinator

NewRealtimeCoordinator 创建实时协调器

func (*RealtimeCoordinator) CoordinateSubagents

func (c *RealtimeCoordinator) CoordinateSubagents(ctx context.Context, subagents []Agent, input *Input) (*Output, error)

CoordinateSubagents 协调多个 Subagents

type RedisCheckpointStore

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

RedisCheckpointStore Redis 检查点存储

func NewRedisCheckpointStore

func NewRedisCheckpointStore(client RedisClient, prefix string, ttl time.Duration, logger *zap.Logger) *RedisCheckpointStore

NewRedisCheckpointStore 创建 Redis 检查点存储

func (*RedisCheckpointStore) Delete

func (s *RedisCheckpointStore) Delete(ctx context.Context, checkpointID string) error

Delete 删除检查点

func (*RedisCheckpointStore) DeleteThread

func (s *RedisCheckpointStore) DeleteThread(ctx context.Context, threadID string) error

DeleteThread 删除线程

func (*RedisCheckpointStore) List

func (s *RedisCheckpointStore) List(ctx context.Context, threadID string, limit int) ([]*Checkpoint, error)

List 列出检查点

func (*RedisCheckpointStore) ListVersions

func (s *RedisCheckpointStore) ListVersions(ctx context.Context, threadID string) ([]CheckpointVersion, error)

ListVersions 列出线程的所有版本

func (*RedisCheckpointStore) Load

func (s *RedisCheckpointStore) Load(ctx context.Context, checkpointID string) (*Checkpoint, error)

Load 加载检查点

func (*RedisCheckpointStore) LoadLatest

func (s *RedisCheckpointStore) LoadLatest(ctx context.Context, threadID string) (*Checkpoint, error)

LoadLatest 加载最新检查点

func (*RedisCheckpointStore) LoadVersion

func (s *RedisCheckpointStore) LoadVersion(ctx context.Context, threadID string, version int) (*Checkpoint, error)

LoadVersion 加载指定版本的检查点

func (*RedisCheckpointStore) Rollback

func (s *RedisCheckpointStore) Rollback(ctx context.Context, threadID string, version int) error

Rollback 回滚到指定版本

func (*RedisCheckpointStore) Save

func (s *RedisCheckpointStore) Save(ctx context.Context, checkpoint *Checkpoint) error

Save 保存检查点

type RedisClient

type RedisClient interface {
	Set(ctx context.Context, key string, value []byte, ttl time.Duration) error
	Get(ctx context.Context, key string) ([]byte, error)
	Delete(ctx context.Context, key string) error
	Keys(ctx context.Context, pattern string) ([]string, error)
	ZAdd(ctx context.Context, key string, score float64, member string) error
	ZRevRange(ctx context.Context, key string, start, stop int64) ([]string, error)
	ZRemRangeByScore(ctx context.Context, key string, min, max string) error
}

RedisClient Redis 客户端接口

type ReflectionConfig

type ReflectionConfig struct {
	Enabled bool `json:"enabled,omitempty"`
}

type ReflectionExecutor

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

ReflectionExecutor Reflection 执行器

func NewReflectionExecutor

func NewReflectionExecutor(agent *BaseAgent, config ReflectionExecutorConfig) *ReflectionExecutor

NewReflectionExecutor 创建 Reflection 执行器

func (*ReflectionExecutor) ExecuteWithReflection

func (r *ReflectionExecutor) ExecuteWithReflection(ctx context.Context, input *Input) (*ReflectionResult, error)

ExecuteWithReflection 执行任务并进行 Reflection

type ReflectionExecutorConfig

type ReflectionExecutorConfig struct {
	Enabled       bool    `json:"enabled"`
	MaxIterations int     `json:"max_iterations"` // Maximum reflection iterations
	MinQuality    float64 `json:"min_quality"`    // Minimum quality threshold (0-1)
	CriticPrompt  string  `json:"critic_prompt"`  // Critic prompt template
}

反射执行器配置

func DefaultReflectionConfig

func DefaultReflectionConfig() *ReflectionExecutorConfig

默认反射 Config 返回默认反射配置

func DefaultReflectionExecutorConfig

func DefaultReflectionExecutorConfig() ReflectionExecutorConfig

默认反射 ExecutorConfig 返回默认反射配置

type ReflectionLLMStep added in v1.2.0

type ReflectionLLMStep struct{}

ReflectionLLMStep uses the reflection executor instead of direct LLM call.

func (*ReflectionLLMStep) Execute added in v1.2.0

func (s *ReflectionLLMStep) Execute(ctx context.Context, pc *PipelineContext, next StepFunc) error

func (*ReflectionLLMStep) Name added in v1.2.0

func (s *ReflectionLLMStep) Name() string

type ReflectionResult

type ReflectionResult struct {
	FinalOutput          *Output       `json:"final_output"`
	Iterations           int           `json:"iterations"`
	Critiques            []Critique    `json:"critiques"`
	TotalDuration        time.Duration `json:"total_duration"`
	ImprovedByReflection bool          `json:"improved_by_reflection"`
}

ReflectionResult Reflection 执行结果

type ReflectionRunner added in v1.0.0

type ReflectionRunner interface {
	ExecuteWithReflection(ctx context.Context, input *Input) (any, error)
}

ReflectionRunner executes a task with iterative self-reflection. Implemented by: *ReflectionExecutor (agent/reflection.go)

func AsReflectionRunner added in v1.0.0

func AsReflectionRunner(executor *ReflectionExecutor) ReflectionRunner

AsReflectionRunner wraps a *ReflectionExecutor as a ReflectionRunner.

type ResourceLoadStep added in v1.2.0

type ResourceLoadStep struct{}

ResourceLoadStep loads prompts from store, records the run, and restores conversation history.

func (*ResourceLoadStep) Execute added in v1.2.0

func (s *ResourceLoadStep) Execute(ctx context.Context, pc *PipelineContext, next StepFunc) error

func (*ResourceLoadStep) Name added in v1.2.0

func (s *ResourceLoadStep) Name() string

type Row

type Row interface {
	Scan(dest ...any) error
}

Row 数据库行接口

type Rows

type Rows interface {
	Next() bool
	Scan(dest ...any) error
	Close() error
}

Rows 数据库行集合接口

type RunConfig

type RunConfig struct {
	Model              *string           `json:"model,omitempty"`
	Temperature        *float32          `json:"temperature,omitempty"`
	MaxTokens          *int              `json:"max_tokens,omitempty"`
	TopP               *float32          `json:"top_p,omitempty"`
	Stop               []string          `json:"stop,omitempty"`
	ToolChoice         *string           `json:"tool_choice,omitempty"`
	Timeout            *time.Duration    `json:"timeout,omitempty"`
	MaxReActIterations *int              `json:"max_react_iterations,omitempty"`
	Metadata           map[string]string `json:"metadata,omitempty"`
	Tags               []string          `json:"tags,omitempty"`
}

RunConfig provides runtime overrides for Agent execution. All pointer fields use nil to indicate "no override" — only non-nil values are applied, leaving the base Config defaults intact.

func GetRunConfig

func GetRunConfig(ctx context.Context) *RunConfig

GetRunConfig retrieves the RunConfig from the context. Returns nil if no RunConfig is present.

func (*RunConfig) ApplyToRequest

func (rc *RunConfig) ApplyToRequest(req *llm.ChatRequest, baseCfg Config)

ApplyToRequest applies RunConfig overrides to a ChatRequest. Fields in baseCfg are used as defaults; only non-nil RunConfig fields override them. If rc is nil, this is a no-op.

func (*RunConfig) EffectiveMaxReActIterations

func (rc *RunConfig) EffectiveMaxReActIterations(defaultVal int) int

EffectiveMaxReActIterations returns the RunConfig override if set, otherwise falls back to defaultVal.

type RunDoc added in v1.1.0

type RunDoc struct {
	ID        string    `json:"id"`
	AgentID   string    `json:"agent_id"`
	TenantID  string    `json:"tenant_id"`
	TraceID   string    `json:"trace_id"`
	Status    string    `json:"status"`
	Input     string    `json:"input"`
	StartTime time.Time `json:"start_time"`
}

RunDoc is a minimal run document for the agent layer.

type RunOutputDoc added in v1.1.0

type RunOutputDoc struct {
	Content      string  `json:"content"`
	TokensUsed   int     `json:"tokens_used"`
	Cost         float64 `json:"cost"`
	FinishReason string  `json:"finish_reason"`
}

RunOutputDoc holds the output portion of a run document.

type RunStoreProvider added in v1.1.0

type RunStoreProvider interface {
	RecordRun(ctx context.Context, doc *RunDoc) error
	UpdateStatus(ctx context.Context, id, status string, output *RunOutputDoc, errMsg string) error
}

RunStoreProvider records agent execution runs. Implemented by: *mongodb.MongoRunStore (agent/persistence/mongodb/)

type RuntimeStreamEmitter

type RuntimeStreamEmitter func(RuntimeStreamEvent)

type RuntimeStreamEvent

type RuntimeStreamEvent struct {
	Type       RuntimeStreamEventType `json:"type"`
	Timestamp  time.Time              `json:"timestamp"`
	Token      string                 `json:"token,omitempty"`
	Delta      string                 `json:"delta,omitempty"`
	ToolCall   *RuntimeToolCall       `json:"tool_call,omitempty"`
	ToolResult *RuntimeToolResult     `json:"tool_result,omitempty"`
	ToolCallID string                 `json:"tool_call_id,omitempty"`
	ToolName   string                 `json:"tool_name,omitempty"`
	Data       any                    `json:"data,omitempty"`
}

type RuntimeStreamEventType

type RuntimeStreamEventType string
const (
	RuntimeStreamToken        RuntimeStreamEventType = "token"
	RuntimeStreamToolCall     RuntimeStreamEventType = "tool_call"
	RuntimeStreamToolResult   RuntimeStreamEventType = "tool_result"
	RuntimeStreamToolProgress RuntimeStreamEventType = "tool_progress"
)

type RuntimeToolCall

type RuntimeToolCall struct {
	ID        string          `json:"id,omitempty"`
	Name      string          `json:"name"`
	Arguments json.RawMessage `json:"arguments,omitempty"`
}

type RuntimeToolResult

type RuntimeToolResult struct {
	ToolCallID string          `json:"tool_call_id,omitempty"`
	Name       string          `json:"name"`
	Result     json.RawMessage `json:"result,omitempty"`
	Error      string          `json:"error,omitempty"`
	Duration   time.Duration   `json:"duration,omitempty"`
}

type ServiceLocator

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

服务管理员提供全球服务登记处。

func NewServiceLocator

func NewServiceLocator() *ServiceLocator

新服务定位器创建了新的服务定位器.

func (*ServiceLocator) Get

func (sl *ServiceLocator) Get(name string) (any, bool)

获取服务的名称 。

func (*ServiceLocator) GetEventBus

func (sl *ServiceLocator) GetEventBus() (EventBus, bool)

GetEventBus 检索活动总线 。

func (*ServiceLocator) GetLogger

func (sl *ServiceLocator) GetLogger() (*zap.Logger, bool)

让Logger拿回日志

func (*ServiceLocator) GetMemory

func (sl *ServiceLocator) GetMemory() (MemoryManager, bool)

让Memory找回记忆管理器

func (*ServiceLocator) GetProvider

func (sl *ServiceLocator) GetProvider() (llm.Provider, bool)

Get Provider 获取 LLM 提供者 。

func (*ServiceLocator) GetToolManager

func (sl *ServiceLocator) GetToolManager() (ToolManager, bool)

GetToolManager检索工具管理器.

func (*ServiceLocator) MustGet

func (sl *ServiceLocator) MustGet(name string) any

如果找不到, 必须获取服务或恐慌 。

func (*ServiceLocator) Register

func (sl *ServiceLocator) Register(name string, service any)

登记服务。

type SimpleEventBus

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

SimpleEventBus 简单的事件总线实现

func (*SimpleEventBus) Publish

func (b *SimpleEventBus) Publish(event Event)

Publish 发布事件

func (*SimpleEventBus) Stop

func (b *SimpleEventBus) Stop()

Stop 停止事件总线,等待所有 handler goroutine 完成

func (*SimpleEventBus) Subscribe

func (b *SimpleEventBus) Subscribe(eventType EventType, handler EventHandler) string

Subscribe 订阅事件

func (*SimpleEventBus) Unsubscribe

func (b *SimpleEventBus) Unsubscribe(subscriptionID string)

Unsubscribe 取消订阅

type SkillDiscoverer added in v1.0.0

type SkillDiscoverer interface {
	DiscoverSkills(ctx context.Context, task string) ([]*skills.Skill, error)
}

SkillDiscoverer discovers skills relevant to a task. Implemented by: *skills.DefaultSkillManager (agent/skills/)

type SkillsDiscoveryStep added in v1.2.0

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

SkillsDiscoveryStep discovers relevant skills and prepends instructions to the input.

func (*SkillsDiscoveryStep) Execute added in v1.2.0

func (s *SkillsDiscoveryStep) Execute(ctx context.Context, pc *PipelineContext, next StepFunc) error

func (*SkillsDiscoveryStep) Name added in v1.2.0

func (s *SkillsDiscoveryStep) Name() string

type State

type State string

State 定义 Agent 生命周期状态

const (
	StateInit      State = "init"      // Initializing
	StateReady     State = "ready"     // Ready to execute
	StateRunning   State = "running"   // Executing
	StatePaused    State = "paused"    // Paused (waiting for human/external input)
	StateCompleted State = "completed" // Completed
	StateFailed    State = "failed"    // Failed
)

type StateChangeEvent

type StateChangeEvent struct {
	AgentID_   string
	FromState  State
	ToState    State
	Timestamp_ time.Time
}

StateChangeEvent 状态变更事件

func (*StateChangeEvent) Timestamp

func (e *StateChangeEvent) Timestamp() time.Time

func (*StateChangeEvent) Type

func (e *StateChangeEvent) Type() EventType

type StateManager

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

StateManager管理代理状态过渡(轻量级版).

func NewStateManager

func NewStateManager(agentID string, bus EventBus, logger *zap.Logger) *StateManager

新州管理者创建了新的州管理者.

func (*StateManager) EnsureReady

func (sm *StateManager) EnsureReady() error

如果特工处于准备状态, 请确保准备检查 。

func (*StateManager) State

func (sm *StateManager) State() State

状态返回当前状态 。

func (*StateManager) Transition

func (sm *StateManager) Transition(ctx context.Context, to State) error

过渡通过验证实现国家过渡。

func (*StateManager) TryLockExec

func (sm *StateManager) TryLockExec() bool

TryLockExec试图获取执行锁.

func (*StateManager) UnlockExec

func (sm *StateManager) UnlockExec()

UnlockExec 发布了执行锁.

type StateTransitionStep added in v1.2.0

type StateTransitionStep struct{}

StateTransitionStep transitions the agent to Running and defers recovery to Ready.

func (*StateTransitionStep) Execute added in v1.2.0

func (s *StateTransitionStep) Execute(ctx context.Context, pc *PipelineContext, next StepFunc) error

func (*StateTransitionStep) Name added in v1.2.0

func (s *StateTransitionStep) Name() string

type StepFunc added in v1.2.0

type StepFunc func(ctx context.Context, pc *PipelineContext) error

StepFunc is the call signature for the next step in the pipeline.

type SubagentCompletedEvent

type SubagentCompletedEvent struct {
	ExecutionID string
	AgentID     string
	Output      *Output
	Timestamp_  time.Time
}

SubagentCompletedEvent Subagent 完成事件

func (*SubagentCompletedEvent) Timestamp

func (e *SubagentCompletedEvent) Timestamp() time.Time

func (*SubagentCompletedEvent) Type

type SubagentManager

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

SubagentManager Subagent 管理器

func NewSubagentManager

func NewSubagentManager(logger *zap.Logger) *SubagentManager

NewSubagentManager 创建 Subagent 管理器

func (*SubagentManager) CleanupCompleted

func (m *SubagentManager) CleanupCompleted(olderThan time.Duration) int

CleanupCompleted 清理已完成的执行

func (*SubagentManager) Close added in v1.1.0

func (m *SubagentManager) Close()

Close 停止自动清理 goroutine。

func (*SubagentManager) GetExecution

func (m *SubagentManager) GetExecution(executionID string) (*AsyncExecution, error)

GetExecution 获取执行状态

func (*SubagentManager) ListExecutions

func (m *SubagentManager) ListExecutions() []*AsyncExecution

ListExecutions 列出所有执行

func (*SubagentManager) SpawnSubagent

func (m *SubagentManager) SpawnSubagent(ctx context.Context, subagent Agent, input *Input) (*AsyncExecution, error)

SpawnSubagent 创建 Subagent 执行

type SystemPrompt

type SystemPrompt struct {
	Role        string   `json:"role,omitempty"`
	Identity    string   `json:"identity,omitempty"`
	Policies    []string `json:"policies,omitempty"`
	OutputRules []string `json:"output_rules,omitempty"`
	Prohibits   []string `json:"prohibits,omitempty"`
}

func (SystemPrompt) IsZero

func (s SystemPrompt) IsZero() bool

func (SystemPrompt) Render

func (s SystemPrompt) Render() string

type ToolCallEvent

type ToolCallEvent struct {
	AgentID_            string
	RunID               string
	TraceID             string
	PromptBundleVersion string
	ToolCallID          string
	ToolName            string
	Stage               string // start/end
	Error               string
	Timestamp_          time.Time
}

ToolCallEvent 工具调用事件

func (*ToolCallEvent) Timestamp

func (e *ToolCallEvent) Timestamp() time.Time

func (*ToolCallEvent) Type

func (e *ToolCallEvent) Type() EventType

type ToolManager

type ToolManager interface {
	GetAllowedTools(agentID string) []llm.ToolSchema
	ExecuteForAgent(ctx context.Context, agentID string, calls []llm.ToolCall) []llmtools.ToolResult
}

ToolManager为Agent运行时间摘要了"工具列表+工具执行"的能力.

设计目标: - 直接根据pkg/剂/工具避免pkg/剂(取消进口周期) - 允许在应用程序层注入不同的执行(默认使用工具)。 工具管理器)

type ToolScore

type ToolScore struct {
	Tool               llm.ToolSchema `json:"tool"`
	SemanticSimilarity float64        `json:"semantic_similarity"` // Semantic similarity (0-1)
	EstimatedCost      float64        `json:"estimated_cost"`      // Estimated cost
	AvgLatency         time.Duration  `json:"avg_latency"`         // Average latency
	ReliabilityScore   float64        `json:"reliability_score"`   // Reliability (0-1)
	TotalScore         float64        `json:"total_score"`         // Total score (0-1)
}

ToolScore 工具评分

type ToolSelectionConfig

type ToolSelectionConfig struct {
	Enabled bool `json:"enabled"`

	// 分数
	SemanticWeight    float64 `json:"semantic_weight"`    // Semantic similarity weight
	CostWeight        float64 `json:"cost_weight"`        // Cost weight
	LatencyWeight     float64 `json:"latency_weight"`     // Latency weight
	ReliabilityWeight float64 `json:"reliability_weight"` // Reliability weight

	// 甄选战略
	MaxTools      int     `json:"max_tools"`       // Maximum number of tools to select
	MinScore      float64 `json:"min_score"`       // Minimum score threshold
	UseLLMRanking bool    `json:"use_llm_ranking"` // Whether to use LLM-assisted ranking
}

ToolSelectionConfig 工具选择配置

func DefaultToolSelectionConfig

func DefaultToolSelectionConfig() *ToolSelectionConfig

默认工具SecutConfig 返回默认工具选择配置

type ToolSelectionStep added in v1.2.0

type ToolSelectionStep struct{}

ToolSelectionStep dynamically selects tools based on the task.

func (*ToolSelectionStep) Execute added in v1.2.0

func (s *ToolSelectionStep) Execute(ctx context.Context, pc *PipelineContext, next StepFunc) error

func (*ToolSelectionStep) Name added in v1.2.0

func (s *ToolSelectionStep) Name() string

type ToolSelector

type ToolSelector interface {
	// SelectTools 基于任务选择最佳工具
	SelectTools(ctx context.Context, task string, availableTools []llm.ToolSchema) ([]llm.ToolSchema, error)

	// ScoreTools 对工具进行评分
	ScoreTools(ctx context.Context, task string, tools []llm.ToolSchema) ([]ToolScore, error)
}

ToolSelector 工具选择器接口

type ToolStats

type ToolStats struct {
	Name            string
	TotalCalls      int64
	SuccessfulCalls int64
	FailedCalls     int64
	TotalLatency    time.Duration
	AvgCost         float64
}

ToolStats 工具统计信息

Directories

Path Synopsis
mongodb
Package mongodb provides adapter types that bridge the concrete MongoDB store implementations to the agent-layer interfaces defined in agent/interfaces.go.
Package mongodb provides adapter types that bridge the concrete MongoDB store implementations to the agent-layer interfaces defined in agent/interfaces.go.
Package plugins provides AgentPlugin implementations for optional agent features.
Package plugins provides AgentPlugin implementations for optional agent features.
protocol
a2a
mcp

Jump to

Keyboard shortcuts

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