Quy trình

Bàn giao công việc từ Claude Code sang Codex mà không mất ngữ cảnh

Bạn hết hạn mức Claude khi đang refactor dở, hoặc muốn có thêm ý kiến thứ hai. Đây là những gì cần mang sang agent tiếp theo, và ba cách để làm điều đó.

Bàn giao công việc từ Claude Code sang Codex mà không mất ngữ cảnh

Trả lời nhanh

Không agent nào tự nạp bản ghi hội thoại của agent kia, nên bạn mang công việc sang bằng một bản tóm tắt bàn giao: mục tiêu và chỉ dẫn cuối cùng của bạn, kế hoạch, các file đã đụng tới và trạng thái git, còn bản thân code thì nằm sẵn trên đĩa. Giữ các quy tắc dùng chung trong AGENTS.md, commit hoặc git stash create phần việc đang làm dở, rồi tự viết bản tóm tắt, tạo nó bằng một công cụ như hop, hoặc để một ứng dụng như Maude dựng nó khi bạn chuyển agent.

Bạn có thể chuyển từ Claude Code sang Codex ngay giữa một công việc mà không phải làm lại từ đầu, nhưng không agent nào tự tiếp nhận cuộc trò chuyện của agent kia. Thứ mang công việc sang là một bản tóm tắt ngắn: mục tiêu, kế hoạch, các file đã đụng tới, trạng thái git và chỉ dẫn cuối cùng của bạn, cộng với code nằm trên đĩa. Bạn có thể tự tay viết bản tóm tắt đó, tạo nó bằng một công cụ nhỏ, hoặc dùng một ứng dụng tự dựng nó khi bạn chuyển agent.

Vì sao cần bàn giao công việc giữa các agent lập trình

  • Bạn chạm hạn mức. Đây là lý do phổ biến nhất. Gói Claude của bạn hết lượt dùng giữa lúc đang refactor, trong khi gói ChatGPT vẫn còn. Chờ hạn mức được làm mới thì mất hàng giờ, còn bắt đầu lại từ đầu trong Codex thì mất ngữ cảnh.
  • Ý kiến thứ hai. Một agent cứ loay hoay mãi với một bug. Một model khác đọc cùng đoạn code với ngữ cảnh sạch thường phát hiện ra điều mà agent đầu đã không còn nhìn thấy. Nhờ một agent review diff của agent kia trước khi commit cũng chẳng tốn bao nhiêu.
  • Mỗi agent mạnh một kiểu. Có người dùng một agent để lập kế hoạch và agent khác cho những thay đổi dài, mang tính cơ học, hoặc giữ một agent cho ngôn ngữ hay framework mà nó xử lý tốt với họ. Agent nào giỏi việc gì thay đổi theo từng lần ra model mới, nên hãy coi đó là đánh giá của riêng bạn, không phải quy tắc.

Codex có đọc được phiên của Claude Code không?

Không tự đọc được. Cả hai agent đều lưu toàn bộ bản ghi hội thoại dưới dạng file JSONL trên đĩa. Claude Code ghi vào ~/.claude/projects/<project>/<session>.jsonl (tài liệu Claude Code), còn Codex ghi vào các file rollout-*.jsonl theo ngày trong ~/.codex/sessions/. Mỗi agent tiếp tục được phiên của chính nó (claude --resume, codex resume), nhưng không agent nào có tài liệu về việc nạp phiên của agent kia. Lệnh /import của Claude Code mang sang cấu hình của agent khác, như file chỉ dẫn, MCP server và skill. Nó không mang cuộc trò chuyện sang.

Bạn có thể trỏ agent mới tới file bản ghi hội thoại gốc. Trên thực tế, đó là một bản tóm tắt tồi: dài, đầy output của tool, và chôn vùi đúng thứ duy nhất agent mới cần, tức là bạn đang ở đâu và bước tiếp theo là gì.

Ngữ cảnh nào cần mang theo

Ngữ cảnhVì sao quan trọngLấy từ đâu
Mục tiêu và chỉ dẫn cuối cùngAgent mới phải biết thế nào là "xong" và yêu cầu gần nhất của bạn là gìPrompt cuối cùng của bạn, nguyên văn
Kế hoạch / danh sách todoTránh để agent lên kế hoạch lại cho phần việc đã được xác định phạm viDanh sách todo của agent đang rời đi
Các file đã đụng tớiCho agent biết cần đọc ở đâu trước khi sửaCác chỉnh sửa trong bản ghi hội thoại, cộng với git status
Trạng thái gitNhánh, HEAD và các thay đổi chưa commit. Thiếu chúng, agent mới có thể làm lại phần việc đã xong hoặc commit đè lên nógit status, git diff --stat
Các quyết định và ngõ cụtĐể agent mới không thử lại một cách tiếp cận đã thất bạiĐoạn hội thoại gần đây, hoặc một bản tóm tắt viết sẵn

