<header>

Hello world, just another WordPress site

</header>

วิธีทำให้ AI 2 ตัวทำงานร่วมกัน Claude เขียนโค้ด, Codex รีวิว

ทำไมต้องใช้ AI 2 ตัว?

ต้องเล่าก่อนว่าก่อนหน้านี้ผมใช้ Opus 4.7 /effort Max เขียน code แล้วมี bug อยู่พอสมควร ทำให้ผมต้องใช้ Codex 5.5 xhigh มารีวิว code อีกชั้นนึงเป็นการทำ Cross-check

ซึ่งเวลาใช้เนี่ย ผมก็เปิด 2 Terminal พอ Opus ทำเสร็จ ผมก็ให้ Codex ตรวจผ่าน git diff เมื่อตรวจแล้วเจอ bug ผมก็ copy paste ไปบอก Opus ซึ่งเป็นการกดมือทั้งหมด

ทำให้คิดว่า เราตวรทำ “agent-bridge” ให้ 2 ตัวคุยกันเองไปเลย
โดยที่ Opus รับบทวางแผน และ Execute ขั้น 1
และ Codex เป็น Auditor อีกที

เลยเกิดเป็นแนวคิด Agent Bridge ขึ้น จริงๆ ก็มีคนทำมาก่อนแล้วแหละ ผมก็ research และมาประยุคใช้กับงานตัวเอง ง่ายๆ คือเหมือน AI Orchestration

มาดูกันว่า Agent Bridge ทำงานยังไง
หลักการทำงานคือ การทำงานผ่าน handoff.md เป็นตัวกลาง

Terminal A
Claude Code
เขียน / แก้โค้ด
handoff.md
Bridge File
git diff + summary
Terminal B
Codex CLI
รีวิว + feedback
Terminal A
Claude Code
แก้ตาม feedback
Agent Bridge แก้ปัญหานี้โดยแยก role ออกจากกัน:
  • TERMINAL A Claude Code — implementer ทำงาน เขียนไฟล์ แก้ bug
  • BRIDGE handoff.md — shared file กลาง ส่ง git diff + summary
  • TERMINAL B Codex CLI — reviewer อ่าน diff รีวิวอย่างเป็นกลาง
ระบบทำงานอย่างไร
Terminal A $ claude > create landing page ⏺ Wrote index.html ✓ bridge-send triggered git diff ~/.agent-bridge/ handoff.md fswatch Terminal B $ codex exec ⚠ line 42: no error handling Quality: 7/10 feedback.md → Claude reads → fixes → loop Files: handoff.md = git diff + Claude summary feedback.md = Codex review output Scripts: bridge-send.sh = เขียน handoff.md bridge-watch.sh = รัน Codex อัตโนมัติ
ไฟล์ในระบบ
~/.agent-bridge/
~/.agent-bridge/
├── bridge-send.sh     # รับ stdout จาก Claude → เขียน handoff.md
├── bridge-watch.sh    # fswatch → trigger codex exec → เขียน feedback.md
├── bridge-loop.sh     # optional: Claude อ่าน feedback → แก้ → วนซ้ำ
├── handoff.md         # git diff + task summary (Claude → Codex)
└── feedback.md        # review output (Codex → Claude)
ขั้นตอนติดตั้ง

Prerequisites: Claude Code CLI Codex CLI Homebrew (หรือ AI อื่นๆ)

Step 1 — ให้ Claude สร้างทุกอย่างให้อัตโนมัติ

เปิด Terminal A แล้ว paste prompt นี้ให้ Claude เลย:

⬡ PROMPT — TERMINAL A (Claude Code)
Create a two-terminal AI agent bridge system. Do everything yourself:

1. Create directory ~/.agent-bridge/

