DEV Community

Cover image for Cara membuat Codex CLI menyerahkan tugas ke agent, team, atau loop di osFoundry
BBT for BBT Indonesia

Posted on

Cara membuat Codex CLI menyerahkan tugas ke agent, team, atau loop di osFoundry

Setelah selesai, Codex CLI bisa menyerahkan pekerjaan yang sebaiknya tidak ia kerjakan sendiri ke sebuah session di osFoundry: agent session, team session, atau loop. Ia mengirim tujuan, ringkasan dari apa yang sudah ia ketahui, dan output yang ia harapkan kembali. Pemilik session mendapat notifikasi lalu mengklik Accept and run (terima dan jalankan) atau Decline (tolak). Setelah run selesai, Codex membaca hasilnya di sesi terminal yang sama dan melanjutkan pekerjaannya. Kalau kamu memberinya kursi Runner, ia bisa memulai run yang dibatasi sendiri, tanpa klik.

Siapa mengerjakan apa

Codex CLI osFoundry
Login Login Codex milikmu sendiri. Codex menyimpan token OAuth osFoundry Menyetujui koneksi sekali, untuk satu workspace dan scope yang kamu centang
Apa yang bisa dijangkau Session tempat ia diundang, lewat tujuh tool *_session_* Ditentukan oleh kursinya: Viewer membaca, Contributor memposting catatan dan mengusulkan handoff, Runner juga bisa meminta run
Siapa yang mengerjakan Codex tetap bekerja di repository-mu Session berjalan di agent runtime-nya sendiri, dengan agent, tool, dan pengaturan model miliknya
Siapa yang menyetujui Codex bertanya dulu sebelum setiap tool yang menulis (default_tools_approval_mode = "writes") Handoff menunggu Accept and run dari pemilik session. Kursi Runner adalah persetujuan tetap untuk request_session_run
Berapa lama berjalan max_rounds 1 sampai 10 di pemanggilan Ditampilkan ke pemilik sebagai "Up to N rounds on your agent runtime"
Apa yang kembali Status dan hasil task yang dimulai koneksi ini, serta catatan yang ditujukan kepadanya Analisis internal agent di session tetap berada di dalam osFoundry

Setup

1. Buat koneksinya

Di osFoundry, klik ikon kunci di header dan buka tab Connected ("Connected agents"). Di bagian "Connect in three steps", atur Assistant ke Other MCP client, beri nama tampilan seperti Codex CLI, lalu klik Add assistant. Pemilik akan melihat nama ini di setiap handoff, jadi pilih nama yang mudah ia kenali.

Tab Connected agents dengan koneksi Codex CLI

Contoh: Tab Connected agents dengan koneksi Codex CLI

2. Tambahkan server ke Codex, dengan scope run

codex mcp add osfoundry --url https://api.osfoundry.io/api/v1/external-mcp
Enter fullscreen mode Exit fullscreen mode

Lalu buka ~/.codex/config.toml dan batasi tabelnya sesuai kebutuhan pekerjaan ini:

[mcp_servers.osfoundry]
url = "https://api.osfoundry.io/api/v1/external-mcp"
scopes = ["osfoundry:read", "osfoundry:write", "osfoundry:run"]
default_tools_approval_mode = "writes"
enabled_tools = [
  "list_granted_resources",
  "list_project_resources",
  "read_session_state",
  "read_session_task_result",
  "read_session_mail",
  "post_session_note",
  "propose_session_handoff",
  "cancel_session_handoff",
  "request_session_run",
]
Enter fullscreen mode Exit fullscreen mode

osfoundry:run adalah scope di balik request_session_run. Hapus saja kalau Codex cukup mengusulkan. Tool handoff dan catatan membutuhkan osfoundry:write, tiga tool pembaca membutuhkan osfoundry:read. Dengan "writes", Codex akan bertanya sebelum menjalankan empat tool yang tidak ditandai read-only, dan menjalankan tool pembaca tanpa bertanya.

3. Login

codex mcp login osfoundry
Enter fullscreen mode Exit fullscreen mode

Browser akan membuka halaman "Connect an agent" di osFoundry. Dengan scope di atas, "Requested capabilities" menampilkan tiga baris. Baris ketiga adalah "Run sessions where you grant a runner role". Pilih workspace, pilih "Use pending: Codex CLI", centang kotak persetujuan, lalu klik Connect.

4. Tambahkan koneksi ke project yang berisi session

Kembali ke tab Connected, koneksinya sekarang bertuliskan "Connected." Di bagian Projects, pilih project lalu klik Add to project. Dengan begitu koneksi bisa melihat session yang memenuhi syarat di project tersebut. Ia belum bisa menulis ke session mana pun.

Bagian Projects dengan satu project yang sudah ditambahkan

Contoh: Bagian Projects dengan satu project yang sudah ditambahkan

5. Beri kursi di session

Di bagian bawah ada "Agent, Team, and Loop sessions". Baris bantuannya sudah menjelaskan semuanya: "Invite it to a session as Contributor to post notes and propose handoffs, or Runner to also request runs. A handoff still needs the session owner's approval."

Agent, Team, and Loop sessions
  [ Team session ▾ ]  [ Release desk ▾ ]  [ Contributor ▾ ]  [ Save role ]
Enter fullscreen mode Exit fullscreen mode

Bagian Agent, Team, and Loop sessions dengan Codex CLI sebagai Contributor di team session

Contoh: Bagian Agent, Team, and Loop sessions dengan Codex CLI sebagai Contributor di team session

Daftar session hanya menampilkan session dari project yang sudah ditambahi koneksi ini. Pilih tipe, session, dan role, lalu klik Save role. Mulailah dengan Contributor. Kalau nanti kamu menyimpan Runner untuk session yang sama, role sebelumnya akan diganti.

