Skip to content

Repository files navigation

GateLedger

中文 | English

CI Python 3.10–3.12 MIT License

两条独立 Agent 路径经过审计门,汇入证据天平

v1.0-alpha · runnable reference · not production-ready

把 Agent 协作中的角色分离、证据引用、人工授权和停止条件,变成会失败关闭的确定性硬门。

GateLedger 是一个面向“一个 Agent 执行、另一个角色审阅”的可运行审计协议。它读取结构化任务记录与工作区证据,并把以下规则变成失败关闭的确定性检查,而不是只写在提示词里:

  • 执行者与审阅者必须不同;
  • 任务记录必须完整经过观察、判断、决策、行动、反思、沉淀六阶段;
  • 每条事实性声明必须引用工作区内真实、非空的 file:line
  • 高风险任务必须记录人工批准;
  • 任务必须记录结果与停止条件;
  • 任一硬门失败,审计结论就是 FAIL

它不声称 Agent 团队会自动自我进化,也不证明审阅者天然独立或判断正确。当前版本只是一个确定性协议内核和公开的合成示例。

快速体验

需要 Python 3.10、3.11 或 3.12,无第三方运行时依赖:

python health_check.py

预期得到 JSON 报告,verdictPASS,5 个硬门全部通过。

关键结果如下:

{"failed": 0, "passed": 5, "protocol_version": "1.0-alpha", "verdict": "PASS"}

也可以显式审计一份记录:

python -m sanyan_protocol.cli audit \
  --record examples/audit_record.json \
  --root examples/workspace

安装与测试

python -m pip install -e .
python -m unittest discover -s tests -v
python scripts/validate_public_package.py

安装后也可使用:

sanyan-audit health

它检查什么

硬门 可确定性验证的内容 不能证明的内容
状态机 六阶段完整且顺序固定 每一步思考是否足够深入
角色分离 规范化后的 executor 与 reviewer 标识不同 两者是否真正使用独立模型/上下文
引用存在性 文件在授权根目录内,行号存在且非空 引用是否语义支持整条结论
人工权限 高风险记录声明已获人工批准 批准者身份是否真实
收尾 outcome 与 stop_condition 已记录 业务目标是否真的完成

完整字段合同见 PROTOCOL.md。理念背景见 WHITEPAPER.md,其中历史数字已明确标为未经当前仓库复验的快照。

当前证据

本仓库提供一个完全合成的审计记录和一组回归测试,覆盖通过路径,以及缺阶段、同一角色自审、高风险无人工批准、路径穿越、绝对路径、未知文件、越界行和空白行等失败路径。GitHub CI 已在 Python 3.10、3.11 和 3.12 上通过同一组检查。

安全与范围

不要提交客户资料、真实聊天、凭证、私有仓库路径或内部审计日志。公开示例必须是合成数据。若审计输入含敏感材料,请在受控本地环境运行,不要把输入附到公开 issue。

贡献说明见 CONTRIBUTING.md,安全报告见 SECURITY.md。项目采用 MIT License

About

Runnable, fail-closed audit gates for executor-reviewer Agent work: role separation, real file:line evidence, human approval, explicit outcomes, and stop conditions.

Topics

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages