项目总览
相关源文件
本页面内容基于以下源文件生成:
- README.md
- Cargo.toml
- CLAUDE.md
- CHANGELOG.md
- crates/openfang-api/static/js/pages/overview.js
- crates/openfang-api/static/js/pages/chat.js
- crates/openfang-api/static/js/pages/logs.js
- crates/openfang-api/static/js/pages/usage.js
- crates/openfang-api/static/js/pages/comms.js
- crates/openfang-api/static/js/pages/hands.js
OpenFang 是一个开源的 Agent 操作系统,采用 Rust 语言编写,旨在支持自主运行的智能体系统。与传统需要用户主动输入提示词的智能体框架不同,OpenFang 的智能体能够按照预定计划 7x24 小时自主运行,执行知识图谱构建、目标监控、潜在客户挖掘、社交媒体管理等任务,并将结果汇报到仪表板。整个系统编译为约 32MB 的单一二进制文件,通过一条命令即可完成安装和部署(README.md:40-50)。
该项目由 14 个 Rust crate 组成模块化 Workspace 架构,涵盖类型定义、内存存储、运行时、内核、API、通道通信、技能扩展等核心组件(CLAUDE.md:1-8)。核心平台提供智能体生命周期管理(创建、列表、终止、克隆、模式切换)、SQLite 支持的内存基板、41 个内置工具、WASM 沙箱、工作流引擎、触发器系统和事件总线等关键能力(CHANGELOG.md:1-22)。
技术架构概览
OpenFang 采用 Rust Workspace 架构组织代码,当前版本为 0.4.5,使用 Rust 2021 版本规范。Workspace 包含 14 个成员 crate,分别是 openfang-types、openfang-memory、openfang-runtime、openfang-wire、openfang-api、openfang-kernel、openfang-cli、openfang-channels、openfang-migrate、openfang-skills、openfang-desktop、openfang-hands、openfang-extensions 和 xtask(Cargo.toml:1-26)。
核心依赖技术栈
| 技术领域 | 依赖库 | 版本 | 用途说明 |
|---|---|---|---|
| 异步运行时 | Tokio | 1.x | 全特性异步运行时支持 |
| 序列化 | Serde + Serde_json | 1.x | JSON/TOML/MessagePack 序列化 |
| HTTP 服务器 | Axum | 0.8 | REST/WebSocket/SSE API 端点 |
| 数据库 | Rusqlite | 0.31 | SQLite 内存基板存储 |
| WASM 沙箱 | Wasmtime | 41 | 安全隔离的技能执行环境 |
| HTTP 客户端 | Reqwest | 0.12 | LLM 驱动的 HTTP 通信 |
| WebSocket | Tokio-tungstenite | 0.24 | Discord/Slack 网关连接 |
| 安全加密 | Ed25519-dalek + AES-GCM | 2.x / 0.10 | 签名验证与数据加密 |
核心依赖配置详见 Cargo.toml:27-90,平台组件职责划分详见 CHANGELOG.md:12-22。
目录结构
openfang/
├── crates/
│ ├── openfang-types/ # 核心类型定义
│ ├── openfang-memory/ # SQLite 内存基板
│ ├── openfang-runtime/ # 智能体运行时
│ ├── openfang-kernel/ # 内核协调层
│ ├── openfang-api/ # REST/WebSocket API
│ ├── openfang-cli/ # 命令行接口
│ ├── openfang-channels/ # 40+ 通道适配器
│ ├── openfang-wire/ # 点对点通信协议
│ ├── openfang-skills/ # 技能包管理
│ ├── openfang-hands/ # 自主智能体包
│ ├── openfang-extensions/ # 扩展系统
│ ├── openfang-desktop/ # 桌面应用
│ ├── openfang-migrate/ # 数据迁移
│ └── xtask/ # 构建任务
├── Cargo.toml # Workspace 配置
└── README.md # 项目文档
系统架构图
正在加载图表渲染器...
架构要点说明:
- 分层设计:系统采用清晰的分层架构,CLI 和 API 作为入口层,Kernel 作为协调核心,能力层提供具体功能实现
- 内核协调:openfang-kernel 负责智能体生命周期管理、任务调度和资源协调(CHANGELOG.md:12-22)
- 内存基板:openfang-memory 提供 SQLite 支持的结构化 KV 存储、语义召回和向量嵌入能力
- WASM 隔离:使用 Wasmtime 沙箱执行技能代码,通过 fuel + epoch 双重计量实现安全中断(Cargo.toml:83-84)
Hands 自主智能体机制
Hands 是 OpenFang 的核心创新——预构建的自主能力包,能够独立运行、按计划执行,无需用户持续提示。每个 Hand 打包了四个核心组件:HAND.toml 清单文件(声明工具、设置、需求和仪表板指标)、多阶段操作手册式的系统提示(500+ 词的专业流程)、运行时注入上下文的 SKILL.md 领域专业知识,以及敏感操作的审批门控(如浏览器 Hand 在任何购买前需要审批)(README.md:64-78)。
系统内置 7 个 Hands 包,覆盖研究、浏览、社交媒体、潜在客户挖掘等自主智能体操作场景(CHANGELOG.md:20-22)。所有 Hands 编译进二进制文件,无需额外下载或 pip install。
Hand 激活与执行流程
正在加载图表渲染器...
流程要点说明:
- 清单驱动:Hand 的行为由 HAND.toml 清单声明,包括所需工具、配置项和输出指标
- 上下文注入:SKILL.md 在运行时注入到 LLM 上下文,提供领域专业知识
- 审批门控:敏感操作触发审批流程,确保用户对关键决策保持控制
- 结果持久化:执行结果存储到 Memory 基板,支持后续查询和分析
LLM 支持与模型生态
OpenFang 支持 3 种原生 LLM 驱动(Anthropic、Google Gemini、OpenAI 兼容),覆盖 27 个提供商,包括 Anthropic、Gemini、OpenAI、Groq、OpenRouter、DeepSeek、Together、Mistral、Fireworks、Cohere、Perplexity、xAI、AI21、Cerebras、SambaNova、Hugging Face、Replicate、Ollama、vLLM、LM Studio 等(CHANGELOG.md:24-40)。
模型路由与成本管理
系统内置 130+ 模型目录,包含 23 个别名和分层分类。智能模型路由根据任务复杂度评分选择合适模型,Fallback 驱动支持提供商间自动故障转移。成本估算引擎按模型定价计量消耗,默认令牌配额从每小时 100K 提升至 1M。所有驱动支持 SSE 流式传输(CHANGELOG.md:24-40)。
HTTP 客户端使用 reqwest 库,配置 JSON、stream、multipart、rustls-tls、gzip、deflate、brotli 等特性,确保与各 LLM 提供商的兼容性(Cargo.toml:64-68)。
令牌管理策略
| 策略 | 阈值 | 行为 |
|---|---|---|
| 会话压缩 | 70% 上下文容量 | 触发 chars/4 启发式压缩 |
| 紧急修剪 | 70%/90% | 循环内摘要注入 |
| 工具过滤 | 默认 41 → 4-10 | 聊天智能体节省 15-20K 令牌 |
| 结果截断 | 15K 字符上限 | 防止工具结果膨胀 |
通道与 API 能力
通道适配器
OpenFang 提供 40 个通道适配器,覆盖主流通讯平台:Telegram、Discord、Slack、WhatsApp、Signal、Matrix、Email、Teams、Mattermost、Google Chat、Webex、Feishu/Lark、LINE、Viber、Facebook Messenger、Mastodon、Bluesky、Reddit、LinkedIn、Twitch、IRC、XMPP 等 18 个以上平台。统一网桥支持智能体路由、命令处理、消息分割,每个通道支持用户过滤和 RBAC 强制执行(CHANGELOG.md:58-62)。
WebSocket 客户端使用 tokio-tungstenite 库连接 Discord/Slack 网关,配置 rustls-tls-native-roots 特性(Cargo.toml:79-81)。
API 端点
系统提供 100+ REST/WebSocket/SSE API 端点,基于 Axum 0.8 框架实现。关键 API 包括:
- OpenAI 兼容 API:
/v1/chat/completions(流式 SSE + 非流式)、/v1/models端点 - Google A2A 协议:智能体卡片、任务发送/获取/取消
- Prometheus 监控:
/api/metrics文本格式端点 - 多会话管理:按智能体列出、创建、切换、标记会话
- 使用分析:摘要、按模型、按日细分
HTTP 服务器使用 axum 配合 tower 和 tower-http 中间件,支持 CORS、trace、compression-gzip、compression-br 特性(Cargo.toml:86-89)。API 详情见 CHANGELOG.md:64-75。
Web 界面与监控
Overview 页面
Overview 页面通过并行请求加载系统健康状态、运行状态、使用摘要、最近审计日志、通道列表、提供商列表、MCP 服务器和技能数量。页面支持静默后台刷新,无加载旋转器干扰(crates/openfang-api/static/js/pages/overview.js:3-42)。
核心数据结构:
javascript1{ 2 health: {}, // 系统健康状态 3 status: {}, // 运行状态 4 usageSummary: {}, // 使用摘要 5 recentAudit: [], // 最近审计日志 6 channels: [], // 通道列表 7 providers: [], // 提供商列表 8 mcpServers: [], // MCP 服务器 9 skillCount: 0 // 技能数量 10}
Chat 页面
Chat 页面实现多会话管理、语音录制、模型切换和消息队列。关键状态包括当前智能体、消息列表、输入文本、发送状态、思考模式、WebSocket 连接、斜杠菜单、附件列表、拖放状态、上下文压力指示器、会话列表、搜索状态、录制状态和模型选择器(crates/openfang-api/static/js/pages/chat.js:3-42)。
语音录制实现:使用 MediaRecorder API,支持 WebM/Opus 编码,录制时间通过定时器追踪。
Logs 页面
Logs 页面支持实时 SSE 流式日志和审计链验证。页面分为两个标签页:实时日志和审计日志。实时日志通过 EventSource 连接 /api/logs/stream 端点,支持级别过滤和文本过滤。审计日志验证 Merkle 哈希链完整性,支持按操作过滤(crates/openfang-api/static/js/pages/logs.js:3-42)。
安全机制
OpenFang 实现多层安全防护:
| 安全层 | 机制 | 说明 |
|---|---|---|
| 访问控制 | 基于能力的权限控制 | 防止权限提升攻击 |
| 路径安全 | 路径遍历保护 | 所有文件工具防护 |
| 网络安全 | SSRF 保护 | 阻止私有 IP 和云元数据端点 |
| 签名验证 | Ed25519 签名 | 智能体清单签名 |
| 审计追踪 | Merkle 哈希链 | 篡改检测 |
| 认证 | HMAC-SHA256 + Bearer Token | 点对点协议双向认证 |
| 限流 | GCRA 速率限制 | 成本感知令牌桶 |
| 环境隔离 | 子进程环境隔离 | 敏感信息零化 |
核心特性总结
- 自主智能体:Hands 机制支持 7x24 小时自主运行,无需持续用户输入
- 单一二进制:约 32MB 可执行文件,一条命令完成部署
- 多 LLM 支持:27 个提供商、130+ 模型、智能路由、成本估算
- 全通道覆盖:40 个通讯平台适配器,统一网桥架构
- WASM 沙箱:安全隔离的技能执行环境,双重计量中断
- 工作流引擎:管道、扇出并行、条件步骤、循环、变量扩展
- 企业级安全:多层防护机制,Merkle 审计追踪
- 丰富 API:100+ 端点,OpenAI 兼容,Prometheus 监控
适用场景
- 自动化研究:竞争对手监控、趋势分析、知识图谱构建
- 社交媒体管理:多平台内容发布、互动管理、数据分析
- 潜在客户挖掘:自动识别、评分、跟进潜在客户
- 智能客服:多通道统一接入、自动响应、人工转接
- 数据处理管道:ETL 流程、数据清洗、报告生成
- 开发辅助:代码审查、文档生成、测试自动化
报告阅读路线图
正在加载图表渲染器...
推荐阅读顺序:
- 项目总览(当前页面):了解整体定位、技术栈和核心特性
- 架构设计:深入理解模块划分、数据流和依赖关系
- Hands 机制:掌握自主智能体的工作原理和配置方法
- LLM 集成:了解多提供商支持、模型路由和成本管理
- API 设计:熟悉端点规范、认证方式和扩展机制
- 安全机制:理解多层防护策略和审计追踪
- 部署运维:学习安装配置、监控告警和故障排查
项目核心能力量化
| 指标 | 数值 | 说明 |
|---|---|---|
| Workspace Crates | 14 | 模块化架构组件数 |
| 内置工具 | 41 | 文件系统、Web、Shell、浏览器等 |
| LLM 提供商 | 27 | Anthropic、OpenAI、Gemini 等 |
| 模型目录 | 130+ | 含 23 个别名和分层分类 |
| 通道适配器 | 40 | Telegram、Discord、Slack 等 |
| API 端点 | 100+ | REST/WebSocket/SSE |
| Hands 包 | 7 | 研究、浏览、社交媒体等 |
| 测试用例 | 1744+ | 工作区全量测试 |
| 二进制大小 | ~32MB | 单一可执行文件 |
| 默认令牌配额 | 1M/小时 | 每小时每用户限额 |
