aion-context/aion-context

GitHub: aion-context/aion-context

aion-context 将 AI agent 的业务规则转化为经过 Ed25519 签名和哈希链保护的防篡改策略文件,让策略变更可验证、可审计且无法被模型悄悄绕过。

Stars: 1 | Forks: 0

aion

# aion-context [![crates.io](https://img.shields.io/crates/v/aion-context.svg)](https://crates.io/crates/aion-context) [![docs.rs](https://img.shields.io/docsrs/aion-context)](https://docs.rs/aion-context) [![License: MIT OR Apache-2.0](https://img.shields.io/badge/license-MIT%20OR%20Apache--2.0-blue.svg)](#license) **在线演示:** [demo.aion-context.dev](https://demo.aion-context.dev/) — 在真实的 agent 循环中运行 `.aion` 策略。 ## 为什么团队使用它 AI agent 开始接触到各种工作流,在这些工作流中,“直接把它放进 prompt 里”已经不够了:访问规则、退款限制、升级阈值、临床或财务策略、司法管辖区约束以及特定客户的例外情况。这些规则需要在不重新训练模型的情况下进行更新,在模型之外执行,并在几个月后有人询问系统当时被允许做什么时进行解释。 `aion-context` 将业务规则转化为已签名的策略工件。 你的 agent 可以在采取行动之前检查策略。你的操作员可以通过签名版本来更新策略。你的安全、合规或审计团队可以验证发生了什么变更、谁批准了它,以及文件事后是否被篡改过。 当你需要回答以下问题时使用它: - 当这个 agent 采取行动时,已批准的策略是怎么说的? - 谁批准了最新的策略变更? - 这个策略文件是否在已批准的路径之外被编辑过? - 我们能否在不改变模型或 prompt 的情况下改变 agent 的行为? - 审计员能否独立验证策略历史? ## 它的作用 在产品层面上,aion-context 为你提供: | 需求 | aion-context 提供的内容 | |---|---| | **模型之外的规则** | 将可执行的策略保存在一个模型可以读取但无法悄悄重写的文件中。 | | **签名的策略变更** | 每个策略版本都由授权的密钥签名,因此所有权和批准是明确的。 | | **防篡改证据** | 如果有人改变了哪怕一个字节、删除了历史或重写了以前的版本,验证都会失败。 | | **随时可审计的历史** | 策略自带其版本轨迹,因此团队可以重现随时间发生的变更。 | | **本地执行** | CLI 和 Rust 库可离线工作;无需托管服务。 | 在底层,`.aion` 文件将 YAML、Markdown、JSON 或任何其他策略 payload 包装在一个带有完整性检查的版本化签名链中。 技术细节很重要,但结果很简单:策略变更变得可证明,而不是假定如此。 它*不是* sigstore、in-toto 或 SLSA 的替代品。它是这些系统遗留在台面上的、针对策略/文档形态的同级产品——请参阅[对比章节]了解它们之间的差异。 ## Hello world ``` use aion_context::crypto::SigningKey; use aion_context::key_registry::KeyRegistry; use aion_context::operations::{init_file, verify_file, InitOptions}; use aion_context::types::AuthorId; use std::path::Path; fn main() -> anyhow::Result<()> { let key = SigningKey::generate(); let author = AuthorId::new(1); let mut registry = KeyRegistry::new(); registry.register_author(author, key.verifying_key(), key.verifying_key(), 0)?; init_file( Path::new("/tmp/policy.aion"), b"allow: read\nallow: write", &InitOptions { author_id: author, signing_key: &key, message: "v1", timestamp: None }, )?; let report = verify_file(Path::new("/tmp/policy.aion"), ®istry)?; assert!(report.is_valid); Ok(()) } ``` 这是一个只有十二行代码的、经过签名和防篡改的策略文件。随便改动文件的一个字节,`report.is_valid` 就会变成 `false` —— 无需进一步配置。 ## 安装 ``` # CLI: cargo install aion-context # Library: cargo add aion-context ``` 或者从源码构建: ``` git clone https://github.com/aion-context/aion-context cd aion-context cargo install --path . --bin aion aion --help ``` ## 开箱即用的内容 | 层级 | 你将获得什么 | |---|---| | **CLI** (`aion`) | `init` / `commit` / `verify` / `inspect` / `registry rotate \| revoke` / `release seal \| verify` / `archive verify` / `key generate` | | **库** | `init_file` / `commit_version` / `verify_file` / `KeyRegistry` / `verify_multisig` (RFC-0021) / sealed releases (RFC-0032) / hardware attestation (RFC-0026) / hybrid PQC (RFC-0027) / transparency log (RFC-0025) | | **格式** | Zero-copy 二进制布局。包含一个 header,一条链式签名历史记录,一个 encrypted_rules 部分,以及一个末尾的完整性哈希。最新的 payload 始终以内联方式存在;历史 payload 通过其 `rules_hash` 进行寻址以供外部归档。 | | **Tracing** | `AION_LOG=info` 会为每个事件生成结构化的日志行(例如 `event=file_verified`,`event=signature_rejected reason=...` 等)。使用 `AION_LOG_FORMAT=json` 以便日志存储系统摄取。 | | **示例** | `policy_loop`、`llm_policy_agent`(Claude 作为提议者 + `.aion` 作为网关)、`aegis_consortium`(5 方 PQC 法定人数)、`federation_hw_attest`(跨域 TEE 密钥)、`corpus_to_aion`(任意 git 历史记录 → 签名链) | ## 标准和协议 aion-context 与现有的供应链生态系统进行交互,而不是取代它。Sealed releases (RFC-0032) 会发出由 DSSE 包装的 SLSA Statements,你可以将其交给符合 sigstore 规范的验证器;transparency log (RFC-0025) 兼容 RFC 6962;OCI manifests 允许通过容器 registry 发布版本;JCS 提供确定性 JSON,用于跨实现的哈希处理。 [![Rust](https://img.shields.io/badge/Rust-1.70%2B-DEA584?logo=rust&logoColor=white)](https://www.rust-lang.org/) [![Crates.io](https://img.shields.io/crates/v/aion-context.svg?logo=rust&logoColor=white&color=DEA584)](https://crates.io/crates/aion-context) [![Sigstore](https://img.shields.io/badge/Sigstore-DSSE%20envelopes-3F2828?logo=sigstore&logoColor=white)](https://www.sigstore.dev/) [![SLSA v1.1](https://img.shields.io/badge/SLSA-v1.1-2F855A)](https://slsa.dev/) [![in-toto](https://img.shields.io/badge/in--toto-Statements-3B5998)](https://in-toto.io/) [![OCI](https://img.shields.io/badge/OCI-Image%20Manifest%20v1.1-2496ED?logo=opencontainersinitiative&logoColor=white)](https://opencontainers.org/) [![DSSE](https://img.shields.io/badge/DSSE-PAE-555555)](https://github.com/secure-systems-lab/dsse) [![JCS / RFC 8785](https://img.shields.io/badge/JCS-RFC%208785-555555)](https://datatracker.ietf.org/doc/rfc8785/) [![Transparency Log / RFC 6962](https://img.shields.io/badge/Transparency%20Log-RFC%206962-555555)](https://datatracker.ietf.org/doc/rfc6962/) [![FIPS 204 ML-DSA](https://img.shields.io/badge/Post--Quantum-FIPS%20204%20ML--DSA-7B2D8E)](https://csrc.nist.gov/pubs/fips/204/final) [![Ed25519](https://img.shields.io/badge/Signatures-Ed25519-EF6C00)](https://ed25519.cr.yp.to/) [![BLAKE3](https://img.shields.io/badge/Hashing-BLAKE3-1E5631)](https://github.com/BLAKE3-team/BLAKE3) [![ChaCha20-Poly1305](https://img.shields.io/badge/AEAD-ChaCha20--Poly1305-555555)](https://datatracker.ietf.org/doc/rfc8439/) 请参阅[对比章节]以了解 aion-context 与上述各个相邻项目之间的关系(何时该使用哪一个)。 ## 文档 - **[本书](book/src/SUMMARY.md)** — 快速入门、心智模型、 CLI 参考、架构深度剖析、操作手册、 示例说明。使用 `mdbook serve book/` 构建。 - **[产品定位](docs/POSITIONING.md)** — 面向产品、安全、合规和平台受众的简单明了的 信息传达。 - **[更新日志](CHANGELOG.md)** — 你正在运行的版本中有什么。 - **[RFCs](rfcs/)** — 涵盖协议设计的 35 个 RFC,从 威胁模型到 sealed releases。 - **[贡献指南](CONTRIBUTING.md)** — 分支 / 提交 / PR 规范。 - **[安全](SECURITY.md)** — 漏洞披露政策。 ## 参考实现 展示 aion-context 端到端接入真实业务领域的、具有生产参考价值的示例: - **[aion-edu](https://github.com/aion-context/aion-edu)** — 一个合成的、AI 原生的 大学,其中每一个评分标准、证书和认证都是经过签名、哈希链接的 记录。展示了 sealing 和**离线验证**、用于联合学位的 **K-of-N multisig**、**registry-epoch** 委托/撤销,以及机构间的 **federation** —— 这是一个包含 7 个 crate 的 Rust 工作区,附带了一个 axum Web 应用(具有电影质感的首页、实时课堂、federation 控制台)。 ## 状态 **1.0.0** — 公共 API、磁盘上的二进制格式、CLI 退出代码 契约、结构化 tracing 事件词汇表以及受限的 `reason` 代码现在已处于 semver(语义化版本控制)的约束之下。完整的书面稳定性 承诺位于 [`book/src/architecture/stability.md`]。 加密原语(Ed25519、BLAKE3、ChaCha20-Poly1305、 HKDF-SHA-256、ML-DSA-65)若没有主版本号的升级以及 RFC,将不会发生变更。破坏性变更会在提交主题中带有 `!`,并且会被记录在 [CHANGELOG.md] 中。 ## 次要内容 — 面向当前的贡献者 ### 构建 ``` cargo build --release cargo test cargo clippy --all-targets -- -D warnings cargo fmt --check cargo bench # criterion benches cargo audit && cargo deny check # supply chain ``` ### 项目布局 ``` src/ library — the public crate audit.rs append-only hash-chained audit log crypto.rs Ed25519 + BLAKE3 + ChaCha20-Poly1305 primitives key_registry.rs RFC-0028 trusted-key registry, rotations, revocations manifest.rs RFC-0022 external-artifact manifests multisig.rs RFC-0021 K-of-N quorum operations.rs init / commit / verify public API parser.rs zero-copy binary decoder release.rs RFC-0032 sealed release composer serializer.rs deterministic binary encoder signature_chain.rs per-version signing & verification transparency_log.rs RFC-0025 Merkle log + STH types.rs FileId, AuthorId, VersionNumber newtypes bin/aion.rs CLI binary benches/ criterion perf benches fuzz/ cargo-fuzz targets (parser totality) examples/ runnable demos + per-industry rules YAMLs rfcs/ the protocol specification book/ mdbook source for the operator manual .claude/ rules + agents + hooks for agentic contributors ``` ### 核心原则 1. **Tiger Style** — 在库代码中杜绝使用 `unwrap()` / `expect()` / `panic!` / `todo!` / `unreachable!`。每个可能失败的 函数都返回 `Result`。严禁使用 `unsafe_code`。crate 级别的 clippy lints 在编译 时强制执行此规则。 2. **加密至高无上** — 承载核心功能的原语来自于 `ed25519-dalek`、`blake3`、`chacha20poly1305`。绝不手动实现。 3. **关键路径实现 Zero-copy** — 解析器使用 `zerocopy` 以 避免在热路径(hot path)上进行内存分配。 4. **RFC 优先** — 非同寻常的格式 / 加密 / 协议变更 在代码合并之前,需要在 `rfcs/` 下提交一份 RFC。 5. **离线优先** — 该库绝不接触网络。 `aion` CLI 是一个单一静态二进制文件。 ## 许可证 采用 [MIT](LICENSE-MIT) **或** [Apache-2.0](LICENSE-APACHE) 双重许可, 由你自行选择。 ## 社区 - Bug 报告 → [GitHub Issues](https://github.com/aion-context/aion-context/issues/new/choose) - 安全报告 → 参阅 [SECURITY.md](SECURITY.md)(仅限私下流程) - 开放式问题 / 设计讨论 → [讨论区](https://github.com/aion-context/aion-context/discussions) - 贡献规则 → [CONTRIBUTING.md](CONTRIBUTING.md), [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)
标签:AI治理, Rust, 可视化界面, 密码学, 手动系统调用, 网络流量审计, 通知系统