SuperAPI AI 工具集

coding-agent

编程与开发

查看项目

更新于 10-15 12:38

技能介绍

用途

Coding Agent 是一个以 bash 为优先的方案,用于把编码任务委派给 Codex、Claude Code、OpenCode 或 Pi 等编码代理执行。它适合两类场景:构建或创建新功能与应用,以及审查 PR(拉取请求)等代码评审工作。

主要能力

该方案基于 bash 工具运行编码代理,支持以下参数:

  • command:要运行的 shell 命令
  • pty:为交互式 CLI 分配伪终端(编码代理必开)
  • workdir:工作目录,代理只能看到该文件夹的上下文
  • background:后台运行,返回 sessionId 以便监控
  • timeout:超时秒数,到期后终止进程
  • elevated:在宿主机而非沙箱中运行(若允许)

对于后台会话,process 工具提供以下动作:list(列出运行中/最近的会话)、poll(检查会话是否仍在运行)、log(获取会话输出,支持 offset/limit)、write(向 stdin 发送原始数据)、submit(发送数据加换行,相当于输入并回车)、send-keys(发送按键标记或十六进制字节)、paste(粘贴文本,支持 bracketed 模式)、kill(终止会话)。

使用方式

PTY 模式要求

编码代理(Codex、Claude Code、Pi)是需要伪终端才能正常工作的交互式终端应用。不开 PTY 会出现输出损坏、丢失颜色,或代理挂起。因此运行编码代理时始终使用 pty:true。

正确写法:bash pty:true command:"codex exec 'Your prompt'"。错误写法:bash command:"codex exec 'Your prompt'"。

一次性任务

对于快速提示或聊天,创建临时 git 仓库并运行:SCRATCH=$(mktemp -d) && cd $SCRATCH && git init && codex exec "Your prompt here"。或在真实项目中执行:bash pty:true workdir:~/Projects/myproject command:"codex exec 'Add error handling to the API calls'"。之所以需要 git init,是因为 Codex 拒绝在受信任的 git 目录之外运行,创建临时仓库可解决临时工作的问题。

核心模式:workdir + background + pty

较长的任务应使用后台模式配合 PTY:bash pty:true workdir:~/project background:true command:"codex exec --full-auto 'Build a snake game'",该命令返回 sessionId 用于跟踪。随后可用 process action:log sessionId:XXX 监控进度,用 process action:poll sessionId:XXX 检查是否完成,用 process action:write sessionId:XXX data:"y" 发送输入,用 process action:submit sessionId:XXX data:"yes" 发送并回车,必要时用 process action:kill sessionId:XXX 终止。workdir 的作用是让代理在聚焦的目录中启动,避免读取无关文件。

各代理命令

Codex CLI:模型默认是 gpt-5.2-codex(在 ~/.codex/config.toml 中设置)。相关标志有 exec "prompt"(一次性执行,完成后退出)、--full-auto(沙箱内但在工作区自动批准)、--yolo(无沙箱、无审批,最快也最危险)。构建时可执行 bash pty:true workdir:~/project command:"codex exec --full-auto 'Build a dark mode toggle'",或后台执行 bash pty:true workdir:~/project background:true command:"codex --yolo 'Refactor the auth module'"。

Claude Code:bash pty:true workdir:~/project command:"claude 'Your task'",后台则加 background:true。

OpenCode:bash pty:true workdir:~/project command:"opencode run 'Your task'"。

Pi Coding Agent:安装命令为 npm install -g @mariozechner/pi-coding-agent。使用 bash pty:true workdir:~/project command:"pi 'Your task'";非交互模式(仍建议 PTY)为 bash pty:true command:"pi -p 'Summarize src/'";指定其他 provider/模型为 bash pty:true command:"pi --provider openai --model gpt-4o-mini -p 'Your task'"。Pi 现已启用 Anthropic 提示词缓存。

审查 PR

切勿在 OpenClaw 自身项目文件夹中审查 PR,应克隆到临时文件夹或使用 git worktree。克隆到临时目录的做法:REVIEW_DIR=$(mktemp -d),git clone https://github.com/user/repo.git $REVIEW_DIR,cd $REVIEW_DIR && gh pr checkout 130,bash pty:true workdir:$REVIEW_DIR command:"codex review --base origin/main",完成后清理。或使用 git worktree:git worktree add /tmp/pr-130-review pr-130-branch,再执行 codex review --base main。

批量 PR 审查(并行):先执行 git fetch origin '+refs/pull//head:refs/remotes/origin/pr/',然后为每个 PR 启动一个 Codex(都要 PTY),例如 codex exec 'Review PR #86. git diff origin/main...origin/pr/86',用 process action:list 监控,最后用 gh pr comment <PR#> --body "<review content>" 发布结果。

用 git worktree 并行修复 issue

创建 worktree:git worktree add -b fix/issue-78 /tmp/issue-78 main(另一个 issue 同理)。随后在每个目录中启动 Codex(后台加 PTY),例如 bash pty:true workdir:/tmp/issue-78 background:true command:"pnpm install && codex --yolo 'Fix issue #78: <description>. Commit and push.'"。用 process action:list 与 process action:log 监控;修复完成后推送并创建 PR(git push -u origin fix/issue-78,gh pr create ...);最后用 git worktree remove 清理。

适用场景

  • 让代理构建新功能或应用
  • 审查 PR,包括批量并行审查
  • 用 git worktree 并行修复多个 issue

限制与规则

  • 始终使用 pty:true,编码代理需要终端。
  • 尊重工具选择:用户要求用 Codex 就用 Codex。
  • 编排者模式:不要自己手写补丁。
  • 若代理失败或挂起,重新启动它或询问用户方向,不要悄悄接管。
  • 保持耐心,不要因为会话“慢”就终止。
  • 用 process:log 监控,检查进度而不干扰。
  • 构建时用 --full-auto(自动批准更改),审查时用 vanilla(无需特殊标志)。
  • 可以并行,批量工作时可同时运行多个 Codex 进程。
  • 绝不要在 ~/.openclaw/ 中启动 Codex。
  • 绝不要在 ~/Projects/openclaw/ 中检出分支,那是正在运行的 OpenClaw 实例。

进度更新

在后台启动编码代理时,需让用户保持知情:启动时发送一条简短消息(说明运行什么、在哪里);随后仅在发生变化时更新——里程碑完成(构建完成、测试通过)、代理提问或需要输入、遇到错误或需要用户操作、代理完成(包含变更内容与位置)。如果终止会话,立即说明终止原因。这可避免用户只看到“Agent failed before reply”而不知发生了什么。

完成时自动通知

对于长时间运行的后台任务,可在提示词末尾追加 wake 触发器,使 OpenClaw 在代理完成时立即收到通知,而不必等下一次心跳。方式是在任务末尾附加:When completely finished, run this command to notify me: openclaw system event --text "Done: [brief summary of what was built]" --mode now。示例:bash pty:true workdir:~/project background:true command:"codex --yolo exec 'Build a REST API for todos. When completely finished, run: openclaw system event --text "Done: Built todos REST API with CRUD endpoints" --mode now'"。这会触发即时唤醒事件。

经验总结

  • PTY 是必需的:编码代理是交互式终端应用,不开 pty:true 会导致输出损坏或挂起。
  • 需要 git 仓库:Codex 不会在 git 目录之外运行,临时工作可用 mktemp -d && git init。
  • exec 很好用:codex exec "prompt" 运行后干净退出,适合一次性任务。
  • submit 与 write:submit 用于发送输入加回车,write 用于不带换行的原始数据。