Các quy ước của dự án, như lệnh build và code style, hoàn toàn không nên nằm trong bản tóm tắt. Chỗ của chúng là trong các file chỉ dẫn mà cả hai agent vốn đã đọc.

Tự làm: chỉ dẫn dùng chung với AGENTS.md và CLAUDE.md

Codex dựng chỉ dẫn của nó từ các file AGENTS.md, lấy từ ~/.codex/ và từ gốc git xuống tới thư mục làm việc của bạn (tài liệu AGENTS.md của Codex). Từ v2.1.277, Claude Code cũng đọc AGENTS.md, nhưng mặc định chỉ khi không có CLAUDE.md hay CLAUDE.local.md trong thư mục làm việc hoặc các thư mục cha (tài liệu về memory của Claude Code). Cách thiết lập đơn giản nhất mà cả hai agent đều đọc được: giữ quy tắc dùng chung trong AGENTS.md, và nếu cần quy tắc chỉ dành cho Claude, hãy mở đầu CLAUDE.md bằng một lệnh import:

@AGENTS.md

## Claude Code
Use plan mode for changes under src/billing/.

Chiều ngược lại cũng được. Thiết lập project_doc_fallback_filenames của Codex trong ~/.codex/config.toml cho phép nó đọc thêm các tên file khác khi không có AGENTS.md.

Tự làm: một file bàn giao và git

Trước khi chuyển, hãy nhờ agent đang rời đi viết bản tóm tắt khi nó vẫn còn ngữ cảnh, nếu nó vẫn còn lượt dùng:

Write HANDOFF.md for another coding agent taking over this task:
the goal, what is done, what is in progress or broken, decisions
and dead ends, files touched, and the exact next steps.
Don't change any other file.

Sau đó làm cho trạng thái code thật rõ ràng. Commit phần việc đang dở lên một nhánh là cách rõ ràng nhất. Nếu không muốn commit, git stash create ghi lại các thay đổi chưa commit trên file đã được theo dõi thành một commit object mà không động vào working tree, cho bạn một điểm cố định để diff nếu agent tiếp theo làm hỏng việc. Khởi động agent kia trong cùng thư mục và bảo nó đọc HANDOFF.md và đọc lại các file trước khi sửa.

Các công cụ tự động hóa việc này

hop (MIT) làm việc này chỉ bằng một lệnh: hop codex để chuyển từ Claude Code sang Codex, hop cc cho chiều ngược lại. Nó đọc thẳng các file phiên của agent nguồn, nên vẫn hoạt động cả khi agent đó đã hết quota. Bạn có thể chạy ! hop codex ngay bên trong một phiên Claude Code đang bị kẹt. Nó viết một file bàn giao gồm các chỉ dẫn của bạn, nhánh git và đoạn hội thoại gần đây, trong giới hạn dung lượng (mặc định 48 KB), rồi mở agent kia trong một tab terminal mới. Các dự án tương tự có cli-handoff và session-handoff.

Cách làmDùng được khi hết quotaCông sức mỗi lần chuyểnMang theo cuộc trò chuyện
Chỉ dùng chung AGENTS.mdCóKhông tốn gì, nhưng chỉ mang quy ước, không mang trạng thái công việcKhông
HANDOFF.md do agent viết + gitChỉ khi agent đang rời đi vẫn còn trả lờiMột prompt và một commitDưới dạng tóm tắt
hop và các CLI tương tựCóMột lệnhCác lượt gần đây, có giới hạn dung lượng
Ứng dụng có sẵn tính năng chuyển agentCóMột chạmTùy ứng dụng

Bàn giao hoạt động thế nào trong Maude

