AI Companion Engine:有狀態陪伴內核與 DSH 記憶類插件

前言

在 DeepSeek Harness(DSH)裏接大模型,常見做法是「你問一句、它答一句」:會話結束,上下文就丟。要做長期陪伴、隔幾天還能接上舊事,往往得自己拼記憶層、定時任務和多個聊天入口。ai-companion-engine 由維護者 LingYS-14 開源,歸類爲 DSH 生態中的記憶向插件:它定位成「可以長期運行的 AI 夥伴內核」,而不是通用聊天機器人框架——內置時間感、能量與睡眠節律、長期記憶與自主意圖,並支持 QQ 與網頁工作臺兩條通道,默認走 DeepSeek 的 OpenAI 兼容接口。

下面介紹它解決什麼問題、核心能力、如何在 DSH 中啓用,以及獨立自治運行時與配置要點。

這是什麼

AI Companion Engine(npm 包名 ai-companion-engine,當前版本 0.1.0,許可證 MIT)是一個帶狀態的陪伴內核:約每 5 分鐘一個 tick,由內核自行判斷要不要主動開口;能記住發生過的事,入睡後做記憶鞏固;即使用戶暫時不說話,自治循環仍在運行。

倉庫地址:https://github.com/LingYS-14/ai-companion-engine
DSH 插件目錄頁:https://www.skillhub.cn/plugins/LingYS-14/ai-companion-engine

DSH 社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係;選用插件前應在本地審閱源碼與許可證。插件在當前 DSH 進程權限下運行,涉及 QQ 橋、本機數據目錄與 API key 時,請按自己的安全策略配置。

核心功能

長期記憶

記憶側採用 JSONL 寫前日誌(WAL)與 SQLite 索引,支持回憶、再鞏固、遺忘與冷歸檔。這與「只把聊天記錄塞進 context window」不同:狀態與索引持久落在 ACE_DATA_DIR 所指向的數據目錄中。

自主意圖與時間節律

意圖引擎在每個 tick 上競爭多種意圖(如 reach_out、continue_thread、repair 等),並帶有 30 分鐘同類剎車、重複抑制,以及 lookahead「到點浮現」讀側(可通過環境變量關閉)。時間與節律模塊包含事實化時間行、睡眠窗口、能量模型(清醒耗能、睡眠恢復),以及由真實作息採樣得到的晝夜節律。

夜間功課

入睡後會自動執行鮮明度衰減(fade)、記憶整合(consolidate)、冷歸檔等維護流程;可選記錄 dream shadow(僅審計文件,不入記憶,由 ACE_DREAM_SHADOW 控制)。

雙通道與模型分層

  • QQ:通過 OneBot v11 橋接入,與網頁工作臺共享同一份記憶與歷史。
  • 網頁工作臺:DSH Web 端提供 /soul 面板與對話頁。

對話走高質量檔模型(默認 deepseek-v4-pro,thinking);自述、主動觸達、學習摘要等走默認 flash 檔(默認 deepseek-flash)。用量與緩存命中入賬。端點默認爲 https://api.deepseek.com,可用環境變量覆蓋。

DSH 插件面

作爲 DSH 插件接入後,工具面會出現 27 個 soul_* 工具,Web 端出現「工作臺」頁面(路徑 /soul)。

工程與審計

倉庫提供 11 道工程門禁(npm run gate):規格校驗、註冊表、分層邊、寫入者掃描、類型檢查、全量測試(fast)等;README 稱改動需過門禁並留臺賬。測試規模約爲 286 個測試文件(以倉庫當前結構爲準)。

安裝與啓用

環境要求

  • Node.js ≥ 20、npm
  • 獨立自治運行時在 Windows 上若使用隱藏啓動器,需要 PowerShell 7(見 README「快速開始」)

先在倉庫根目錄完成依賴安裝與構建:

npm install
npm run build
npm run test:fast        # 全量測試(不含 nightly)
npm run gate             # 11 道門禁(CI 用)

