1. Tool Definition = 模型契约 + Host 执行
一个工具至少包含:名称、描述、参数 schema、输出声明、execute;还可以有 scheduler metadata、timeout、finalize、UI presentation。Registry 保存完整定义,但给模型的只是明确 allowlist 后的 schema。
2. 执行流水线
model tool_call
↓ validate / resolve visible tool
tools/pre-execute ← approval / policy / rewrite
↓
tools/execute ← actual executor or wrapper
↓
tools/post-execute ← normalize / audit
↓
final immutable result
↓
session tool/result
3. 为什么要 pre/execute/post 三段
权限审批、沙箱、遥测、重试、结果脱敏这些横切能力,不应塞进每个工具实现。事件流水线让策略插件统一拦截,同时保持工具本身只关心业务。
4. Tool visibility 也是 scope
Registry 可以全局注册一批工具,再按 agent scoped restriction 控制实际暴露集。这比每个 agent 各自复制 registry 更容易保持单一实现和统一观察。
5. Code Mode 的架构意义
当工具很多时,给模型直接暴露全部 schema 成本高。DSH 的 Code Mode 把可用工具生成为 SDK 文本并通过运输工具调用,这是“模型接口层”的一种替换策略,不改变底层 tool registry。