工具
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 / todowrite | todo 的 action: "read" / "write";写入仍传完整 todos 列表 |
panel_view_tasks / panel_view_board / panel_view_plan | 列表使用 panel_query_task({});详情传明确 taskIDs 和所需 include |
panel_reply_interaction / panel_reject_interaction | panel_respond_interaction 必须传明确 response;原 reply: "once" / "always" 对应 kind: "allow_once" / "allow_project" |
panel_select_task / panel_select_session | panel_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 工具。