pi-cordis:將 Pi coding agent 集成到 Cordis 運行時

前言

在 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 接口。

  1. 打開會話
    const sessionId = await ctx.piEngine.open()
  1. 訂閱事件
    ctx.piEngine.subscribe(event => observe(event))
  1. 發送提示
    await ctx.piEngine.prompt('Inspect this project')
  1. 終止會話
    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 掌控自身邏輯,適合追求架構解耦的開發者。

目錄頁 | GitHub 倉庫

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