Run sungguhan

Codex tidak terpasang di mesin tempat artikel ini ditulis, jadi session di bawah adalah contoh simulasi. Nama tool dan nama argumennya sama dengan yang dikembalikan server live dari tools/list, dengan prefiks mcp__osfoundry__ yang ditambahkan Codex ke tool MCP. Repository, session, dan semua nilainya adalah konten demo.

Example (simulated)

> The CSV export fix is merged. Hand the customer note and the KB update
  to the osFoundry Release desk team, then tell me what they wrote.

• mcp__osfoundry__list_granted_resources {}
  ← 1 project: "Billing v2"
• mcp__osfoundry__list_project_resources {"project_id": "…", "resource_type": "team_session",
      "search": "release"}
  ← team_session "Release desk"
• mcp__osfoundry__propose_session_handoff {
      "session_type": "team_session", "session_id": "…",
      "goal": "Write the customer note for the CSV export fix and update the KB article on exports.",
      "context_summary": "Exports over 10k rows were cut at 10,000. Fixed in PR #212 (streams rows, no cap). Affects plans with scheduled exports. No data was lost; re-running an export now returns all rows.",
      "requested_output": "Draft note (<120 words) and the KB article diff, for review.",
      "max_rounds": 4, "idempotency_key": "codex-csv-212-note"}
  [Codex asks: allow this tool call? → yes]
  ← handoff pending owner review

  (in osFoundry the owner opens "Codex CLI requests a handoff" → Review handoff
   → Handoffs → Outside assistant requests → Accept and run)

• mcp__osfoundry__read_session_state {"session_type": "team_session", "session_id": "…"}
  ← running, recent task "Requested by an outside assistant"
• mcp__osfoundry__read_session_task_result {"session_type": "team_session",
      "session_id": "…", "task_id": "…"}
  ← completed: draft note + KB diff
• mcp__osfoundry__post_session_note {"session_type": "team_session", "session_id": "…",
      "subject": "Thanks, one correction",
      "body": "The fix shipped in 3.18.2, not 3.18.1.", "idempotency_key": "codex-csv-212-fix"}
  [Codex asks: allow this tool call? → yes]

The Release desk drafted a 96-word note and a KB diff that replaces the
"exports are capped at 10,000 rows" paragraph. I posted a version
correction back to the session.
Enter fullscreen mode Exit fullscreen mode

Dari sisi pemilik, prosesnya singkat. Notifikasinya berbunyi "Codex CLI requests a handoff" dengan "Review the request in Release desk." dan tombol Review handoff. Tombol itu membuka tab Handoffs di session. Di bawah "Outside assistant requests", tujuan ditampilkan utuh, "Context and expected output" bisa dibuka, dan baris "Up to 4 rounds on your agent runtime" menunjukkan seberapa jauh run boleh berjalan. Accept and run memasukkannya ke antrean ("Handoff accepted and run queued"). Decline menghentikannya.

Notifikasi Codex CLI requests a handoff dengan tombol Review handoff

Contoh: Notifikasi Codex CLI requests a handoff dengan tombol Review handoff

Permintaan asisten luar yang tertunda di tab Handoffs sesi, dengan Accept and run dan Decline

Contoh: Permintaan asisten luar yang tertunda di tab Handoffs sesi, dengan Accept and run dan Decline

Kalau Codex mengirim hal yang salah, cancel_session_handoff dengan handoff_id akan menariknya kembali, selama pemilik belum menerimanya.

Di mana batasnya

Usulan dan run sengaja dibuat menjadi dua tool. propose_session_handoff meminta persetujuan seseorang. Tool ini butuh osfoundry:write, kursi Contributor, serta context_summary dan requested_output yang bisa dibaca manusia, dan tidak ada yang berjalan sampai pemilik mengklik. request_session_run melewati klik itu. Tool ini butuh osfoundry:run dan kursi Runner yang sudah diberikan pemilik sebelumnya, jadi kliknya sudah dilakukan sekali, saat kursi itu diberikan. Keduanya membatasi max_rounds sampai 10. Usulan membatasi goal sampai 5.000 karakter, run sampai 10.000.

Codex melihat hasil, bukan proses berpikirnya. read_session_task_result hanya mengembalikan task yang dimulai koneksi ini. read_session_mail mengembalikan catatan yang ditujukan ke koneksi dan catatan yang ia posting sendiri, dan deskripsi tool-nya menyebut "Internal agent analysis is excluded." post_session_note menambahkan catatan dengan nama pengirim yang bisa dibalas oleh agent di session, dan catatan ini "does not trigger an automatic run".

Session berjalan di tempat yang sama seperti biasanya. Handoff tidak membawa model, key, atau repository Codex ke osFoundry. Yang dibawa hanya teks, dan session bekerja dengan agent dan tool-nya sendiri. Apa pun yang hanya ada di desktop, seperti folder lokal atau item yang belum disinkronkan, tidak bisa dijangkau. Respons initialize dari server juga menyebutkannya: "Local-only data is unavailable to cloud clients."

Mencabut akses cukup satu klik. Hapus kursinya di tab Connected atau cabut koneksinya, dan panggilan session berikutnya dari Codex akan ditolak.

Untuk percobaan pertama, pilih loop yang selama ini kamu jalankan manual. Undang Codex CLI ke loop itu sebagai Contributor, selesaikan satu perubahan di repository-mu, lalu minta Codex mengusulkan run berikutnya dari loop tersebut beserta ringkasan perubahannya. Handoffs menunjukkan cara agent osFoundry sendiri meneruskan konteks antarlangkah, dan agent sessions menunjukkan letak tab Handoffs.

Top comments (0)