当前位置: 首页 > news >正文

用 Rust 写 AI Agent 是什么体验?ADK-Rust 框架深度解析

用 Rust 写 AI Agent 是什么体验?ADK-Rust 框架深度解析

先收藏,回头一定用得上。

Python 写 Agent 生态最丰富,但遇到高并发、低延迟、长运行的场景,Rust 的优势就出来了。ADK-Rust 正是在这个背景下诞生的——它用 Rust 的类型安全和零成本抽象,把 Agent 开发拉到了系统编程的语言层面。

前段时间深入研究了一下这个框架,发现它不只是"又一个 Agent SDK"——39 个 crate、130K+ 下载、17+ LLM 提供商支持,还有可视化构建工具和 Playground,完成度相当高。

本文提纲

  1. ADK-Rust 是什么,解决什么问题
  2. 核心架构:Trait 驱动的分层设计
  3. Agent 类型:从单 Agent 到图工作流
  4. 工具系统:#[tool] 宏和 MCP 集成
  5. 多提供商支持:一行代码切换模型
  6. 生产级特性:Session、安全、可观测性
  7. 开发体验:CLI 脚手架和可视化编辑器
  8. 和同类框架对比

ADK-Rust 是什么

ADK-Rust(zavora-ai/adk-rust)是一个用 Rust 构建生产级 AI Agent 的开源框架。当前版本 v1.0.0,Apache 2.0 协议,由 Zavora AI 团队维护。

它要解决的核心问题很明确:让用 Rust 写 Agent 像写普通软件一样简单

几个关键数据:

  • 39 个 crate 组成模块化工作空间
  • 130K+ 下载(6 个月内,纯 organic)
  • 17+ LLM 提供商(Gemini、OpenAI、Anthropic、DeepSeek、Groq、Ollama、Bedrock、Azure AI、Fireworks、Together、Mistral、Perplexity、Cerebras、SambaNova、xAI、mistral.rs 本地推理等)
  • 120+ 可运行示例
  • 冷启动比 Python ADK 快 4.6 倍(官方 benchmark)

支持 Rust 1.94+(Rust 2024 edition),需要 Rust 1.85 以上版本。

核心架构:Trait 驱动的分层设计

ADK-Rust 的架构围绕五个核心 Trait 展开:

Agent     name(), description(), invoke()  AsyncStream<Event>
Llm       generate_content()  AsyncStream<Event>
Tool      name(), parameters_schema(), execute()
Session   add(), messages(), state()
Toolset   tools()  Vec<Arc<dyn Tool>>

这种设计让整个框架高度模块化。所有具体实现都通过 Arc<dyn Trait> 做运行时多态,但得益于 Rust 的零成本抽象,性能开销极小。

分层结构从上到下:

层级 职责 代表 crate
应用层 CLI、Studio 可视化编辑器 adk-cli, adk-studio
执行层 Agent 运行时、上下文管理 adk-runner
Agent 层 LLM Agent、工作流 Agent、图 Agent adk-agent, adk-graph, adk-realtime
集成层 LLM 提供商、工具、浏览器 adk-model, adk-tool, adk-browser
基础设施层 Session、Artifact、Memory、遥测 adk-session, adk-artifact, adk-memory, adk-telemetry
安全层 RBAC、SSO、Guardrail adk-auth, adk-guardrail
评估层 Agent 测试和评测 adk-eval
核心层 基础 Trait 和类型 adk-core

架构原则也很 Rust:Async-First(全部基于 Tokio)、Streaming by Default(实时事件流)、Type Safety(编译期保证)。

Agent 类型:从单 Agent 到图工作流

ADK-Rust 支持多种 Agent 模式,从简单到复杂逐步递进。

LlmAgent — 基础 Agent

最基础的 Agent,一个 LLM + instruction + 工具列表:

use adk_rust::prelude::*;let model = GeminiModel::new(&api_key, "gemini-2.5-flash")?;
let agent = LlmAgentBuilder::new("assistant")
    .instruction("You are a helpful assistant. Be concise.")
    .model(Arc::new(model))
    .build()?;

Workflow Agent — 编排模式

三种确定性编排模式:

  • SequentialAgent:顺序执行多个 Agent,前一个的输出作为后一个的输入
  • ParallelAgent:并行执行,支持 SharedState 跨 Agent 共享状态
  • LoopAgent:循环执行,支持退出条件
let agent = SequentialAgent::new(vec![
    Arc::new(extractor),
    Arc::new(analyzer),
    Arc::new(formatter),
]).with_output_key("final_result");

GraphAgent — 复杂有向图

LangGraph 风格的有向图工作流,支持:

  • 并行节点执行(PregelExecutor,BSP 模型)
  • 条件路由Router::by_fieldRouter::conditional
  • 循环图(ReAct 模式的工具循环)
  • Checkpointing(Memory / SQLite 后端,崩溃恢复)
  • Human-in-the-Loop(动态中断 + 从 checkpoint 恢复)
