Help us shape the future of Go! Take the 2026 Go Developer Survey

agent

package
v0.7.1 Latest Latest
Warning

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

Go to latest
Published: Mar 19, 2026 License: MIT Imports: 31 Imported by: 0

Documentation

Overview

Package agent 实现核心 AI 助手逻辑,包括消息循环、工具调用及上下文管理。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ContextBuilder

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

ContextBuilder 负责根据配置、历史记录和外部文件构建 LLM 的 Prompt 上下文。

func NewContextBuilder

func NewContextBuilder(workspacePath string) *ContextBuilder

NewContextBuilder 创建并返回一个新的上下文构建器。

func (*ContextBuilder) BuildMessages

func (c *ContextBuilder) BuildMessages(history []*session.Message, current string, media []string) []*schema.Message

BuildMessages 根据历史记录、当前输入及媒体附件构建发送给 LLM 的完整消息列表。

func (*ContextBuilder) BuildSystemPrompt

func (c *ContextBuilder) BuildSystemPrompt() string

BuildSystemPrompt 组装完整的系统提示词 (System Prompt)。

func (*ContextBuilder) InvalidateCache added in v0.6.3

func (c *ContextBuilder) InvalidateCache(changedPath string)

InvalidateCache 根据发生变化的文件路径使缓存失效。 如果 changedPath 为空,则强制使所有基础缓存失效。

func (*ContextBuilder) SetRuntimeMetrics added in v0.6.3

func (c *ContextBuilder) SetRuntimeMetrics(recorder *metrics.RuntimeMetrics)

SetRuntimeMetrics 为构建器关联一个运行时指标记录器。

type Loop

type Loop struct {

	// OnToolStart 工具开始执行时的回调函数
	OnToolStart func(name, args string)
	// OnToolFinish 工具执行完成后的回调函数
	OnToolFinish func(name, result string, err error)
	// contains filtered or unexported fields
}

Loop 负责管理 Agent 的主处理循环,包括消息处理、模型生成及工具执行。

func NewLoop

func NewLoop(cfg *config.Config, msgBus *bus.MessageBus, chatModel model.ChatModel) (*Loop, error)

NewLoop 根据配置、消息总线和聊天模型创建一个新的 Loop 实例。

func (*Loop) AuditRuntimePolicyStartup added in v0.4.2

func (l *Loop) AuditRuntimePolicyStartup(ctx context.Context, cfg *config.Config)

AuditRuntimePolicyStartup 记录 Agent 启动时的策略审计事件。

func (*Loop) ProcessDirect

func (l *Loop) ProcessDirect(ctx context.Context, content string) (string, error)

ProcessDirect 直接处理消息(用于 CLI)

func (*Loop) ProcessForChannel added in v0.1.4

func (l *Loop) ProcessForChannel(ctx context.Context, channel, chatID, senderID, content string) (string, error)

ProcessForChannel 为给定的通道/会话直接处理消息。

func (*Loop) ProcessForChannelWithSession added in v0.3.0

func (l *Loop) ProcessForChannelWithSession(ctx context.Context, channel, chatID, senderID, sessionID, content string) (string, error)

ProcessForChannelWithSession 为通道/聊天处理消息,可选择使用显式会话 ID。

func (*Loop) RegisterDefaultTools

func (l *Loop) RegisterDefaultTools(cfg *config.Config) error

RegisterDefaultTools 注册所有内置工具

func (*Loop) Run

func (l *Loop) Run(ctx context.Context) error

Run 启动 Agent 循环

func (*Loop) SetActivityRecorder added in v0.3.0

func (l *Loop) SetActivityRecorder(recorder func(channel, chatID string))

SetActivityRecorder 附加一个回调函数,用于跟踪最新活跃的通道/聊天。

func (*Loop) SetRuntimeMetrics added in v0.4.2

func (l *Loop) SetRuntimeMetrics(recorder *metrics.RuntimeMetrics)

SetRuntimeMetrics 附加一个运行时指标记录器,用于工具执行统计。

func (*Loop) Tools added in v0.2.0

func (l *Loop) Tools() *tools.Registry

Tools 返回工具注册表。

type SubagentManager added in v0.3.0

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

SubagentManager 负责在后台或同步执行委派的子代理任务。

func NewSubagentManager added in v0.3.0

func NewSubagentManager(msgBus *bus.MessageBus, processor subagentProcessor, timeout time.Duration) *SubagentManager

NewSubagentManager 创建一个新的子代理管理器。

func NewSubagentManagerWithOptions added in v0.5.0

func NewSubagentManagerWithOptions(msgBus *bus.MessageBus, processor subagentProcessor, options SubagentManagerOptions) *SubagentManager

NewSubagentManagerWithOptions 根据自定义选项创建一个子代理管理器。

func (*SubagentManager) RunSync added in v0.3.0

RunSync 同步执行一个子代理任务并返回其最终执行结果。

func (*SubagentManager) RunWorkflow added in v0.5.0

func (m *SubagentManager) RunWorkflow(ctx context.Context, req tools.WorkflowRequest) (string, error)

RunWorkflow 以顺序或并行模式执行子代理工作流,并返回汇总摘要。

func (*SubagentManager) Spawn added in v0.3.0

Spawn 异步启动一个子代理任务。

type SubagentManagerOptions added in v0.5.0

type SubagentManagerOptions struct {
	Timeout        time.Duration // 任务执行超时
	Retry          int           // 失败重试次数
	MaxConcurrency int           // 最大并发子任务数
}

SubagentManagerOptions 配置委派任务的超时、重试和并发限制。

type SubagentTaskRequest added in v0.3.0

type SubagentTaskRequest struct {
	Task           string // 任务描述或指令
	Label          string // 任务标签
	OriginChannel  string // 原始请求通道
	OriginChatID   string // 原始请求聊天 ID
	OriginSenderID string // 原始发送者 ID
	RequestID      string // 请求追踪 ID
}

SubagentTaskRequest 定义了委派给子代理的任务运行请求。

Jump to

Keyboard shortcuts

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