agent

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Feb 20, 2026 License: MIT Imports: 22 Imported by: 0

Documentation

Overview

包 agent 提供 AgentFlow 的核心智能体框架。

概述

本包面向“可编排、可扩展、可观测”的智能体开发场景,统一了 智能体生命周期管理、任务执行流程、工具调用、记忆管理与状态控制。

框架支持多种推理与执行模式,包括 ReAct、链式推理、计划后执行、 反思式迭代以及自定义策略,适合从简单任务型 Agent 到复杂多阶段 协作流程的实现。

架构分层

整体能力由以下层次组成:

- `Agent` 接口层:定义统一能力边界,如 `Init`、`Plan`、`Execute`。 - `BaseAgent` 基础层:提供状态机、钩子、并发保护等通用能力。 - 组件层:记忆、工具、护栏、观测、持久化等可插拔模块。 - LLM 适配层:通过 `llm.Provider` 抽象接入不同模型提供商。

核心能力

- 生命周期管理:统一初始化、执行、收尾与状态转换流程。 - 状态机约束:保证状态流转合法,减少异常路径下的行为漂移。 - 组件注入:通过构建器按需启用记忆、工具、护栏、反思与观测能力。 - 错误语义化:通过统一错误类型与错误码提升调试与恢复效率。 - 并发安全:基础实现内置必要同步机制,保护共享状态一致性。

使用方式

推荐通过构建器创建 Agent,并按需开启增强能力:

- 使用 `NewAgentBuilder` 配置名称、类型与执行参数。 - 通过 `WithProvider` 绑定主模型,必要时通过 `WithToolProvider` 分离工具调用模型。 - 通过 `WithMemory`、`WithToolManager`、`WithReflection` 等接口启用扩展能力。 - 通过 `Build` 生成可执行实例,再调用 `Execute` 处理输入任务。

相关子包

- `agent/guardrails`:输入与输出约束、注入防护、安全校验。 - `agent/memory`:多层记忆与检索能力。 - `agent/evaluation`:效果评测、指标采集与实验能力。 - `agent/structured`:结构化输出生成与校验。 - `agent/protocol/a2a`:智能体间通信协议与实现。

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 RegisterAgentType

func RegisterAgentType(agentType AgentType, factory AgentFactory)

AgentType在全球登记册中登记一种代理类型。 如果全球登记册没有初始化,它将以nop日志初始化。

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 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 NewAgentBuilder

func NewAgentBuilder(config Config) *AgentBuilder

NewAgentBuilder 创建 Agent 构建器

func (*AgentBuilder) Build

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

Build 构建 Agent 实例

func (*AgentBuilder) Validate

func (b *AgentBuilder) Validate() error

Validate 验证配置是否有效

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(config any) *AgentBuilder

WithEnhancedMemory 启用增强记忆系统

func (*AgentBuilder) WithEventBus

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

WithEventBus 设置事件总线

func (*AgentBuilder) WithLSP

func (b *AgentBuilder) WithLSP(config any) *AgentBuilder

WithLSP 启用 LSP 集成。

func (*AgentBuilder) WithLogger

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

WithLogger 设置日志器

func (*AgentBuilder) WithMCP

func (b *AgentBuilder) WithMCP(config any) *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(config any) *AgentBuilder

WithObservability 启用可观测性系统

func (*AgentBuilder) WithPromptEnhancer

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

WithPromptEnhancer 启用提示词增强

func (*AgentBuilder) WithProvider

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

WithProvider 设置 LLM Provider

func (*AgentBuilder) WithReflection

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

WithReflection 启用 Reflection 机制

func (*AgentBuilder) WithSkills

func (b *AgentBuilder) WithSkills(config any) *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 AgentRegistry

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

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

var (
	GlobalRegistry *AgentRegistry
)

Global Registry 是默认代理注册实例

func GetGlobalRegistry

func GetGlobalRegistry(logger *zap.Logger) *AgentRegistry

Get GlobalRegistry 返回全球注册,必要时初始化它. 这是访问全球登记册的建议方式。

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 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 等待执行完成

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 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 any)

EnableEnhancedMemory 启用增强记忆系统

func (*BaseAgent) EnableLSP

func (b *BaseAgent) EnableLSP(client any)

EnableLSP 启用 LSP 集成。

func (*BaseAgent) EnableLSPWithLifecycle

func (b *BaseAgent) EnableLSPWithLifecycle(client any, lifecycle any)

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

func (*BaseAgent) EnableMCP

func (b *BaseAgent) EnableMCP(server any)

EnableMCP 启用 MCP 集成

func (*BaseAgent) EnableObservability

func (b *BaseAgent) EnableObservability(obsSystem any)

EnableObservability 启用可观测性系统

func (*BaseAgent) EnablePromptEnhancer

func (b *BaseAgent) EnablePromptEnhancer(enhancer any)

EnablePromptEnhancer 启用提示词增强

func (*BaseAgent) EnableReflection

