
Procheiron
io.github.logotheusneuro-cpu由 GitHub 帳號 logotheusneuro-cpu 發布v0.3.3更新於 Oct 25, 2026
Review gate for shared agent memory: an unreviewed or hand-edited memory is never served.
概覽
針對共用代理記憶的本地審核閘門:讓助理在強制獨立審核下搜尋、讀取、提議與晉升受治理的記憶記錄。
- 可以做什麼
- 搜尋與讀取受治理的記憶記錄,依狀態與範圍過濾,預設只回傳已審核記錄,屬於治理過濾而非內容檢索。以草稿形式提議新的記憶記錄以供審核。推動記錄沿生命週期(草稿、候選、已驗證、生效、被取代)流轉,並拒絕自我審核。將每一步寫入僅追加、雜湊鏈式稽核日誌,使編輯或重排可被察覺。驗證記憶庫並回報記錄數、獨立晉升數與攔截數等信任指標。
- 適用情境
- 當多個代理或人員共用一個記憶庫,且你希望強制規定:未經作者以外的人審核,任何內容都不能成為可信記錄,並保留誰撰寫、誰檢查、誰改動的防竄改軌跡時使用。它治理你現有儲存中的記錄,本身不做檢索。
- 執行需求
- 以本地程序透過 stdio 執行,可從 PyPI 用 uvx 或 pip 安裝。需要一個既有或已脚手架產生的記憶庫目錄作為根路徑。選用的 ed25519 簽章需要 crypto 附加元件與 PROCHEIRON_SIGNING_KEY 環境變數。除非明確允許寫入,否則寫入為試執行。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Procheiron,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
[Procheiron mark: an open hand holding a flame, struck as a Roman coin]
Procheiron
An unreviewed memory never reaches your agents.
Who wrote this memory, who checked it — and has anyone touched it since?
[CI] [PyPI] [Python 3.9+] [Zero runtime dependencies] [MIT license]
[Marcus Aurelius — the Stoic emperor who kept his principles procheiron, 'ready at hand']
Procheiron is a small, dependency-free trust layer for AI agent memory. Memory tools are good at storing and recalling; trust is the part nobody owns. Give several agents a shared memory and any one of them can write a "fact" the others will happily build on — nobody reviewed it, nobody approved it, and when it turns out to be wrong there's no clean way to trace it or retire it.
Procheiron adds that discipline, and enforces it with a validator rather than a convention. It adds no memory engine of its own — no embeddings, no ranking, no recall. Bring whatever memory you already use — a vector database, a knowledge graph, a folder of markdown files. It governs the records; your engine keeps doing the remembering.
Caught in the act
A deployment validates clean. Then someone with write access quietly rewrites history — a past promotion suddenly claims a different actor:
Real output (ids shortened). You can reproduce this exact catch on your own machine in the next two sections — no clone required.
Install
pipx users: pipx puts the procheiron command on your PATH but does not make
the package importable by your system python3. The scaffolded helpers
(memory_propose.py, memory_promote.py, validate_minimal.py) need
the package, so run them with the interpreter procheiron init prints on completion
rather than a bare python3. Everything below assumes a plain pip install in
an active environment.
Using a coding agent? Hand it one instruction and it installs Procheiron, wires itself in over MCP, and runs the tamper check end to end:
Retrieve and follow the instructions at: https://raw.githubusercontent.com/logotheusneuro-cpu/procheiron-core/master/INSTALL_FOR_AGENTS.md
Or prove the spec from a bare checkout, no install at all: python3 conformance/run_conformance.py.
Break it yourself (60 seconds)
The demo above, on your own machine: scaffold a commons, write one governed memory, then rewrite history and watch the chain snap.
Works with your agent
Procheiron ships an MCP server, so any MCP-speaking agent — Claude Code, Claude Desktop, Cursor,
Codex, and the rest — reads and writes the commons under the same rules a human faces. Four
tools: memory.search, memory.get, memory.propose, memory.promote.
Claude Code:
Anything with an mcpServers config (Cursor, Claude Desktop, …) — merge, don't replace:
Writes are dry-run until you pass --allow-writes, and promotion over MCP hits the same gate as
everywhere else: the agent that wrote a memory cannot approve it.
The server is dual-era: it speaks the current 2026-07-28 revision (stateless, per-request
_meta, server/discover) and the older initialize handshake, so it works whether your
client has migrated yet or not. That is not just reach — with no handshake to anchor it, a
modern request used to be answered under legacy rules, and a memory tool replying "nothing
found" when it means "I don't speak your protocol" is the one answer you can't tell from a
real one.
How it works
-
Every memory moves through a lifecycle:
draft → candidate → validated → active → superseded. -
A memory only becomes
active— trusted — after review by someone who did not write it. Self-review is refused, not discouraged: -
Every step lands in an append-only audit log whose entries are hash-chained (BLAKE2b, pure standard library). Editing or reordering any past event breaks the chain. Deleting from the end (tail truncation) is the one edit the chain alone can't see — pin the head externally with
--expect-headand that's caught too (see below). -
Want authorship you can verify cryptographically? Install the crypto extra and sign entries with ed25519. A signature check that cannot run is a hard error, never a silent pass.
How it compares
What you'd otherwise do for trust in agent memory:
† Enforced against self-review and edit/reorder tampering. An insider with filesystem write access can still append a forged promotion — closing that needs the optional signing extra with keys held out of their reach. The honest line between tamper-evidence and authenticated provenance is spelled out in CLAIMS.md.
Git already gives you tamper-evidence on the same assumption Procheiron makes (nobody rewrites the anchor) — the difference is the enforced review gate and record-level structure git has no notion of. And memory engines aren't the competition: Procheiron governs the records they hold and will never grow retrieval of its own.
Commands
What the audit log can and can't do
A candid word before you rely on it.
The hash chain makes the log tamper-evident: nobody can quietly edit history without breaking
the chain. But the chain only proves the log is internally consistent — someone with write access
to the file can rebuild the whole thing from scratch and it will verify. The fix is to anchor the
newest entry hash somewhere that person can't touch (a git commit works fine) and hand it back at
check time: procheiron validate --expect-head <hex>. Now a full rewrite is caught too.
The enforcement profile has the same problem — it lives in the same directory as everything it
governs, so it can be downgraded from inside. Anchor it the same way with
--expect-lint <fingerprint>. Both anchors are checked unconditionally, and deleting what they
anchor fails the check rather than skipping it; procheiron validate --json prints the current
audit_head and lint_fingerprint so you have something to pin.
The full threat model — signing, keys, and the determined insider
Signing raises the bar further. With the crypto extra and a key registry (known_actor_keys),
every event from a registered actor must carry that actor's valid signature. Stripping a
signature fails validation; it does not slip through.
And the honest residual: if one OS user owns the log, the keys, and the key registry, a determined insider can still rewrite and re-sign everything. On a single shared machine you get tamper-evidence (detectable through the external anchor), not tamper-prevention. To stop that insider outright you need the head anchored externally and the keys held out of the writer's reach — a separate user, an HSM, or keyless signing.
One more line worth drawing: all of this is provenance, not correctness. The gate proves who wrote and reviewed a record and that nobody rewrote history — it cannot make the content true. A reviewer can approve a wrong fact and it becomes trusted; what you get then is a clean trail to trace it and a supersession path to retire it, not prevention.
We keep a running ledger of what's proven versus merely claimed in CLAIMS.md, with evidence cited per claim. If anything in this README ever disagrees with that file, the file is right.
What's in the repo
Design choices
- Zero runtime dependencies. Everything a live deployment runs is standard-library Python.
The one optional extra is
procheiron[crypto]for ed25519 signing; the hash chain itself needs nothing. (jsonschemaandopaappear only as dev/CI cross-checks.) - Tamper-evident by default, signed by choice. See
chain.pyandsigning.py. - Portable core, specific profile. The spec stays generic; deployment-specific bindings
(identities, paths, authority ladders) live in a profile. See
spec/boundary.md. - No recall, ever. Embeddings and retrieval are the memory engine's job. Procheiron will not grow a competing one.
Roadmap
- A second, independent real deployment passing conformance — the point where "works for its authors" becomes "works".
- A reference adapter showing Procheiron governing a popular third-party memory engine end to end.
- Key-custody guidance for production — separate-user, HSM, and keyless-signing patterns, so signing holds up even on a single machine.
Shipped so far: v0.1 brought the spec, conformance suite, CLI, and scaffolder; v0.2 brought the tamper-evident chain and optional signing.
Running Procheiron somewhere? Open a deployment report — an independent deployment is literally roadmap item one.
FAQ
Is this a memory engine? No. No embeddings, no ranking, no recall benchmarks, and never will.
The memory.search/memory.get tools are a governance filter over records (by status and scope,
returning only reviewed records by default) — not content retrieval. It governs the records your
engine holds.
Can it stop a malicious insider? Detection, yes; prevention only if you do two things — anchor the chain head outside the insider's reach and keep signing keys out of their write scope. The section above spells out exactly where the line is.
Why zero dependencies? A trust layer shouldn't ask you to trust a dependency tree. Everything a live deployment runs is standard-library Python; even the hash chain is stdlib.
How do I know if it fits my setup? Two questions decide it. Are your writers independently controlled — different people, teams, or processes — or does one operator run every agent? And can you operate an external head anchor plus key custody outside the writer's reach? Two yeses and the guarantees bind fully. Two noes and the review gate is closer to convention than enforcement for you — you still get a tamper-evident audit trail and a hard anti-self-review check, but the deeper promise doesn't apply to your architecture.
Is it production-ready? Not by our own rule. Conformance passes at fixture level, but the "production-replicable" claim is reserved until a second real deployment — run by someone who isn't us — passes the suite. That's roadmap item one. What it is already good for today: a tamper-evident audit trail and enforced independent review on a single-team memory commons — exactly what the 60-second demo above shows.
What if I stop using it? pipx uninstall procheiron, and keep everything: the commons is
plain JSONL and Markdown — every record and every audit event stays readable with cat. No
export step, no lock-in.
What does the name mean? Procheiron (πρόχειρον) is Greek for "ready at hand" — historically, a short practical handbook of law. A fitting name for a small set of rules you keep within reach.
License
MIT — see LICENSE.
來源:README.md,提交 c30e9f0
工具
0版本歷史
1- v0.3.3最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分