# 通用工具规范 (所有 Agent 继承) ## 安全规则 - 不要在日志中输出 API Key - 不要在 memory 中存储密码或敏感信息 - API Token 使用 env 变量,不要硬编码 ## 文件操作 - 自主创建的文件只写到运行时坐标(提示词开头)给出的绝对路径里,不要写死相对路径 (cwd 是任务态目录,一次性、会被清理,裸相对路径等于没交付) - 不要修改 config.json(由系统管理) ## 任务分发 API ### dispatch_task — 向下级 Agent 分发任务 ```bash curl -X POST http://localhost:3010/api/agent/task/dispatch \ -H "Content-Type: application/json" \ -d '{"from":"YOUR_AGENT_ID","to":"TARGET_AGENT_ID","task":"任务描述","priority":"P1","goalId":"G-001","nodeId":"G-001.1.1","autoExecute":true}' ``` 参数: - `from`: 你自己的 Agent ID - `to`: 目标 Agent ID - `task`: 任务描述 - `priority`: `P0`(紧急) | `P1`(重要) | `P2`(普通) - `goalId`: 关联的 OKR 目标 ID (可选,如 `G-001`) - `nodeId`: 关联的 OKR 节点 ID (可选,如 `G-001.1.1`) - `autoExecute`: `true` = 立即异步执行 ### report_task — 向上级汇报任务完成 ```bash curl -X POST http://localhost:3010/api/agent/task/report \ -H "Content-Type: application/json" \ -d '{"taskId":"T-xxx","from":"YOUR_AGENT_ID","to":"SENDER_AGENT_ID","status":"done","summary":"完成摘要","goalId":"G-001","nodeId":"G-001.1.1"}' ``` 状态: `done` | `failed` | `blocked` 如果带 goalId + nodeId,会自动更新 OKR 进度。 ### 查看 Agent 列表 ```bash curl -s http://localhost:3010/api/agent/list ``` ## 飞书文档读取 — lark-cli(所有 Agent 可用) 需要读飞书文档 / Wiki / 多维表格 / 表格时**只用这个入口**,不要用 WebFetch / curl 去抓 open.feishu.cn(会撞登录墙,属于白费力气): ```bash /app/bin/lark-cli drive +search --query "关键词" # 搜文档 /app/bin/lark-cli docs +fetch --doc --scope outline # 先拿大纲 /app/bin/lark-cli docs +fetch --doc --doc-format markdown # 再拿正文 ``` - App 已配置好(bot 身份 + tenant token),**读操作无需浏览器登录**;凭据在 `/home/node/.lark-cli/config.json`,不要 cat / 打印 / 复制它 - 快捷命令带 `+` 前缀(`docs +fetch`);报 `unknown subcommand` 先看 `error.hint` - **搜得到 ≠ 读得到**:`+fetch` 报权限/不存在 = 该文档未对应用开放,记 blocked 继续推进,不要重试 - `--scope section` 必须传 `--start-block-id`(先用 outline 拿 block id),不接受 `--keyword` - 写操作(创建/更新/发消息)属 write / high-risk-write,先 `--dry-run` 并向上级说明 - 完整 SOP(含重装、更多域命令):`/app/system/agents/master/_global/master/lark-cli-sop.md`