deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:nan1010082085/dsh-plugin-ima-sync
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
已迁移:本插件现维护于 monorepo nan1010082085/dsh-plugins(
packages/ima-sync),本仓库仅作历史保留。安装请用dsh plugin --profile web add link:<monorepo>/packages/ima-sync。
DSH(DeepSeek Harness)插件:把 DSH 的对话进度自动上传到腾讯 IMA(ima 笔记 + Work 知识库)。
灵感与行为对齐 Claude Code 的 ima 工作流:每轮对话结束自动生成一条进度记录,按天聚合到 [项目名] YYYY-MM-DD 笔记,可关联 IMA Work 知识库。
| 触发时机 | 行为 |
|---|---|
每轮对话结束(turn/end) |
生成该轮进度记录并上传:用户输入、工具调用统计、todo 任务进度、回复摘要 |
会话销毁(agent/disposed) |
生成整场会话总结并上传(轮次列表 + 每轮摘要) |
手动 /ima-upload |
在 Web 输入框发送 /ima-upload 立即上传当前会话进度 |
只处理顶层会话(子代理会话不重复上报);上传全部 fire-and-forget、按会话串行排队,失败仅记日志,绝不影响对话。
session/event(turn/start / user/message / tool/call / assistant/message / todo/write / turn/end)逐轮累积会话状态agent/disposed 生成会话总结# [项目名] YYYY-MM-DD,每轮一条 ### 轮次 #N~/.local/bin/ima-upload 脚本(复用项目映射 ~/.config/ima/projects.json 与每日笔记缓存 ~/.cache/ima/daily-notes);脚本不存在时自动退化为直接调用 IMA OpenAPI(list_note → import_doc/append_doc → add_knowledge),行为一致# 从 GitHub 安装到 web profile(pnpm add + 自动注册 bundle)
dsh plugin --profile web add github:nan1010082085/dsh-plugin-ima-sync
# 重启 dsh web 生效
dsh plugin 会自动把声明了 dsh.bundle 的包追加到 profile 的 dsh.profile.bundles,无需手动改清单。
手动方式:在
~/.dsh/profiles/web/package.json的dependencies加"dsh-plugin-ima-sync": "github:nan1010082085/dsh-plugin-ima-sync",然后dsh plugin --profile web install。
⚠️ 本插件不内置任何密钥。
clientId/apiKey/workKbId均为配置项,请填入你自己的腾讯 IMA OpenAPI 凭证(获取方式见 IMA 开放接口)。
凭证按以下优先级解析(三者任一即可):
~/.dsh/profiles/web/cordis.patch.yml):- id: ima-sync
config:
enabled: true
clientId: <your-ima-openapi-client-id>
apiKey: <your-ima-openapi-api-key>
workKbId: <your-ima-work-knowledge-base-id> # 留空则不关联知识库
# triggerOnTurnEnd: true
# triggerOnSessionEnd: true
# imaUploadBin: '' # 默认 ~/.local/bin/ima-upload;留空且脚本不存在时走直接 API
# projectsFile: '' # 默认 ~/.config/ima/projects.json
# cacheDir: '' # 默认 ~/.cache/ima/daily-notes
# defaultProject: '' # cwd 未命中映射时的兜底项目名
# maxPromptLength: 300
# maxDetailLength: 20000
# timeoutMs: 120000
环境变量:IMA_OPENAPI_CLIENTID / IMA_OPENAPI_APIKEY
本地文件(本机默认,与 Claude Code 的 ima MCP 共用):~/.config/ima/client_id 与 ~/.config/ima/api_key
也支持把
clientId/apiKey用!!js process.env.XXX表达式注入(见 dsh loader 的!!js约定)。
| 配置 | 默认 | 说明 |
|---|---|---|
enabled |
true |
总开关 |
triggerOnTurnEnd |
true |
每轮结束上传进度 |
triggerOnSessionEnd |
true |
会话销毁时上传总结 |
clientId / apiKey |
空(读环境变量/本地文件) | IMA OpenAPI 凭证 |
workKbId |
空 | IMA Work 知识库 ID,留空不关联知识库 |
imaUploadBin |
~/.local/bin/ima-upload |
本机上传脚本路径 |
projectsFile |
~/.config/ima/projects.json |
项目名映射文件 |
cacheDir |
~/.cache/ima/daily-notes |
每日笔记缓存目录 |
defaultProject |
目录名 | cwd 未命中映射时的兜底项目名 |
maxPromptLength |
300 |
用户输入截断长度 |
maxDetailLength |
20000 |
详情截断长度 |
timeoutMs |
120000 |
脚本调用超时 |
node --check lib/index.js # 语法检查
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。