mcpField
P
Procheiron

Procheiron

本地服务
github.com/logotheusneuro-cpu记忆与知识011 周前更新

关于 Procheiron

Procheiron 为使用自有记忆存储的团队提供共享 Agent 记忆的信任与审核层。它强制要求独立审核,并保留可检测篡改的审计记录,但不负责记忆检索。

主要功能

  1. 01激活记忆前须独立审核
  2. 02记忆记录生命周期管理
  3. 03哈希链式追加审计日志
  4. 04验证部署并生成评分卡
  5. 05可选 ed25519 签名

适用场景

  1. 01要求他人审核共享记忆
  2. 02检测对既往审计事件的修改
  3. 03使用外部锚点验证记忆部署

MCP 相关

其 MCP 服务向 MCP 客户端提供 memory.search、memory.get、memory.propose 和 memory.promote。写入默认采用试运行模式,晋升操作也受独立审核规则约束。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"logotheusneuro-cpu-procheiron": {
"command": "uvx",
"args": [
"procheiron"
],
"env": {
"PROCHEIRON_SIGNING_KEY": "<PROCHEIRON_SIGNING_KEY>"
}
}
}
}
启动命令uvx procheiron
需要配置的环境变量
PROCHEIRON_SIGNING_KEY密钥Optional ed25519 private key hex for signed authorship (requires the 'crypto' extra). Mint one with `procheiron keygen`. Omit for tamper-evidence without signatures.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiprocheiron0.3.3

工具

4

收录的工具列表 · 更新于 2 周前

参数类型必填说明
typestring否
limitinteger否
querystring否
scopestring否
statusstring否
include_untrustedboolean否

详细介绍

Procheiron 标志:一只托着火焰的张开手掌,铸成罗马硬币的样式

Procheiron

未经审核的记忆绝不会传到你的 Agent 手中。
这条记忆是谁写的,谁检查过?此后有人动过它吗?

持续集成 PyPI Python 3.9+ 零运行时依赖 MIT 许可证

马可·奥勒留——这位斯多葛派皇帝将自己的准则始终置于手边(procheiron)

Procheiron 是一个小巧、无依赖的 AI Agent 记忆信任层。记忆工具擅长存储和召回;信任却无人负责。让多个 Agent 共享一份记忆,任何一个都能写入一条“事实”,其他 Agent 也会欣然据此行事——没人审核,没人批准;等发现它错了,也没有简便的方法追溯或撤销它。

Procheiron 为此增添规范,并通过验证器强制执行,而非仅凭约定。它不提供自己的记忆引擎——没有嵌入、排序或召回功能。你可以使用现有的任何记忆方案——向量数据库、知识图谱或 Markdown 文件夹。它管理记录;你的引擎继续负责记忆。

当场抓获

部署验证通过后,有人凭借写入权限悄悄改写了历史——一项过去的晋升记录突然声称是另一个人执行的:

$ procheiron validate ./team-memory
Procheiron validation (full tier): PASS

$ # edit team-memory/memory/index/audit.jsonl:  "actor": "vera_curator" → "rogue_agent"

$ procheiron validate ./team-memory
Procheiron validation (full tier): FAIL
  ERROR: audit chain: audit event 0: entry_hash mismatch — content was altered
         after it was written
  ERROR: memories.jsonl:1: active record has no corroborating promotion audit
         event — forged/hand-flipped record

真实输出(ID 已缩短)。接下来的两个部分会演示如何在自己的机器上复现这次抓获——无需克隆仓库。

安装

pip install procheiron             # or: pipx install procheiron — see the note below
pip install "procheiron[crypto]"   # optional: ed25519 signing (the chain itself needs nothing)

pipx 用户:pipx 会将 procheiron 命令加入 PATH,但不会让系统的 python3 能够导入该包。脚手架生成的辅助脚本(memory_propose.py、memory_promote.py、validate_minimal.py)需要此包,因此请使用 procheiron init 完成时打印出的解释器运行它们,而不要直接使用 python3。以下内容均假设你已在激活的环境中使用普通的 pip install 安装。