let agent = GraphAgent::builder("text_processor")
    .channels(&["input", "translation", "summary"])
    .node(translator_node)
    .node(summarizer_node)
    .edge(START, "translator")
    .edge(START, "summarizer")    // 并行
    .edge("translator", "combine")
    .edge("summarizer", "combine")
    .edge("combine", END)
    .build()?;

RealtimeAgent — 实时语音

双向音频流,支持 OpenAI Realtime API、Gemini Live API、LiveKit WebRTC 桥接:

let agent = RealtimeAgent::builder("voice_assistant")
    .model(model)
    .instruction("You are a helpful voice assistant.")
    .voice("alloy")
    .server_vad()
    .build()?;

工具系统:#[tool] 宏和 MCP 集成

工具定义用 #[tool] 宏,零样板代码:

#[derive(Deserialize, JsonSchema)]
struct WeatherArgs {
    /// The city to look up
    city: String,
}/// Get the current weather for a city.
#[tool]
async fn get_weather(args: WeatherArgs) -> Result<Value, AdkError> {
    Ok(json!({ "temp": 72, "city": args.city }))
}

宏自动从 doc comment 提取描述、从 args 类型推导 JSON Schema、生成 Tool trait 实现。

内置工具包括 Google Search、Artifact 加载、循环退出等。

MCP 集成做得比较完善:支持 MCP Elicitation(服务器可以在运行时通过结构化表单或 URL 请求额外用户输入),schema 会按提供商自动归一化。

浏览器自动化也很强——46 个 WebDriver 工具,覆盖导航、点击、填表、截图、JS 执行等操作。

多提供商支持:一行代码切换模型

这是 ADK-Rust 最实用的特性之一。所有提供商实现同一个 Llm trait,切换模型只改一行:

// Gemini
let model: Arc<dyn Llm> = Arc::new(GeminiModel::new(&key, "gemini-2.5-flash")?);
// 切换到 OpenAI
// let model: Arc<dyn Llm> = Arc::new(OpenAIClient::new(OpenAIConfig::new(key, "gpt-5-mini"))?);
// 切换到 Anthropic
// let model: Arc<dyn Llm> = Arc::new(AnthropicClient::new(AnthropicConfig::new(key, "claude-sonnet-4-6"))?);
// 切换到 DeepSeek
// let model: Arc<dyn Llm> = Arc::new(DeepSeekClient::chat(key)?);

完整提供商列表:

提供商 代表模型 特色
Gemini gemini-2.5-flash/pro, gemini-3-flash-preview 2M context,多模态,代码执行
OpenAI gpt-5, gpt-5-mini/nano, o3, o4-mini Responses API 支持
Anthropic claude-opus-4-8, claude-sonnet-4-6 Prompt caching, Extended thinking
DeepSeek deepseek-chat, deepseek-reasoner 思维链模式,上下文缓存
Groq llama-4-scout, llama-3.3-70b LPU 加速,最快推理
Ollama qwen3.6, llama3.2 本地推理,无需 API Key
mistral.rs Gemma 4, Qwen 3.5, Voxtral 原生本地推理,GPU 加速
Bedrock claude-sonnet-4, 等 AWS 集成
Azure AI 端点指定模型 企业 Azure 部署

另外还有 Fireworks、Together、Mistral AI、Perplexity、Cerebras、SambaNova、xAI 等通过 OpenAI 兼容 preset 接入。

生产级特性

Session 管理

  • InMemory 和 SQLite 后端
  • AES-256-GCM 加密 Session + 密钥轮换
  • 对话历史持久化

安全体系

  • RBAC:角色定义 + allow/deny 规则,deny 优先
  • SSO:Google、Azure AD、Okta、Auth0、通用 OIDC
  • Guardrail:PII 脱敏、内容过滤、JSON Schema 校验
  • 审计日志:JSONL 格式,合规追踪

可观测性

OpenTelemetry 集成,支持 trace、metric,OTLP 导出到 Jaeger/Zipkin。

部署

三种部署模式:

  • CLI(adk-cli):交互式 REPL,开发和调试
  • Server(adk-server):REST API + SSE 流式 + A2A 协议,生产部署
  • Embedded:作为库集成到更大的应用

生产架构支持无状态水平扩展 + 负载均衡 + PostgreSQL Session + S3 Artifact + Qdrant 向量搜索。

Agent 评估

adk-eval 提供完整的评估框架:

  • Trajectory 评估:工具调用序列匹配(精确、子集、顺序无关)
  • 文本相似度:Jaccard、Levenshtein、ROUGE
  • LLM-as-Judge:用 LLM 做语义评估
  • Rubric 评分:多维度加权打分

开发体验

脚手架工具

cargo install cargo-adk
cargo adk new my-agent                    # 基础 Gemini Agent
cargo adk new my-agent --template tools   # 带自定义工具
cargo adk new my-agent --template rag     # RAG 向量搜索
cargo adk new my-agent --template api     # REST 服务器
cargo adk new my-agent --template graph   # 图工作流
cargo adk new my-agent --template realtime # 实时语音

支持 8 个基础模板 + 9 个 addon(telemetry、docker、ci 等)组合。

