跳转到内容

工具

OpenCorvus 内置可供 LLM 调用的工具。

OpenCorvus 内置一组工具供 agent 调用。工具实现位于 packages/opencorvus/src/tool/,通过 packages/opencorvus/src/tool/registry.ts 注册。

内置工具

工具用途
bash通过配置的 shell 执行命令
browser_preview启动预览服务并保存 Task 范围内的预览目标
browser_preview_capture从已保存的预览目标捕获可见证据
capability_search发现并加载专业或扩展能力
read读取文件(带行号、范围)
write创建或覆盖文件
edit精确字符串替换
apply_patch应用 unified diff
glob按 glob 查找文件
search_code搜索文件内容
list目录列表
webfetch抓取 URL
websearch网络搜索
memory持久化记忆存储
todo读取或替换当前 Session 的待办清单
external_code_search搜索外部代码源
skill加载 projected Skill
delegate_agent从 coding 或 chat assistant 派发有边界的 helper
panel_*调用当前投影的控制面板动作工具
planner管理 assistant planning surface
mission_state读取 Mission 协调状态
wait等待外部 wake 条件
request_orchestrator_decision / send_mailbox_message交换可见的 worker 协调消息
question在 app/CLI/desktop 客户端或显式启用时向用户提问
schedule安排后续动作
analytics上报遥测事件

合并后的操作接口

  • todo({ action: "read" }) 返回已保存的待办清单;todo({ action: "write", todos: [...] }) 用完整列表替换清单,空列表表示清空。
  • panel_query_task({}) 列出当前 Project 最近的任务,Mission 则列出自身拥有的全部任务。传入 taskIDs 可查询最多 50 个任务;include: ["board", "plan"] 添加看板摘要、目标和规划产物定位信息。读取终态任务证据前需先按明确 ID 查询。
  • panel_respond_interaction({ interactionID, response }) 统一处理交互。response.kind 支持 answer(必填 message)、allow_once、allow_project、reject(可选 message)。
  • panel_select_workspace({ target: { kind: "task", id } }) 在本地界面定位任务;定位 Session 时使用 kind: "session"。

当前角色获授权的通用预置工具直接提供;专业和扩展能力继续按需发现、加载。

更新已有集成

合并后的名称和参数替换了原先的分立接口:

原接口当前调用
todoread / todowritetodo 的 action: "read" / "write";写入仍传完整 todos 列表
panel_view_tasks / panel_view_board / panel_view_plan列表使用 panel_query_task({});详情传明确 taskIDs 和所需 include
panel_reply_interaction / panel_reject_interactionpanel_respond_interaction 必须传明确 response;原 reply: "once" / "always" 对应 kind: "allow_once" / "allow_project"
panel_select_task / panel_select_sessionpanel_select_workspace 使用 target.kind 与 target.id

精确工具 ref、Skill 要求、提示词示例和 tools/permission 配置键需要一起更新。todo 是统一读写接口,原先分别设置的策略应明确收敛。旧名称不再是可执行别名。平台能力集已展开为当前名称,不应在每个专家团复制其成员表。历史对话和已有 Task 冻结的 package revision 保留原始事实;不兼容的冻结能力目录沿用已有的过期目录错误与恢复契约。

模型调用使用带 panel_ 前缀的工具名,参数中不再加 action。向 /gateway/control/action 发送结构化 HTTP 请求时,使用不带该前缀的动作名,例如:

{
"action": "respond_interaction",
"interactionID": "<pending-interaction-id>",
"response": { "kind": "answer", "message": "使用 Markdown。" }
}

调用仍受界面范围约束:select_workspace 只用于本地,gateway 不提供该动作。用户界面的 /interaction/:id/reply、/interaction/:id/reject 和 /question/:id/... 接口保留原契约。人工权限卡还支持 allow_task,模型工具的允许选项仍是 allow_once、allow_project。定位结果继续发送 select_task/select_session 类型化本地事件。公开请求结构见生成的 API 参考。

Task Orchestrator 工具

Task Orchestrator session 从 active expert-squad projection 获得 scheduler 工具;它们不是全局 ToolRegistry 条目:

  • dispatch_agents 按当前 expert-squad projection 声明的精确 dynamic agent ID 派发成员集合。
  • manage_task 拥有 Task lifecycle,并创建或修订 Delivery Slice contract;它不完成、拒绝、retry Goal,也不绑定 Goal workspace。

禁用某个工具

{
"tools": {
"write": false,
"bash": false,
},
}

LLM 将拿不到对应工具定义。审查类或沙箱 agent 适用。

权限

大多数写/执行类工具走权限系统。详见 Permissions。

添加新工具

新增的可执行工具属于已安装的专家团 package。manifest 只把精确的 package tool reference 投影给 active scheduler 或声明它的动态 agent。Plugin 可以拦截工具定义和执行,但不能注册 agent 工具。