在使用编码 Agent?给它一条指令,它就会安装 Procheiron、通过 MCP 完成接入,并端到端运行篡改检查:

获取并遵循以下说明: https://raw.githubusercontent.com/logotheusneuro-cpu/procheiron-core/master/INSTALL_FOR_AGENTS.md

或者,无需安装,从未加工的检出目录验证规范:python3 conformance/run_conformance.py。

亲自试着破坏它(60 秒)

在自己的机器上运行上面的演示:搭建一个公共库,写入一条受治理的记忆,然后改写历史,看看链条如何断裂。

procheiron init ./commons && cd commons

# 1. propose a memory as alice
python3 memory_propose.py --created-by alice --type decision --scope project \
    --subject "retry policy" --statement "Retries use exponential backoff." \
    --source-path docs/decisions.md --confidence 0.9

# 2. promote it — reviewed by someone who is NOT alice (self-review is refused)
python3 memory_promote.py --memory-id <id printed by step 1> --new-status active \
    --reviewer bob --authorized-by casey --reason "verified against the source" \
    --allow-unverified-reviewer

procheiron validate .        # PASS

# 3. rewrite history — swap the reviewer on the promotion event
sed -i.bak 's/bob/rogue/g' memory/index/audit.jsonl

procheiron validate .        # FAIL: entry_hash mismatch — content was altered
mv memory/index/audit.jsonl.bak memory/index/audit.jsonl    # put history back → PASS again

适用于你的 Agent

Procheiron 提供 MCP 服务,因此任何支持 MCP 的 Agent——Claude Code、Claude Desktop、Cursor、 Codex 等——都能按照人类所遵循的同一套规则,读取和写入共享记忆库。共有四个 工具:memory.search、memory.get、memory.propose、memory.promote。

Claude Code:

claude mcp add procheiron -- procheiron mcp --root ./commons

任何带有 mcpServers 配置的客户端(Cursor、Claude Desktop 等)——请合并,而不要替换:

{ "mcpServers": { "procheiron": { "command": "procheiron", "args": ["mcp", "--root", "./commons"] } } }

写入操作默认是 dry-run,除非你传入 --allow-writes。通过 MCP 进行升级也会受到与其他场景相同的限制:写入某条记忆的 Agent 无法批准它。

该服务兼容两个时代:既支持当前的 2026-07-28 修订版(无状态、每个请求都带 _meta、server/discover),也支持旧版 initialize 握手,因此无论你的客户端是否已迁移,都能正常工作。这不仅关乎兼容范围——如果没有握手作为依据,现代请求过去会按旧版规则处理;而当记忆工具的真实含义是“我不支持你的协议”时,却回复“未找到内容”,这是你无法与真实结果区分的一种答复。

工作原理

三个场景:一个 Agent 将记录写入共享存储;另一个 Agent 检查记录并盖上绿色勾选标记;已批准的记录连成一条链——攻击者试图替换其中一条记录时,链条断裂并触发警报。

  1. 每条记忆都会经历一个生命周期:draft → candidate → validated → active → superseded。

  2. 只有经未参与写入的人审核后,记忆才会变为 active——即受信任状态。 系统会拒绝自我审核,而不只是劝阻:

    $ python3 memory_promote.py --memory-id mem_20260709_retry_policy… --new-status active \
          --reviewer alice --reason "looks right to me"
    memory_promote: REFUSED — self-review: 'alice' created this record (invalid transition §8.7)
    
  3. 每个步骤都会写入一份只追加的审计日志,日志条目通过哈希链关联(BLAKE2b,纯标准库实现)。编辑或重新排序任何历史事件都会破坏链条。删除末尾内容(截断尾部)是哈希链本身无法发现的唯一修改——使用 --expect-head 在外部固定链首,也能检测到这种情况(见下文)。

  4. 想要可通过加密方式验证作者身份?安装加密扩展,并使用 ed25519 为条目签名。无法执行的签名检查会直接报错,绝不会悄然放行。

对比

若要确保 Agent 记忆可信,你通常会采用以下做法:

强制独立审核防篡改历史适用于任何存储设置
约定文档(“Agent 应当……”)否——依赖自觉否—无
记忆文件的 Git 历史否是——除非重写历史本身仅适用于这些文件,不适用于你的存储无
记忆引擎的元数据否——由自身声明否仅适用于该引擎无
完整溯源方案(W3C PROV + 签名基础设施)可实现是是自行搭建
Procheiron是——验证器会拒绝 †是——另有哈希链;完整重写需要外部锚点是——可管理你选择的任意存储中的记录pip install;若要获得最强保障,还需管理锚点和密钥

† 可防止自我审核以及编辑/重新排序篡改。拥有文件系统写入权限的内部人员仍可追加伪造的升级记录——要堵住这一漏洞,需要使用可选的签名扩展,并将密钥保存在他们无法触及的地方。CLAIMS.md 详细说明了防篡改证据与经过身份验证的溯源之间的明确界限。

基于相同假设,Git 已经能提供防篡改能力——无人重写锚点。两者的区别在于,Procheiron 有强制审核关卡和 Git 并不具备的记录级结构。记忆引擎并非竞争对手:Procheiron 管理这些引擎所持有的记录,而且永远不会自行实现检索功能。

命令

命令功能
procheiron init ./my-commons搭建一个受治理的记忆共享库。
procheiron validate <root>验证部署。添加 --expect-head <hex> 和 --expect-lint <fp>,可根据外部锚点固定链头和强制执行配置;--json 会报告这两个当前值。
procheiron scorecard <root>信任循环指标:记录数、独立晋升数、拦截的问题数。
procheiron keygen --actor <id>为签名作者身份生成一对 ed25519 密钥(需要 procheiron[crypto])。私钥 → 0600 文件;公钥 → stdout,供 known_actor_keys 使用。
procheiron mcp --root <root>通过 MCP(stdio JSON-RPC)向 Agent 提供共享库服务。
procheiron conformance运行一致性测试套件(需要检出仓库)。
procheiron version输出版本信息。

审计日志能做什么、不能做什么

在依赖它之前,先坦诚说明一点。

哈希链让日志具备篡改可见性:任何人若悄悄修改历史记录,都会破坏哈希链。但哈希链只能证明日志内部一致——拥有文件写入权限的人可以从头重建整个日志,而且重建后的日志仍能通过验证。解决方法是将最新条目的哈希锚定到此人无法触及的位置(git 提交就可以),并在检查时传入:procheiron validate --expect-head <hex>。这样,彻底重写也会被发现。

强制执行配置也有同样的问题——它与其管辖的一切都存放在同一目录中,因此可以从内部降级。用同样的方法通过 --expect-lint <fingerprint> 锚定它。两个锚点都会无条件检查,删除锚定的内容会导致检查失败,而不是跳过检查;procheiron validate --json 会输出当前的 audit_head 和 lint_fingerprint,供你固定锚点。

完整威胁模型——签名、密钥与蓄意的内部人员

签名能进一步提高门槛。启用加密扩展并配置密钥注册表(known_actor_keys)后,注册的每个作者身份发出的事件都必须带有该身份的有效签名。移除签名会导致验证失败,不会蒙混过关。

还需如实说明剩余风险:如果同一个 OS 用户同时拥有日志、密钥和密钥注册表,蓄意的内部人员仍可以重写并重新签署所有内容。在单台共享机器上,你得到的是篡改可见性(可通过外部锚点检测),而非篡改防护。若要彻底阻止这类内部人员,就必须将链头锚定在外部,并让密钥脱离写入者的控制范围——例如交由单独的用户、HSM 管理,或使用无密钥签名。

还有一条重要界限:这些都关乎来源证明,而非正确性。关卡能证明是谁撰写和审核了记录,以及历史记录无人重写——但无法让内容变成事实。审核者可能会批准错误信息,使其获得信任;此时你能得到的是一条清晰的追踪路径,以及一条用于替换旧记录的路径,而不是预防错误。

我们会在 CLAIMS.md 中持续记录哪些内容已有证明、哪些仅是声明,并为每项声明引用证据。如果本 README 中的任何内容与该文件不一致,以该文件为准。