Maude chạy các agent trên máy chủ của chính bạn, và một phiên không bị gắn chặt với một agent. Khi phiên đang rảnh, bạn có thể chuyển nó, chẳng hạn từ Claude Code sang Codex (hoặc OpenCode, Grok Build hay Antigravity), ngay trên điện thoại. Daemon trên máy chủ dựng bản tóm tắt từ chính dữ liệu ghi lại của phiên, chứ không phải từ một bản tóm tắt viết vội trong lúc bí bách:

  • một đoạn mở đầu cho agent mới biết nó đang tiếp quản, rằng các file trên đĩa là nguồn sự thật, và nó nên đọc lại trước khi sửa
  • chỉ dẫn cuối cùng của bạn, được ghim lại
  • kế hoạch hoặc danh sách todo hiện tại
  • các file đã đụng tới, lấy từ các chỉnh sửa của agent cộng với các file git báo là đã thay đổi
  • trạng thái git: nhánh, HEAD, status rút gọn và diff stat. Phần việc chưa commit cũng được chụp lại bằng git stash create và giữ dưới một ref, không động vào working tree của bạn
  • đoạn hội thoại gần đây, nguyên văn, tối đa khoảng 120.000 ký tự
  • một đường dẫn tới toàn bộ bản ghi hội thoại, được xuất ra markdown vào .maude/handoff/ trong dự án và không xuất hiện trong git status

Bản tóm tắt được đặt trước tin nhắn tiếp theo của bạn gửi cho agent mới, và khung chat hiển thị một dải phân cách mà bạn có thể mở ra để đọc chính xác những gì đã được gửi. Vì bản tóm tắt được dựng từ dữ liệu ghi lại của phiên, nó không phụ thuộc vào việc agent đang rời đi còn trả lời được hay không, điều quan trọng nhất là khi agent đó vừa chạm hạn mức.

Chuyển ngược lại thì khác. Nếu agent bạn quay lại đã từng làm việc trong phiên này và hỗ trợ tiếp tục phiên, Maude sẽ tiếp tục cuộc trò chuyện riêng của agent đó và chỉ gửi những gì đã diễn ra trong lúc nó vắng mặt. Nó không nhận thêm một bản tóm tắt đầy đủ lần thứ hai.

Maude không phải ứng dụng duy nhất làm được việc này. Happier cho phép bạn đổi engine ngay giữa cuộc trò chuyện và cung cấp cho agent mới các tool để đọc bản ghi hội thoại trước đó. AgentsRoom dựng một bản tóm tắt bàn giao gồm các file đã sửa, hoạt động của phiên và câu trả lời cuối cùng khi bạn đổi nhà cung cấp. Chúng tôi so sánh ưu nhược điểm trong Maude vs Happier. Để chọn cặp agent nào, hãy xem Claude Code vs Codex vs OpenCode.

Câu hỏi thường gặp

Codex có đọc được phiên của Claude Code không?
Không tự đọc được. Claude Code lưu bản ghi hội thoại dạng JSONL trong ~/.claude/projects/, và Codex không nạp chúng. Bạn mang công việc sang bằng một bản tóm tắt: tự viết, tạo bằng một công cụ như hop, hoặc dùng một ứng dụng tự dựng nó khi bạn chuyển agent.
AGENTS.md và CLAUDE.md có xung đột nhau không?
Không, nhưng mặc định Claude Code chỉ đọc AGENTS.md khi không có CLAUDE.md. Để dùng chung một file, hãy giữ quy tắc trong AGENTS.md và đặt @AGENTS.md ở đầu CLAUDE.md. Codex đọc AGENTS.md sẵn.
Nếu tôi chạm hạn mức Claude giữa chừng thì sao?
Commit hoặc stash phần việc đang dở, rồi giao công việc cho agent khác kèm một bản tóm tắt gồm kế hoạch, các file đã đụng tới, trạng thái git và chỉ dẫn cuối cùng của bạn. Những công cụ đọc file phiên, như hop hay cơ chế bàn giao của Maude, không cần Claude trả lời. Khi hạn mức được làm mới, bạn có thể chuyển lại.
Đổi agent có làm mất các thay đổi chưa commit không?
Không. Các file vẫn nằm trên đĩa, và agent mới làm việc trong cùng thư mục. Commit lên một nhánh hoặc chạy git stash create trước sẽ cho bạn một điểm cố định để so sánh nếu agent tiếp theo làm hỏng việc.

Chạy agent từ điện thoại của bạn

Maude đưa Claude Code, Codex, OpenCode, Grok Build và Antigravity lên máy chủ của chính bạn — miễn phí 7 ngày trên iPhone, iPad và Android.

Download Maude on the App Store Get Maude on Google Play