Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

简介

MoFA

一个用 Rust 构建的生产级 AI 智能体框架,专为极致性能、无限扩展性和运行时可编程性而设计。

什么是 MoFA?

MoFA(Modular Framework for Agents)采用 微内核 + 双层插件系统 架构,使您能够构建复杂的 AI 智能体:

🚀 极致性能

Rust 核心与零成本抽象、异步运行时和高效内存管理。

🔧 无限扩展性

双层插件:编译时(Rust/WASM)用于性能 + 运行时(Rhai 脚本)用于灵活性。

🌐 多语言支持

通过 UniFFI 和 PyO3 支持 Python、Java、Swift、Kotlin、Go 绑定。

🏭 生产就绪

内置持久化、监控、分布式支持和人在回路工作流。

架构

MoFA 遵循严格的微内核设计原则:

graph TB
    subgraph "用户层"
        U[您的智能体]
    end

    subgraph "SDK 层"
        SDK[mofa-sdk]
    end

    subgraph "业务层"
        F[mofa-foundation<br/>LLM • 模式 • 持久化]
    end

    subgraph "运行时层"
        R[mofa-runtime<br/>生命周期 • 事件 • 插件]
    end

    subgraph "内核层"
        K[mofa-kernel<br/>Trait • 类型 • 核心]
    end

    subgraph "插件层"
        P[mofa-plugins<br/>Rust/WASM • Rhai]
    end

    U --> SDK
    SDK --> F
    SDK --> R
    F --> K
    R --> K
    R --> P

核心特性

多智能体协调

MoFA 支持 7 种 LLM 驱动的协作模式:

模式描述用例
请求-响应一对一确定性任务简单问答
发布-订阅一对多广播事件通知
共识多轮协商决策制定
辩论交替讨论质量提升
并行同时执行批量处理
顺序管道执行数据转换
自定义用户定义模式特殊工作流

秘书智能体模式

人在回路的流程管理,包含 5 个阶段:

  1. 接收想法 → 记录待办事项
  2. 澄清需求 → 项目文档
  3. 调度分发 → 调用执行智能体
  4. 监控反馈 → 将关键决策推送给人类
  5. 验收报告 → 更新待办事项

双层插件系统

  • 编译时插件:Rust/WASM 用于性能关键路径
  • 运行时插件:Rhai 脚本用于动态业务逻辑,支持热重载

快速示例

use mofa_sdk::kernel::prelude::*;
use mofa_sdk::llm::{LLMClient, openai_from_env};

struct MyAgent {
    client: LLMClient,
}

#[async_trait]
impl MoFAAgent for MyAgent {
    fn id(&self) -> &str { "my-agent" }
    fn name(&self) -> &str { "My Agent" }

    async fn execute(&mut self, input: AgentInput, _ctx: &AgentContext) -> AgentResult<AgentOutput> {
        let response = self.client.ask(&input.to_text()).await
            .map_err(|e| AgentError::ExecutionFailed(e.to_string()))?;
        Ok(AgentOutput::text(response))
    }
}

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = LLMClient::new(Arc::new(openai_from_env()?));
    let mut agent = MyAgent { client };
    let ctx = AgentContext::new("exec-001");

    let output = agent.execute(AgentInput::text("你好!"), &ctx).await?;
    println!("{}", output.as_text().unwrap());

    Ok(())
}

快速开始

目标前往
10 分钟快速上手安装指南
配置您的 LLM第 4 章:LLM 智能体
构建第一个智能体第 3 章:第一个智能体
逐步学习教程
理解设计理念架构概览

谁应该使用 MoFA?

  • AI 工程师 构建生产级 AI 智能体
  • 平台团队 需要可扩展的智能体基础设施
  • 研究人员 实验多智能体系统
  • 开发者 想要类型安全、高性能的智能体框架

社区与支持

许可证

MoFA 基于 Apache License 2.0 许可。


📖 文档语言: 本文档提供 English简体中文 两种语言版本。