ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

初识capsule-react:Rust+WASM打造AI Agent操作系统外壳,ReAct循环协调器完全指南

初识capsule-react:Rust+WASM打造AI Agent操作系统外壳,ReAct循环协调器完全指南 初识capsule-reactRustWASM打造AI Agent操作系统外壳ReAct循环协调器完全指南【免费下载链接】capsule-reactReAct loop coordinator. Stateless state machine for reasoning-and-action cycle. Part of Unicity AOS.项目地址: https://gitcode.com/gh_mirrors/ca/capsule-reactcapsule-react包名astrid-capsule-react是 Unicity Astrid OS 中的 ReAct 循环协调器一个用 Rust 编写、编译为 WASM 的无状态状态机。它不直接调用 LLM、不执行工具而是作为 Agent「操作系统的外壳」通过事件总线编排会话、身份、提示词、LLM 与工具五大组件驱动「推理-行动-观察」循环 什么是 capsule-react在 Astrid OS 的模型里Agent 被拆分成多个可插拔的「Capsule胶囊」每个胶囊是独立的 WASM 模块通过 IPC 事件总线通信。capsule-react 就是其中的协调者——它定义了让 Agent 成为 Agent 的控制流获取上下文 → 思考 → 行动 → 观察 → 重复核心设计哲学是职责单一react 胶囊不含任何推理逻辑只做纯控制流编排。把它替换成别的编排策略辩论、MCTS、链式验证Agent 的行为就会改变而其他胶囊一行代码都不用动。详见 README.md。 ReAct 状态机5 个阶段一目了然状态机定义在 src/lib.rs 的Phase枚举中流转路径为Idle - AwaitingIdentity - AwaitingPromptBuild - Streaming - AwaitingTools - Streaming - ... - Idle阶段含义默认超时Idle空闲等待用户输入—AwaitingIdentity等待身份胶囊返回系统提示词30 秒AwaitingPromptBuild等待提示词构建器组装最终提示词30 秒Streaming流式接收 LLM 输出文本/工具调用120 秒AwaitingTools等待所有工具执行完成60 秒每个阶段都配有看门狗超时保护src/lib.rs超时会自动重置回Idle并向前端发送错误提示防止会话卡死。⚙️ 工作原理事件总线 五大胶囊协作react 循环通过事件总线协调另外 5 个胶囊README.mdSession会话—— 获取对话历史、持久化每轮结果Identity身份—— 从工作区配置构建系统提示词Prompt Builder提示词构建器—— 合并插件贡献生成最终提示词ProviderLLM 提供方—— 流式输出模型响应Tool Router工具路由器—— 分发工具调用并收集结果它不做的事同样重要不调用 LLM、不执行工具、不构建提示词、不存储消息。对话历史由会话胶囊持有react 只保存临时的控制流状态。临时状态存哪里每轮的状态存在胶囊自带的 KV 存储中src/lib.rsreact.turn.{session_id}—— 当前轮次的状态机快照TurnState定义见 src/lib.rsreact.req2sess.{request_id}—— LLM 请求与会话的关联react.call2sess.{call_id}—— 工具调用与会话的关联react.active_sessions—— 活跃会话集合供看门狗遍历检查超时这些是「流程状态」而非对话历史。胶囊重启时会主动清理全部临时键clear_ephemeral_keys保证不残留脏状态。 Rust WASM 的工程细节从 Cargo.toml 能看出这是一个极致瘦身的 WASM 目标[lib] crate-type [cdylib] [profile.release] opt-level z # 按体积优化 lto true codegen-units 1 strip true panic abortcdylib输出格式正是 WASM 所需opt-level z LTO strip把产物体积压到最小panic abort移除 panic 展开表进一步瘦身工具链锁定在 Rust 1.94.0目标为wasm32-unknown-unknownrust-toolchain.toml。而 Capsule.toml 是胶囊的「能力清单」声明了它需要导入的内核能力astrid:llm、astrid:session等、可发布的主题如agent.v1.response、agent.v1.stream.delta和订阅的事件如user.v1.prompt、tool.v1.execute.result。这种声明式权限模型让内核可以在事件到达前就拦截越权操作。 一键构建最快配置方法构建只需两条命令git clone https://gitcode.com/gh_mirrors/ca/capsule-react cd capsule-react rustup target add wasm32-unknown-unknown cargo build --target wasm32-unknown-unknown --release产物为astrid_capsule_react.wasmCapsule.toml 中声明为可执行组件安装到 Astrid OS 后即可作为 Agent 的编排外壳运行。 关键文件导航文件说明src/lib.rs全部实现约 2600 行含 26 个单元测试Capsule.toml胶囊清单组件、导入、发布/订阅声明Cargo.tomlWASM 发布配置与依赖rust-toolchain.toml工具链与 WASM 目标锁定README.md项目概览与开发指南几个值得细读的函数handle_user_prompt用户输入的入口整条流水线的起点handle_stream_doneLLM 流结束后的决策点——发工具还是回最终答案handle_watchdog_tick看门狗多会话超时兜底机制handle_cancel用户取消信号的处理会先终止在跑的子进程再清理状态 设计亮点速览无状态协调react 可随时重启状态全部外置在 KV 与事件流中永不臆造模型没有选中 LLM 模型时会明确报错而不是偷偷用默认模型兜底resolve_request_model迭代上限保护ReAct 循环默认最多 25 轮max_iterations防止无限打转多会话并发以session_id为键隔离状态支持多会话并行与独立的会话清空流式友好每生成一个 token 就通过agent.v1.stream.delta转发给前端且增量帧严格标记is_final: false避免流式消费者提前关流❓ 常见问题Qcapsule-react 适合谁想深入理解 AI Agent 底层架构、或对「操作系统式 Agent」感兴趣的开发者。它是学习 ReAct 模式工业级实现的绝佳样本——代码注释详尽几乎每个函数都解释了「为什么这么做」。Q它能单独运行吗它是 Astrid OS 生态的一部分依赖astrid-sdk与事件总线内核需要完整 OS 环境才能运行。但单读源码src/lib.rs就能完整掌握 ReAct 协调器的设计精髓。Q想换编排策略怎么办直接替换整个 react 胶囊即可。Session、Identity、Tool Router 等胶囊完全解耦这就是「把编排策略当可替换组件」的价值所在。 总结capsule-react 用不到 3000 行 Rust 代码展示了一个优雅的 AI Agent 编排范式让协调者保持无状态让每个能力住进自己的胶囊让事件总线做胶水。Rust 的类型安全加上 WASM 的体积与隔离优势使它成为构建 AI Agent 操作系统外壳的稳健选择。如果你正在研究 Agent 框架的内核设计这个项目值得完整读一遍 ✨【免费下载链接】capsule-reactReAct loop coordinator. Stateless state machine for reasoning-and-action cycle. Part of Unicity AOS.项目地址: https://gitcode.com/gh_mirrors/ca/capsule-react创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表