最快上手

如果只想跑一个 Agent,三行代码搞定:

use adk_rust::run;#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let response = run("You are a helpful assistant.", "What is 2 + 2?").await?;
    println!("{response}");
    Ok(())
}

Feature Tier

Cargo.toml 里按需选择功能层级:

Tier 包含内容 适用场景
minimal(默认) Gemini + Agent + Session 快速起步
standard + OpenAI、Anthropic、工具、Memory、Server、Auth、Graph、Eval 生产部署
enterprise + Realtime、Browser、RAG、Payments、AWP 全功能生产
full + Audio、Code Execution、Sandbox 全部

ADK Studio

可视化构建工具,拖拽式设计工作流,实时生成 Rust 代码,支持在线测试。还有 ADK Playground(playground.adk-rust.com),可以在浏览器里运行 70+ Agent 示例,无需登录和安装。

和同类框架对比

维度 ADK-Rust LangChain (Python) Google ADK (Python)
语言 Rust Python Python
冷启动 快(4.6x) 中等
内存占用 中等
类型安全 编译期 运行时 运行时
并发模型 Tokio async GIL 限制 asyncio
提供商数量 17+ 30+ 6
图工作流 内置 adk-graph LangGraph 内置
实时语音 内置 adk-realtime 需第三方 内置
可视化编辑 ADK Studio LangGraph Studio
Agent 评估 内置 adk-eval LangSmith 内置
部署模式 CLI/Server/Embedded 多种 CLI/Server

Rust 在性能和类型安全上有天然优势,但 Python 生态的丰富度仍是 ADK-Rust 需要追赶的。不过在 Agent 运行时这个特定场景,Rust 的优势(低延迟、低内存、高并发、长运行稳定)非常匹配。

你的 Agent 项目用什么语言写的?评论区聊聊你的技术选型和理由。觉得有用的话,点个赞让更多人看到。


作者: itech001
来源: 公众号:AI人工智能时代
网站: https://www.theaiera.cn/
每日分享最前沿的AI新闻资讯和技术研究。

本文首发于 AI人工智能时代,转载请注明出处。

http://www.jsqmd.com/news/990886/

相关文章:

  • Spring 零基础入门到进阶 基于注解的声明式事务 65-70
  • 泰安各区旧金回收怎么选 大盘价变现防坑完整攻略 - 余生黄金回收
  • 2026年6月博物馆展柜定制厂家技术分享:靠谱选择与实测标准 - 奔跑123
  • 铜川各区旧黄金怎么卖才划算 2026回收防坑干货指南 - 余生黄金回收
  • 2026年最火的鱼蛙火锅加盟品牌排行榜单 - 品牌排行榜
  • LEMUR语料库:多语言法律嵌入模型的关键技术解析
  • 期货量化合约代码写错:天勤 symbol 格式与 silent 订阅坑
  • mbedtls TLS双版本兼容实战:攻克TLS 1.2到1.3的平滑迁移难题
  • 告别手工CK11N:用Python脚本+SAP GUI自动化搞定大批量成本滚算
  • 活动星系核中双黑洞合并的电磁辐射与观测策略
  • SAP Retail 商品补货主数据,Article Replenishment 从维护层级到落地设计
  • 2026上海黄金回收行业解析与五家优质门店推荐 - 润富黄金回收
  • Windows平台纯C++实现的命令行Ping工具(含ICMP报文构造、校验和计算与完整课程报告)
  • 石嘴山大武口惠农平罗黄金回收多少钱一克避坑指南 - 余生黄金回收
  • PFluxTTS:混合流匹配技术实现跨语言语音克隆
  • 泸州白酒行业格局与典藏酒市场趋势分析:从产区价值到消费场景的深度观察 - 优质品牌商家
  • 高压取电防外破警示装置:一次预警,避免一场输电事故
  • QRazyBox:如何免费修复损坏的二维码?你的终极恢复工具指南
  • 告别默认LAI!手把手教你用GLASS数据驱动WRF模拟(附Python/Matlab代码)
  • 拒绝被淘汰:基于大模型Agent的全栈临床科研新范式,医生如何抢占学术先机?
  • TMS320F28377D CLA+FPU实战:手把手教你搞定1024点FFT(附完整源码)
  • NVIDIA Profile Inspector终极指南:解锁显卡200+隐藏设置的免费工具
  • 2026年6月上海黄金变现指南与靠谱渠道推荐 - 润富黄金回收
  • 知识花园实战指南:用自动化脚本打造高效个人知识管理系统
  • 告别NS方程恐惧症:用Python从零实现一个简单的格子玻尔兹曼(LBM)流体模拟器
  • 杭州市民卖黄金必看 2026年6月黄金回收行业解析与优质门店推荐 - 润富黄金回收
  • 2026上海黄金回收行业科普与避坑攻略 - 润富黄金回收
  • 【智能制造】- APS系列|23 成本管理:产量会计
  • 几何1-平面图的参数化复杂度研究与应用
  • 杰理之播放提示音时,叠加播放手机音乐,手机音乐无声【篇】