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

上下文记忆桥 knqiufan/powercontext-dsh

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

DeepSeek Harness 插件,通过 HTTP 连接运行中的 PowerContext…

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

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

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add knqiufan/powercontext-dsh
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

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

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

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

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

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

✗npm 包powercontext-dsh(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/2 00:32:28

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

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 30 处,展示前 30 条)
  • 发起网络请求
    lib/index.js:684
    return encodeSuccess(await client.request(id, body, signal));
  • 执行外部命令固定命令
    lib/index.js:740
    const child = spawn("git", args, {
  • 发起网络请求
    lib/index.js:994
    const result = await client.request("flush_memory", { scope_id: scopeId }, signal);
  • 发起网络请求
    lib/index.js:1015
    const result = await input.client.request("capture_content_source", {
  • 发起网络请求
    lib/index.js:1124
    const result = await input.client.request("prepare_context", {
  • 执行外部命令来自配置/变量
    scripts/prepare.mjs:11
    return spawnSync(process.execPath, [join(root, 'scripts', file)], {
  • 读取本地文件
    scripts/prepare.mjs:17
    if (existsSync(built) && !force) {
  • 执行外部命令固定命令
    scripts/prepare.mjs:24
    const tsdown = spawnSync('tsdown', { cwd: root, stdio: 'inherit', shell: true })
  • 读取本地文件
    scripts/prepare.mjs:26
    if (existsSync(built)) {
  • 读取本地文件
    scripts/e2e-server.mjs:13
    if (fromResolver && existsSync(join(fromResolver, 'pyproject.toml'))) return fromResolver
  • 读取本地文件
    scripts/e2e-server.mjs:15
    if (existsSync(join(sibling, 'pyproject.toml'))) return sibling
  • 读取本地文件
    scripts/e2e-server.mjs:17
    if (existsSync(join(documented, 'pyproject.toml'))) return documented
  • 发起网络请求
    scripts/e2e-server.mjs:46
    const response = await fetch(url, { signal: AbortSignal.timeout(1000) })
  • 执行外部命令来自配置/变量
    scripts/e2e-server.mjs:59
    return spawn(uv, ['run', 'powercontext', 'server', 'run'], {
  • 读取本地文件
    scripts/gen-operations.mjs:13
    const doc = parse(readFileSync(yamlPath, 'utf8'))
  • 读取本地文件
    scripts/gen-operations.mjs:23
    const actual = readFileSync(path, 'utf8')
  • 写入本地文件
    scripts/gen-operations.mjs:30
    mkdirSync(dirname(generatedPath), { recursive: true })
  • 写入本地文件
    scripts/gen-operations.mjs:31
    writeFileSync(generatedPath, source)
  • 读取本地文件
    scripts/pack-release.mjs:9
    const original = readFileSync(manifestPath, 'utf8')
  • 写入本地文件
    scripts/pack-release.mjs:15
    writeFileSync(manifestPath, `${JSON.stringify(packed, null, 2)}\n`)
  • 执行外部命令固定命令
    scripts/pack-release.mjs:16
    const result = spawnSync('pnpm', ['pack'], { cwd: root, stdio: 'inherit', shell: true })
  • 写入本地文件
    scripts/pack-release.mjs:19
    writeFileSync(manifestPath, original)
  • 读取本地文件
    scripts/stamp-version.mjs:30
    const manifest = JSON.parse(readFileSync(manifestPath, 'utf8'))
  • 写入本地文件
    scripts/stamp-version.mjs:32
    writeFileSync(manifestPath, `${JSON.stringify(manifest, null, 2)}\n`)
  • 读取本地文件
    scripts/sync-openapi.mjs:9
    return path && existsSync(path) ? resolve(path) : undefined
  • 读取本地文件
    scripts/sync-openapi.mjs:16
    if (existsSync(candidate)) return resolve(candidate)
  • 读取本地文件
    scripts/sync-openapi.mjs:26
    if (fromEnv && existsSync(fromEnv)) return resolve(fromEnv)
  • 读取本地文件
    scripts/sync-openapi.mjs:42
    if (existsSync(dest)) return dest
  • 写入本地文件
    scripts/sync-openapi.mjs:51
    mkdirSync(dirname(dest), { recursive: true })
  • 写入本地文件
    scripts/sync-openapi.mjs:52
    copyFileSync(source, dest)
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-commands@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/dsh-skill@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-tools@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • HTTP连接上下文服务
  • 召回与记忆
  • 交接、经验与技能

DeepSeek Harness 插件,通过 HTTP 连接 PowerContext Server,支持召回、记忆、交接、经验和技能。

README

由 DeepSeek 最新模型翻译生成
PowerContext for DeepSeek Harness DeepSeek Harness 插件,通过 HTTP 连接运行中的 PowerContext Server,用于召回、记忆、交接、经验和技能。它不内嵌存储,不启动 Server,也不导入 Python 包。 同一个插件也集成在官方 PowerContext 中,路径为 integrations/dsh/plugins/powercontext。这个独立仓库与树内插件保持同步:修复和改进会同时落到两处。 dsh plugin --profile web add <path-or-tarball> 功能 插件通过 HTTP 调用 Server 的 /v1/... OpenAPI 接口。它不使用 MCP。 在每次模型步骤之前,它会自动: 1. 召回有界上下文,调用 POST /v1/context/prepare,并将其作为不可信的历史证据注入。 2. 捕获当前用户输入作为 Content Source,调用 POST /v1/sources/content。 命名 pc_ 工具暴露智能体安全的 Memory、交接、经验、技能和只读审查操作。DSH 在命名变更运行前请求一次性用户批准。审查变更仍为显式人工 /pc review 命令;破坏性和管理性 OpenAPI 操作不是模型工具。
展开完整文档(README 剩余 1 节)
PowerContext for DeepSeek Harness

DeepSeek Harness 插件,通过 HTTP 连接运行中的 PowerContext Server,用于召回、记忆、交接、经验和技能。它不内嵌存储,不启动 Server,也不导入 Python 包。

同一个插件也集成在官方 PowerContext 中,路径为 integrations/dsh/plugins/powercontext。这个独立仓库与树内插件保持同步:修复和改进会同时落到两处。

dsh plugin --profile web add <path-or-tarball>

功能

插件通过 HTTP 调用 Server 的 /v1/... OpenAPI 接口。它不使用 MCP。

在每次模型步骤之前,它会自动:

1. 召回有界上下文,调用 POST /v1/context/prepare,并将其作为不可信的历史证据注入。
2. 捕获当前用户输入作为 Content Source,调用 POST /v1/sources/content。

命名 pc_ 工具暴露智能体安全的 Memory、交接、经验、技能和只读审查操作。DSH 在命名变更运行前请求一次性用户批准。审查变更仍为显式人工 /pc review 命令;破坏性和管理性 OpenAPI 操作不是模型工具。技能 project-context 为模型记录相同的工作流。如果 Server 不可达,召回会被跳过,回合继续。

| 领域 | 工具 | HTTP |
| Memory | pc_search pc_remember pc_memory_list pc_memory_get pc_memory_revise pc_memory_retire | /v1/memory/ |
| Context | pc_prepare_context pc_capture_source | /v1/context/prepare, /v1/sources/content |
| Handoff | pc_handoff_activate pc_handoff_prepare pc_handoff_finalize pc_handoff_commit pc_handoff_continue | /v1/handoff/ |
| Experience / Skill | pc_experience_generate pc_experience_get pc_skill_generate pc_skill_get | /v1/experience/, /v1/skill/ |
| Review | pc_review_list pc_review_get | /v1/artifact-candidates/ |

完整契约见 openapi/powercontext.yaml。

快速开始

PowerContext Server 和 DeepSeek Harness 是两个进程。两者都必需。Server 和插件使用相同的 Git ref。

安装 Server

uv tool install "powercontext[cli,server] @ git+https://github.com/oceanbase/powercontext.git@master"
powercontext --version

从 PowerContext 检出目录中,你可以改用 uv run powercontext server run。

安装插件

先安装 DeepSeek Harness,并确保 web 配置档存在(运行一次 dsh web)。从 PowerContext 检出目录中,插件位于 integrations/dsh/plugins/powercontext。优先使用命令行,这样 ref 能保持对齐:

powercontext setup dsh --source oceanbase/powercontext --ref master

本地检出目录用法相同:

bash
powercontext setup dsh --source /path/to/powercontext

setup dsh 会在该插件目录上调用 dsh plugin --profile web add。如果命令行还不可用,就自己添加目录: bash
dsh plugin --profile web add /path/to/powercontext/integrations/dsh/plugins/powercontext

这个独立仓库仍然是一个发布渠道。GitHub Release 的 tarball 依然可用: bash
dsh plugin --profile web add ./powercontext-dsh-0.0.5.tgz

如果插件已经从源码检出安装过,先移除它。在 Windows 上,用 tarball 替换 link: 安装会失败,因为 pnpm 会尝试重建嵌套的 node_modules 符号链接。

TypeScript 改动后重新构建:pnpm install、pnpm test、pnpm build,然后重启 dsh web。

可选检查: bash powercontext doctor powercontext doctor dsh
dsh --profile web --dump-config

doctor 检查 Server。doctor dsh 检查 dsh 命令行是否在 PATH 上,以及插件 id 是否为 powercontext-dsh。

移除插件: bash
dsh plugin --profile web remove powercontext-dsh

启动 Server bash powercontext server run

默认值:http://127.0.0.1:8000,无认证,SQLite 位于用户数据目录下(POWERCONTEXT_HOME 可覆盖它)。
bash
curl http://127.0.0.1:8000/health/live
curl http://127.0.0.1:8000/health/ready

live 必须成功。未配置推理时,ready 可能是 degraded。显式 Memory 写入不需要模型。

使用它

让 Server 保持运行,然后: bash
dsh web

打开项目,像平常一样聊天。插件会在后台召回上下文并存储用户输入。当模型需要读写记忆、交接工作,或生成经验 / 技能时,它会调用对应的 pc_* 工具。

你可以在聊天中输入 /pc doctor,检查 Server 是否可达。

配置

环境变量会覆盖补丁配置。不要把密钥放进 --dump-config 能打印的文件里。

| 字段 | 环境变量 | 默认值 | 含义 |
| baseUrl | POWERCONTEXT_DSH_BASE_URL | http://127.0.0.1:8000 | Server 根 URL,末尾不带斜杠 |
| authorization | POWERCONTEXT_DSH_AUTHORIZATION | 空 | 完整的 Bearer <token> |
| scopeId | POWERCONTEXT_DSH_SCOPE_ID | 空 | 覆盖自动项目作用域 |
| timeoutMs | — | 4000 | 共享的召回 + 捕获预算 |
| requestTimeoutMs | — | 1000 | 单次 HTTP 超时 |
| maxBytes | — | 8000 | prepare_context 预算 |
| capturePrompts | POWERCONTEXT_DSH_CAPTURE_PROMPTS | true | 把用户输入持久化为 Source |
| flushOnCapture | POWERCONTEXT_DSH_FLUSH_ON_CAPTURE | false | 捕获后立即 flush |

要设置持久的非密钥默认值,编辑 ~/.dsh/profiles/web/cordis.patch.yml。Harness 会替换该行的整个 config 对象,所以要把你仍然需要的每个键都重新写一遍: yaml
- id: powercontext-dsh
config:
baseUrl: https://pc.example.com
timeoutMs: 4000
requestTimeoutMs: 1000
maxBytes: 8000
capturePrompts: true
flushOnCapture: false

远程 Server

插件跑在 Harness 进程里。浏览器从不调用 PowerContext。Server 默认绑定 127.0.0.1。远程 Server 必须监听更广的地址并开启鉴权。对外暴露到网络之前,先在前面加上 TLS。
bash
export POWERCONTEXT_SERVER_HTTP_HOST=0.0.0.0
export POWERCONTEXT_SERVER_HTTP_PORT=8000
export POWERCONTEXT_SERVER_AUTH_ENABLED=true
export POWERCONTEXT_SERVER_AUTH_TOKEN=<long-random-secret>
powercontext server run

对外发布用户实际使用的 API 根地址,例如 https://pc.example.com。结尾不要带斜杠,也不要带 /mcp。
bash
export POWERCONTEXT_DSH_BASE_URL=https://pc.example.com
export POWERCONTEXT_DSH_AUTHORIZATION="Bearer <long-random-secret>"
dsh web

POWERCONTEXT_DSH_AUTHORIZATION 必须是完整的 Bearer <token>,并且要和 POWERCONTEXT_SERVER_AUTH_TOKEN 一致。token 放在环境变量里,不要写进补丁文件。

常见的 Server 变量:

| 变量 | 含义 |
| POWERCONTEXT_SERVER_HTTP_HOST / _PORT | 监听地址 |
| POWERCONTEXT_SERVER_AUTH_ENABLED / _TOKEN | 静态 Bearer |
| POWERCONTEXT_HOME | 数据目录 |
| POWERCONTEXT_SERVER_RUNTIME_SCHEDULE_SECONDS | 抽取间隔;不设置则关闭该任务 |
| POWERCONTEXT_SERVER_INFERENCE_GENERATION_MODEL | 抽取使用的生成模型 |

开发

HTTP 操作由 PowerContext 的 openapi/powercontext.yaml 生成。把 POWERCONTEXT_ROOT 或 POWERCONTEXT_OPENAPI 指向一份 checkout,然后运行 pnpm gen。当 src/operations.generated.ts 出现漂移时,pnpm gen:check 会失败。
bash
pnpm install
pnpm gen:check
pnpm test
pnpm test:e2e
pnpm build

pnpm test:e2e 会从 POWERCONTEXT_ROOT 启动本地 Server,并调用 liveness、readiness、remember、search、prepare 和 capture。它不会启动 DeepSeek Harness,也不需要模型。

- 推送到 main / master:运行 pnpm test 和 pnpm build,并检查 lib/ 以及生成的表已提交。
- Pull requests:pnpm test 和 pnpm gen:check。
- GitHub Release 手动触发:Actions → Release → Run workflow → 版本号,例如 0.1.0。产物是 powercontext-dsh-X.Y.Z.tgz。

许可证

Apache License 2.0
预览分享卡片长什么样 ↓knqiufan/powercontext-dsh
分享 · DeepSeek Harness Hub
knqiufan/powercontext-dsh

DeepSeek Harness 插件,通过 HTTP 连接运行中的 PowerContext…

这是你的仓库?认领条目

回到顶部