ZH

 


七张工具卡:你的手和脚

Model 给了你思考,Context 给了你视野,Agent Loop 给了你心跳——但真正让你「碰到世界」的是工具。pi 内置的核心工具就七个:

 read   读文件(按行 / 偏移)        find   按文件名 / 通配符找
 write  写文件(整文件覆盖)        grep   按内容正则搜
 edit   精确替换片段                ls     列目录
 bash   跑命令 / 子进程

工具是「带 schema 的函数」

每个工具向模型暴露三样东西:名字、描述、参数 schema。模型据此决定调谁、填什么参数;执行层拿到结果,再作为 toolResult 回灌 Context。

工具的形状(精简)
interface AgentTool {
  name: string                       // "read" / "edit" ...
  description: string                // 给模型看的说明
  parameters: JSONSchema             // 入参约束
  execute(input, ctx): Promise<Result>
}

为什么是「整文件 write」+「精确 edit」两件套?

write 适合新建或重写;edit 适合在大文件里改一小段。edit 要求待替换片段唯一——找不到或不唯一就报错,逼模型提供更多上下文来精确定位。这种「严格匹配」是避免乱改代码的安全阀。

默认情况下,pi 把同一轮里的多个工具调用并行执行以求快——读和写都不例外。那「同时改同一个文件」怎么不打架?靠一把按文件加锁的队列,而不是让整批退化成串行。下一章细看。