Lewati ke konten

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.

Entri manifest
./pi-subagents
Permukaan runtime
Campuran (command, tool, shortcut)

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-system keduanya terpasang.

Yang disiapkan

  • Mendaftarkan tool subagent untuk 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-agent di 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_SESSION di 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

  1. Konfigurasi ekstensi
    ~/.selesai/agent/extensions/subagent/config.json
    Terendah; berlaku kecuali ditimpa oleh pengaturan user/proyek atau argumen pemanggilan eksplisit.
  2. Pengaturan user
    ~/.selesai/agent/settings.json
    Mengganti default ekstensi; ditimpa oleh pengaturan proyek.
  3. Pengaturan proyek
    .selesai/settings.json
    Lapis persisten tertinggi untuk nilai agent berbasis pengaturan.
  4. Preseden per pemanggilan
    tool/slash arguments and agent frontmatter
    Argumen pemanggilan eksplisit dan frontmatter agent mengalahkan semua lapisan konfigurasi.

Pengaturan

Kunci / pathTipe, default, dan nilaiDeskripsi
asyncByDefaultboolean
Default: false
Jalankan pemanggilan subagent tunggal di latar belakang secara default.
forceTopLevelAsyncboolean
Default: false
Paksakan pemanggilan subagent tingkat atas untuk berjalan secara asinkron.
fleetViewboolean
Default: true
Tampilkan panel fleet yang dapat dinavigasi seperti Claude Code di bawah editor.
asyncWidgetboolean
Default: true when fleetView disabled, otherwise false
Tampilkan widget async runs legacy di atas editor.
toolDescriptionModestring
Default: "compact"
Nilai yang diizinkan: "full", "compact", "custom"
Varian deskripsi tool subagent yang menghadap parent. Default: compact.
waitToolboolean | object
Default: (not configured)
Daftarkan tool wait/notify untuk subagent. Berikan true atau { enabled: true }.
defaultSessionDirstring
Default: (system temp or session path)
Direktori dasar untuk sesi subagent bila tidak ada path eksplisit.
singleRunOutputBaseDirstring
Default: (not configured)
Direktori dasar untuk artefak output single-run.
maxSubagentDepthnumber
Default: 2
Kedalaman bersarang subagent maksimum untuk sesi ini.
maxSubagentSpawnsPerSessionnumber
Default: unlimited
Batas kumulatif opsional pembuatan subagent dalam satu sesi. 0 berarti tidak terbatas.
maxWorkflowAutoRelaunchesnumber
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.
globalConcurrencyLimitnumber
Default: 20
Batas global tugas subagent yang berjalan bersamaan dalam satu run.
controlobject
Default: (disabled)
Notifikasi kontrol siklus hidup: enabled, threshold (ms/turn/token), jumlah failed-tool, channel (event/async/intercom), dan notifyOn events.
completionBatchobject
Default: (disabled)
Pengelompokan smart completion: enabled, debounceMs, maxWaitMs, stragglerDebounceMs, stragglerMaxWaitMs, stragglerWindowMs.
turnBudgetobject
Default: (not configured)
Anggaran turn: maxTurns, graceTurns opsional.
toolBudgetobject
Default: (not configured)
Anggaran tool: batas hard, batas soft opsional, dan daftar block atau "*" opsional.
parallel.maxTasksnumber
Default: 8
Jumlah tugas paralel maksimum default untuk run paralel tingkat atas.
parallel.concurrencynumber
Default: 4
Konkurensi default untuk run paralel tingkat atas.
chain.dynamicFanout.maxItemsnumber
Default: (not configured)
Jumlah item maksimum yang dihasilkan oleh langkah chain fan-out dinamis.
worktreeSetupHookstring
Default: (not configured)
Path ke shell command yang dijalankan saat menyiapkan worktree paralel/chain.
worktreeSetupHookTimeoutMsnumber
Default: (not configured)
Timeout untuk worktree setup hook.
worktreeBaseDirstring
Default: (system temp)
Direktori dasar untuk worktree paralel/chain.
artifactDirstring
Default: "project" (cwd/.pi-subagents)
Nilai yang diizinkan: "project", "session", "temp"
Lokasi penyimpanan file artefak subagent.
intercomBridgeobject
Default: (off)
Mode intercom bridge: off, fork-only, atau always; plus instructionFile opsional.
proactiveSkillSubagentsobject | false
Default: (disabled)
Rekomendasikan subagent berbasis skill: enabled, minReferences, maxRecommendations, preferredAgent. Atur false untuk menonaktifkan.
subagents.defaultModelstring
Default: (not configured)
Model default untuk agent bawaan yang tidak menyatakan model. Proyek menimpa user.
subagents.defaultThinkingstring
Default: (not configured)
Suffix thinking default untuk agent bawaan tanpa nilai thinking eksplisit.
subagents.defaultExtensionsstring[]
Default: (not configured)
Ekstensi default yang ditambahkan ke agent tanpa deklarasi ekstensi.
subagents.disableBuiltinsboolean
Default: false
Nonaktifkan pemuatan definisi agent bawaan.
subagents.disableThinkingboolean
Default: false
Nonaktifkan default suffix thinking untuk agent bawaan.
subagents.modelScopeobject
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 / pathDeskripsi
SELESAI_SUBAGENT_MAX_DEPTHPenimpaan runtime untuk kedalaman subagent maksimum saat ini.
SELESAI_SUBAGENT_MAX_SPAWNS_PER_SESSIONPenimpaan runtime untuk max spawns per sesi. Gunakan 0 untuk tidak terbatas.
SELESAI_SUBAGENT_DEPTHDinaikkan otomatis untuk run subagent bersarang; jangan atur manual.
SELESAI_SUBAGENT_PARENT_SESSIONDiteruskan ke sesi anak sehingga subagent async dapat menemukan parent-nya.

