七张工具卡:你的手和脚
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 把同一轮里的多个工具调用并行执行以求快——读和写都不例外。那「同时改同一个文件」怎么不打架?靠一把按文件加锁的队列,而不是让整批退化成串行。下一章细看。