OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  coding-agent:运行Codex, Claude Code或Pi编程智能体

coding-agent:运行Codex, Claude Code或Pi编程智能体

 
  falconx ·  2026-02-02 00:41:04 · 21 次点击  · 0 条评论  

名称: coding-agent
描述: 通过后台进程运行 Codex CLI、Claude Code、OpenCode 或 Pi Coding Agent,实现程序化控制。
元数据: {"clawdbot":{"emoji":"🧩","requires":{"anyBins":["claude","codex","opencode","pi"]}}}


Coding Agent(后台优先模式)

使用 bash 后台模式 处理非交互式编码任务。对于交互式编码会话,请使用 tmux 技能(始终如此,除非是非常简单的一次性提示)。

核心模式:工作目录 + 后台运行

# 为聊天/临时工作创建临时空间
SCRATCH=$(mktemp -d)

# 在目标目录中启动代理(“小盒子” - 仅能看到相关文件)
bash workdir:$SCRATCH background:true command:"<agent command>"
# 或者用于项目工作:
bash workdir:~/project/folder background:true command:"<agent command>"
# 返回用于跟踪的 sessionId

# 监控进度
process action:log sessionId:XXX

# 检查是否完成
process action:poll sessionId:XXX

# 发送输入(如果代理提问)
process action:write sessionId:XXX data:"y"

# 必要时终止
process action:kill sessionId:XXX

为何工作目录重要: 代理在指定的专注目录中启动,不会漫游读取无关文件(比如你的 soul.md 😅)。


Codex CLI

模型: gpt-5.2-codex 是默认模型(在 ~/.codex/config.toml 中设置)

构建/创建(使用 --full-auto 或 --yolo)

# --full-auto: 沙盒化,但在工作空间内自动批准
bash workdir:~/project background:true command:"codex exec --full-auto \"构建一个暗黑主题的贪吃蛇游戏\""

# --yolo: 无沙盒,无批准(最快,最危险)
bash workdir:~/project background:true command:"codex --yolo \"构建一个暗黑主题的贪吃蛇游戏\""

# 注意:--yolo 是 --dangerously-bypass-approvals-and-sandbox 的快捷方式

审查 PR(普通模式,无需特殊标志)

⚠️ 关键:切勿在 Clawdbot 自己的项目文件夹中审查 PR!
- 要么在提交 PR 的项目中进行审查(如果它不是 ~/Projects/clawdbot)
- 要么先克隆到临时文件夹

# 选项 1:在实际项目中审查(如果不是 clawdbot)
bash workdir:~/Projects/some-other-repo background:true command:"codex review --base main"

# 选项 2:克隆到临时文件夹进行安全审查(对 clawdbot 的 PR 是必需的!)
REVIEW_DIR=$(mktemp -d)
git clone https://github.com/clawdbot/clawdbot.git $REVIEW_DIR
cd $REVIEW_DIR && gh pr checkout 130
bash workdir:$REVIEW_DIR background:true command:"codex review --base origin/main"
# 完成后清理:rm -rf $REVIEW_DIR

# 选项 3:使用 git worktree(保持主分支完整)
git worktree add /tmp/pr-130-review pr-130-branch
bash workdir:/tmp/pr-130-review background:true command:"codex review --base main"

原因: 在正在运行的 Clawdbot 仓库中检出分支可能会破坏实时实例!

批量 PR 审查(并行大军!)

# 首先获取所有 PR 引用
git fetch origin '+refs/pull/*/head:refs/remotes/origin/pr/*'

# 部署大军 - 每个 PR 一个 Codex!
bash workdir:~/project background:true command:"codex exec \"审查 PR #86。git diff origin/main...origin/pr/86\""
bash workdir:~/project background:true command:"codex exec \"审查 PR #87。git diff origin/main...origin/pr/87\""
bash workdir:~/project background:true command:"codex exec \"审查 PR #95。git diff origin/main...origin/pr/95\""
# ... 对所有 PR 重复此操作

# 监控所有进程
process action:list

# 获取结果并发布到 GitHub
process action:log sessionId:XXX
gh pr comment <PR#> --body "<审查内容>"

PR 审查技巧

  • 先获取引用: git fetch origin '+refs/pull/*/head:refs/remotes/origin/pr/*'
  • 使用 git diff: 告诉 Codex 使用 git diff origin/main...origin/pr/XX
  • 不要检出分支: 多个并行审查 = 不要让它们切换分支
  • 发布结果: 使用 gh pr comment 将审查发布到 GitHub

Claude Code

bash workdir:~/project background:true command:"claude \"你的任务\""

OpenCode

bash workdir:~/project background:true command:"opencode run \"你的任务\""

Pi Coding Agent

# 安装:npm install -g @mariozechner/pi-coding-agent
bash workdir:~/project background:true command:"pi \"你的任务\""

Pi 常用标志

  • --print / -p:非交互式;运行提示后退出。
  • --provider <name>:选择提供商(默认:google)。
  • --model <id>:选择模型(默认:gemini-2.5-flash)。
  • --api-key <key>:覆盖 API 密钥(默认为环境变量)。

