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
羽毛球分组比赛记分
小程序二维码

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

小夜