adk-rust
用Rust构建生产级AI Agent的开发框架,39个模块化crates支持20+模型提供商和完整开发生态
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
用Rust构建生产级AI Agent的开发框架,39个模块化crates支持20+模型提供商和完整开发生态
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:基于 ADK-Rust 构建的客户服务代理界面
想象一下:你是一个 AI 开发者,今天需要在 Rust 里构建一个能调用工具、能记住对话上下文、还能和其他 AI agent 通信的智能体。你会怎么写?从底层模型调用到状态管理,从工具注册到流式输出,全自己造?zavora-ai 开源的 ADK-Rust 告诉你:不用,一个框架全搞定。
ADK-Rust 的作者 James Karanja Maina 来自赞比亚,2024 年底在 GitHub 开源了这款框架。项目的核心驱动力来自一个现实痛点:当时市面上的 AI Agent 开发框架要么是 Python 的 LangChain 太重,要么是纯研究代码缺乏生产级质量,Rust 生态几乎是空白。ADK-Rust 的出现填补了这一空白——用 Rust 的性能和内存安全特性,提供一个生产级的 AI Agent 开发框架。
项目从 0.x 版本快速迭代到 1.1.0,已发布 39 个 crates,累计下载超过 13 万次,获得了 Semver 稳定性承诺。从最初的单一 Gemini 模型支持,发展到如今支持 20+ 模型提供商。值得注意的是,项目采用 Rust 2024 edition(需要 Rust 1.94+),在语言层面紧跟前沿。
ADK-Rust 的核心设计哲学是模块化和解耦。它将一个 AI Agent 拆解成多个独立组件,每个组件都是 Rust 生态中最流行的最佳实践的集合:
模型层(adk-model):支持 Gemini、OpenAI、Anthropic Claude、DeepSeek、Groq、Ollama、AWS Bedrock、Azure AI 等 20+ 提供商。每一个提供商都是一个独立的 Rust crate,通过统一 trait 接口接入。其中 adk-gemini 提供原生 Gemini 客户端,adk-anthropic 提供 Claude 的流式响应、thinking、缓存、引用、视觉和多模态支持。对于本地推理,还支持 mistral.rs(adk-mistralrs),支持 Gemma 4、Qwen 3.5、Voxtral 等模型,支持 ISQ/MXFP4 量化和 LoRA 适配器,可在 macOS Metal 和 CUDA 上运行。
Agent 层(adk-agent):提供了多种开箱即用的 Agent 类型。LlmAgent 是核心(llm_agent.rs 达 131KB),由 LLM 驱动的推理 agent;SequentialAgent 按顺序执行多个 agent;ParallelAgent 并发执行并可选共享状态,通过 SharedState 实现跨 agent 协调;LoopAgent 循环迭代直到退出条件;ConditionalAgent 根据条件分支;LlmConditionalAgent 用 LLM 做分支决策。还有 CustomAgent 用于完全自定义逻辑。v0.6.0 新增了 Human-in-the-loop 工具授权机制,Agent 可在执行工具前暂停等待用户确认。
工具系统(adk-tool):通过 #[tool] 宏实现零样板代码的工具定义。宏自动从 doc comment 读取描述、从 args 类型派生 JSON schema,完全不需要手写 schema。内置 Google Search、Artifact 加载、循环终止等工具。内置支持 MCP(Model Context Protocol)协议,支持 MCP Elicitation——服务器可以在运行时通过结构化表单或 URL 请求用户输入。
记忆与状态(adk-session, adk-memory):Session 支持内存和 SQLite 两种后端,提供加密存储(AES-256-GCM)和密钥轮换。Memory 支持向量嵌入语义搜索,底层还有 bi-temporal knowledge-graph 后端(GraphMemoryService),支持 remember 和 relate 工具让 agent 自己写入长期记忆,支持 6 种后端。
实时语音(adk-realtime):支持 OpenAI Realtime API 和 Gemini Live 协议,支持双向音频流、视频帧输入、VAD(语音活动检测)和情感对话。服务器端的 IntegratedRealtimeRunner 可以直接调用工具。
adk-graph crate 提供了类似 LangGraph 的有状态工作流编排能力。每个 graph 由节点(nodes)和边(edges)组成,支持条件分支、循环和并行执行。内置 checkpointing 机制,可以在任意节点保存和恢复执行状态,实现了真正的人机协作(human-in-the-loop)——在任意节点暂停等待人工确认。这是 LangChain 的标志性特性,ADK-Rust 完整移植到了 Rust 生态。
A2A v1.0.0 协议:adk-server 完整实现了 Agent-to-Agent 协议 v1.0.0,包含全部 11 个 JSON-RPC 操作。A2aServer::quick_start(agent) 一行代码即可将任意 agent 暴露为 A2A 服务。协议类型由独立的 a2a-protocol-types crate(已发布到 crates.io)提供,与 adk-* 依赖解耦。
AWP(Agentic Web Protocol):awp-types 和 adk-awp crate 实现了一个新兴的 agent 间通信协议,包含信任级别、发现文档、能力清单、支付意图等类型。
ACP(Agent Client Protocol):adk-acp 支持将 Claude Code、OpenAI Codex、Kiro CLI 等 ACP 兼容 agent 作为工具连接进来,支持权限管理和流式通信。
项目提供了极其顺滑的开发者体验:
cargo install cargo-adk 安装后,cargo adk new my-agent 一行命令生成完整项目模板,支持 tools、rag、api、openai、a2a、graph、realtime、sequential 等多种模板。cargo adk build 验证编译,cargo adk run 直接运行。内置 CLI(adk-cli)提供交互式 REPL、session 管理和 MCP 服务器集成。还有 adk-bench 基准测试框架,冷启动比 Python 实现快 4.6 倍。
文档质量极高:每个 crate 都有 docs.rs 文档和 README,官方 Wiki 覆盖了工具、MCP、记忆等核心概念。CHANGELOG 和 ROADMAP.md 为长期维护提供保障。贡献者来自全球(加拿大、赞比亚、印度、英国、中国等),社区活跃。
上手门槛:Rust 1.94+ 是硬性要求,Rust 2024 edition 意味着使用前沿语言特性。这对没有 Rust 经验的 AI 开发者是一个陡峭的学习曲线——所有权、生命周期、async/await 的复杂性远超 Python。推荐通过 cargo adk new 模板快速上手,而非直接写代码。
部署方式:无 Docker 支持,通过 cargo install 安装 CLI,或将 crates 集成到现有 Rust 项目中。adk-server 提供 HTTP API,可作为后台服务运行。内置的 Web UI(adk-server/assets/webui)提供基础的浏览器交互界面。需要注意的是,默认的 minimal 安装只包含 Gemini 支持,需要额外 feature 才能启用其他模型。
GPU 需求:默认 minimal 安装不需要 GPU;使用本地模型推理(mistralrs)时需要 GPU(CUDA 或 Metal)。
Rust 学习曲线:所有权和生命周期概念对 AI 开发者不友好,async Rust 的复杂性(Tokio runtime、Pin、future)更是增加了门槛。
生态成熟度:相比 LangChain、AutoGen 等 Python 框架,ADK-Rust 的社区规模、第三方集成和踩坑经验都还很少,生产环境采用需要承担更多风险。
发布节奏快:1.x 版本快速迭代,API 稳定性依赖 Semver 承诺,但 major version 的 breaking changes 可能仍然带来升级成本。
ADK-Rust 代表了 AI Agent 开发从 Python 生态向系统级语言迁移的趋势。Rust 的零成本抽象和内存安全特性,使得在边缘设备、嵌入式场景中部署 AI Agent 成为可能。项目已导出到独立仓库(adk-ui、adk-studio、adk-playground),形成了一个围绕 ADK 的完整开发生态。
从增长曲线看,半年 13 万次下载、持续活跃的 issue 和 PR、以及多个国际贡献者的参与,表明这个项目正在赢得开发者信任。如果 Rust 在 AI 领域的采用率持续上升,ADK-Rust 有望成为 Rust AI 生态的核心基础设施。