示例:

# 设置提供商 + 模型,非交互式
bash workdir:~/project background:true command:"pi --provider openai --model gpt-4o-mini -p \"总结 src/\""

tmux(交互式会话)

对于交互式编码会话,请使用 tmux 技能(始终如此,除非是非常简单的一次性提示)。对于非交互式运行,优先使用 bash 后台模式。


使用 git worktrees + tmux 并行修复问题

要并行修复多个问题,请使用 git worktrees(隔离分支)+ tmux 会话:

# 1. 将仓库克隆到临时位置
cd /tmp && git clone git@github.com:user/repo.git repo-worktrees
cd repo-worktrees

# 2. 为每个问题创建工作树(隔离分支!)
git worktree add -b fix/issue-78 /tmp/issue-78 main
git worktree add -b fix/issue-99 /tmp/issue-99 main

# 3. 设置 tmux 会话
SOCKET="${TMPDIR:-/tmp}/codex-fixes.sock"
tmux -S "$SOCKET" new-session -d -s fix-78
tmux -S "$SOCKET" new-session -d -s fix-99

# 4. 在每个会话中启动 Codex(在 pnpm install 之后!)
tmux -S "$SOCKET" send-keys -t fix-78 "cd /tmp/issue-78 && pnpm install && codex --yolo '修复问题 #78:<描述>。提交并推送。'" Enter
tmux -S "$SOCKET" send-keys -t fix-99 "cd /tmp/issue-99 && pnpm install && codex --yolo '修复问题 #99:<描述>。提交并推送。'" Enter

# 5. 监控进度
tmux -S "$SOCKET" capture-pane -p -t fix-78 -S -30
tmux -S "$SOCKET" capture-pane -p -t fix-99 -S -30

# 6. 检查是否完成(提示符已返回)
tmux -S "$SOCKET" capture-pane -p -t fix-78 -S -3 | grep -q "❯" && echo "完成!"

# 7. 修复后创建 PR
cd /tmp/issue-78 && git push -u origin fix/issue-78
gh pr create --repo user/repo --head fix/issue-78 --title "fix: ..." --body "..."

# 8. 清理
tmux -S "$SOCKET" kill-server
git worktree remove /tmp/issue-78
git worktree remove /tmp/issue-99

为何使用 worktrees? 每个 Codex 在隔离的分支中工作,无冲突。可以同时运行 5 个以上的并行修复!

为何使用 tmux 而非 bash 后台? Codex 是交互式的 — 需要 TTY 以获得正确的输出。tmux 提供具有完整历史记录的持久会话。


⚠️ 规则

  1. 尊重工具选择 — 如果用户要求使用 Codex,就使用 Codex。切勿主动提议自己构建!
  2. 保持耐心 — 不要因为会话“慢”而终止它们
  3. 使用 process:log 监控 — 在不干扰的情况下检查进度
  4. 构建时使用 --full-auto — 自动批准更改
  5. 审查时使用普通模式 — 无需特殊标志
  6. 并行运行是可行的 — 对于批量工作,可以同时运行多个 Codex 进程
  7. 切勿在 ~/clawd/ 中启动 Codex — 它会读取你的灵魂文档并对组织结构产生奇怪的想法!使用目标项目目录或 /tmp 进行空白会话
  8. 切勿在 ~/Projects/clawdbot/ 中检出分支 — 那是 LIVE Clawdbot 实例!克隆到 /tmp 或使用 git worktree 进行 PR 审查

PR 模板(Razor 标准)

向外部仓库提交 PR 时,请使用此格式以确保质量和对维护者友好:

## 原始提示
[确切的请求/问题陈述]

## 功能说明
[高层次描述]

**特性:**
- [关键特性 1]
- [关键特性 2]

**使用示例:**
```bash
# 示例
命令示例
```

## 功能意图(对维护者友好)
[为何有用,如何契合,支持的工作流]

## 提示历史(带时间戳)
- YYYY-MM-DD HH:MM UTC:[步骤 1]
- YYYY-MM-DD HH:MM UTC:[步骤 2]

## 测试方式
**手动验证:**
1. [测试步骤] - 输出:`[结果]`
2. [测试步骤] - 结果:[结果]

**测试的文件:**
- [详情]
- [边界情况]

## 会话日志(实现过程)
- [研究了什么]
- [发现了什么]
- [花费的时间]

## 实现细节
**新增文件:**
- `path/file.ts` - [描述]

**修改的文件:**
- `path/file.ts` - [变更]

**技术说明:**
- [细节 1]
- [细节 2]

---
*由 Razor 🥷 - Mariano 的 AI 代理提交*

关键原则:
1. 人工编写的描述(无 AI 废话)
2. 为维护者说明功能意图
3. 带时间戳的提示历史
4. 如果使用 Codex/代理,提供会话日志

示例: https://github.com/steipete/bird/pull/22

21 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私 ·  条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 15 ms
Developed with Cursor