README 未提供 dsh plugin add github:… 一類的一行安裝命令;作爲 DSH 插件使用時,按官方步驟手動接入。

在 DSH 中作爲插件運行

  1. 將本倉庫放在任意目錄,執行 npm install && npm run build。
  2. 把倉庫中的 cordis.patch.yml 複製到 DSH profile 的補丁目錄,按文件內註釋修改 dataDir、characterId、displayName 等。
  3. 重啓 DSH。重啓後工具面應出現 soul_* 工具,Web 端出現工作臺頁面(/soul)。

QQ 橋相關參數在 cordis.patch.yml 的 qq 字段中配置,例如 enabled、dryRun、baseUrl、wsUrl、token、peer 等。

獨立自治運行時(不依賴 DSH)

若只需後臺常駐的內核,可不掛 DSH,使用自治腳本:

npm run start      # 啓動(Windows:隱藏窗口 powershell)
npm run stop       # 停止
node scripts/autonomy/health.mjs   # 健康檢查

典型配置

所有配置均可用環境變量覆蓋,前綴爲 ACE_。常用項如下(摘自 README 配置表):

變量 說明
ACE_DATA_DIR 數據目錄(狀態、記憶、日誌)
ACE_CHARACTER_ID 角色 id(數據文件名的一部分)
ACE_LLM_API_KEY 模型 API key(亦可用 DPAPI 加密存放)
ACE_LLM_BASE_URL OpenAI 兼容端點,默認 https://api.deepseek.com
ACE_LLM_MODEL 默認(flash)檔模型,默認 deepseek-flash
ACE_LLM_MODEL_PRO 高質量檔模型,默認 deepseek-v4-pro
ACE_LLM_TIMEOUT_MS 單次模型調用超時,默認 90000
ACE_DREAM_SHADOW 是否記錄 dream shadow
ACE_LOOKAHEAD 設爲 0 關閉「到點浮現」讀側

API key 建議通過環境變量或 DPAPI 加密文件提供,不要寫入版本庫。QQ 橋僅連接你自行配置的 OneBot 實現;dryRun: true 時可只生成消息不發送。

更細的架構與運維說明見倉庫內 docs/ARCHITECTURE.md、docs/DESIGN.md、docs/OPERATIONS.md、docs/SECURITY.md。

適用場景與注意

更適合誰

  • 已在用 DSH,希望把「長期記憶 + 自主觸達 + 節律」做成一個可審計的內核,而不是從零搭 agent 框架的開發者。
  • 需要 QQ(OneBot v11)與網頁工作臺共用一套記憶與歷史的個人或小團隊場景。
  • 願意維護本機數據目錄、模型 key,並接受 tick 驅動的自治行爲(包括對方長時間不說話時仍可能主動開口)。

使用前務必注意

  1. 權限:插件隨 DSH 進程運行,能訪問你爲 ACE_DATA_DIR、QQ 橋等配置的資源;安裝前應通讀源碼,尤其是 plugin/、qq/、autonomy/ 與補丁文件。
  2. 敏感腳本:README 明確警告,scripts/ 下部分 Python 腳本用於對本機 QQ 客戶端的內部實現做只讀研究(含 frida、內存掃描等),不是產品功能,也不在必跑門禁範圍內;請勿用於讀取他人數據或未授權設備。二次分發時 README 建議刪除或保留警告。
  3. 隱私:倉庫不包含真實用戶數據;data/ 與 dist/ 不入庫。QQ 與模型調用均發生在你自己的環境裏。

結尾

ai-companion-engine 把長期記憶 WAL、意圖競爭、睡眠與能量模型、夜間記憶功課,以及 QQ / /soul 雙通道收進一個 MIT 許可的內核,並給出 DSH 補丁接入路徑與 11 道門禁。若你的痛點是「無狀態的問答插件不夠像長期在線的夥伴」,可以按 README 完成構建、放置 cordis.patch.yml 並重啓 DSH,再從 soul_* 工具與工作臺頁面試跑。

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

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

小夜