Sumber daya dan kemampuan
Cakupan versi: Halaman ini menyatakan ulang empat dokumen normatif dari standar saat ini, DWP 7.0.0, pada rilis
v7.9.0:V6_CONTEXT.md,V6_RESOURCES.md,CONFIG.md, danV7_ABILITIES.md. Jika halaman ini dan berkas-berkas tersebut berbeda, berkas-berkas itulah yang berlaku.
Status: Stabil (konteks dan sumber daya sejak 6.0.0; konfigurasi dan kemampuan sejak 7.0.0). Aturan ini mengikat rencana lini v6 (Lapisan catatan); standar v5 tidak tersentuh. Kata kunci MUST, MUST NOT, SHOULD, SHOULD NOT, dan MAY harus ditafsirkan sebagaimana dijelaskan dalam RFC 2119.
Manifest konteks per tugas
Sebelum setiap tugas, agent menurunkan sebuah manifest konteks dari kontrak dan seluruh jurnal (context_manifest.py). Manifest ini adalah view turunan, tidak pernah disimpan sebagai status: menurunkannya dua kali dari catatan yang sama MUST menghasilkan byte yang identik, dan manifest MUST NOT membaca di luar rencana dan repositorinya. Bentuknya diterbitkan sebagai context-manifest/v6.
| Bagian | Diturunkan dari |
|---|---|
identity |
nama rencana, id kontrak aktif, dan revisinya |
authorization |
peristiwa approval, apa adanya, termasuk checkpoint persetujuan |
repository_rules |
cakupan kontrak dan invarian beserta status evaluasinya saat ini |
acceptance |
kriteria tugas beserta status penutupannya |
touched_surface |
berkas yang dideklarasikan beserta hash kontennya saat ini; berkas yang hilang ditampilkan sebagai hilang |
evidence |
penunjuk bukti dalam jendela yang dapat di-resolve di disk |
dead_ends |
gate yang gagal, penolakan, adaptasi yang ditolak, dan kontrol non-diskriminatif |
freshness |
fingerprint dari masukan yang diringkas oleh manifest |
next_action |
tepat satu langkah berikutnya dengan command yang konkret |
authorization, repository_rules, dan acceptance bersifat wajib: pemangkasan konteks tidak pernah dapat menyembunyikan batas penerimaan atau otorisasi. Tangga next-action berurutan (approval, start, authority, control, evidence, complete) dan tidak pernah menyajikan gate lulus biasa sebagai penutup kriteria terkontrol.
Jalan buntu dipertahankan. Sebuah entri hanya keluar dari digest berdasarkan fakta catatan yang terbukti (fingerprint yang sama kemudian lulus, penolakan duplikat yang lebih baru menggantikannya, atau revisi kontrak membuatnya kedaluwarsa); perubahan permukaan semata MUST NOT menghapusnya. Kesegaran diperiksa: ringkasan yang fingerprint masukan tercatatnya tidak lagi cocok dianggap usang, dan ringkasan tanpa fingerprint usang berdasarkan konstruksinya. Riwayat dimuat hanya berdasarkan pemicu — handoff yang tercatat atau amandemen yang memengaruhi tugas; selain itu, manifest saja sudah menjadi konteks tugas.
Akuntansi empat kuantitas
Beban instruksi dan biaya dilaporkan sebagai empat kuantitas yang berbeda: byte instruksi statis, token penyedia (hanya jika meter host mencatatnya), biaya moneter (hanya dari sampel tarif riil yang tercatat), dan waktu nyata (dari timestamp peristiwa). Kuantitas yang tidak ada dilaporkan sebagai tidak ada beserta alasannya, tidak pernah diperkirakan, dan byte tidak pernah dikonversi menjadi token atau uang.
Kemampuan host
Host runtime menyatakan kemampuannya dari himpunan tertutup: stop_agent, meter_spend, meter_tokens, meter_wall_clock, cancel_children, model_routing, subagents, telemetry. Kemampuan yang tidak dikenal MUST ditolak, dan kemampuan yang tidak dinyatakan bernilai false. Host minimal — tanpa pergantian model, tanpa subagent, tanpa telemetri, tanpa stop — adalah postur yang didukung, tidak pernah sebuah kesalahan; setiap batas yang membutuhkan kemampuan yang tidak ada turun menjadi advisory dengan menyebutkan kemampuan yang tidak ada itu.
Kemampuan bukanlah grant. Grant dalam kontrak adalah otoritas; kemampuan adalah apa yang benar-benar dapat dilakukan lingkungan. Setiap postur yang membutuhkan sebuah kemampuan tetap membutuhkan grant-nya.
Envelope sumber daya
Kontrak MAY mendeklarasikan batas dalam envelope sumber dayanya. Sebuah batas hanya ditegakkan ketika ia menyebut sumber meteran yang nyata; jika tidak, batas itu bersifat advisory, dan kesetaraan penegakan antar host tidak pernah diklaim.
- Sumber penghitung. Penghitung yang dapat diamati dari jurnal (rentang waktu nyata, percobaan ulang gate, panggilan dispatch) dihitung dari catatan rencana itu sendiri. Penghitung khusus host (pengeluaran, token penyedia) membutuhkan kemampuan meter yang sesuai dan sampel observed dari adaptor host; penghitung yang tidak ada bukan berarti penggunaan gratis.
- Cadangan. Sebuah batas MAY mendeklarasikan
reserveagar verifikasi, percobaan ulang, dan pelanjutan tidak kehabisan oleh pekerjaan biasa: dispatch ditolak ketika yang terpakai ditambah yang tertunda akan melebihi batas dikurangi cadangan. - Kehabisan. Mencapai sebuah batas menyimpan checkpoint yang belum selesai, mencatat
LIMIT: exhausted <id>: <detail>, dan menahan dispatch sampai ada catatanLIMIT: recovered <id>yang eksplisit. Kehabisan tidak pernah dapat memenuhi kriteria penerimaan. - Penyelesaian pembatalan. Reservasi yang sedang berjalan diselesaikan tepat satu kali, sebagai dilepas atau dikomit; penyelesaian kedua yang bertentangan ditolak, tidak pernah dimediasi.
- Postur routing. Defaultnya adalah model tetap. Pergantian tingkat model membutuhkan grant
model_routingsekaligus kemampuan dengan nama yang sama; dispatch paralel membutuhkan grantagent_delegationsekaligus kemampuansubagents. Postur routing adalah pernyataan izin, tidak pernah klaim efektivitas.
Berkas konfigurasi dan registri addon
.dwp/config.json (repositori) dan ~/.dwp/config.json (pengguna) berbagi satu bentuk, yang diterbitkan sebagai dwp-config/v1, dan satu parser (config.py). Metodologi bekerja tanpa berkas konfigurasi dan tanpa addon; tidak ada isi berkas ini yang dapat membuat sebuah rencana, alur, atau konformansi bergantung pada sebuah addon.
- Dilacak secara default. Berkas repositori menyimpan keputusan, tidak pernah secret, dan dilacak oleh git agar rekan tim dan CI membaca registri yang sama: onboarding menulis aturan
.gitignore.dwp/*ditambah!.dwp/config.json. Rencana dan catatan benchmark tetap diabaikan. - Prioritas. Berkas repositori mengalahkan berkas pengguna, dan berkas yang tidak ada berarti semuanya nonaktif. Kunci
addonsdi-resolve per kunci addon; kuncibenchmarkdi-resolve secara keseluruhan. - Kunci registri adalah nama direktori addon di dalam paket:
ai-diff-reviewer,agentkit,dailybot,dependency-upgrade,design-system,devcontainer,herdr,vim. Setiap entri memilikienabled(hanyatrueyang mengaktifkan),versionopsional, dannotesatu baris yang opsional. Kunci yang tidak dikenal diabaikan dengan satu peringatan. - Tidak ada berarti tidak aktif. Hanya onboarding dengan persetujuan developer, langkah instalasi milik addon itu sendiri, atau manusia yang dapat mengaktifkan sesuatu. Addon aktif yang tidak terdeteksi dan membawa catatan dilaporkan sebagai ditangguhkan.
- Pembacaan fail-closed. Berkas yang tidak dapat dibaca atau nilai yang salah bentuk tidak menyumbangkan apa pun dan menghasilkan tepat satu peringatan; pembaca tidak pernah menghentikan sebuah alur dan tidak pernah diam tentang apa yang dibuangnya. Penulis melakukan rekonsiliasi secara atomik dan menolak menimpa berkas yang tidak dapat di-parse.
- Catatan host. Kunci
hostopsional mencatat kemampuan yang dinyatakan mesin (boolean dari himpunan tertutup).telemetry: truetetap membutuhkan persetujuan developer. - Baseline tidak berubah. Tinjauan lokal AI Diff Reviewer tetap menjadi bagian dari setiap Final Review, baik registri menyebutkannya maupun tidak.
Kemampuan yang disediakan addon
Sejak 7.0.0, addon yang aktif dapat menambahkan kemampuan saat runtime:
effective abilities = host-declared abilities ∪ abilities provided by every addon that is enabled, described by a valid addon.json, detected, and on a compatible interface version
- Deskriptor. Setiap addon di dalam paket menyertakan
addon.json(addon-descriptor/v1) yang mendeklarasikan kuncinya, apa yang disediakannya, dan bagaimana ia dideteksi. - Deteksi bersifat hanya-baca. Command deteksi berjalan tanpa shell, dengan stdin tertutup dan timeout 10 detik, dan tidak ada yang dicetaknya yang dieksekusi. Produk yang versi mayor antarmuka yang dilaporkannya berbeda dari yang di-pin dianggap tidak tersedia, dengan satu peringatan.
- Tidak aktif berarti tidak dikonsultasikan. Deskriptor addon yang nonaktif tidak dibuka dan command deteksinya tidak dijalankan. Gabungannya monoton: mengaktifkan sebuah addon hanya dapat menambah kemampuan.
- Tidak pernah disimpan. Kemampuan efektif dihitung ulang pada setiap panggilan dan MUST NOT ditulis ke dalam rencana. Rencana mencatat apa yang digunakannya — peristiwa delegasi menyebutkan transport dan addon-nya — bukan apa yang tersedia.
- Kemampuan bukanlah otoritas. Addon agentkit dapat menyediakan
subagents,cancel_children, danmodel_routing; addon Herdr dapat menyediakansubagentsdancancel_children. Mendelegasikan tetap membutuhkan grantagent_delegationdari kontrak (Delegasi).
resources.py abilities mencetak himpunan efektif beserta asal setiap kemampuan; command ini bersifat hanya-baca.
Terkait
- Lapisan catatan — kontrak, jurnal, dan bukti.
- Delegasi — bagaimana sebuah rencana menggunakan kemampuan
subagents. - Add-on — addon opsional itu sendiri.