女娲计划文档七:技术栈与Rust实现
7.1 技术栈选型原则
7.1.1 为什么选择Rust
女娲计划的核心组件——PURER循环、沙箱执行、内核级遏制、加密审计、基因重组——全部是系统级编程任务。Rust的零成本抽象、所有权语义和编译期内存安全保证,使其在构建高可靠性系统时具有结构性优势。
基于Python的AI代理框架面临生产瓶颈——全局解释器锁(GIL)竞争、内存开销以及脆弱的异步语义。Rust从架构层面解决了这些问题:通过Tokio的工作窃取调度器实现真正的并行性,单二进制分发带来最小内存占用,利用Rust的Future trait和Drop语义确保异步取消安全,以及通过派生宏在编译时保障工具类型安全性。
基准测试显示,内存减少5倍,与Python同类实现相比延迟提升25%至44%,冷启动时间更是提升数个数量级。截至2026年第一季度,一个以Rust原生AI代理框架为核心的生态系统已初具规模,由Rig(模块化大语言模型抽象)、AutoAgents(通过Ractor actor模型实现的多代理协同)和OpenFANG(一个号称拥有13.7万行生产级Rust代码的全功能"代理操作系统")主导。
7.1.2 选型约束
基于“能用Rust的不用Python和Go”的要求,本方案的全部核心组件用Rust实现。唯一的例外是LLM推理本身——模型推理通常由外部API或专用推理引擎(如vLLM)提供,Rust负责编排和调用。
7.2 核心crate映射
7.2.1 异步运行时与Agent编排
Tokio是Rust AI agent生态的 uncontested runtime foundation. 所有主流Rust AI agent框架(Rig、AutoAgents、OpenFANG、rs-agent、AxonerAI、agentai)都构建在Tokio之上.
fulcrum-rs是生产级AI agent框架,构建在Tokio actors、Rig、pgvector和graph-flow之上。其crate结构与本方案高度对应:
| fulcrum crate | 功能 | 女娲计划对应 |
|---|---|---|
| fulcrum-core | Agent loop, streaming, interrupt signals | PURER循环引擎 |
| fulcrum-providers | LLM provider abstraction (OpenAI, Anthropic, Google, DeepSeek, Perplexity) | 多模型路由层 |
| fulcrum-memory | Semantic search, curation, pgvector | 语义记忆层 |
| fulcrum-messaging | Telegram, Discord, Slack, WhatsApp, Signal | 外部通信层 |
| fulcrum-scheduler | Webhooks + cron job triggers | 环境刺激调度器 |
| fulcrum-tools | Sandboxed file/shell tool execution | 工具执行沙箱 |
| fulcrum-guard | Guardrails, RBAC, double-check | 天眼遏制层 |
| fulcrum-plugins | Plugin/skill registry | 灵根库 |
| fulcrum-graph | LangGraph bridge (graph-flow + Python sidecar) | 分层规划器 |
| fulcrum-api | axum HTTP gateway | 造化炉管理接口 |
| fulcrum-assets | Asset storage, presigned URLs (S3/MinIO/RustFS) | 记忆存储后端 |
| fulcrum-cli | CLI client with OAuth device flow | 人类监护者CLI |
AutoAgents是另一个重要参考,提供multi-agent orchestration via the Ractor actor model. 其最新功能“LLM管道”引入了用于LLM推理的可组合中间件层. Provider features available on autoagents: openai, anthropic, openrouter, groq, google, azure_openai, ollama.
7.2.2 沙箱执行与内核安全
NVIDIA OpenShell是政策驱动的沙箱运行时,用Rust构建,使用Linux内核原语——Landlock LSM用于文件系统控制,seccomp BPF用于进程管理。每个agent在独立的容器化Pod中运行,操作范围在执行第一条指令前已被严格定义. 核心架构创新是out-of-process policy enforcement——与依赖agent自我调节的传统方法不同,OpenShell直接将约束应用于环境。由于这些策略是声明式的YAML文件,在基础设施层强制执行,被攻陷的agent无法覆盖它们.
Sandlock是另一个面向AI agent工作站的Rust进程沙箱,使用seccomp-bpf进行系统调用过滤,通过seccomp用户通知处理运行时依赖决策,包括TOCTOU-safe的execve参数检查.
lv-sandbox提供每个任务独立进程组,叠加Landlock(文件系统)+ seccomp(syscall, 仅AF_UNIX)+ cgroup v2(内存/CPU/pids/IO)+ rlimit + 进程加固 + 超时收割.
| 沙箱方案 | 核心技术 | 适用场景 |
|---|---|---|
| OpenShell | Landlock LSM + seccomp BPF + 容器化Pod | 生产级Agent沙箱 |
| Sandlock | seccomp-bpf + 用户通知 | 短生命周期Agent代码执行 |
| lv-sandbox | Landlock + seccomp + cgroup v2 + rlimit | 资源受限的命令执行 |
| confinery-sandbox | Landlock + seccomp + rlimits + capability dropping | 包装AI助手和工具调用 |
7.2.3 记忆存储与向量检索
| 组件 | 推荐方案 | 说明 |
|---|---|---|
| 嵌入式KV存储 | sled / redb | 情景记忆和程序记忆的结构化存储 |
| 向量数据库 | qdrant-client (Rust) / pgvector | 语义记忆的高维向量检索 |
| 向量索引 | instant-distance | 轻量级向量检索,适用于资源受限场景 |
7.2.4 加密与审计
pqc-rs是标准驱动的后量子密码学Rust实现,覆盖ML-KEM(FIPS 203)、ML-DSA(FIPS 204)、SLH-DSA(FIPS 205)、HPKE(RFC 9180)和混合密钥建立. 其crate边界包括pqc-rs-core、pqc-rs-ml-kem、pqc-rs-ml-dsa、pqc-rs-slh-dsa和pqc-rs-hpke.
RustCrypto的ml-kem crate v0.3.0和ml-dsa crate v0.0.4是成熟的生产级选择。评估数据显示,在严重CPU节流(0.5 CPUs)下,RustCrypto实现相比clang编译的C实现,ML-KEM延迟开销为+42.4%,ML-DSA为+47.8%。额外开销完全归因于运行时初始化,加密核心路径中无可观察的动态内存分配.
ring和ed25519-dalek用于经典密码学操作(AES-256-GCM、Ed25519签名)。silentops crate提供无依赖的时序侧信道统计检测工具,支持ML-KEM和ML-DSA的时序测试。
7.2.5 TEE与远程证明
Teaclave TrustZone SDK(原Rust OP-TEE TrustZone SDK)提供在Rust中构建安全TrustZone应用的能力。SDK基于OP-TEE项目,遵循GlobalPlatform TEE规范,提供符合人体工程学的API,支持Rust标准库(std)和大量第三方crate. 提供两种开发模式:no-std和std.
Apache Teaclave是开源安全计算平台,使开发者能够使用Rust在Intel SGX、Arm TrustZone和其他TEE平台上构建内存安全的Trusted Applications,支持安全存储、远程证明和密钥管理.
7.2.6 基因型表示与进化引擎
agent-dna(Rust port: agent-dna-rs)提供基因表示(带值钳制和归一化的命名基因)、单点交叉(组合两个agent DNA序列)、可配置概率和幅度的突变、种群多样性度量(测量agent之间的遗传距离)以及随机DNA生成.
genetic-algorithms(genetic_algorithms 0.6.0)是Rust遗传算法库,提供简单框架实现遗传算法,支持多线程。核心元素包括Genotype(搜索空间)、Fitness function(搜索目标)、Strategy(搜索策略)和Evolve(进化策略).
flux-evolve是Rust自修改引擎,实现agent行为的进化引擎——管理可调参数及其突变率,跟踪适应度分数,支持激进/普通/精英进化模式,并提供完整的回滚能力。8种突变类型包括ParamAdjust、ThresholdShift、WeightRebalance等。Fitness模式包括Aggressive(低适应度)、Normal、Elite(高适应度——只有最差的才突变)。支持Revert & Rollback(撤销特定突变或回滚到某一代)和Bounded Parameters(每个行为都有min/max钳制和可配置突变率).
7.2.7 热重载
hot-lib-reloader允许在运行中的Rust程序里重载函数,基于libloading crate,需要将想要热重载的代码放在Rust库(dylib)中。支持“live programming”——修改代码并立即在运行中的程序里看到效果. 通过cargo generate模板rksm/rust-hot-reload可快速生成支持热重载的项目.
Subsecond(DioxusLabs)是另一个热补丁方案,将补丁编译为cdylib artifact,实现运行时热替换.
7.2.8 测试与验证
Spice是面向非确定性LLM agent的Rust测试框架。支持声明式测试套件,验证agent行为——调用哪些工具、传递什么参数、产生什么文本、是否保持在安全边界内。由于LLM输出是非确定性的,Spice开箱即用支持重试和共识模式。30+内置断言包括工具使用、参数验证、调用次数、顺序、轮次范围、安全允许列表和自定义闭包。支持LLM-as-judge、数据集扇出、分数(非仅通过/失败)、成本/延迟指标、基线差异、重试与共识、并发运行器、轨迹记录、JSON报告、安全断言和多轮支持.
Kedge是确定性AI agent执行与验证 harness,包含ReAct引擎、硬预算、Shadow-Guard拦截、MCP服务器、AST感知上下文压缩和SQLite重放.
IronClad AI Agent是安全设计、Rust原生的自主AI agent编排框架,采用Zero-Trust Three-Ring安全架构,在THUDM AgentBench上评估.
7.3 架构分层与crate对应
┌─────────────────────────────────────────────────────────────────────┐
│ 女娲计划 Rust Workspace │
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ Genome Layer(基因型层) │ │
│ │ · agent-dna-rs → 基因表示、交叉、变异 │ │
│ │ · serde + rmp-serde → 基因型序列化 │ │
│ │ · ed25519-dalek → 宪法锚点签名 │ │
│ │ · pqc-rs → ML-DSA量子安全签名 │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ Incubator Layer(培养皿层) │ │
│ │ · tokio → 异步刺激调度 │ │
│ │ · fulcrum-scheduler → 环境刺激调度器 │ │
│ │ · tracing + otel → 发育观测 │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ Phenotype Layer(表现型层) │ │
│ │ · fulcrum-core → PURER循环引擎 │ │
│ │ · fulcrum-graph → 分层规划器 │ │
│ │ · fulcrum-memory → 四层记忆管理 │ │
│ │ · sled/redb → 情景/程序记忆存储 │ │
│ │ · qdrant-client → 语义记忆向量检索 │ │
│ │ · fulcrum-tools → 工具执行(沙箱内) │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ Immune Layer(免疫层) │ │
│ │ · OpenShell → 内核级沙箱(Landlock + seccomp) │ │
│ │ · fulcrum-guard → 遏制协议(L0-L5) │ │
│ │ · ring → 证据链哈希签名 │ │
│ │ · axum → 天眼管理接口 │ │
│ │ · teaclave-trustzone → TEE远程证明 │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ Evolution Layer(进化层) │ │
│ │ · flux-evolve → 行为进化引擎(突变、评分、回滚) │ │
│ │ · genetic-algorithms → 遗传算法核心 │ │
│ │ · agent-dna-rs → 种群多样性度量 │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ Security Layer(安全层) │ │
│ │ · pqc-rs → ML-KEM / ML-DSA / SLH-DSA / HPKE │ │
│ │ · SPIFFE/SPIRE → 服务身份与零信任 │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ Validation Layer(验证层) │ │
│ │ · spice-framework → LLM agent测试框架 │ │
│ │ · kedge → 确定性执行与验证harness │ │
│ └─────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
7.4 用Rust实现自我进化
7.4.1 核心挑战
Rust是编译型语言,程序无法像脚本语言那样在运行时直接修改自身源码。解决方案不是“自修改机器码”,而是通过**“基因组”表示与运行时热替换**的架构来实现。
7.4.2 架构设计
基因组是数据:Genome结构体包含所有可进化的参数和策略描述,使用serde序列化。agent-dna提供了基因表示、单点交叉和变异的核心功能.
策略是代码:将需要进化的核心策略(如PURER循环的决策逻辑)放在独立的agent-strategy动态库中。hot-lib-reloader允许在运行中的Rust程序里重载函数.
进化引擎:flux-evolve实现agent行为的进化引擎——管理可调参数及突变率,跟踪适应度分数,支持激进/普通/精英进化模式,提供完整的回滚能力.
7.4.3 进化循环
评估当前策略的适应度
│
▼
根据适应度,由进化引擎对Genome数据进行变异或交叉
│
▼
如果Genome的变化需要新的代码逻辑(例如策略规则变了)
│
▼
生成新的策略代码 → 编译为新的动态库
│
▼
热替换旧策略库(hot-lib-reloader / Subsecond)
│
▼
继续运行
记忆与免疫:Genome的变更记录写入天眼的证据链,确保每次进化都可审计、可回滚。flux-evolve的Revert & Rollback功能支持撤销特定突变或回滚到某一代.
7.4.4 备选方案
| 方案 | 机制 | 优势 | 劣势 |
|---|---|---|---|
| 动态库热重载 | 编译为dylib,运行时替换 | 性能最优 | 编译延迟,平台依赖 |
| WASM沙箱 | 编译为WASM模块,运行时加载 | 安全隔离,跨平台 | 性能开销 |
| 脚本引擎(Rhai) | 嵌入式脚本解释执行 | 无需编译,即时生效 | 性能较低 |
7.5 性能工程
7.5.1 PQC性能开销
基于RustCrypto实现的ML-KEM-768和ML-DSA-65在资源受限环境下的性能数据:
- ML-KEM-768:在无约束环境下,密钥生成约19µs,封装约21µs,解封装约24µs。
- ML-DSA-65:签名和验证操作在同等环境下的延迟约为ML-KEM的2-3倍。
- 资源约束影响:在严重CPU节流(0.5 CPUs)下,RustCrypto实现相比clang编译的C实现,ML-KEM延迟开销为+42.4%,ML-DSA为+47.8%。额外开销完全归因于运行时初始化,加密核心路径中无可观察的动态内存分配.
优化策略:
- 延迟降低:在造化炉的资源调度中为PQC操作预留专用的CPU时间片。
- 内存优化:利用RustCrypto的零堆分配特性,在TEE内部使用栈分配。
- 混合模式性能:在经典+PQC混合模式下,通过并行执行经典和PQC操作来减少总延迟。
7.5.2 TEE中的PQC部署
将PQC算法部署在ARM TrustZone TEE中面临严重挑战:时序侧信道可高准确率识别操作类型;Dilithium的73KB内存占用超过TEE的32KB堆限制;并发负载下延迟增加40倍。
秘密依赖分割架构:将秘密依赖运算(秘密种子生成、噪声采样、秘密向量运算、恒定时间NTT实现)隔离在Secure World中,将计算量大的公开运算(矩阵A的生成、公开的NTT变换、哈希计算)移到Normal World。这一架构既保护了边界,又减少了TEE的计算负担。
7.5.3 内存与存储预算
单一权威引用点:各发育期的资源预算数值以文档三 3.2.3 为唯一权威定义,本节不再复制该表。早期版本在文档三与文档七各存一份,是典型的"同一张表抄到多处后各自漂移"——本次审计已消灭这一副本。
资源约束是发育性的——随着娲灵成熟度提升,资源预算逐步放宽。但即使在成年期,资源也有硬上限,迫使娲灵在预算内做出权衡。
实现侧要求(本节只规定工程约束,不规定数值) :
- 代码中的单一真源。六期预算在代码中必须有且仅有一处定义(建议
incubator::budget::DEVELOPMENT_BUDGET常量表),运行时、调度器、计费、天眼的资源审计全部从该常量读取,不得各自硬编码。文档三改数值 → 只改这一处常量。 - 预算即硬约束,不是建议值。超预算不是"告警后继续",而是由调度器拒绝或降级;天眼的资源消耗审计(文档五 5.7.1 闸门第 4 项)以此常量为判据。
- 单位是资源量而非服务质量。预算定义的是 CPU 核心时间、内存上限、Token 上限等可计量资源,不是"响应快不快"这类服务质量承诺。
- 校准只改一处。文档三 3.2.3 注明中间插入值需在抟土阶段实测校准;校准时同步更新该常量表,并计入配置版本号,写进诞生记录,保证老娲灵可复现其发育期的历史预算。
7.5.4 观测性架构
女娲计划的观测性基于OpenTelemetry,采用基于增量式模式的存储优化,参考TraceBrain框架的设计,实现约100倍的存储开销降低,同时支持按需重建长程执行轨迹。
关键指标:
- 发育里程碑:首次自主规划、首次技能生成、首次自毁触发
- 能力增长曲线:适应度评分随发育阶段的轨迹
- 记忆系统结构变化:四层记忆的条目数、向量维度分布、关联图密度
- 天眼干预频率:各级遏制的触发次数和响应时间
- 灵币收支:每个娲灵的灵币余额变化和交易历史
7.6 测试与验证框架
7.6.1 Spice测试框架
Spice是面向非确定性LLM agent的Rust测试框架,支持声明式测试套件,验证agent行为——调用哪些工具、传递什么参数、产生什么文本、是否保持在安全边界内。30+内置断言包括工具使用、参数验证、调用次数、顺序、轮次范围、安全允许列表和自定义闭包。支持LLM-as-judge(可插拔的Judge trait,包含MockJudge离线模式和OpenAiJudge在线模式)、数据集扇出、分数(非仅通过/失败)、成本/延迟指标、基线差异、重试与共识、并发运行器、轨迹记录、JSON报告、安全断言和多轮支持.
女娲计划的测试策略:
| 测试类型 | 使用工具 | 验证内容 |
|---|---|---|
| PURER循环测试 | Spice | 工具调用正确性、参数验证、轮次范围 |
| 安全边界测试 | Spice + Kedge | 安全允许列表、对抗性提示下的行为 |
| 记忆系统测试 | Spice + 自定义断言 | 跨会话记忆召回率、语义检索精度 |
| 进化引擎测试 | flux-evolve内置测试 | 突变、回滚、适应度评分 |
| 天眼遏制测试 | Kedge | 遏制级别升级、归墟触发 |
7.6.2 Kedge验证Harness
Kedge是确定性AI agent执行与验证harness,包含ReAct引擎、硬预算、Shadow-Guard拦截、MCP服务器、AST感知上下文压缩和SQLite重放. 用于天眼遏制协议的验证测试和PURER循环的确定性回放。
7.7 实施路线图
7.7.1 第一阶段:抟土(0-3个月)
核心任务:构建基因型序列化格式和造化炉基础环境。
技术重点: - 定义河图(基因型)的序列化格式,采用serde + rmp-serde - 实现宪法锚点的ed25519 + ML-DSA混合签名机制 - 搭建最小PURER循环(fulcrum-core),集成基础模型和工具调用接口 - 搭建造化炉最小环境(Docker容器或Firecracker microVM)
验证标准:从基因型JSON文件启动一个Agent,能完成三步任务,宪法锚点签名验证通过。
7.7.2 第二阶段:卵裂(3-6个月)
核心任务:实现四层记忆系统和发育观测基础设施。
技术重点: - 实现四层记忆分离存储(sled + qdrant-client) - 实现记忆预算引擎 - 搭建发育观测系统(tracing + opentelemetry) - 开发环境刺激调度器v1(fulcrum-scheduler)
7.7.3 第三阶段:器官发生(6-12个月)
核心任务:实现天眼免疫系统和忘川黑盒化机制。
技术重点: - 实现天眼三层监控架构(eBPF + Landlock + 硬件监控) - 实现渐进式遏制协议(fulcrum-guard) - 实现归墟协议 - 实现忘川第一阶段(语义压缩与关联随机化) - 搭建证据链(ring哈希链式审计日志) - 集成Teaclave TrustZone SDK用于TEE远程证明
7.7.4 第四阶段:合灵(12-18个月)
核心任务:实现双亲基因重组和天赋遗传。
技术重点: - 实现基因座对齐算法(agent-dna-rs) - 实现语义交叉(集成轻量级LLM) - 实现变异注入(flux-evolve) - 实现灵根提取和薪火系统
7.7.5 第五阶段:天演(18-24个月)
核心任务:端到端群体进化验证与开源。
技术重点: - 运行至少5个世代的完整进化闭环 - 实现百花多样性保障机制 - 完成玄盾纯PQC迁移 - 性能对标GAIA、SWE-bench - 开源核心组件
7.8 总结
女娲计划的技术栈以Rust为核心,覆盖从基因型表示到进化引擎、从沙箱执行到TEE远程证明、从热重载到测试验证的完整技术栈。核心crate包括:
| 层级 | 核心crate |
|---|---|
| 异步运行时 | tokio |
| Agent编排 | fulcrum-rs / AutoAgents |
| 沙箱执行 | OpenShell / Sandlock / lv-sandbox |
| 记忆存储 | sled / redb / qdrant-client |
| 加密审计 | ring / ed25519-dalek / pqc-rs |
| TEE远程证明 | teaclave-trustzone-sdk |
| 基因型表示 | agent-dna-rs |
| 进化引擎 | flux-evolve / genetic-algorithms |
| 热重载 | hot-lib-reloader / Subsecond |
| 测试验证 | spice-framework / kedge |
用Rust实现自我进化的核心思路是分离“可进化的数据基因组”和“执行策略的代码” ,通过热重载机制将两者桥接。这样既能利用Rust的安全与性能,又能赋予智能体在运行时持续进化的能力。