前言¶
在 DSH 生態中開發智能體時,你經常需要複用 Pi coding agent,但又不希望它接管宿主應用(ACRYL/Cordis)的完整生命週期管理。直接集成容易導致耦合過緊,難以動態替換或卸載。
下面介紹 pi-cordis。它將 Pi coding agent 打包爲 Cordis 運行時插件,通過宿主現有的 Cordis 樹提供 Pi SDK 會話。這允許 ACRYL 運行時在需要時掛載、移除或替換 Pi,而無需讓 Pi 成爲應用組合的所有者。
插件定位¶
- 名稱:pi-cordis
- 所有者:cordisplugins
- 定位:將 Pi coding agent 作爲 Cordis 運行時插件提供。
- 核心價值:通過宿主的 Cordis 樹提供 Pi SDK 會話,實現 Pi 與宿主生命週期的解耦。
核心功能¶
該插件提供以下能力:
* engine:pi
* agent-loop
* sessions
* tools
安裝與啓用¶
安裝依賴時需要指定 Cordis 的版本。
pnpm add pi-cordis @deepseek-ai/cordis@4.0.1
啓用插件需要在宿主的配置中使用穩定的 Loader 行。
- id: pi-engine
name: pi-cordis
config:
persistent: false
persistent: false:保持 Pi 會話在內存中。persistent: true:使用 Pi 的會話存儲在配置的工作目錄中。
典型用法¶
插件在運行時提供 ctx.piEngine 接口。
- 打開會話
const sessionId = await ctx.piEngine.open()
- 訂閱事件
ctx.piEngine.subscribe(event => observe(event))
- 發送提示
await ctx.piEngine.prompt('Inspect this project')
- 終止會話
await ctx.piEngine.abort()
適用場景與注意¶
該插件適合需要在 Cordis 生態系統中靈活調用 Pi 編碼能力的場景。
架構注意:
* 職責分離:Pi 擁有 agent loop、model runtime、session operations 和 event stream。Cordis 擁有 Pi engine 的服務生命週期、訂閱、清理和替換。
* 依賴反轉:消費者通過 ctx.piEngine 使用服務,不直接創建或保留 Pi SDK 會話。
* 容錯機制:無效的配置會在插件激活前被拒絕。
運行環境:該插件以當前 dsh 進程的權限運行,請確保在安裝前檢查源碼與許可證。
總結¶
pi-cordis 通過插件化方式將 Pi coding agent 嵌入到 Cordis 樹中,解決了智能體集成中的生命週期管理問題。它利用依賴反轉原則,讓 Cordis 掌控宿主環境,Pi 掌控自身邏輯,適合追求架構解耦的開發者。