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 仓库

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

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

小夜