Kontrol command, tool, dan shortcut

Kunci / pathDeskripsi
subagent({ ... })Pemanggilan tool subagent foreground atau async.
/run, /chain, /parallel, /run-chainSlash command untuk mode run umum.
/subagents-doctor, /subagents-stop, /subagent-cost, /subagents-models, /subagents-profiles, /parallel-reviewCommand 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.ts
  • src/extensions/pi-subagents/src/agents/agents.ts
  • src/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-agent di 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> atau subagent({ action: "stop", id: "..." }).
  • Membatasi launch dengan allowedAgents scoped sesi, menambahkan checkpoint persetujuan chain, atau membatasi penggunaan agregat dengan usageBudget.
  • 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 di details.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 mesin details.catalog ber-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 / shortcutDeskripsi
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-checkpointSelesaikan 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-doctorTampilkan diagnostik setup.
subagent({ action: "status" })Periksa status run dan aktivitas child.
Ctrl+Alt+FBuka inspector fleet meskipun turn foreground sedang aktif.
/subagents-stop [<run-id>]Hentikan run async.
/subagent-costTampilkan 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

AgenPenggunaan
advisorBerkonsultasi tentang rencana dan desain; memberi panduan yang terarah.
delegateDelegasi tujuan umum untuk sebuah pekerjaan yang terdefinisi.
oracleMenjawab pertanyaan dengan sumber tepercaya dan penalaran.
researcherRiset web/docs dengan sumber.
reviewerMereview kode, rencana, dan diff; menangkap drift dan merekomendasikan perbaikan.
scoutRekognisi codebase lokal yang cepat.
workerMengimplementasikan 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-subagents secara default, dan visibilitas tool-nya dikontrol oleh frontmatter tools agen. Child hanya mendapat tool subagent yang aman untuk child jika tools yang resolved-nya mencakup subagent.
  • 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, dan output: false menonaktifkan 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-subagents adalah 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.

Source evidence

Selesai version: 0.10.0