dsh-agentmemory:爲 DSH 接入 agentmemory 的本地記憶插件

前言

在 DSH 這類「一切皆插件」的框架裏,智能體運行過程中產生的會話、提示、工具調用和子代理活動,往往只存在於當前上下文裏。如果希望後續任務能複用這些觀察記錄,或者在系統提示中加入從記憶庫召回的上下文,就需要一個穩定的記憶後端。

下面介紹 dsh-agentmemory:它把本地 agentmemory REST 服務接入 DSH,讓 memory_* 工具、自動捕獲鉤子和可選上下文注入以插件形式可用。

這是什麼

dsh-agentmemory 是由 elementor-i 維護的 DSH 插件,許可證爲 MIT。

它定位爲 DSH 的記憶插件,核心是把本機運行的 agentmemory 服務暴露給 DSH:完整的 memory_* 工具、後臺觀察捕獲,以及可關閉的上下文注入。

它不要求 MCP 橋接,依賴是本機 REST 服務。

核心能力

  • 完整工具面:包含全部 54 個 memory_* 工具(其中 8 個核心工具),映射到 /agentmemory/*;另外提供 memory_observememory_http 逃生通道,用於訪問任意端點。
  • 自動捕獲:會話、提示、工具使用、子代理、工作流和審批活動等會在後臺記錄爲觀察數據。
  • 上下文注入:可選開啓;開啓後,會把從會話中召回的上下文加入系統提示。
  • 默認安全:包含憑據脫敏、單次調用超時、非阻塞觀察,破壞性或高成本工具由 dangerousTools 開關控制。
  • 不依賴 MCP:不需要 stdio 橋接,也不需要額外子進程;正在運行的 REST 服務(默認 localhost:3111)是唯一依賴。

前提與檢查

本機需要先運行 agentmemory 服務。默認地址是 http://127.0.0.1:3111,viewer 端口是 3113

可以先用下面命令檢查服務是否可用:

curl -fsS http://127.0.0.1:3111/agentmemory/livez

如果服務不可用,插件會記錄警告,memory_* 工具會返回錯誤,但 DSH 本身繼續運行。

安裝與啓用

使用 DSH CLI

web 替換爲你實際使用的 profile 名稱:

npx -p @deepseek-ai/dsh dsh plugin --profile web add @elementor-i/dsh-agentmemory

安裝後按你的 DSH 配置方式重啓對應 profile。

原生掛載

如果不想走 CLI,也可以把源碼克隆到本機,再在配置裏添加指向 lib/index.jsinsert patch:

git clone https://github.com/elementor-i/dsh-agentmemory ~/dsh-plugins/dsh-agentmemory

~/.dsh/config.yaml,或面向所有 profile 的 $DSH_HOME/cordis.patch.yml 中加入類似內容:

- insert:
    - id: dsh-agentmemory
      name: '$HOME/dsh-plugins/dsh-agentmemory/lib/index.js'

然後重啓 DSH。

配置

所有配置項都是可選的,並且有安全默認值。環境變量 AGENTMEMORY_URLAGENTMEMORY_SECRETAGENTMEMORY_PROJECT_NAME 會作爲 fallback 被讀取。

常用鍵如下:

dsh-agentmemory:
  baseURL: http://127.0.0.1:3111
  secret: ""
  timeoutMs: 10000
  registerTools: true
  coreToolsOnly: false
  dangerousTools: false
  injectContext: false
  injectMaxChars: 4000
  healthCheck: true
  hooks: {}

其中:

  • baseURL:agentmemory REST 服務地址。
  • secret:Bearer secret;爲空時可回退到 AGENTMEMORY_SECRET
  • timeoutMs:單次工具調用的 HTTP 超時。
  • registerTools:是否註冊 memory_* 工具集。
  • coreToolsOnly:爲 true 時只註冊 8 個核心工具。
  • dangerousTools:爲 true 時暴露破壞性/高成本工具。
  • injectContext:是否把召回上下文注入系統提示,默認關閉。
  • injectMaxChars:注入上下文的字符上限。
  • healthCheck:啓動時服務不可達是否給出警告。
  • hooks:自動捕獲相關配置項。

典型用法

1、先確認本機 agentmemory 服務可用:

curl -fsS http://127.0.0.1:3111/agentmemory/livez

2、把插件安裝到目標 profile:

npx -p @deepseek-ai/dsh dsh plugin --profile web add @elementor-i/dsh-agentmemory

3、如果只想保持默認安全行爲,不做額外配置即可;memory_* 工具會註冊,自動捕獲按 hooks 配置生效,上下文注入默認關閉。

4、如果需要在系統提示中加入召回上下文,把 injectContext 打開,並按需要限制字符數:

dsh-agentmemory:
  injectContext: true
  injectMaxChars: 4000

5、重啓 DSH,之後就可以讓智能體使用 memory_* 工具,或通過 memory_http 訪問其他 agentmemory 端點。

適用場景與注意

這個插件適合已經在本機運行 agentmemory 服務、希望把記憶工具直接接入 DSH 的開發者。如果你希望 DSH 自動記錄會話、提示、工具調用和子代理活動,並且能在後續任務中複用召回結果,它可以把 REST 服務包裝成 DSH 可直接調用的工具。

需要注意:

  • 插件以當前 DSH 進程的權限運行,安裝前應檢查源碼行爲與 MIT 許可證。
  • 破壞性/高成本工具默認不暴露,確有需要時再通過 dangerousTools 開啓。
  • 上下文注入默認關閉,開啓後會增加系統提示長度,建議同時設置 injectMaxChars
  • 如果通過公共目錄安裝,插件需要已經出現在公共 DSH catalog 中;該目錄每小時從標記爲 dsh-plugin 的 GitHub 倉庫重建。社區目錄是獨立站點,不等同於 DeepSeek 或幻方官方應用商店。

鏈接

  • 目錄頁:https://www.skillhub.cn/plugins/elementor-i/dsh-agentmemory
  • GitHub:https://github.com/elementor-i/dsh-agentmemory
羽毛球分组比赛记分
小程序二维码

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

小夜