Skip to content
工具箱

工具系统

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 也可以写成 ShellRead 也可以写成 reading——因为模型可能用不同名词输出。

工具别名
BashShell
Readreading
Agenttask
Grep(无)

每个工具通过 BaseTool::timeout() 声明外层超时,工具分发时据此包裹调用:

工具超时
大多数工具(Grep、Write、WebFetch、WebSearch、Bash、AskUserQuestion、Agent 等)无外层超时(返回 None,由工具内部自管)
Skill30 秒
未覆写 timeout() 的工具(Read、Edit、Glob、folder_operations 等)继承 BaseTool 默认的 120 秒

Bash 的执行时长由 timeout 参数控制:默认 15 秒(15000ms),上限 600 秒(600000ms)。需要长时间运行的命令应调高该参数,或使用 run_in_background 后台执行。

除了 14 个核心工具,Peri 还提供 2 个 Meta 工具:

  • SearchExtraTools:搜索延迟加载的工具(MCP 工具、Cron 任务等)
  • ExecuteExtraTool:执行通过 SearchExtraTools 找到的工具

这套机制让 Peri 的工具集可以动态扩展,而不需要在启动时加载所有工具。