func (b *BaseAgent) EnableReflection(executor any)

EnableReflection 启用 Reflection 机制

func (*BaseAgent) EnableSkills

func (b *BaseAgent) EnableSkills(manager any)

EnableSkills 启用 Skills 系统

func (*BaseAgent) EnableToolSelection

func (b *BaseAgent) EnableToolSelection(selector any)

EnableToolSelection 启用动态工具选择

func (*BaseAgent) EnsureReady

func (b *BaseAgent) EnsureReady() error

EnsureReady 确保 Agent 处于就绪状态

func (*BaseAgent) Execute

func (b *BaseAgent) Execute(ctx context.Context, input *Input) (*Output, 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) error

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) SetGuardrails

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

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

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 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 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 EnhancedExecutionOptions

type EnhancedExecutionOptions struct {
	// Reflection 选项
	UseReflection    bool
	ReflectionConfig any // ReflectionConfig

	// 工具选择选项
	UseToolSelection    bool
	ToolSelectionConfig any // ToolSelectionConfig

	// 提示词增强选项
	UsePromptEnhancer       bool
	PromptEngineeringConfig any // PromptEngineeringConfig

	// 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 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 {
	Code      ErrorCode      `json:"code"`
	Message   string         `json:"message"`
	AgentID   string         `json:"agent_id,omitempty"`
	AgentType AgentType      `json:"agent_type,omitempty"`
	Retryable bool           `json:"retryable"`
	Timestamp time.Time      `json:"timestamp"`
	Cause     error          `json:"-"` // 原始错误
	Metadata  map[string]any `json:"metadata,omitempty"`
}

Error Agent 统一错误类型 扩展类型 。 特定代理字段出错 。

func FromTypesError

func FromTypesError(err *types.Error) *Error

从 TypesError 转换一个类型。 代理错误 。 错误

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) ToTypesError

func (e *Error) ToTypesError() *types.Error

ToTypesError 转换一个代理 。 错误为类型 。 错误

func (*Error) Unwrap

func (e *Error) Unwrap() error

Unwrap 支持 errors.Unwrap

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() 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"
	ExecutionStatusCancelled ExecutionStatus = "cancelled"
)

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 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 any)

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

func (*FeatureManager) EnableLSP

func (fm *FeatureManager) EnableLSP(client any)

EnableLSP enables the LSP feature.

func (*FeatureManager) EnableMCP

func (fm *FeatureManager) EnableMCP(server any)

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

func (*FeatureManager) EnableObservability

func (fm *FeatureManager) EnableObservability(system any)

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

func (*FeatureManager) EnablePromptEnhancer

func (fm *FeatureManager) EnablePromptEnhancer(enhancer any)

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

func (*FeatureManager) EnableReflection

func (fm *FeatureManager) EnableReflection(executor any)

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

func (*FeatureManager) EnableSkills

func (fm *FeatureManager) EnableSkills(manager any)

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

func (*FeatureManager) EnableToolSelection

func (fm *FeatureManager) EnableToolSelection(selector any)

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

func (*FeatureManager) EnabledFeatures

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

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

func (*FeatureManager) GetEnhancedMemory

func (fm *FeatureManager) GetEnhancedMemory() any

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

func (*FeatureManager) GetLSP

func (fm *FeatureManager) GetLSP() any

GetLSP returns the LSP client.

func (*FeatureManager) GetMCPServer

func (fm *FeatureManager) GetMCPServer() any

GetMCPServer 返回 MCP 服务器.

func (*FeatureManager) GetObservability

func (fm *FeatureManager) GetObservability() any

GetObservacy返回可观察系统.

func (*FeatureManager) GetPromptEnhancer

func (fm *FeatureManager) GetPromptEnhancer() any

GetPrompt Enhancer 返回快速增强器 。

func (*FeatureManager) GetReflection

func (fm *FeatureManager) GetReflection() any

Get Reflection 返回反射执行器 。

func (*FeatureManager) GetSkillManager

func (fm *FeatureManager) GetSkillManager() any

GetSkillManager返回技能管理器.

func (*FeatureManager) GetToolSelector

func (fm *FeatureManager) GetToolSelector() any

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 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 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 LSPOptions

type LSPOptions struct {
	Name    string
	Version string
}

LSPOptions 配置构建器如何创建默认 LSP 运行时。

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 MCPServerOptions

type MCPServerOptions struct {
	Name    string
	Version string
}

MCPServer 选项配置构建器如何创建默认的 MCP 服务器.

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 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 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"`
	ExpiresAt *time.Time           `json:"expires_at,omitempty"` // 短期记忆过期时间
}

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

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 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 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 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
	// 关闭清理插件 。
	Close(ctx context.Context) error
}

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

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 PluginRegistry

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

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

func NewPluginRegistry

func NewPluginRegistry() *PluginRegistry

NewPluginRegistry创建了新的插件注册.

func (*PluginRegistry) Close

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