仓库内容

路径内容
spec/v0.1 规范:治理、记忆共享库、控制平面、规范性一致性 MUST 列表,以及 Core/Profile 边界。
conformance/基准测试套件。generic-vault/ 是完整的虚构部署(“Meridian Atelier”);minimal-vault/ 是最精简的采用者;此外还有必须测试失败的负面测试夹具。
src/procheiron/data/adopter/采用者模板——procheiron init 写入新共享库的精确字节内容,也是运行一致性测试时使用的模板。仅有一份,不设镜像副本。
init/用于将 Procheiron 移植到现有项目的 PORTING_GUIDE.md(procheiron init 是脚手架工具)。

设计选择

  • 零运行时依赖。 实际部署时运行的所有内容都是 Python 标准库。 唯一的可选额外项是用于 ed25519 签名的 procheiron[crypto];哈希链本身不需要任何依赖。(jsonschema 和 opa 仅用于开发/CI 交叉检查。)
  • 默认可检测篡改,按需签名。 请参阅 chain.py 和 signing.py。
  • 核心可移植,配置文件具体化。 规范保持通用;部署专属绑定(身份、路径、权限层级)放在配置文件中。请参阅 spec/boundary.md。
  • 绝不负责回忆。 嵌入和检索是记忆引擎的工作。Procheiron 不会开发与之竞争的功能。

路线图

  1. 通过一致性测试的第二个独立真实部署——届时,“作者自己能用”才真正变成“可用”。
  2. 参考适配器,展示 Procheiron 如何端到端地管理一款热门第三方记忆引擎。
  3. 生产环境密钥托管指南——涵盖独立用户、HSM 和无密钥签名模式,确保即使在单台机器上也能可靠签名。

截至目前已发布:v0.1 带来了规范、一致性测试套件、CLI 和脚手架;v0.2 带来了可检测篡改的链和可选签名。

正在某处运行 Procheiron?请提交一份 部署报告 ——独立部署确实是路线图上的第一项。

常见问题

这是记忆引擎吗? 不是。没有嵌入、排序、回忆基准测试,以后也不会有。memory.search/memory.get 工具是对记录的治理筛选器(按状态和范围筛选,默认仅返回已审核的记录),而非内容检索。它管理的是你的引擎所持有的记录。

它能阻止恶意内部人员吗? 能检测;要预防则必须做到两件事:将链头锚定在内部人员无法触及的地方,并确保签名密钥不在其写入权限范围内。上文明确说明了边界所在。

为什么零依赖? 信任层不应要求你信任一整棵依赖树。实际部署时运行的所有内容都是 Python 标准库;甚至哈希链也只用标准库。

我怎么知道它是否适合我的配置? 两个问题即可判断。你的写入者是否由彼此独立的主体控制——例如不同的人员、团队或进程——还是由一名操作员运行所有 Agent?你能否在写入者无法触及的范围之外管理外部链头锚点和密钥托管?两个答案都是“是”,保障措施就能完全生效。两个答案都是“否”,对你而言,审核关卡就更接近约定而非强制执行——你仍能获得可检测篡改的审计轨迹和严格的反自审检查,但更深层的承诺并不适用于你的架构。

它已可用于生产环境吗? 按照我们自己的规则,还不行。一致性测试已在测试样例层面通过,但只有当第二个真实部署由我们之外的人运行并通过测试套件后,我们才会宣称“可在生产环境复现”。这是路线图上的第一项。目前它已适用于单个团队的共享记忆库,可提供可检测篡改的审计轨迹和强制独立审核——这正是上文 60 秒演示所展示的内容。

如果我停止使用它呢? 执行 pipx uninstall procheiron,所有内容仍可保留:共享库采用纯 JSONL 和 Markdown 格式,每条记录和每个审计事件都能用 cat 查看。无需导出,也不会被锁定。

这个名字是什么意思? Procheiron(πρόχειρον)在希腊语中意为“随手可用”——历史上指简短实用的法律手册。对于一套随手可查的小规则来说,这是个贴切的名字。

许可证

MIT——请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。