Class Diagram

internal/agenttool 类图

9 个内置工具实现 agentcore.AgentTool,经 ToolRegistry 注册/校验,由 ToolExecutor 三阶段执行

类图 (Class Diagram) — 结构性图形。展现工具层静态结构:接口实现、注册表聚合、执行配置与 Todo 数据簇。

tools 0..* yields ToolRegistry (Registry field) --> Registry embed uses cfg calls Store items agentcore.INTERFACE AgentTool + Name() / Description() string + Schema() json.RawMessage + ExecutionMode() ToolExecutionMode + Execute(ctx,id,args,onUpdate) → (AgentToolResult, error) ReadTool Root string name "read" mode parallel · 越界拒绝 WriteTool Root string name "write" mode sequential EditTool Root string name "edit" mode sequential · diff BashTool Dir / Shell string mode sequential · 流式 GrepTool name "grep" mode parallel · gitignore FindTool name "find" mode parallel LsTool name "ls" · mode parallel WebFetchTool Client *http · html→md TodoTool Store *TodoStore TodoStore mu sync.RWMutex items []TodoItem + NewTodoStore() TodoItem Content string Status TodoStatus JSON: content / status validTodoStatus() 校验 ENUM TodoStatus pending in_progress completed CORE ToolRegistry mu sync.RWMutex tools map[string]AgentTool compiled map[string]*jsonschema.Schema + Register / Get / List + Validate(name,args) []FieldError santhosh-tekuri/jsonschema v6 FieldError Field string (JSON ptr) Message string → ValidationErrorResult CORE ToolExecutorConfig Registry *ToolRegistry PrepareArguments PrepareArgumentsFunc BeforeToolCall BeforeToolCallFunc AfterToolCall AfterToolCallFunc 3 个 hook 均可选 (nil = 默认) prepare → execute → finalize 阶段共享 afterToolCall 逐字段覆盖 (无深合并) BatchConfig ToolExecutorConfig (embedded) ForceSequential bool 批内含 sequential 工具 → 整批串行 FUNC executeToolCall ① prepareToolCall — lookup / prepareArgs Validate / beforeToolCall block ② runTool — recover panic → errorResult ③ finalizeToolCall — afterToolCall / emit end 失败一律编码为 IsError 结果, 不 panic FUNC ExecuteToolCalls 串行 / 并行 (goroutine + 索引回填) batchRequiresSequential() 全部结果 terminate → 整批终止 realization 实现 aggregation 聚合 composition 组合 / 内嵌 dependency 依赖 / 使用 accent = 核心类型 (CORE) 灰底框 = 值 / 枚举类型

注册与校验

Registry · JSON Schema

  • 9 个内置工具实现 agentcore.AgentTool,各自声明 name / schema / 执行模式。
  • ToolRegistrymap[string]AgentTool 聚合工具,并预编译 jsonschema v6 校验器。
  • Validate 返回 []FieldError,经 ValidationErrorResult 转为错误结果。

三阶段执行与批处理

Executor · Batch

  • executeToolCall:prepare → execute → finalize,任何失败都编码为 IsError 结果而非 panic。
  • ToolExecutorConfig 携带注册表与三个可选 hook;BatchConfig 内嵌它并加 ForceSequential。
  • ExecuteToolCalls 按模式串/并行;含 sequential 工具则整批串行。