Cyber-Elders/elder-council-harness

GitHub: Cyber-Elders/elder-council-harness

一个多模型议会治理框架,通过风险分级、独立视角投票、确定性关卡和哈希链审计,为AI参与的高风险决策提供结构化的多重审查与人工兜底机制。

Stars: 0 | Forks: 0

# Elder Council Harness ### 不要让一个模型独自做决定。 **召开议会。保留异议。掌握决定权。** [![License: Apache-2.0](https://img.shields.io/badge/code-Apache--2.0-blue.svg)](LICENSE) [![Docs: CC BY 4.0](https://img.shields.io/badge/docs-CC%20BY%204.0-green.svg)](LICENSE-DOCS) [![Version](https://img.shields.io/badge/version-0.1.0-orange.svg)](CHANGELOG.md) [![Python](https://img.shields.io/badge/python-3.11%2B-blue.svg)](pyproject.toml) [![Tests](https://img.shields.io/badge/tests-126%20passing-brightgreen.svg)](docs/TESTING.md) [![OWASP Agentic 2026: aware](https://img.shields.io/badge/OWASP%20Agentic%202026-aware-6f42c1.svg)](docs/STANDARDS-MAP.md) [![NIST AI RMF: aligned](https://img.shields.io/badge/NIST%20AI%20RMF-aligned-6f42c1.svg)](docs/STANDARDS-MAP.md) *用于高风险决策的多模型**议会** —— 为网络安全而生,也适用于任何极其重要、不能仅靠单一模型决定的关键抉择。仅在决策真正具有价值时召开。* The code-council convening: five independent lenses vote (Software Engineering and Reliability say merge; AppSec and the Deterministic Tool Lens say block, the tool lens flagging a CRITICAL hardcoded-secret finding; the Critic asks for changes). Verdict: block, routed to a human, with the three dissenting lenses preserved on the record.
## 问题所在:到处依赖单一模型是单点故障 当一个模型审查你的代码、处理你的警报、审查你的依赖、解释你的合规义务、评估你的风险——并权衡你公司生死攸关的决策时——它的盲点就不再是一个孤立的错误答案。它们会成为你**决策基础设施中的一种可重复模式**——以机器速度在团队、工具和下游系统中传播。一个过度自信、信息滞后、带有偏见或被操纵的模型会变成一种**系统性风险**:一个制度性失败的单点。 Elder Council 应运而生:**选择性多元**。在单代理或确定性工具足以应对的情况下使用它们——仅当决策具有重大影响、存在不确定性、处于对抗性环境或试错成本极高时,才召开结构化、多视角的**议会**。议会不是处理每项任务的委员会。它是一种针对重要决策的风险治理模式——**为网络安全而构建**(在网络安全领域,议会、视角和威胁模型挖得最深),同时也具有足够的通用性,适用于任何高风险决策,包括**高管商业决策**议会。请参阅[议会说明](docs/COUNCILS.md)和[领域适配](docs/DOMAIN-ADAPTATION.md)。 ## 观看议会做出决策(无需密钥,无需设置) ``` $ eldercouncil convene code-council --demo --question "merge a diff with a hardcoded AWS key" code-council — action-gate · can block automatically Software Engineering SME merge ( 0.6) Clean structure, tests pass. AppSec SME block [HIGH] ( 0.9) Hardcoded secret + unparameterised SQL in the diff. Reliability / Operations SME merge (0.55) Rollback path exists. Deterministic Tool Lens block [CRITICAL] (0.95) secret-scan: AWS key detected; SAST: SQLi sink. Critic / Challenge request-changes ( 0.7) Auth check is assumed, not verified, on the new route. COUNCIL VERDICT: block → route: human a lens rated this CRITICAL (Deterministic Tool Lens) — blocked pending human review dissent preserved: 3 lens(es) disagreed GATES (standard): allow — no safety gate tripped; the council sets the routing DISPOSITION: human (the final call — a person decides) decision EC-9c65a3c2cd4f ``` 五个独立的视角,每个都带有置信度;一个裁决;**被记录在案的异议**;以及一条防篡改的审计记录。阻止操作的 CRITICAL 标记来自确定性的**工具**视角(权威扫描仪的发现),而不是某个推理模型的主观意见——并且那些想要合并的视角会被保留下来,而不是被平均掉。单一模型唯一无法向你展示的是它可能出错的地方。`--demo` 使用确定性的示例投票,因此可以无密钥运行;而真实路径会在你自己的模型上运行这些视角。*(想知道议会**无法**捕捉到什么样的失败吗?`convene code-council --demo --scenario monoculture` 展示了五个视角共享同一个盲点的情况。)* ## 工作原理 ``` flowchart LR A[Proposed action] --> G{Risk gate
impact x likelihood, 1-25} G -- "1-4" --> S[Solo agent / tool
no council] G -- "5-9" --> D[Dual review
2-lens second opinion] G -- "10-15" --> C[Full council] G -- "16-25" --> H[Council + named human] D --> L[Independent lenses
each reasons alone] C --> L H --> L L --> T[Consensus tally
ties block · escalation wins] T --> GA[Control gates
fail-closed, deterministic] GA --> R[Disposition + preserved dissent] R --> AU[(Hash-chained audit
.council/decisions)] ``` 1. **风险关卡**对每个操作进行评分(影响 × 概率,1–25 分)。低于召开阈值时,由单一代理或确定性工具处理——不会为日常工作召开议会。 2. **议会**分散到独立的视角(技术、安全、合规、魔鬼代言人、务实运营者)。每个视角在综合之前**独立推理**。 3. **共识**在 fail-closed 的最低治理规则下结合选票:平局则阻止,升级优先,风险接受或关键操作始终路由给指定的人类。 4. **控制关卡** —— 11 个确定性、fail-closed 的关卡(证据、操作安全性、数据敏感性、不可覆盖的攻击性滥用**硬停止**、生产环境变更……)在议会*外围*运行:关卡可以保留议会投票允许的操作。选择一个**配置文件** —— Lite / Standard / Regulated。详见 [docs/GATES.md](docs/GATES.md)。 5. **审计**将裁决、所有投票、关卡结果和**异议**记录到 `.council/` 下的哈希链式防篡改日志中。 ## 议会说明 六个网络安全议会,外加一个用于高管决策的通用**商业决策**议会: | 议会 | 召开条件 | 模式 | |---|---|---| | **Code** | 涉及安全、认证、隐私或生产稳定性的代码变更 | action-gate | | **Threat Hunting** | 实时环境中的可疑信号或可能的入侵 | advisory | | **Supply Chain Audit** | 新的依赖项、包、供应商或构建流水线集成 | action-gate | | **Multi-Jurisdictional Compliance** | 跨越监管体系或数据驻留的决策 | advisory | | **Cyber Risk** | 风险接受、控制差距或补救排序 | advisory | | **Platform Architecture** | 具有长期且难以撤销的权衡的架构决策 | advisory | | **Business Decision** | 关乎商业成败、高支出或难以撤销的高管决策(并购、市场进入、巨额投资) | advisory | 每个议会都以纯数据形式提供 (`eldercouncil/councils/*.yaml`),并安装到所有受支持的 IDE 中。详见 [docs/COUNCILS.md](docs/COUNCILS.md)。 ## 快速开始 ``` # 尚未上线 PyPI(alpha 版本)——暂时从源码安装;不附带 model 和 API keys(BYO LLM): git clone https://github.com/Cyber-Elders/elder-council-harness && cd elder-council-harness pip install -e . eldercouncil init # guided: pick your agent + which councils to install # 或者,以非交互方式: eldercouncil install claude-code --all eldercouncil convene code-council --demo # watch a council decide, keyless ``` `eldercouncil install ` 将议会接入你的编码代理,并安装一个 pre-tool 关卡,提示你在高风险操作下召开相应的议会。这些议会运行在**你代理自己的模型**上 —— Elder Council 不内置任何密钥。 ## 支持的 IDE | 代理 | 执行方式 | |---|---| | **Claude Code** · **OpenCode** | 硬性阻止 (pre-tool hook) | | **Kiro** | 硬性阻止 (尽力而为,等待实时验证) | | **Cursor** · **GitHub Copilot** · 任何 **MCP** 客户端 | 建议性 (要求代理调用关卡并遵守) | *“硬性阻止” = 代理在操作运行前被物理停止(通过 **pre-tool hook** —— 代理在每次操作前运行的检查点)。“建议性” = **要求**代理召开议会并遵守,但不强制。**MCP** (Model Context Protocol) 是代理连接外部工具的标准方式。* 完整矩阵和各 IDE 的具体行为详见:[docs/IDE-SUPPORT.md](docs/IDE-SUPPORT.md)。 ## 这与 Elder Mind 的关系 [Elder Mind Harness](https://github.com/Cyber-Elders/elder-mind-harness) 是我们的兄弟工具 —— 一个面向编码代理的操作级治理关卡。 | | 治理对象 | 它回答的问题 | |---|---|---| | **Elder Mind** (操作级关卡) | **操作** | “这个 *工具调用* 应该运行吗?” | | **Elder Council** (本仓库) | **决策** | “在这里单一模型的判断够吗,还是我们需要多重审查?” | 它们可以组合使用:Elder Mind 对单个操作进行关卡控制;Elder Council 针对其背后的重大决策召集多元判断。两者互不依赖。 ## 对比分析 | | 单一强力代理 | 人类委员会 | 通用多代理框架 | **Elder Council** | |---|---|---|---|---| | 跨模型多样性 | ✗ | n/a | 有时 | **是 (自带模型,跨家族)** | | 仅在必要时召开 | n/a | 极少 | 否 (总是运行) | **是 (风险关卡控制)** | | 异议保留与审计 | ✗ | 会议纪要 | ✗ | **是** | | 人类掌握关键决策 | 视情况而定 | 是 | ✗ | **是 (强制执行)** | | 无内置密钥 / 无供应商锁定 | n/a | n/a | 视情况而定 | **是** | ## 它做不到什么 这是一个坦诚的工具。以下内容**超出了它的范围**: - **保证决策正确。** 议会可能会出错;裁决仅作决策支持。指定的人类负责每一个关键和风险接受决策——**风险接受永远不会被自动化**。 - **在所有地方取代单一代理。** 滥用议会只会增加成本和噪音而毫无益处;请将它们保留给具有重大影响、存在不确定性或对抗性的决策(选择性多元)。 - **提供法律、监管或合规建议。** 议会的输出是**由模型生成的,可能出错或已过时**;合规议会的参考内容仅作说明——请根据你的司法管辖区进行配置,并由合格的顾问进行核实。 - **抵御蓄意的本地篡改者。** 审计是**防篡改(tamper-evident),而不是抗篡改(tamper-proof)**——请将链头记录在离线环境中(参见 [THREAT_MODEL.md](THREAT_MODEL.md))。 - **提供或管理你的模型访问权限。** 它**不内置密钥**——你需要自带 LLM。你可以指定哪个模型扮演哪个视角(并随着模型的变化重新指定)。由于提供商可能会变得不可用(出口管制、制裁、许可),关键议会应配置备用模型和本地/离线选项。请注意:一个所有视角都共享同一个模型的议会具有*相关性*盲点——这正是它旨在防止的失败(参见 [THREAT_MODEL.md](THREAT_MODEL.md))。请分散你的模型;如果你全部使用同一家提供商,`eldercouncil models check` 会向你发出警告。 ## 文档 | 从这里开始 | 然后 | |---|---| | [docs/GET-STARTED.md](docs/GET-STARTED.md) — **安装与首次运行 (通俗易懂)** | [START-HERE.md](START-HERE.md) — 选择你的路径 | | [docs/CONCEPT.md](docs/CONCEPT.md) — 了解初衷 | [docs/CLAUDE-CODE-OLLAMA.md](docs/CLAUDE-CODE-OLLAMA.md) — 在你自己的本地模型上运行 (Ollama) | | [docs/COUNCILS.md](docs/COUNCILS.md) — 议会说明 | [docs/LENSES.md](docs/LENSES.md) — 六大视角 | | [docs/LOOP-ENGINEERING.md](docs/LOOP-ENGINEERING.md) — 决策循环 (如何适应代理循环) | [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) — 架构设计 | | [docs/GATES.md](docs/GATES.md) — 11 个控制关卡 + 配置文件 | [docs/DOMAIN-ADAPTATION.md](docs/DOMAIN-ADAPTATION.md) — 超越网络安全 | | [docs/METHODOLOGY.md](docs/METHODOLOGY.md) — 完整方法论 | [docs/IDE-Support.md](docs/IDE-SUPPORT.md) — 各 IDE 安装指南 | | [docs/STANDARDS-MAP.md](docs/STANDARDS-MAP.md) — OWASP/NIST | [docs/LICENSING.md](docs/LICENSING.md) — 许可说明 | | [docs/TESTING.md](docs/TESTING.md) — 测试说明 | [THREAT_MODEL.md](THREAT_MODEL.md) — 坦诚的边界 | | [docs/GLOSSARY.md](docs/GLOSSARY.md) · [docs/FAQ.md](docs/FAQ.md) | [docs/MODEL-GUIDANCE.md](docs/MODEL-GUIDANCE.md) — 为各角色选择模型 (兼容 IDE、本地、混合) | ## 贡献与安全 欢迎贡献——请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 和 [GOVERNANCE.md](GOVERNANCE.md)。 通过 [SECURITY.md](SECURITY.md) 私下报告漏洞(请勿在公开 issue 中提交)。我们遵循 [Contributor Covenant](CODE_OF_CONDUCT.md)。如果“系统性单一模型风险”这一理念引起了你的共鸣, **请为仓库加星**,并创建一个 issue 分享你的议会想法。 ## 许可证 代码采用:[Apache-2.0](LICENSE)。文档采用:[CC BY 4.0](LICENSE-DOCS)。详见 [docs/LICENSING.md](docs/LICENSING.md)。 Elder Council 降低了决策风险;但并不能消除风险。按“原样”提供,不附带任何保证。 © 2026 ZenBlue Pty Ltd t/a Cyber Elders
标签:AI智能体, DLL 劫持, LLM应用框架, 多模型协同, 大语言模型, 文档结构分析, 自动化决策, 逆向工具