Read / Write / Edit
文件操作。Read 读文件,Write 写文件,Edit 做精确的字符串替换。Edit 基于 old_string/new_string 匹配,不依赖行号——因为行号在模型输出时经常不准。

Peri 内置 14 个核心工具,覆盖编码助手需要的大部分操作。所有工具通过 ReAct 循环的 Act 阶段分发。
Read / Write / Edit
文件操作。Read 读文件,Write 写文件,Edit 做精确的字符串替换。Edit 基于 old_string/new_string 匹配,不依赖行号——因为行号在模型输出时经常不准。
Glob / Grep
文件搜索。Glob 按文件名模式匹配,Grep 按文件内容正则搜索。两个工具覆盖日常代码探索。
Bash
Shell 执行。支持超时控制、后台运行。Peri 可以通过 Bash 运行测试、构建项目、操作 git。
folder_operations
目录操作。列出目录内容、创建目录、检查路径是否存在,支持深度扫描目录树。
WebFetch / WebSearch
网络工具。WebFetch 抓取网页内容为文本,WebSearch 用搜索引擎查找信息。支持指定结果数量。
Agent
子代理委派。把独立子任务派发给专用 agent(如 explorer、coder)执行,支持后台运行。
AskUserQuestion / TodoWrite
交互与任务跟踪。AskUserQuestion 向用户提出结构化问题,TodoWrite 维护多步任务清单。
SkillTool / DiscoverSkillsTool
技能系统。SkillTool 加载并执行技能,DiscoverSkillsTool 按名称或描述搜索可用技能。
每个工具通过 BaseTool::aliases() 声明别名,在工具分发时自动解析。比如 Bash 也可以写成 Shell,Read 也可以写成 reading——因为模型可能用不同名词输出。
| 工具 | 别名 |
|---|---|
| Bash | Shell |
| Read | reading |
| Agent | task |
| Grep | (无) |
每个工具通过 BaseTool::timeout() 声明外层超时,工具分发时据此包裹调用:
| 工具 | 超时 |
|---|---|
| 大多数工具(Grep、Write、WebFetch、WebSearch、Bash、AskUserQuestion、Agent 等) | 无外层超时(返回 None,由工具内部自管) |
| Skill | 30 秒 |
未覆写 timeout() 的工具(Read、Edit、Glob、folder_operations 等) | 继承 BaseTool 默认的 120 秒 |
Bash 的执行时长由 timeout 参数控制:默认 15 秒(15000ms),上限 600 秒(600000ms)。需要长时间运行的命令应调高该参数,或使用 run_in_background 后台执行。
除了 14 个核心工具,Peri 还提供 2 个 Meta 工具:
这套机制让 Peri 的工具集可以动态扩展,而不需要在启动时加载所有工具。