Plugin & Skill (Ekstensibilitas)
Tujuan
Memperluas agen tanpa menyentuh kode inti: memasang plugin dari marketplace, menambah custom slash command, custom tool, hook, dan skill markdown yang dapat dimuat agen sesuai permintaan.
Cara kerjanya
src/extensibility/adalah payungnya:plugins/- lifecycle plugin:manager.ts,loader.ts,installer.ts,parser.ts,git-url.ts,doctor.ts,marketplace/(sumber + marketplace-auto-update), dan kompatibilitas pi legacy.custom-commands/,custom-tools/,extensions/,hooks/- tambahan pengguna yang didaftarkan ke sesi.skills.ts- memuat skill markdown dari direktori yang dikonfigurasi; skill berada di bawah pohon~/.omp/agent/(pengguna) dan.omp/(proyek) dan dipindai denganscanSkillsFromDir.slash-commands.ts,tool-proxy.ts- wiring untuk hal di atas ke registry dan loop tool.
/plugins[list|enable|disable]mengelola plugin terpasang;/marketplacemengelola sumber marketplace dan instalasi.
Konfigurasi
skills:
enabled: true # sakelar master (default skema: true)
enableSkillCommands: ... # izinkan pemanggilan `/skill:<name>`
enableAgentsUser: true # baca skill .agents tingkat pengguna
enableAgentsProject: true # baca skill .agents tingkat proyek
enablePiUser: true # baca skill .pi tingkat pengguna
enablePiProject: true # baca skill .pi tingkat proyek
marketplace:
autoUpdate: ... # auto-update marketplace plugin
Penemuan skill mencerminkan sistem capability yang dipakai MCP dan agen: scanSkillsFromDir + compareSkillOrder di src/discovery/helpers.ts.
Contoh nyata
> /plugins list
> /marketplace search <term>
> load coding skill # agen memuat skill berdasarkan nama sesuai permintaan
Perilaku kegagalan
- Paket plugin yang rusak menampilkan error dari
doctor.ts/loader.tsalih-alih merusak sesi. - Kegagalan auto-update marketplace meninggalkan versi yang terpasang saat ini.
Batasan
- Ekosistem plugin/skill opiniated tentang layout direktori; skill di pohon yang salah tidak ditemukan.
- Fitur marketplace diimplementasikan tetapi belum punya test yang di-commit.
Status pengujian
UNTESTED - diimplementasikan (src/extensibility/), belum ada file test untuk pemuatan plugin atau skill. Bukti: src/extensibility/* + entri registry /plugins, /marketplace.