社区讨论LinuxDo 最新
个人的 OpenCode 的跨会话记忆配置+会话内不失真压缩裁剪上下文(compact)方案
省流版 claude-mem 负责全部将细节注意记住,跨会话记忆存储当前 top 方案 magic-context 负责会话内上下文裁剪,和近期记忆保存。记忆方面不强,但是会话内保持任务目标和遵守规范行为进行进行上下文裁剪压缩 Strict-Doc 负责记录固化的项目文档文件,记忆文件。主要是方便人类进行阅读查看 AGENTS.md 添加一小段 tail 来规范行为 自制 load-mem 和 save-mem 以及 migrate-mem 的 skill 来和上面的功能进行呼应 具体配置 安装配置 claude…
内容摘要
作者:#brilliantrough
板块:#开发调优
省流版
claude-mem 负责全部将细节注意记住,跨会话记忆存储当前 top 方案
magic-context 负责会话内上下文裁剪,和近期记忆保存。记忆方面不强,但是会话内保持任务目标和遵守规范行为进行进行上下文裁剪压缩
Strict-Doc 负责记录固化的项目文档文件,记忆文件。主要是方便人类进行阅读查看
AGENTS.md 添加一小段 tail 来规范行为
自制 load-mem 和 save-mem 以及 migrate-mem 的 skill 来和上面的功能进行呼应
具体配置
安装配置 claude-mem
npx claude-mem install --ide opencode
运行这个官网上的命令就能直接安装了,不过需要注意一点。这个是在 ~/.config/opencode/plugins 下面安装了一个 claude-mem.js 的插件脚本。同时对应的服务是运行在 ~/.claude/plugins/cache/thedotmack/claude-mem 的一个目录下。同时这个 claude-mem.js 只是提供了一个 search 工具。假如想要更多工具,可以在 opencode.jsonc 中配置 mcp 服务器。
{
"mcp": {
"claude-mem": {
"type": "local",
"command": ["~/.bun/bin/bun", "~/.claude/plugins/marketplaces/thedotmack/plugin/scripts/mcp-server.cjs"],
"enabled": true
},
}
}
然后在 ~/.claude-mem/settings.json 中的配置就如下所示,大家基本都是自定义API,比如使用 NewAPI,所以初始化配置的时候选择 OpenRouter,API那里随便输入字符串就行了,可以自己去 json 文件中进行细节配置,这里的 openrouter 背后的格式就是 openai-compatible 了
{
"CLAUDE_MEM_RUNTIME": "worker",
"CLAUDE_MEM_PROVIDER": "openrouter",
"CLAUDE_MEM_OPENROUTER_BASE_URL": "BASE URL",
"CLAUDE_MEM_OPENROUTER_MODEL": "model name",
"CLAUDE_MEM_CONTEXT_OBSERVATIONS": "20",
"CLAUDE_MEM_OPENROUTER_API_KEY": "API Key"
}
自行替换这里的路径即可,目前的 claude-mem 的插件脚本并没有注册全部 mcp 工具,要使用更多的 mcp 工具就需要把本地运行这个 mcp-server.cjs 的脚本
安装配置 magic-context
curl -fsSL https://raw.githubusercontent.com/cortexkit/magic-context/master/scripts/install.sh | bash
运行这个官网提供的命令即可。
对应的配置文件为 ~/.config/cortexkit/magic-context.jsonc
{
"$schema": "https://raw.githubusercontent.com/cortexkit/magic-context/master/assets/magic-context.schema.json",
"historian": {
"opencode": {
"model": "提供商/模型"
}
},
"execute_threshold_percentage": 65, // 模型 input 的百分比,达到 65% 开始进行记忆存储,后续还会有裁剪
"embedding": {
"provider": "openai-compatible",
"model": "text-embedding-3-large",
"endpoint": "BASE URL",
"api_key": "API KEY"
},
"dreamer": {
"opencode": {
"model": "提供商/模型"
}
},
"sidekick": {
"disable": true
}
}
配置 historian 和 dreamer 两个 Agent 的模型,这里使用 opencode.jsonc 中配置的提供商和模型即可,然后再单独配置一下 embedding
注意:一定要记得禁用 opencode 内置的 compact 功能,不然和 magic-context 冲突,opencode.jsonc 的配置如下
{
"compaction": { "auto": false, "prune": false },
"plugin": [
"@cortexkit/opencode-magic-context@latest",
]
}
Strict Doc 配置
这个配置没啥好说的,主要是配置个 python 环境,让 Agent 去配置就行了。
定期让 Agent 更新一个项目文档,要人能够看懂,claude-mem 和 magic-context 本质是面向 Agent,面向会话上下文的,而 Strict Doc 是面向开发者用户的
Skill & AGENTS.md 配置
下面是 load-mem 的 SKILL.md
---
name: load-mem
description: load all memory layers (injected memory, StrictDoc project_memory, claude-mem history) plus core files to understand the project
---
Build an understanding of this project from all available memory layers, then verify against core files and directory structure.
**Memory layers (in priority order):**
1. **Injected project memory** — the `<project-memory>` block in your system prompt is already loaded. Do NOT re-fetch it. It is the authoritative source for constraints, config values, and conventions.
2. **File memory (StrictDoc)** — `docs/` is one StrictDoc project with two trees: `project_memory/` (memory: `decisions.sdoc` for 口径+初衷, `journal.sdoc` for progress) and `handbook/` (durable documents: specs, research, evaluations). Read the `.sdoc` files directly:
- Nodes carry `UID` (stable anchor), `STATUS`, `STATEMENT` (the decision itself), `RATIONALE` (why it was made).
- **STATUS discipline: only `Active` nodes are current canon.** `Deprecated`/`Superseded`/`Proposed` nodes are history — never quote them as current practice. When a node is Superseded, follow the relation to its successor.
- To query precisely instead of reading everything: `strictdoc export --formats=json .` in `docs/`, then e.g. `jq '.DOCUMENTS[].NODES[] | select(.STATUS=="Active")' output/json/index.json`.
3. **Action history (claude-mem)** — a passive log of p
资讯来源
LinuxDo