一个 Rust 编写的 Web3 原生 AI Agent 框架,集成 EVM 钱包、MCP 与 A2A 协议,支持 OpenAI 与 Ollama 后端。
Machi 是一个基于 Rust 的 Web3/Web4.0 原生 AI Agent 框架(v0.8.1),采用 Apache-2.0 与 MIT 双许可。
核心架构#
框架围绕以下核心概念构建:
- Agent:自包含单元,包含 LLM 提供方、指令、工具与可选子代理
- Runner:无状态执行引擎,驱动 ReAct 循环(think → act → observe → repeat)
- Tool / DynTool:代理可调用的能力单元
- ChatProvider:抽象 LLM 后端的 Trait
主要特性#
LLM 后端支持
- OpenAI API(GPT-4o 等)
- Ollama 本地模型
- 可通过 ChatProvider Trait 自定义扩展
Web3 能力
- EVM 钱包集成(依赖 alloy/kobe-evm)
- x402 协议支持(基于 402 状态码的 HTTP 与 EVM 支付流)
协议支持
- MCP(Model Context Protocol)服务器集成
- A2A(Agent-to-Agent)代理间通信协议
工具与扩展
- 内置 toolkit:filesystem、shell、web search
#[tool]过程宏简化自定义工具开发- JSON Schema 结构化输出
- SQLite 会话持久化
快速开始#
[dependencies]
machi = "0.8"
use std::sync::Arc;
use machi::prelude::*;
#[tokio::main]
async fn main() -> Result<()> {
let provider: SharedChatProvider = Arc::new(OpenAI::from_env()?);
let agent = Agent::new("assistant")
.instructions("You are a helpful assistant.")
.model("gpt-4o-mini")
.provider(provider);
let result = agent
.run("What is the capital of France?", RunConfig::default())
.await?;
println!("{}", result.output);
Ok(())
}
Feature Flags#
openai/ollama:LLM 后端wallet:EVM 钱包功能mcp/a2a:协议支持x402:支付协议toolkit:内置工具集memory-sqlite:会话持久化schema:结构化输出full:全部功能(默认)
仓库结构#
Workspace 包含:machi(核心库)、machi-auto(CLI)、machi-derive(过程宏)