Agentor
Agent-native Actor Runtime — 一个专为 AI Agent 设计的 Actor 模型执行平台,用 Rust 实现。
核心理念
Actor 模型是 Agent 计算的天然底层。每个 Agent 就是一个 Actor,拥有私有状态(记忆)、通过异步消息通信、由监督者管理生命周期。Agentor 针对 AI Agent 的特点(高延迟 LLM 调用、不确定性崩溃、动态协作、状态持久化)做了专门设计。
架构
ActorSystem
├── Supervisor (监督树,容错策略)
│ ├── AgentActor (Planner) ← 私有记忆 + Checkpoint
│ ├── AgentActor (Executor) ← 工具调用 + 流式输出
│ └── AgentActor (Reviewer) ← 人机协作 (AwaitHuman)
├── Environment (凭证 & 配置注入)
├── TokenBudget (资源预算 & 熔断)
└── TraceCollector (全链路观测 & 回放)
核心能力
事务性消息信箱 — 两阶段 commit/nack,处理失败自动重试,超限进入 Dead Letter Queue
故障分类监督 — Transient/Logic/Critical 三级故障分类,不同故障类型对应不同恢复策略
流式拦截 — StreamInterceptor 实时检查流内容,检测到有害内容立即终止流
Agent 休眠/唤醒 — 空闲 Agent 可休眠释放资源,收到消息时自动唤醒并重放暂存消息
异步双向流通信 — Agent 间流式消息传递,支持 LLM streaming 中途中断
状态机与 Checkpointing — Agent 状态原子化持久化,崩溃后精准恢复
人机协作原语 — AwaitHuman 挂起/唤醒机制,Agent 可暂停等待人类审批
资源预算与熔断 — Token/成本预算管理,超限自动熔断
快速开始
use *;
async
模块结构
src/
├── actor/ # 核心 Actor 层 (Actor, ActorSystem, Mailbox, FailureKind, Hibernation)
├── agent/ # Agent 专用层 (AgentActor, AgentState, Checkpoint, LlmConnector)
├── supervisor/ # 监督树 (Supervisor, 故障分类策略)
├── stream/ # 流式通信 (StreamProducer/Consumer, StreamInterceptor)
├── environment/ # 环境 & 凭证 (Environment, Secret 注入)
├── budget/ # 资源预算 (TokenBudget, 熔断)
├── observe/ # 观测 & 回放 (TraceCollector → xtrace.sh)
└── prelude.rs # 常用类型 re-export
技术栈
- 异步运行时: tokio
- LLM 连接: llm-connector — 12+ Provider(OpenAI, Anthropic, DeepSeek, Ollama...),统一流式接口
- 可观测: xtrace — 全链路追踪 + 指标上报,OpenTelemetry 兼容
- 追踪: tracing + xtrace XtraceLayer 自动采集
- 序列化: serde + bincode (状态持久化)
- 并发: dashmap + parking_lot
- 无外部 Actor 框架依赖,从 tokio task + mpsc channel 自建,保持对 Agent 场景的完全控制
构建 & 测试
License
MIT