🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

主动记忆建议插件组 ConradLu2740/pa-dsh

DeepSeek Harness
ConradLu274053 天前有提交已提供中文文档扫描:含敏感能力

为会话接入主动记忆与建议,自动捕获、评估并推送

29.4/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查未通过:缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add ConradLu2740/pa-dsh
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · chat
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 53 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包pa-dsh(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/9/22 17:50:51

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 124 处,展示前 43 条)
  • 读取本地文件
    packages/dsh-proactive-core/lib/index.js:332
    if (!existsSync(override)) mkdirSync(override, { recursive: true });
  • 写入本地文件
    packages/dsh-proactive-core/lib/index.js:332
    if (!existsSync(override)) mkdirSync(override, { recursive: true });
  • 读取本地文件
    packages/dsh-proactive-core/lib/index.js:336
    if (!existsSync(dir)) mkdirSync(dir, { recursive: true });
  • 写入本地文件
    packages/dsh-proactive-core/lib/index.js:336
    if (!existsSync(dir)) mkdirSync(dir, { recursive: true });
  • 读取本地文件
    packages/dsh-proactive-core/lib/index.js:385
    if (existsSync(join(dir, ".mcp.json"))) return dir;
  • 读取本地文件
    packages/dsh-proactive-core/lib/index.js:386
    if (existsSync(join(dir, ".git"))) return dir;
  • 执行外部命令固定命令
    packages/dsh-proactive-core/lib/index.js:395
    const out = execFileSync("git", ["remote", "-v"], { cwd: projectRoot, encoding: "utf-8", stdio: ["ignore", "pipe", "ignore"] });
  • 读取本地文件
    packages/dsh-proactive-core/lib/index.js:426
    if (existsSync(pkg)) {
  • 读取本地文件
    packages/dsh-proactive-core/lib/index.js:428
    const data = JSON.parse(readFileSync(pkg, "utf-8"));
  • 写入本地文件
    packages/dsh-proactive-core/lib/index.js:445
    mkdirSync(dirname(metaPath), { recursive: true });
  • 写入本地文件
    packages/dsh-proactive-core/lib/index.js:447
    writeFileSync(
  • 写入本地文件
    packages/dsh-proactive-core/lib/index.js:473
    mkdirSync(configDir(), { recursive: true });
  • 写入本地文件
    packages/dsh-proactive-core/lib/index.js:474
    writeFileSync(getTopIndexPath(), JSON.stringify(index, null, 2) + "\n", "utf-8");
  • 删除本地文件
    packages/dsh-proactive-core/lib/index.js:645
    unlinkSync(tmpPath);
  • 删除本地文件
    packages/dsh-proactive-core/lib/index.js:1114
    unlinkSync2(filePath);
  • 删除本地文件
    packages/dsh-proactive-core/lib/index.js:1223
    unlinkSync2(join4(getMemoryAtomsDir(), file));
  • 删除本地文件
    packages/dsh-proactive-core/lib/index.js:1233
    unlinkSync2(profilePath);
  • 发起网络请求
    packages/dsh-proactive-core/lib/index.js:1478
    const response = await fetch(`${config.baseUrl.replace(/ +$/, "")}/chat/completions`, {
  • 发起网络请求
    packages/dsh-proactive-core/lib/index.js:1611
    const resp = await fetch(`${config.baseUrl.replace(/ +$/, "")}/embeddings`, {
  • 读取密钥环境变量
    packages/dsh-proactive-core/lib/index.js:4510
    if (process.env.MEMORY_LLM_API_KEY) return;
  • 读取密钥环境变量
    packages/dsh-proactive-core/lib/index.js:4515
    process.env.MEMORY_LLM_API_KEY = resolved.value;
  • 读取密钥环境变量
    packages/dsh-proactive-core/src/plugin.ts:110
    if (process.env.MEMORY_LLM_API_KEY) return
  • 读取密钥环境变量
    packages/dsh-proactive-core/src/plugin.ts:115
    process.env.MEMORY_LLM_API_KEY = resolved.value
  • 读取本地文件
    packages/dsh-proactive-daily/lib/index.js:29
    if (!existsSync(bufferFile)) return [];
  • 读取本地文件
    packages/dsh-proactive-daily/lib/index.js:30
    const raw = JSON.parse(readFileSync(bufferFile, "utf8"));
  • 写入本地文件
    packages/dsh-proactive-daily/lib/index.js:41
    mkdirSync(dirname(bufferFile), { recursive: true });
  • 读取本地文件
    packages/dsh-proactive-daily/lib/index.js:44
    if (!existsSync(bufferFile)) return {};
  • 读取本地文件
    packages/dsh-proactive-daily/lib/index.js:45
    const raw = JSON.parse(readFileSync(bufferFile, "utf8"));
  • 写入本地文件
    packages/dsh-proactive-daily/lib/index.js:51
    writeFileSync(bufferFile, JSON.stringify({ ...existing, messages: messages.slice(-200) }), "utf8");
  • 读取本地文件
    packages/dsh-proactive-daily/lib/index.js:124
    if (!existsSync(bufferFile)) return "";
  • 读取本地文件
    packages/dsh-proactive-daily/lib/index.js:125
    const raw = JSON.parse(readFileSync(bufferFile, "utf8"));
  • 写入本地文件
    packages/dsh-proactive-daily/lib/index.js:135
    mkdirSync(dirname(bufferFile), { recursive: true });
  • 写入本地文件
    packages/dsh-proactive-daily/lib/index.js:138
    writeFileSync(bufferFile, JSON.stringify(payload), "utf8");
  • 读取本地文件
    packages/dsh-proactive-daily/src/plugin.ts:73
    if (!existsSync(bufferFile)) return []
  • 读取本地文件
    packages/dsh-proactive-daily/src/plugin.ts:74
    const raw = JSON.parse(readFileSync(bufferFile, 'utf8'))
  • 写入本地文件
    packages/dsh-proactive-daily/src/plugin.ts:90
    mkdirSync(dirname(bufferFile), { recursive: true })
  • 读取本地文件
    packages/dsh-proactive-daily/src/plugin.ts:93
    if (!existsSync(bufferFile)) return {}
  • 读取本地文件
    packages/dsh-proactive-daily/src/plugin.ts:94
    const raw = JSON.parse(readFileSync(bufferFile, 'utf8'))
  • 写入本地文件
    packages/dsh-proactive-daily/src/plugin.ts:100
    writeFileSync(bufferFile, JSON.stringify({ ...existing, messages: messages.slice(-200) }), 'utf8')
  • 读取本地文件
    packages/dsh-proactive-daily/src/plugin.ts:186
    if (!existsSync(bufferFile)) return ''
  • 读取本地文件
    packages/dsh-proactive-daily/src/plugin.ts:187
    const raw = JSON.parse(readFileSync(bufferFile, 'utf8'))
  • 写入本地文件
    packages/dsh-proactive-daily/src/plugin.ts:198
    mkdirSync(dirname(bufferFile), { recursive: true })
  • 写入本地文件
    packages/dsh-proactive-daily/src/plugin.ts:204
    writeFileSync(bufferFile, JSON.stringify(payload), 'utf8')
扫描于 2026/11/2(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 接入主动记忆
  • 接入主动建议
  • 自动捕获评估推送

README

由 DeepSeek 最新模型翻译生成
pa-dsh — ProactiveAgent × DeepSeek Harness 插件组 把 ProactiveAgent(主动记忆 + 主动建议系统)做成 DeepSeek Harness(dsh)的 cordis 插件组。引擎零重写,全部复用 @proactive-agent/core,通过 cordis 服务注入。 架构 graph TB subgraph dsh[DeepSeek Harness 宿主] EV[会话事件流 session/event] TOOLS[工具注册 ctx.tools] PROMPT[系统提示词 systemPrompt] SKILLS[技能目录 ctx.skills] SESSIONS[会话 Store ctx.sessions] end CORE[dsh-proactive-corepaCore 服务@proactive-agent/core 进程内单例] MEM[dsh-proactive-memorymemory_capture / recall / stats+ persona 提示词段] SUG[dsh-proactive-suggest事件 → evaluateNow 五触发器+ suggest_now 工具]
展开完整文档(README 剩余 1 节)
pa-dsh — ProactiveAgent × DeepSeek Harness 插件组

把 ProactiveAgent(主动记忆 + 主动建议系统)做成 DeepSeek Harness(dsh)的 cordis 插件组。引擎零重写,全部复用 @proactive-agent/core,通过 cordis 服务注入。

架构

graph TB
subgraph dsh[DeepSeek Harness 宿主]
EV[会话事件流 session/event]
TOOLS[工具注册 ctx.tools]
PROMPT[系统提示词 systemPrompt]
SKILLS[技能目录 ctx.skills]
SESSIONS[会话 Store ctx.sessions]
end

CORE[dsh-proactive-corepaCore 服务@proactive-agent/core 进程内单例]

MEM[dsh-proactive-memorymemory_capture / recall / stats+ persona 提示词段]
SUG[dsh-proactive-suggest事件 → evaluateNow 五触发器+ suggest_now 工具]
INJ[dsh-proactive-injector建议箱通知投递suggest_list / accept / dismiss]
DAI[dsh-proactive-daily每日 09:30 定时评估daily_review 工具]
SKI[dsh-proactive-skillssop 记忆 → pa-sop-N skills]

CORE -. paCore 服务注入 .-> MEM CORE -. paCore 服务注入 .-> SUG CORE -. paCore 服务注入 .-> INJ CORE -. paCore 服务注入 .-> DAI CORE -. paCore 服务注入 .-> SKI

EV -- session/created/turn/end/disposed --> SUG
SUG -- pa/suggestion 事件 --> INJ
INJ -- session.append 通知 --> SESSIONS
MEM -- persona 段 --> PROMPT
SUG -- suggest_now --> TOOLS
INJ -- 建议箱工具 --> TOOLS
DAI -- daily_review --> TOOLS
SKI -- registerProvider --> SKILLS
SUG -- 建议落库 --> CORE
INJ -- accept/dismiss 反馈 --> CORE

事件流:dsh 会话事件(session/created → session_start 存量推送;turn/end → session_mid 强信号建议;session/disposed → session_end 完整评估;suggest_now → manual;每日定时 → timer)→ suggest 插件评估 → pa/suggestion 事件 → injector 投递建议箱通知 → 用户接受/忽略 → 反馈回流 core(状态、类型权重持久化)。

插件一览(已发布 npm,v0.1.0)

| 包 | 职责 |
| @proactive-agent/dsh-proactive-core | 引擎单例宿主:唯一 import @proactive-agent/core,以 paCore 服务提供 memory/suggest |
| @proactive-agent/dsh-proactive-memory | 原生记忆工具(capture/recall/stats)+ 用户画像提示词段 |
| @proactive-agent/dsh-proactive-suggest | 主动建议引擎:session 事件 → evaluateNow 五触发器 |
| @proactive-agent/dsh-proactive-injector | 建议箱 + 反馈闭环(suggest_list/accept/dismiss) |
| @proactive-agent/dsh-proactive-daily | 每日 09:30 定时回顾 + daily_review 工具 |
| @proactive-agent/dsh-proactive-skills | sop 记忆 → dsh skills(pa-sop-N 动态目录) |

安装到 dsh profile(官方 bundle 形态,推荐)

一条命令:自动安装 6 包 + 应用 cordis.patch.yml 层
dsh plugin --profile web add @proactive-agent/dsh

细粒度安装(高级,逐个启用)

cd ~/.dsh/profiles/webbash
pnpm add @proactive-agent/dsh-proactive-core @proactive-agent/dsh-proactive-memory @proactive-agent/dsh-proactive-suggest @proactive-agent/dsh-proactive-injector @proactive-agent/dsh-proactive-daily @proactive-agent/dsh-proactive-skills

在 ~/.dsh/profiles/web/cordis.patch.yml 添加(pa-core 必须排最前,内容同 bundle 包的 cordis.patch.yml): yaml
- insert:
- id: pa-core
name: '@proactive-agent/dsh-proactive-core'
config: {}
- id: pa-memory
name: '@proactive-agent/dsh-proactive-memory'
config: { personaOrder: 5 }
- id: pa-suggest
name: '@proactive-agent/dsh-proactive-suggest'
config: {}
- id: pa-injector
name: '@proactive-agent/dsh-proactive-injector'
config: { notifyOnSuggestion: true }
- id: pa-daily
name: '@proactive-agent/dsh-proactive-daily'
config: { dailyAt: '09:30' }
- id: pa-skills
name: '@proactive-agent/dsh-proactive-skills'
config: { maxSkills: 10 }

重启 dsh 即生效。记忆库默认 ~/.proma-proactive/(与 Claude Code 版 PA 共享)。

开发 bash
pnpm install
node scripts/build.mjs # esbuild 构建全部插件到 packages/*/lib/

发布到 npm(在你终端运行,2FA 为 WebAuthn) bash bash scripts/publish.sh # patch 版本(可 minor / major),含 bundle 聚合包

每个包发布时按 Enter 打开浏览器 → 指纹授权。随后升级 dsh profile: bash
cd ~/.dsh/profiles/web && pnpm add @proactive-agent/dsh-proactive-xxx@新版本

文档

- PROPOSAL.md — 12 节完整方案(架构、触发器映射、分阶段实施)
- IMPLEMENTATION.md — 实施总结、验证链路、踩坑记录、已知待办
预览分享卡片长什么样 ↓ConradLu2740/pa-dsh
分享 · DeepSeek Harness Hub
ConradLu2740/pa-dsh

为会话接入主动记忆与建议,自动捕获、评估并推送

回到顶部