关于 cogmem
cogmem 是为编码 Agent 设计的本地优先记忆层,记录跨会话经验、项目状态,并根据结果修订记忆。记忆带有可验证签名和防篡改日志,可检测并拒绝被修改或投毒的内容。
主要功能
- 01跨会话语义记忆检索
- 02根据使用结果修订记忆
- 03记录项目状态与进展
- 04拦截已知错误操作
- 05签名凭证与防篡改日志
适用场景
- 01在新会话中找回相关经验
- 02避免编码 Agent 重复已知错误
- 03追踪多个项目的进展与阻塞
- 04验证记忆是否被篡改
MCP 相关
cogmem 可作为 MCP 服务运行,向客户端提供 recall、note、status、verify 等工具,以及用户模型和项目状态资源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
8收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| k | integer | 否 | 要返回的记忆数量上限(1-20)。默认为 5。 |
| query | string | 是 | 要查找相关经验的任务或问题的自然语言描述,例如 'how does the user want commit messages formatted'。 |
| scope | string | 否 | 可选的领域筛选条件,例如 'rust'、'python'、'universal'。省略则搜索所有范围。 |
详细介绍
cogmem
面向 AI 编码 Agent 的自我改进、可验证记忆层。
面向 AI 编码 Agent 的自我改进、可验证记忆层。
cogmem 会在多个会话中学习你的工作方式,让 Agent 随着时间推移变得越来越准确、越来越自主:它不再重复犯错,持续维护每个项目的实时模型,并在恰当时机呈现正确的经验教训。每条记忆都经过加密签名且可检测篡改,因此,在遭到投毒或修改的记忆影响 Agent 之前,就能检测并拒绝它。
由 WritersLogic 开发——优先本地的记忆回溯;你的记忆和身份密钥都保留在自己的设备上(参见隐私)。
安装
从 PyPI 安装
pip install cogmem # CLI + MCP server + verifiable-memory tools
pip install 'cogmem[recall]' # add local semantic recall (fastembed)
cogmem init # wire the Claude Code hooks + build the index
运行 pip install cogmem 即可获得 cogmem CLI 和 MCP 服务(cogmem mcp,或按需运行 uvx cogmem mcp)——可验证记忆工具只需核心安装即可使用。添加 [recall] 附加组件以启用本地语义记忆回溯,然后运行 cogmem init,将完整学习闭环(SessionStart/UserPromptSubmit/Stop hooks 和索引)接入 Claude Code。cogmem init 可幂等运行;随时可以重新运行。
克隆安装程序(开箱即用,包含常驻守护进程)
克隆安装程序会完成 pip install + cogmem init 的所有工作,还会将常驻记忆回溯守护进程(launchd/systemd)设置为托管服务:
git clone https://github.com/writerslogic/cogmem.git
cd cogmem
./install.sh
也可以用一行命令完成:
curl -fsSL https://raw.githubusercontent.com/writerslogic/cogmem/main/install.sh | bash
install.sh 可幂等运行——随时重新运行即可原地升级。它会在
~/.claude/cogmem 下安装代码,创建包含依赖项的独立虚拟环境,将 cogmem
CLI 添加到 PATH,设置 Claude Code hooks,并启动常驻记忆回溯守护进程
(在 macOS 上作为 launchd 代理运行,在 Linux 上作为 systemd --user 服务运行)。需要
Python 3.12+;语义记忆回溯使用本地模型(fastembed,无需外部
API)。传入 --no-daemon 或 --no-hooks 可跳过相应步骤;设置 COGMEM_HOME
可安装到其他位置——CLI、引擎和 hooks 都会在运行时解析该路径,因此
非默认安装也能让记忆和身份信息完全独立保存在本地。
自定义安装
安装到其他目录
设置 COGMEM_HOME,将 cogmem 安装到默认路径
~/.claude/cogmem 以外的位置:
COGMEM_HOME=/opt/cogmem ./install.sh
也可以使用单行命令:
curl -fsSL https://raw.githubusercontent.com/writerslogic/cogmem/main/install.sh | COGMEM_HOME=/opt/cogmem bash
安装程序会复制代码、创建虚拟环境,并将 CLI 符号链接到
~/.local/bin/cogmem(或 COGMEM_BIN 指定的位置)。
CLI 路径
设置 COGMEM_BIN,以指定 cogmem CLI 符号链接的放置位置:
COGMEM_BIN=$HOME/.cargo/bin COGMEM_HOME=/opt/cogmem ./install.sh
如果 COGMEM_BIN 不在你的 PATH 中,安装程序会打印一条警告。你始终可以直接从 $COGMEM_HOME/cogmem 调用 cogmem。
数据目录和身份密钥的解析方式
运行时,CLI 和引擎会从环境中读取 COGMEM_HOME。如果未设置,则回退到 ~/.claude/cogmem。所有运行时数据都存放在 vault/ 子目录下:
| 路径 | 用途 |
|---|---|
$COGMEM_HOME/vault/identity/agent.key | Ed25519 私钥(Agent 身份,did:key) |
$COGMEM_HOME/vault/credentials/ | W3C Verifiable Credential 存储 |
$COGMEM_HOME/vault/rules/ | Layer-A(始终加载)和 Layer-B(召回)规则 |
$COGMEM_HOME/vault/provenance/log.jsonl | 仅追加的哈希链透明日志 |
$COGMEM_HOME/vault/provenance/statements/ | COSE_Sign1 SCITT 签名声明 |
$COGMEM_HOME/engine/.venv/ | 包含依赖项的 Python 虚拟环境 |
$COGMEM_HOME/hooks/ | Claude Code hook 脚本 |
首次运行时(通过 cogmem status 或任何引擎操作),系统会生成身份密钥,并将其保存在 $COGMEM_HOME/vault/identity/agent.key。对应的 did:key 根据 Ed25519 公钥派生。将 cogmem 移动或重新安装到新的 COGMEM_HOME 会创建新的身份,除非你迁移 vault/ 目录。
使用非默认安装位置的 MCP 客户端
标准 MCP 客户端配置不受 COGMEM_HOME 影响,因为 cogmem CLI 会在运行时解析该环境变量:
{
"mcpServers": {
"cogmem": { "command": "cogmem", "args": ["mcp"] }
}
}
如果 CLI 不在你的 PATH 中,请使用完整路径:
{
"mcpServers": {
"cogmem": { "command": "/opt/cogmem/cogmem", "args": ["mcp"] }
}
}
或者在 shell 包装脚本中添加 COGMEM_HOME 前缀:
{
"mcpServers": {
"cogmem": { "command": "env", "args": ["COGMEM_HOME=/opt/cogmem", "cogmem", "mcp"] }
}
}
快速开始
cogmem status # health check, metrics, agent DID
cogmem doctor # end-to-end learning-loop health (daemon, API key, trust, backlog)
cogmem recall "..." # surface relevant past lessons for a task
cogmem note "..." # record a decision or finding mid-task
cogmem verify # verify every memory's credential + the transparency log
cogmem receipt <id> # inclusion proof that a memory is committed in the signed log
cogmem statement <id> # COSE_Sign1 SCITT signed statement (verifiable by HMS too)
cogmem trust # show the trusted agent identity (warns on a key mismatch)
cogmem trust --rotate # re-anchor trust after an intentional key change
cogmem review list # approve always-load rules
cogmem mcp # run the MCP server (stdio) for any MCP client
MCP 集成
将 cogmem 作为 MCP 服务运行,并连接任意兼容 MCP 的客户端:
{
"mcpServers": {
"cogmem": { "command": "cogmem", "args": ["mcp"] }
}
}
该服务公开了八个工具:recall、note、status、verify、receipt、tree_head、progress、review_pending,以及只读资源(实时用户模型和各项目状态)。
Claude Code 集成
install.sh 会自动将 cogmem 接入 Claude Code(以幂等方式合并到 ~/.claude/settings.json),无需手动调用。五个 hook 会在后台运行记忆循环:
| 事件 | Hook | 功能 |
|---|---|---|
SessionStart | cogmem-activate.sh | 注入提升后的始终加载(Layer-A)规则和自检 |
UserPromptSubmit | cogmem-recall.sh | 针对当前提示词进行语义 Layer-B 召回 |
PreToolUse(Bash) | cogmem-guard.sh | 在工具调用边界拦截已知错误,防止其发生 |
PostToolUse(Edit|Write) | cogmem-context.sh | 跟踪会话当前正在编辑的文件 |
Stop | cogmem-capture.sh | 将会话捕获到记忆中(采集 + 整合) |
所有 hook 都严格采用故障开放策略:任何错误、超时或未预热的守护进程都不会注入任何内容,也绝不会阻塞你的提示词。脚本位于 ~/.claude/cogmem/hooks/;重新运行 install.sh(或 ./install.sh --no-daemon)即可刷新接入配置。
为什么选择 cogmem? —— 从结果中学习、建模失败模式、可验证的记忆
聊天记忆系统(Mem0、Letta、Zep)会存储和检索事实。cogmem 专为编码 Agent 构建,并在三个方面更进一步:
它能从结果中学习。 反馈循环会评估召回的经验是否确实有帮助,修正被证明有误的规则,并弃用会造成误导的规则。
它能建模自身的失败模式。 cogmem 会跟踪 Agent 在你的工作中容易出错的地方,并在工具调用边界拦截已知错误——在错误发生之前,而非事后。
它的记忆可验证。 每条记忆都是由 Agent 的 did:key 签名的 W3C Verifiable Credential,并记录在防篡改、采用 SCITT 风格的透明日志中。Agent 记忆是攻击面;cogmem 让其可审计且具备抗投毒能力。
功能 -- 双层记忆、结果反馈、自我模型、项目状态、跨项目叙事、自我调节、可验证凭证
- 双层记忆:始终加载的指令(按范围控制并经人工批准)加上语义回忆尾部(本地交叉编码器重排序,数据不会离开设备)。
- 结果反馈与自我优化:根据记忆是否确实发挥作用来提高或降低其可信度;通过安全流程纠正与事实相悖的规则。
- 自我模型与防护机制:对 Agent 常犯错误进行建模,并将其编译为在
PreToolUse边界拦截错误的预警机制。 - 项目状态模型:持续更新每个项目的状态(目标、主张、未决问题、阻碍),提供情境连续性,并支持跨时间推理。
- 跨项目进展叙事:汇总各项目的进展势头、停滞情况和依赖关系,并以提醒的形式呈现。
- 自我调节:根据评估工具自动调整回忆阈值。
- 可验证 Agent 记忆:
did:key身份、W3C VC 签名记忆、COSE_Sign1 SCITT 签名声明(与 HMS 字节兼容)、带签名 Merkle 树头和 RFC 6962 包含证明的哈希链透明日志,以及可选的抗投毒强制机制。请参阅 PROVENANCE.md。
可验证记忆 -- did:key 身份、W3C VC、COSE/SCITT、哈希链日志、抗投毒
cogmem 将每条存储的记忆都视为一份签名制品:
did:key身份:每个 Agent 都拥有持久的 Ed25519 身份,并以 W3C DID 的形式公开。- W3C 可验证凭证:每条记忆都带有
eddsa-jcs-2022数据完整性证明签名。 - COSE_Sign1 / SCITT 签名声明:与 holographic-memory 和 crosstalk 使用的信封格式逐字节一致,可由这三种实现中的任意一种独立验证。
- 哈希链透明日志:仅追加的 JSONL 日志,采用 SHA-256 链接,包含签名的 Merkle 树头和符合 RFC 6962 风格的包含证明。
- 撤销:每份凭证都包含 W3C 位串状态列表条目;降级或退役的记忆会在签名状态列表凭证中撤销。
- 抗投毒:遭篡改或注入的记忆无法通过验证,会在影响 Agent 之前被拒绝。
cogmem verify # check all memories and the log head
cogmem receipt <memory-id> # prove a memory is in the signed log
cogmem revoke <memory-id> # revoke a memory (Bitstring Status List)
cogmem status-list # emit the signed revocation status-list credential
完整规范请参阅 PROVENANCE.md。
亲自验证 C2PA 示例:
# examples/c2pa-agent-credential/ is a real signed C2PA manifest
# whose agent identity validates in c2patool
./examples/c2pa-agent-credential/verify.sh
这证明了完整链路:Agent 身份(cawg.ica.credential_valid)与真实认知绑定——一条签名的 cogmem 记忆和一份签名的 crosstalk 推理审计,每份都是可独立验证的 Ed25519 COSE/SCITT 声明。
cogmem 基于已发布的标准构建,并准确说明了哪些部分是符合标准,哪些部分是*-风格*(结构和加密兼容,但未完全符合配置文件要求)。这些原语是真正的 Ed25519 签名,作用于真正的规范字节结构——这里没有任何模拟实现。
| 标准 | cogmem 的实现内容 | 状态 |
|---|---|---|
| W3C DID | did:key(Ed25519)、did:web(发布 OKP publicKeyJwk)、did:jwk——均配有可用的解析器 | 符合标准 |
| W3C VC Data Model 2.0 | VC v2 上下文、凭证 id、validFrom/validUntil、AgentMemoryCredential / AIAgentCredential / IdentityClaimsAggregationCredential | 符合标准;可验证表示(Verifiable Presentations)已列入路线图 |
W3C Data Integrity — eddsa-jcs-2022 | 基于 RFC 8785 JCS 规范字节(按 UTF-16 排序键名,字符串采用字面 UTF-8 编码)的 Ed25519 Data Integrity 证明 | 符合标准 |
| W3C Bitstring Status List | 每条记忆都带有一个 BitstringStatusListEntry;被降级或退役的记忆会被撤销(GZIP + multibase encodedList),并发布在已签名的 BitstringStatusListCredential 中 | 符合标准 |
| IETF COSE(RFC 9052) | 无标签和带 tag-18 的 COSE_Sign1、EdDSA(-8) | 符合标准;字节级兼容兄弟项目中基于 coset 的验证器 |
| IETF SCITT | 由 COSE_Sign1 签名的声明,以及仅追加、哈希链式的签名日志 | SCITT-风格。符合标准的已签名声明头部(CWT_Claims)、COSE 收据,以及与发行者分离的透明度服务均已列入路线图——见下文 |
| RFC 6962 Merkle | 已签名的树头、包含证明、验证 | 证明计算符合标准;见证方会共同签署树头,以实现独立透明度 |
| CAWG Identity Assertion(ICA) | 在 application/vc 上通过 tag-18 COSE_Sign1 签署的 IdentityClaimsAggregationCredential,并与 C2PA SignerPayload 交叉核验 | 可与 c2pa-rs 中的 ICA 验证器互操作 |
迈向全面符合 SCITT 标准。 有三个范围明确的步骤,无需引入新的密码学技术:(1)将 iss/sub/内容类型从声明负载移至 COSE 受保护头部,作为 CWT_Claims;(2)将包含证明作为 COSE 收据(draft-ietf-cose-merkle-tree-proofs)写入声明的非保护头部;(3)要求外部见证方担任与签发 Agent 分离的透明度服务角色。步骤 1–2 是重新编码;步骤 3 则涉及架构,因为单方日志只是兼容的格式,并不能实现有意义的透明度。
隐私
cogmem 采用本地优先设计。记忆、嵌入向量和身份密钥都保存在你的设备上,语义检索完全在本地进行——嵌入和重排序模型(fastembed)在设备上运行,因此查询记忆时数据不会离开设备。
学习流程并非在本地运行:获取、整合、反馈评估,以及项目/用户模型综合都会将相关会话记录发送至 Anthropic API(ANTHROPIC_API_KEY)。规则正是通过这种方式提取和评分的。如果你需要完全离线运行,可使用 --no-hooks(检索仍可正常工作),直到本地模型提取方案推出。简而言之:检索在本地进行;学习会调用 API。
Agent 溯源技术栈的一部分
cogmem 是 WritersLogic 可验证 Agent 溯源流水线的一个组件——涵盖 Agent 身份、记忆、推理和签名输出,并通过密码学实现端到端绑定。
| 项目 | 作用 |
|---|---|
| cogmem(本仓库) | Agent 身份(CAWG 凭证)+ 可验证、防篡改的记忆(COSE/SCITT) |
| crosstalk | 多模型编排器;为每轮推理/编排审计签名 |
| holographic-memory | 持久化全息记忆存储;交叉验证签名语句和 Agent 身份 |
| WritersProof | C2PA 生产者:将身份 + 记忆 + 推理绑定到签名资产 |
这四个项目共享同一底层机制——COSE_Sign1 / SCITT 签名语句(Ed25519)和 W3C DID 身份,详见 UNIFIED-PROVENANCE.md。
安全
发现漏洞?请私下报告——参见 SECURITY.md。
许可证
Apache-2.0——参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。