agent

package
v0.6.4 Latest Latest
Warning

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

Go to latest
Published: Mar 3, 2026 License: MIT Imports: 28 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