关闭所有插件 。

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) 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 PromptEngineeringConfig

type PromptEngineeringConfig = PromptEnhancerConfig

ExpressEngineeringConfig 是用于向后兼容的ExpressEngineeringConfig的别名

func DefaultPromptEngineeringConfig

func DefaultPromptEngineeringConfig() PromptEngineeringConfig

默认PromptEngineeringConfig 返回默认的快速工程配置

type PromptEnhancer

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

PromptEnhancer 提示词增强器

func NewPromptEnhancer

func NewPromptEnhancer(config PromptEngineeringConfig) *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
}

快速EnhancerConfig 快速工程配置

func DefaultPromptEnhancerConfig

func DefaultPromptEnhancerConfig() *PromptEnhancerConfig

默认Prompt EnhancerConfig 返回默认的快速增强器配置

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 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 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 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 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 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"`
}

type RuntimeStreamEventType

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

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 停止事件总线

func (*SimpleEventBus) Subscribe

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

Subscribe 订阅事件

func (*SimpleEventBus) Unsubscribe

func (b *SimpleEventBus) Unsubscribe(subscriptionID string)

Unsubscribe 取消订阅

type SkillsOptions

type SkillsOptions struct {
	Directory string
	Config    skills.SkillManagerConfig
}

技能选项配置构建者如何创建默认的技能管理器 。

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 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) 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 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
Package artifacts 提供代理产物的生成、存储与生命周期管理能力。
Package artifacts 提供代理产物的生成、存储与生命周期管理能力。
Package browser 提供代理浏览器自动化与网页交互能力。
Package browser 提供代理浏览器自动化与网页交互能力。
Package context 提供代理上下文构建、压缩与注入能力。
Package context 提供代理上下文构建、压缩与注入能力。
Package conversation 提供多代理对话编排与状态流转能力。
Package conversation 提供多代理对话编排与状态流转能力。
Package crews 提供基于角色分工的代理团队协作能力。
Package crews 提供基于角色分工的代理团队协作能力。
Package declarative provides YAML/JSON-based declarative Agent definition and loading.
Package declarative provides YAML/JSON-based declarative Agent definition and loading.
Package deliberation 提供多种审议与协商推理模式。
Package deliberation 提供多种审议与协商推理模式。
Package deployment 提供代理部署与运行环境适配能力。
Package deployment 提供代理部署与运行环境适配能力。
包 discovery 提供多智能体场景下的能力发现与匹配机制。
包 discovery 提供多智能体场景下的能力发现与匹配机制。
包 evaluation 提供智能体评测、实验与质量分析能力。
包 evaluation 提供智能体评测、实验与质量分析能力。
Package execution 提供执行器、沙箱与检查点管理能力。
Package execution 提供执行器、沙箱与检查点管理能力。
Package federation 提供跨组织代理协作与联合编排能力。
Package federation 提供跨组织代理协作与联合编排能力。
包 guardrails 为智能体提供输入与输出安全防护能力。
包 guardrails 为智能体提供输入与输出安全防护能力。
Package handoff 提供代理交接协议与上下文传递能力。
Package handoff 提供代理交接协议与上下文传递能力。
Package hitl 提供 Human-in-the-Loop 工作流中断与恢复能力。
Package hitl 提供 Human-in-the-Loop 工作流中断与恢复能力。
Package hosted 提供托管工具与远程服务接入能力。
Package hosted 提供托管工具与远程服务接入能力。
Package k8s 提供 Kubernetes 场景下的代理运维能力。
Package k8s 提供 Kubernetes 场景下的代理运维能力。
Package longrunning 提供长时代理任务执行与恢复能力。
Package longrunning 提供长时代理任务执行与恢复能力。
包 memory 提供面向智能体的分层记忆系统。
包 memory 提供面向智能体的分层记忆系统。
Package observability 提供代理可观测性与可解释性能力。
Package observability 提供代理可观测性与可解释性能力。
Package persistence 提供代理状态持久化存储抽象与实现。
Package persistence 提供代理状态持久化存储抽象与实现。
Package plugins provides a plugin registry for extending AgentFlow.
Package plugins provides a plugin registry for extending AgentFlow.
protocol
a2a
包 a2a 提供 Agent-to-Agent(A2A)协议的核心实现。
包 a2a 提供 Agent-to-Agent(A2A)协议的核心实现。
mcp
Package reasoning 提供规划、反思与分解执行等推理能力。
Package reasoning 提供规划、反思与分解执行等推理能力。
Package skills 提供技能注册、发现与调用管理能力。
Package skills 提供技能注册、发现与调用管理能力。
Package streaming 提供实时双向流式交互能力。
Package streaming 提供实时双向流式交互能力。
包 structured 提供结构化输出的生成、解析与校验能力。
包 structured 提供结构化输出的生成、解析与校验能力。
Package voice 提供语音代理与实时音频交互能力。
Package voice 提供语音代理与实时音频交互能力。

Jump to

Keyboard shortcuts

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