这是一个面向 DeepSeek Harness 的企业微信单平台插件,当前 MVP 只支持企业微信文本消息:Webhook 验签与解密、Harness Session 映射、Agent 对话和文本回复。
当前版本 0.1.0 为发布草案,尚未创建 GitHub Release,也尚未发布到 npm。GitHub Actions 最新运行在安装依赖阶段失败,真实企业微信账号联调也尚未完成,因此当前不应标记为正式生产版本。
当前首个验证基线是 DeepSeek Harness dsh 0.1.0-rc.8 与 Cordis 4.0.1。该组合是开发和发布前验证基线,不是对未来 Harness 版本的自动兼容承诺。
正式支持范围、Candidate 版本和升级步骤记录在 docs/compatibility.md。只有完成类型检查、测试、真实 Provider + Harness 组合测试、构建和 Loader 冒烟的组合才会标记为 Verified。
pnpm install
pnpm typecheck
pnpm lint
pnpm test
pnpm test:coverage
pnpm audit:prod
pnpm build
pnpm test:harnesspnpm test:coverage 是覆盖率门禁:行、语句和函数覆盖率必须达到 90%,分支覆盖率必须达到 80%。
如果 pnpm 因构建脚本审批停止,请按 pnpm 提示审批依赖后重新运行;不要把本机绝对路径或凭据写入 package.json。
企业微信 Secret、Token 和 EncodingAESKey 必须通过 Harness Credential Ref 提供。配置文件只写引用名,例如 WECHAT_WORK_SECRET,不写 Secret 值。
发布包声明了 DSH Bundle patch。安装后,dsh plugin 会自动把插件加入指定 profile;无需再传入源码目录中的绝对路径:
# 发布到 npm 后
dsh plugin --profile web add @ly028716/dsh-enterprise-im-plugin
# 发布前可从本地打包产物验证
pnpm build
pnpm pack --pack-destination .artifacts
dsh plugin --profile web add file:D:/absolute/path/ly028716-dsh-enterprise-im-plugin-0.1.0.tgz重启 Web profile 后,插件会在 /webhooks/wechat-work 注册路由。随包的 cordis.patch.yml 使用非敏感占位配置;在 $DSH_HOME/profiles/web/cordis.patch.yml 中以相同的 id: enterprise-im 覆盖为实际企业 ID、应用 ID 和凭据引用。Patch 覆盖会替换整段 config,因此需写入完整配置。插件默认对出站消息最多重试 3 次,并自动淘汰 30 分钟无活动的进程内会话;可用 outbound* 与 session* 配置项调整。
cordis.example.yml 仅用于源码开发时的手工 overlay,不是独立的 Cordis 根配置。先构建插件,再从 Harness 工作区运行:
pnpm build
cd D:/IDEWorkplaces/GitHub/deepseek-harness
pnpm run build
pnpm dsh web --patch D:/IDEWorkplaces/DeepSeekHarness/dsh-enterprise-im-plugin/cordis.example.yml --no-open企业微信后台的回调 URL 应指向 Harness WebServer 的 /webhooks/wechat-work 路径。GET 验证由插件返回解密后的 echostr;POST 文本消息先快速返回 success,再异步进入 Agent。
单元和协议测试不访问真实企业微信:
node node_modules/vitest/vitest.mjs run tests/core tests/wechat tests/webhook.test.ts真实组合验证需要使用本地 Harness checkout 和 mock LLM;先运行 pnpm build 生成 lib,再运行 pnpm test:harness。测试会通过真实 Loader 启动 WebServer,覆盖加密企业微信文本回调、GET 验证握手和无效签名拒绝,并将企业微信 API 替换为 HTTPS 地址语义下的本地 mock,不依赖 DEEPSEEK_API_KEY 或真实企业微信凭据。
当前不支持图片、语音、文件、Markdown、企业微信主动推送、多租户管理后台、外部队列和 Redis/PostgreSQL 持久化。Harness Session 持久化负责会话历史,插件只维护进程内的同会话串行队列和消息幂等状态。