2. Create ~/.agent-bridge/bridge-send.sh:
   - Accepts $1 as task description
   - Reads stdin (Claude's output)
   - Captures git diff and git status
   - Writes to ~/.agent-bridge/handoff.md with timestamp
   - Prints confirmation

3. Create ~/.agent-bridge/bridge-watch.sh:
   - Uses fswatch to monitor ~/.agent-bridge/handoff.md
   - When file changes, reads the content
   - Pipes review prompt to: codex exec --color never
   - Saves output to ~/.agent-bridge/feedback.md
   - Prints feedback to terminal

4. Create ~/.agent-bridge/bridge-loop.sh:
   - Watches ~/.agent-bridge/feedback.md for changes
   - When updated, reads feedback and passes to Claude --print
   - Pipes result back through bridge-send.sh

5. chmod +x all three scripts

6. Check if fswatch is installed — if not: brew install fswatch

7. Create or update ~/.claude/CLAUDE.md with:
   "After every task, run: git diff HEAD | ~/.agent-bridge/bridge-send.sh [task name]
    After bridge-send, watch ~/.agent-bridge/feedback.md and when it updates,
    read it and fix the issues, then run bridge-send again."

8. Print the exact command to run in Terminal B when done.
Step 2 — เปิด Git ในโปรเจกต์

Bridge ใช้ git diff ส่ง diff ให้ Codex ถ้าไม่มี git repo Codex จะไม่เห็นโค้ด:

Step 3 — เปิด Codex ใน Terminal B
⬡ PROMPT — TERMINAL B (Codex CLI)
Run ~/.agent-bridge/bridge-watch.sh and stay running.

When ~/.agent-bridge/handoff.md changes, you will receive its content
as a code review request. Respond as a senior engineer:
- Identify bugs with file:line references
- Flag missing error handling
- Note security issues
- Rate quality 1–10

Start watching now.

หลังลงเสร็จแล้ว แค่พิมพ์ task ตามปกติใน Claude
ตัวอย่าง:

Terminal A — Claude Interactive
> create a contact form page, save as contact.html

⏺ Write(contact.html)
  ⎿  Wrote 490 lines to contact.html

⏺ Bash(git diff HEAD | ~/.agent-bridge/bridge-send.sh "contact form")
  ⎿  [bridge-send] Handoff written at 02:34:13

# Claude ทำเองอัตโนมัติ ไม่ต้อง copy paste อะไรเพิ่ม
Troubleshoot:
แก้ไข bridge-watch flag (ถ้า Codex เวอร์ชันต่างกัน)
⬡ PROMPT — แก้ Codex Flag
fix bridge-watch.sh — check codex --help first,
then update the flag to the correct non-interactive subcommand,
then run: git diff HEAD | ~/.agent-bridge/bridge-send.sh "fix bridge flag"
ให้ Claude แก้ตาม Codex feedback
⬡ PROMPT — Fix from Review
fix all issues from code review: $(cat ~/.agent-bridge/feedback.md),
then run: git diff HEAD | ~/.agent-bridge/bridge-send.sh "fix pass 1"
Update CLAUDE.md ให้วนลูปอัตโนมัติ
Workflow เมื่อทำเสร็จแล้วจะเป็นแบบนี้
  1. 1 Terminal B เปิด Codex และรัน bridge-watch.sh ทิ้งไว้ก่อนเสมอ
    ~/.agent-bridge/bridge-watch.sh
  2. 2 Terminal A เปิด Claude interactive แล้ว cd เข้าโปรเจกต์
    cd ~/my-project && claude
  3. 3 Terminal A พิมพ์ task ตามปกติเลย — Claude จะ trigger bridge เองหลังทำเสร็จ
    > create a product card component
  4. 4 AUTO bridge-send.sh เขียน handoff.md พร้อม git diff อัตโนมัติ
  5. 5 Terminal B fswatch detect การเปลี่ยนแปลง → Codex รีวิวอัตโนมัติ → เขียน feedback.md
  6. 6 Terminal A Claude อ่าน feedback.md → แก้โค้ด → trigger bridge ใหม่ (ถ้า enable auto loop)
  7. 7 DONE วนซ้ำจนกว่า Codex ให้คะแนน 8/10+ หรือไม่มี issue ที่ critical

ถ้า setup “Loop” ได้ถูกต้อง จะได้ Agents ที่ทำงานออโต้ได้เลย
ตัวอย่าง:

Full Auto Loop
Claude ทำ task
git diff HEAD | bridge-send.sh  ← CLAUDE.md บังคับให้ทำ
handoff.md updated
fswatch fires → codex exec  ← bridge-watch.sh
feedback.md written
Claude reads feedback → fixes code  ← CLAUDE.md บังคับให้ทำ
git diff HEAD | bridge-send.sh “auto-fix pass”
Codex reviews again…
Quality: 8/10 ✓ no critical issues  ← หยุดเอง
Debug & แก้ปัญหา
Debug Table
ปัญหา สาเหตุ & วิธีแก้
claude –print เงียบนาน ปกติครับ รอ 30–60 วิ Claude คิดอยู่ ถ้าเกิน 2 นาทีค่อย Ctrl+C แล้วทดสอบแยก
Codex ไม่รีวิว ทั้งที่ handoff.md มีข้อมูล เช็ค bridge-watch.sh ว่า fswatch รันอยู่ไหม:
fswatch -o ~/.agent-bridge/handoff.md &
echo "test" >> ~/.agent-bridge/handoff.md
error: unexpected argument ‘–full-auto’ Codex version ใหม่เปลี่ยน flag — แก้ bridge-watch.sh line 34:
codex --full-auto -qcodex exec --color never
Codex เห็น diff ว่าง / review ไม่มี code ยังไม่ได้ init git repo:
git init && git commit --allow-empty -m "init"
Claude ไม่ trigger bridge หลังทำ task CLAUDE.md ยังไม่มี instruction — รัน prompt setup ใหม่ หรือตรวจสอบ:
cat ~/.claude/CLAUDE.md
claude –print หยุดรอ approval ไม่ write file ใช้ flag เพิ่ม:
claude --print --dangerously-skip-permissions "task"
หรือใช้ interactive mode แทน
feedback.md ว่างเปล่า codex exec fail silently — เช็ค:
echo "test" | codex exec --color never
แล้วดูว่า error อะไรออกมา
ตัวอย่าง Loop ซ้าย Claude กำลังแก้ จาก codex review
คำสั่ง Debug ที่ใช้บ่อย
# ดู handoff.md ล่าสุด
$ cat ~/.agent-bridge/handoff.md
# ดู feedback จาก Codex
$ cat ~/.agent-bridge/feedback.md
# ทดสอบ bridge-send โดยตรง
$ echo "test output" | ~/.agent-bridge/bridge-send.sh "manual test"
# ทดสอบ fswatch
$ fswatch -o ~/.agent-bridge/handoff.md &
$ echo "trigger" >> ~/.agent-bridge/handoff.md
# ดู codex flags ที่ถูกต้อง
$ codex --help
# ดู CLAUDE.md
$ cat ~/.claude/CLAUDE.md

Posted

in

,

by