OpenFang - Agent 操作系统
约 1191 字大约 4 分钟
2026-03-07
Agent 操作系统,将 LLM 视为 CPU,MCP 协议作为设备驱动总线,系统级架构设计。
核心特性
操作系统级架构
- 将 LLM 视为 CPU
- MCP 协议作为设备驱动总线
- 内置任务抢占式调度器
- 多 Agent 共享底层资源
资源统一管理
- 算力统一分配
- 内存池管理
- 任务优先级调度
- 资源配额限制
高度可扩展
- 插件式 MCP 服务器
- 动态加载驱动
- 热插拔支持
- API 网关集成
企业级特性
- 多租户隔离
- 审计日志
- 监控告警
- 高可用部署
快速开始
安装
# 从源码构建
git clone https://github.com/RightNow-AI/openfang.git
cd openfang
# 使用 Cargo 构建
cargo build --release
# 安装
cargo install --path .配置
创建 openfang.toml:
[system]
# 系统配置
max_agents = 10
scheduler = "preemptive" # 或 "cooperative"
log_level = "info"
[llm]
# LLM 配置(CPU)
provider = "anthropic"
api_key = "${ANTHROPIC_API_KEY}"
model = "claude-3-5-sonnet-20241022"
max_tokens = 4096
[mcp]
# MCP 服务器配置(设备驱动)
[[mcp.servers]]
name = "filesystem"
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem", "/workspace"]
[[mcp.servers]]
name = "github"
command = "npx"
args = ["-y", "@modelcontextprotocol/server-github"]
env = { GITHUB_TOKEN = "${GITHUB_TOKEN}" }
[[mcp.servers]]
name = "database"
command = "npx"
args = ["-y", "@modelcontextprotocol/server-postgres"]
env = { DATABASE_URL = "${DATABASE_URL}" }
[scheduler]
# 调度器配置
time_slice = "100ms"
priority_levels = 5
preemption = true
[resources]
# 资源配额
cpu_quota = 1.0
memory_limit = "2GB"
disk_quota = "10GB"启动
# 启动 OpenFang 系统
openfang start --config openfang.toml
# 查看系统状态
openfang status
# 查看运行中的 Agent
openfang ps技术架构
系统架构
┌─────────────────────────────────────────────┐
│ OpenFang OS Kernel │
│ │
│ ┌───────────────────────────────────────┐ │
│ │ Task Scheduler (调度器) │ │
│ │ - Preemptive Scheduling │ │
│ │ - Priority Queue │ │
│ │ - Resource Allocation │ │
│ └───────────────────────────────────────┘ │
│ ↓ │
│ ┌───────────────────────────────────────┐ │
│ │ LLM Engine (CPU) │ │
│ │ - Claude / GPT / Gemini │ │
│ │ - Token Management │ │
│ │ - Context Window │ │
│ └───────────────────────────────────────┘ │
│ ↓ │
│ ┌───────────────────────────────────────┐ │
│ │ MCP Bus (设备驱动总线) │ │
│ │ - Protocol Handler │ │
│ │ - Message Router │ │
│ │ - Driver Manager │ │
│ └───────────────────────────────────────┘ │
│ ↓ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │FS Driver│ │DB Driver│ │API Driver│ │
│ └─────────┘ └─────────┘ └─────────┘ │
└─────────────────────────────────────────────┘核心技术栈
- 语言: Rust
- 异步运行时: Tokio
- 协议: MCP (Model Context Protocol)
- 调度: 抢占式调度器
调度算法
OpenFang 实现了类似操作系统的任务调度:
- 优先级调度: 5 个优先级级别
- 时间片轮转: 每个任务 100ms 时间片
- 抢占式调度: 高优先级任务可抢占低优先级
- 公平调度: 防止任务饥饿
使用示例
创建 Agent
use openfang::{Agent, Priority};
// 创建高优先级 Agent
let agent = Agent::new("data-processor")
.priority(Priority::High)
.memory_limit("512MB")
.timeout(Duration::from_secs(300))
.build()?;
// 执行任务
let result = agent.execute("分析这个数据集并生成报告").await?;多 Agent 协同
use openfang::{System, Agent};
// 初始化系统
let system = System::new("openfang.toml")?;
// 创建多个 Agent
let planner = system.spawn_agent("planner", Priority::High).await?;
let coder = system.spawn_agent("coder", Priority::Normal).await?;
let reviewer = system.spawn_agent("reviewer", Priority::Normal).await?;
// 协同工作
let plan = planner.execute("制定开发计划").await?;
let code = coder.execute(&format!("根据计划编写代码: {}", plan)).await?;
let review = reviewer.execute(&format!("审查代码: {}", code)).await?;MCP 驱动管理
use openfang::mcp::{Driver, DriverManager};
// 动态加载驱动
let manager = DriverManager::new();
manager.load_driver("slack", SlackDriver::new(token)).await?;
// 使用驱动
let slack = manager.get_driver("slack")?;
slack.send_message("#general", "Hello from OpenFang!").await?;
// 卸载驱动
manager.unload_driver("slack").await?;高级功能
资源配额管理
[resources.quotas]
# 为不同租户设置配额
[resources.quotas.tenant_a]
cpu = 0.5
memory = "1GB"
max_agents = 5
[resources.quotas.tenant_b]
cpu = 0.3
memory = "512MB"
max_agents = 3监控和告警
# 查看系统资源使用
openfang monitor
# 输出示例:
# CPU Usage: 65%
# Memory: 1.2GB / 2GB
# Active Agents: 7 / 10
# MCP Drivers: 5 loaded
# Task Queue: 3 pending审计日志
// 启用审计日志
let system = System::new("openfang.toml")?
.enable_audit(true)
.audit_path("/var/log/openfang/audit.log")
.build()?;
// 日志包含:
// - Agent 创建/销毁
// - 任务执行记录
// - 资源使用情况
// - MCP 调用记录性能指标
| 指标 | 数值 |
|---|---|
| Agent 启动时间 | < 50ms |
| 调度延迟 | < 10ms |
| 内存开销 | 基础 50MB + 每 Agent 20MB |
| 并发 Agent | 100+ |
| MCP 调用延迟 | < 5ms |
适用场景
推荐使用
- 需要对接大量外部 API 的重度自动化工作流
- 企业级 Agent 基础设施搭建
- 多 Agent 协同工作场景
- 需要精细资源控制的场景
- 高并发 Agent 托管平台
不推荐使用
- 简单的单 Agent 应用
- 对系统复杂度敏感的场景
- 资源非常受限的环境
与其他项目对比
| 特性 | OpenFang | 原版 OpenClaw | ZeroClaw |
|---|---|---|---|
| 架构 | OS 级 | 单进程 | Actor 模型 |
| 多 Agent | 原生支持 | 需自行实现 | 支持 |
| 资源管理 | 统一调度 | 独立进程 | 独立进程 |
| MCP 支持 | 核心特性 | 插件 | 插件 |
| 适用场景 | 企业平台 | 个人使用 | 高性能 |
相关链接
- GitHub: RightNow-AI/openfang
- 文档: 使用文档
- MCP 协议: Model Context Protocol
- 问题反馈: Issues
贡献
欢迎贡献代码、报告问题或提出建议!
# 克隆仓库
git clone https://github.com/RightNow-AI/openfang.git
# 安装依赖
cd openfang
cargo build
# 运行测试
cargo test
# 运行示例
cargo run --example multi_agent许可证
Apache License 2.0 - 详见 LICENSE