Skip to content

14 工具系统与策略管线

模块目标

理解为什么模型不会“无限制调用所有工具”,而是通过策略管线受控执行。

步骤一:实现拆解(执行链路)

  1. 工具集合构建:
  • src/agents/pi-tools.ts
  • src/agents/openclaw-tools.ts
  1. 策略解析:
  • src/agents/pi-tools.policy.ts
  • src/agents/tool-policy.ts
  1. 策略流水线应用:
  • src/agents/tool-policy-pipeline.ts
  1. 工具定义适配:
  • src/agents/pi-tool-definition-adapter.ts

步骤二:细粒度讲解(小白版)

  1. 工具来源分三类
  • 基础 coding tools(read/write/edit/exec/process)
  • OpenClaw 平台工具(message/sessions/browser/web/nodes 等)
  • 插件工具(动态加载)
  1. 先构建,再过滤
  • 不是“先猜应该有哪些工具”
  • 而是先组装候选,再按策略一层层过滤
  1. 策略层次(从近到远)
  • profile / provider profile
  • 全局策略
  • agent 策略
  • group 策略
  • sandbox 策略
  • subagent 策略
  1. 关键安全点
  • owner-only 工具(如敏感操作)
  • apply_patch / exec 的模型与范围限制
  • workspace root guard(防止越界写)
  • before_tool_call / after_tool_call hook
  1. 工具错误不会直接炸进程
  • adapter 捕获异常并转结构化 error 结果
  • 仍可触发 after_tool_call hook,便于审计

用工程视角拆解 AI 智能体框架