三级记忆 agent 底座:L1 常驻层、L2 索引、L3 详情骨架与模板,受保护文件门禁(一次性审批令牌),零判断事件日志,周审提炼与 TDD 执行流技能。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:reatcat/l123-harness
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
把一套经过实战检验的 agent 方法论打包成插件:Claude Code 插件 + DeepSeek Harness (dsh) 组合包,同一套内容双宿主分发。设计对齐「一切皆插件」: 宿主是内核,本插件只提供能力组件——上下文注入、门禁、事件记录、记忆提炼, 全部可单独理解、可整体装卸。项目知识不在插件里:插件装机后由项目自己积累。
English — l123-harness packages a battle-tested agent methodology as a plugin for both Claude Code and DeepSeek Harness (
dsh): a three-tier memory system (L1 always-onCLAUDE.md/ L2 index / L3 details) plus gate approval for protected files, a zero-judgement event log, weekly distillation, and a TDD execution loop. Install for dsh:dsh plugin --profile web add github:reatcat/l123-harness
四条原则(方法论内核)
- 状态放模型外:结论、计划、进度写盘,上下文只装当前任务需要的一小部分。
- 客观观察:测试红绿、命令输出、日志数据才是判据;推理不是证据。
- 内层不发散:spec 管计划、计划管步骤边界、TDD 管停止条件。
- 升级需审批:memory 随手写;升级为 knowledge / skill / L1 / L2 必须用户批准。
三级记忆
| 层 | 载体 | 特点 |
|---|---|---|
| L1 常驻 | CLAUDE.md |
小而稳定的缓存前缀:原则、优先级、安全底线、路由表 |
| L2 索引 | .agents/INDEX.md |
症状→一句规则→L3 指针;SessionStart hook 自动注入 |
| L3 详情 | .agents/** |
knowledge / pitfalls / runbooks / current / events / inbox |
组件清单
l123-harness/
├── .claude-plugin/plugin.json # Claude Code 插件清单
├── package.json # dsh 组合包清单(dsh.bundle)
├── cordis.patch.yml # dsh 组合层:插入本插件行
├── dsh/index.js # dsh 入口:注册技能 + 挂载官方 hooks 桥接
├── hooks/
│ ├── hooks.json # 事件接线(6 个生命周期事件)
│ ├── on-session-start.sh # 记事件 + 注入 L2 索引
│ ├── gate-guard.sh # PreToolUse 门禁:保护清单 + 一次性审批令牌
│ ├── on-post-tool.sh # 工具报错 → tool_error 事件(热路径零解释器)
│ ├── on-pre-compact.sh # 压缩前抢救 .agents/current/ 为 checkpoint
│ ├── on-stop.sh / on-session-end.sh # 边界事件记录
│ └── lib-event-log.sh # 事件库:不可变、按月滚动、绝不阻塞主流程
├── skills/
│ ├── init-harness/ # /l123-harness:init-harness 装机(含 init.sh)
│ ├── event-review/ # /l123-harness:event-review 周审提炼
│ ├── tdd/ # 执行流的停止条件(红绿循环)
│ └── write-a-skill/ # 「连续成功 3 次 → skill 草稿」的落地工具
└── templates/ # 装机材料:L1/L2/gate.conf 模板 + 5 个工作模板
安装
Claude Code
# 方式 A:本地开发/单机
claude --plugin-dir /path/to/l123-harness
# 方式 B:个人常驻(放进 skills 目录,自动加载为 l123-harness@skills-dir)
cp -r l123-harness ~/.claude/skills/
# 方式 C:git 仓库分发(本目录即单插件 marketplace)
# 他人执行:
# /plugin marketplace add <git-repo>
# /plugin install l123-harness
DeepSeek Harness(dsh)
本仓库同时是标准 dsh 组合包(package.json 声明 dsh.bundle + 根目录
cordis.patch.yml),纯 JS 免构建,git 安装无需 pnpm 构建授权:
dsh plugin --profile web add github:reatcat/l123-harness
本地开发提示:
dsh plugin add <本地路径>走 pnpmlink:,不会安装 本插件声明的桥接依赖,hooks 会降级(仅技能可用,启动时告警)。 本地验证请用 tarball:npm pack && dsh plugin --profile web add ./l123-harness-*.tgz, 或在插件目录内先pnpm install。
挂载时自动完成两件事:
- 技能注册——4 个方法论技能注册到
ctx.skills,经标准skill工具 面向模型与用户可用(名称与 Claude Code 下一致); - hooks 桥接——挂载官方
@deepseek-ai/dsh-hooks-claude-code, 原样运行hooks/hooks.json(CC/DSH 双宿主同一份钩子脚本)。
| hooks.json 事件 | dsh 桥接 | 说明 |
|---|---|---|
| SessionStart(L2 注入 + 事件) | ✅ | 输出改为 JSON additionalContext,双宿主兼容 |
| PreToolUse(gate-guard 门禁) | ✅ | matcher 已含 DSH 的 edit/write/str_replace_editor;exit 2 → deny |
| PostToolUse(tool_error 记录) | ✅ | 纯观察事件 |
| Stop(边界事件) | ✅ | 纯观察事件 |
| PreCompact(压缩抢救) | ⚠️ 桥接未实现 | 配置被安全忽略,该能力在 DSH 暂不生效 |
| SessionEnd(边界事件) | ⚠️ 桥接未实现 | 同上 |
注:DSH 上
init-harness生成的骨架目录约定(CLAUDE.md/.agents/) 与 Claude Code 完全一致,两个宿主可共用同一个项目的记忆骨架。
使用
/l123-harness:init-harness # 新项目装机:生成 L1/L2/L3 骨架 + 门禁清单
(日常干活:L2 索引自动注入;门禁自动拦截受保护文件;事件自动记录)
/l123-harness:event-review # 周审:读事件日志 → 候选进 inbox → 陪同分流
DSH 下同名技能经 skill 工具或用户命令调用(init-harness、event-review、
tdd、write-a-skill),日常自动化部分(L2 注入、门禁、事件记录)由 hooks
桥接在对应生命周期点自动运行。
纪律速查
- 改受保护文件:先向用户说明 → 批准 →
touch <项目根>/.claude/.gate-token→ 重试。 .agents/inbox/干活时不得读取;候选不是结论。.agents/events/只读不改,不可变。- 知识升级路径:context → memory(随手)→ inbox(周审)→ knowledge / L2(人批)。
许可
MIT
链接
同类插件
vectorize-io/hindsight#coding-agents★ 46361
Hindsight:会学习的 Agent 长期记忆系统,自动召回/保存、知识页、深度反思与按仓库隔离的记忆银行。
volcengine/OpenViking#examples/dsh-memory-plugin★ 39324
面向 DeepSeek Harness 的 OpenViking 记忆与上下文插件:pre-step 自动召回与画像注入、会话捕获、`viking://` URI 防护,以及对接 OpenViking 服务端的 recall/write 记忆工具。
agentscope-ai/ReMe#dsh★ 3555
将 DeepSeek Harness 接入 ReMe 本地优先、自进化的个人知识库:自动把已完成的主 Agent 对话沉淀为用户掌控的 Markdown 记忆,通过 reme_search 结合 BM25、可选向量检索和 wikilink 展开搜索对话与资料,并按日整理长期记忆。
zilliztech/memsearch#MemSearch★ 2722
供 DSH 与其他编程 Agent 共享的 Markdown 记忆,支持自动捕获、步骤前上下文注入、搜索召回,以及通过审阅面板实现 memory-to-skill 自进化。
vshulcz/deja-vu#extensions/dsh★ 1139
读取本机上其他三十三个编程智能体已经写下的会话文件——Claude Code、Codex、Cursor、VS Code Copilot Chat、opencode、OpenClaw、Hermes、Kimi、Cline、Zed 等,包括安装之前的历史:提供 deja_recall、deja_session、deja_blame、deja_fix、deja_how、deja_remember 六个工具与 /deja 命令,并可选地把召回结果加入运行时上下文。本地 BM25 索引,不用大模型,不用向量嵌入,不联网(dsh plugin --profile web add dsh-deja)。
adoresever/graph-memory★ 637
DeepSeek Harness 的可追溯、可检索跨会话记忆:把对话知识沉淀为带类型的图节点(任务/技能/事件)与关系边。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。