Delegasi subagent
Extension pi-subagents memberikan Selesai child agent yang fokus dan berjalan di workspace yang sama. Anda dapat meminta review, eksplorasi, implementasi, audit paralel, atau pekerjaan background dalam bahasa alami; Selesai menerjemahkannya menjadi tool call subagent atau slash command.
Dibundel bersama Selesai
Dimuat otomatis bersama Selesai; tidak diperlukan npm install per ekstensi.
Penyiapan dan prasyarat
- Extension ini dibundel bersama Selesai. Dimuat otomatis; tidak perlu diinstal terpisah.
- Model Selesai harus memiliki API key yang valid.
- Opsional: untuk pencarian web agen
researcher, pasang tooling pencarian web; jika tidak, agen menggunakan tool yang tersedia. - Opsional: integrasi permission-system bekerja ketika pi-subagents dan
@gotgenes/pi-permission-systemkeduanya terpasang.
Yang disiapkan
- Mendaftarkan tool
subagentuntuk run single, paralel, dan berantai. - Mendaftarkan keluarga slash command:
/run,/chain,/parallel,/run-chain,/subagents,/subagent-cost,/subagents-doctor,/subagents-stop,/subagents-models,/subagents-profiles,/subagents-load-profile,/subagents-refresh-provider-models,/subagents-generate-profiles,/subagents-check-profile, plus shortcut prompt-workflow seperti/parallel-review. - Mendaftarkan invokasi agen inline:
#nama-agentdi mana pun dalam pesan (awal, tengah, atau akhir) menjalankan agen tersebut secara langsung, dan mengetik#di editor melengkapi agen yang terinstal secara otomatis. - Membuat artifact lifecycle untuk run async di bawah direktori hasil subagent Selesai; artifact run default-nya di direktori sesi, bukan di checkout proyek (
.pi-subagents/). - Menyetel
SELESAI_SUBAGENT_PARENT_SESSIONdi proses child untuk forwarding permission-system.
Yang dapat dikonfigurasi
Delegasi subagent mendukung konfigurasi tingkat ekstensi ditambah pengaturan user/proyek yang mengganti agent, model, thinking, ekstensi, dan anggaran runtime bawaan.
Lokasi dan preseden konfigurasi
- Konfigurasi ekstensi
~/.selesai/agent/extensions/subagent/config.json
Terendah; berlaku kecuali ditimpa oleh pengaturan user/proyek atau argumen pemanggilan eksplisit. - Pengaturan user
~/.selesai/agent/settings.json
Mengganti default ekstensi; ditimpa oleh pengaturan proyek. - Pengaturan proyek
.selesai/settings.json
Lapis persisten tertinggi untuk nilai agent berbasis pengaturan. - Preseden per pemanggilan
tool/slash arguments and agent frontmatter
Argumen pemanggilan eksplisit dan frontmatter agent mengalahkan semua lapisan konfigurasi.
Pengaturan
| Kunci / path | Tipe, default, dan nilai | Deskripsi |
|---|---|---|
asyncByDefault | boolean Default: false | Jalankan pemanggilan subagent tunggal di latar belakang secara default. |
forceTopLevelAsync | boolean Default: false | Paksakan pemanggilan subagent tingkat atas untuk berjalan secara asinkron. |
fleetView | boolean Default: true | Tampilkan panel fleet yang dapat dinavigasi seperti Claude Code di bawah editor. |
asyncWidget | boolean Default: true when fleetView disabled, otherwise false | Tampilkan widget async runs legacy di atas editor. |
toolDescriptionMode | string Default: "compact" Nilai yang diizinkan: "full", "compact", "custom" | Varian deskripsi tool subagent yang menghadap parent. Default: compact. |
waitTool | boolean | object Default: (not configured) | Daftarkan tool wait/notify untuk subagent. Berikan true atau { enabled: true }. |
defaultSessionDir | string Default: (system temp or session path) | Direktori dasar untuk sesi subagent bila tidak ada path eksplisit. |
singleRunOutputBaseDir | string Default: (not configured) | Direktori dasar untuk artefak output single-run. |
maxSubagentDepth | number Default: 2 | Kedalaman bersarang subagent maksimum untuk sesi ini. |
maxSubagentSpawnsPerSession | number Default: unlimited | Batas kumulatif opsional pembuatan subagent dalam satu sesi. 0 berarti tidak terbatas. |
maxWorkflowAutoRelaunches | number Default: 12 | Berapa kali workflow berskrip async boleh me-relaunch otomatis dengan budget fan-out baru setelah budget habis sebelum goal bersih. 0 berarti tidak terbatas. |
globalConcurrencyLimit | number Default: 20 | Batas global tugas subagent yang berjalan bersamaan dalam satu run. |
control | object Default: (disabled) | Notifikasi kontrol siklus hidup: enabled, threshold (ms/turn/token), jumlah failed-tool, channel (event/async/intercom), dan notifyOn events. |
completionBatch | object Default: (disabled) | Pengelompokan smart completion: enabled, debounceMs, maxWaitMs, stragglerDebounceMs, stragglerMaxWaitMs, stragglerWindowMs. |
turnBudget | object Default: (not configured) | Anggaran turn: maxTurns, graceTurns opsional. |
toolBudget | object Default: (not configured) | Anggaran tool: batas hard, batas soft opsional, dan daftar block atau "*" opsional. |
parallel.maxTasks | number Default: 8 | Jumlah tugas paralel maksimum default untuk run paralel tingkat atas. |
parallel.concurrency | number Default: 4 | Konkurensi default untuk run paralel tingkat atas. |
chain.dynamicFanout.maxItems | number Default: (not configured) | Jumlah item maksimum yang dihasilkan oleh langkah chain fan-out dinamis. |
worktreeSetupHook | string Default: (not configured) | Path ke shell command yang dijalankan saat menyiapkan worktree paralel/chain. |
worktreeSetupHookTimeoutMs | number Default: (not configured) | Timeout untuk worktree setup hook. |
worktreeBaseDir | string Default: (system temp) | Direktori dasar untuk worktree paralel/chain. |
artifactDir | string Default: "project" (cwd/.pi-subagents) Nilai yang diizinkan: "project", "session", "temp" | Lokasi penyimpanan file artefak subagent. |
intercomBridge | object Default: (off) | Mode intercom bridge: off, fork-only, atau always; plus instructionFile opsional. |
proactiveSkillSubagents | object | false Default: (disabled) | Rekomendasikan subagent berbasis skill: enabled, minReferences, maxRecommendations, preferredAgent. Atur false untuk menonaktifkan. |
subagents.defaultModel | string Default: (not configured) | Model default untuk agent bawaan yang tidak menyatakan model. Proyek menimpa user. |
subagents.defaultThinking | string Default: (not configured) | Suffix thinking default untuk agent bawaan tanpa nilai thinking eksplisit. |
subagents.defaultExtensions | string[] Default: (not configured) | Ekstensi default yang ditambahkan ke agent tanpa deklarasi ekstensi. |
subagents.disableBuiltins | boolean Default: false | Nonaktifkan pemuatan definisi agent bawaan. |
subagents.disableThinking | boolean Default: false | Nonaktifkan default suffix thinking untuk agent bawaan. |
subagents.modelScope | object Default: (not configured) | Terapkan daftar izin pola model saat enforce true. allow adalah array pola bergaya glob (hanya * yang spesial). |
subagents.agentOverrides.<agent> | object Default: (not configured) | Penimpaan per agent untuk agent bawaan: model, thinking, fallbackModels, tools, mcpDirectTools, extensions, subagentOnlyExtensions, skills, systemPromptMode, defaultAsync, defaultTimeoutMs, defaultTurnBudget, defaultAcceptance, acceptanceRole, output, defaultReads, defaultProgress, interactive, maxSubagentDepth, completionGuard, toolBudget, memory, disabled. |
Variabel lingkungan
| Kunci / path | Deskripsi |
|---|---|
SELESAI_SUBAGENT_MAX_DEPTH | Penimpaan runtime untuk kedalaman subagent maksimum saat ini. |
SELESAI_SUBAGENT_MAX_SPAWNS_PER_SESSION | Penimpaan runtime untuk max spawns per sesi. Gunakan 0 untuk tidak terbatas. |
SELESAI_SUBAGENT_DEPTH | Dinaikkan otomatis untuk run subagent bersarang; jangan atur manual. |
SELESAI_SUBAGENT_PARENT_SESSION | Diteruskan ke sesi anak sehingga subagent async dapat menemukan parent-nya. |
Kontrol command, tool, dan shortcut
| Kunci / path | Deskripsi |
|---|---|
subagent({ ... }) | Pemanggilan tool subagent foreground atau async. |
/run, /chain, /parallel, /run-chain | Slash command untuk mode run umum. |
/subagents-doctor, /subagents-stop, /subagent-cost, /subagents-models, /subagents-profiles, /parallel-review | Command manajemen dan monitoring. |
/subagents-watchdog [status|on|off|model ...] | Status dan kontrol watchdog runtime. |
subagent({ action: "status" }) | Periksa status run dan aktivitas child. |
Bukti source
src/extensions/pi-subagents/src/shared/types.tssrc/extensions/pi-subagents/src/agents/agents.tssrc/extensions/pi-subagents/src/runs/shared/model-scope.ts
Yang dapat dilakukan
- Meminta dalam bahasa alami:
Ask reviewer to review this diff. - Menjalankan satu agen:
/run reviewer "review this plan". - Menjalankan satu agen secara inline:
#worker Ubah rencana ini menjadi rencana implementasi langkah-demi-langkah.—#nama-agentdi mana pun dalam pesan (awal, tengah, atau akhir) menjalankan agen tersebut secara langsung (seperti/run). Nama yang tidak dikenal atau ambigu hanya menghasilkan notifikasi dan input dikonsumsi bila mention berada di awal pesan; mention di tengah pesan (mis.issue #42) lolos tanpa diubah. - Menjalankan agen secara berurutan:
/chain scout "scan auth" -> oracle "design refactor" -> worker "implement it". - Menjalankan agen secara paralel:
/parallel reviewer "check correctness" -> reviewer "check tests". - Menggunakan sintaks grup inline:
/chain scout -> (reviewer "A" | reviewer "B") -> worker "fix". - Menjalankan di background: tambahkan
--bg. Memulai dari sesi forked: tambahkan--fork. - Memeriksa run aktif:
subagent({ action: "status" }). - Menghentikan run:
/subagents-stop <run-id>atausubagent({ action: "stop", id: "..." }). - Membatasi launch dengan
allowedAgentsscoped sesi, menambahkan checkpoint persetujuan chain, atau membatasi penggunaan agregat denganusageBudget. - Menemukan katalog delegasi runtime:
subagent({ action: "list" })menampilkan agen yang executable dan yang dibatasi capability ceiling beserta source, alias, peran, konteks, tool, dan deskripsi, serta mengembalikan katalog yang sama sebagai metadata mesin ber-version didetails.catalog. - Mendapatkan baris kapabilitas ringkas:
subagent({ action: "list", capabilities: true })mengembalikan baris ringkas tanpa prompt (status executable/terbatas, sumber pembatasan, runner, snapshot tool/model/eksekusi/output/extension) sebagai teks manusia plus metadata mesindetails.catalogber-version. - Mendapatkan saran routing berbasis tugas:
subagent({ action: "list", task: "..." })menambahkan rekomendasi satu agen kanonik (implementation atau read-only) untuk tugas tersebut, atau menjelaskan mengapa tidak ada yang aman. Ini hanya saran dan tidak pernah meluncurkan pekerjaan — jalankan agen yang direkomendasikan secara eksplisit. - Meminta child menghubungi supervisor:
contact_supervisor({ reason: "need_decision", message: "..." }).
Perintah, tool, dan shortcut
| Perintah / shortcut | Deskripsi |
|---|---|
subagent({ agent, task, async?, context?, model?, ... }) | Jalankan satu agen. |
subagent({ tasks: [...] }) | Jalankan agen secara paralel. |
subagent({ chain: [...] }) | Jalankan agen secara berurutan dengan output {previous}. |
subagent({ action: "list" }) | Tampilkan katalog delegasi runtime: agen executable/terbatas (source, alias, peran, konteks, tool, deskripsi), chain, dan metadata mesin ber-version. |
subagent({ action: "list", capabilities: true }) | Katalog yang sama sebagai baris kapabilitas ringkas: status executable/terbatas, runner, snapshot tool/model/eksekusi/output/extension, sumber pembatasan. |
subagent({ action: "list", task? }) | Katalog yang sama, plus saran routing berbasis tugas opsional; hanya merekomendasikan dan tidak pernah meluncurkan. |
subagent({ action: "status" }) | Tampilkan status run async. |
subagent({ action: "steer", id, message, index? }) | Kirim arahan ke child async top-level yang aktif. |
subagent({ action: "stop", id }) | Hentikan run async. |
subagent({ action: "approve-checkpoint", id }) / reject-checkpoint | Selesaikan checkpoint chain eksplisit. |
/run <agent> [task] [--bg] [--fork] | Bentuk slash untuk run single-agent. |
#<agent> [task] | Bentuk inline untuk run single-agent: #nama-agent di mana pun dalam pesan menjalankan agen tersebut secara langsung. |
/chain ... | Bentuk slash untuk chain sequential. |
/parallel ... | Bentuk slash untuk run paralel. |
/run-chain <chainName> -- <task> | Jalankan .chain.md atau .chain.json yang tersimpan. |
/subagents-doctor | Tampilkan diagnostik setup. |
subagent({ action: "status" }) | Periksa status run dan aktivitas child. |
Ctrl+Alt+F | Buka inspector fleet meskipun turn foreground sedang aktif. |
/subagents-stop [<run-id>] | Hentikan run async. |
/subagent-cost | Tampilkan biaya penggunaan parent dan child untuk sesi. |
/subagents-models [<builtin-agent>] | Tampilkan mapping model builtin yang dimuat runtime. |
/subagents-watchdog [status|on|off|model ...] | Konfigurasi watchdog opsional. |
/parallel-review, /review-loop, /parallel-research, dll. | Shortcut prompt-workflow. |
Agen builtin
| Agen | Penggunaan |
|---|---|
advisor | Berkonsultasi tentang rencana dan desain; memberi panduan yang terarah. |
delegate | Delegasi tujuan umum untuk sebuah pekerjaan yang terdefinisi. |
oracle | Menjawab pertanyaan dengan sumber tepercaya dan penalaran. |
researcher | Riset web/docs dengan sumber. |
reviewer | Mereview kode, rencana, dan diff; menangkap drift dan merekomendasikan perbaikan. |
scout | Rekognisi codebase lokal yang cepat. |
worker | Mengimplementasikan pekerjaan yang disetujui dan memvalidasi hasil. |
Batasan dan keamanan
- Child agent berjalan di environment host yang sama dengan parent; batas kepercayaan sama.
- Child yang di-spawn tidak menerima skill
pi-subagentssecara default, dan visibilitas tool-nya dikontrol oleh frontmattertoolsagen. Child hanya mendapat toolsubagentyang aman untuk child jikatoolsyang resolved-nya mencakupsubagent. - Child forked mendapat konteks yang difilter sehingga menghapus artifact subagent khusus parent.
- Budget model, tool, penggunaan, dan spawn; ceiling agent yang diizinkan; limit kedalaman; checkpoint; serta pengaturan watchdog diberlakukan oleh runtime.
- Hasil delegasi normal bersifat reference-first: penyelesaian mengembalikan referensi output tersimpan plus status/informasi lifecycle; periksa output penuh melalui path output tersimpan, status/transkrip async, atau
resume.outputMode: "inline"memulihkan pengiriman inline lama, danoutput: falsemenonaktifkan persistensi output tahan lama. - Saran routing berbasis tugas bersifat advisori dan heuristik: tidak pernah meluncurkan atau menjadwalkan pekerjaan, dan preflight saat launch tetap menjadi titik penegakan.
- Ekstensi pi-subagents hanya mengirim agen builtin yang tercantum di atas (plus
researcher); file agen kustom yang Anda tambahkan di direktori agen Anda sendiri tetap berfungsi dan menggantikan builtin dengan nama yang sama. Agen CLI eksternal (Claude Code, Codex, Cursor) tidak lagi dikirim. - Skill
pi-subagentsadalah panduan dokumentasi/prompt, bukan entrypoint extension yang diinstal secara terpisah. Skill ini dikirim baik di dalam extension maupun sebagai skill bawaan tingkat-atas (src/skills/pi-subagents/) yang dimuat dari package saat boot dan di-seed ke direktori agent saat first run.