ADK Studio

用于通过拖放构建 AI 智能体的可视化开发环境。

概览

ADK Studio 提供了一个低代码界面,用于设计、测试和部署使用 ADK-Rust 构建的 AI 智能体。通过可视化方式创建复杂的多智能体工作流,然后将其编译为生产就绪的 Rust 代码。

ADK Studio 主界面

安装

# 从 crates.io 安装(独立二进制文件)
cargo install adk-studio

# 或从源代码构建
cargo build --release -p adk-studio

快速开始

# 启动 studio 服务器
adk-studio

# 在浏览器中打开
open http://localhost:3000

CLI 选项

选项描述默认值
--port, -p服务器端口3000
--host, -h绑定地址127.0.0.1
--dir, -d项目目录~/.local/share/adk-studio/projects
--static, -s覆盖静态文件目录(嵌入式)
# 绑定到所有接口以进行远程访问
adk-studio --host 0.0.0.0 --port 8080

# 自定义项目目录
adk-studio --dir ./my-projects

分步教程

按照此教程在 ADK Studio 中构建您的第一个 AI 智能体。

步骤 1:创建新项目

点击右上角的 + 新建项目 按钮。

创建新项目

输入您的项目名称(例如,“演示项目”)并点击 创建

步骤 2:向画布添加智能体

左侧边栏包含 智能体调色板,其中有可用的智能体类型:

  • LLM 智能体 - 由语言模型驱动的单一 AI 智能体
  • 顺序 - 按顺序执行子智能体
  • 并行 - 并发执行子智能体
  • 循环 - 迭代直到满足退出条件
  • 路由器 - 根据输入路由到子智能体

点击 LLM 智能体 将其添加到画布。

画布上的智能体

步骤 3:配置智能体

当您选择一个智能体时,右侧会出现 属性面板。您可以在这里配置:

  • 名称 - 智能体的标识符
  • 模型 - LLM 提供商和模型 (Gemini, OpenAI, 等)
  • 指令 - 智能体的系统提示

属性面板

步骤 4:向智能体添加工具

向下滚动左侧边栏找到 工具调色板

  • 函数 - 带有代码编辑器的自定义 Rust 函数
  • MCP - Model Context Protocol 服务器
  • 浏览器 - 46 种 WebDriver 自动化操作
  • Google 搜索 - 基于网络的搜索
  • 加载工件 - 将文件加载到上下文中

点击一个工具以将其添加到您的智能体。

带有 Google 搜索工具的智能体

步骤 5:构建和测试

点击 构建项目 以编译您的智能体。构建完成后,使用底部的 聊天面板 通过真实的对话测试您的智能体。

聊天面板

聊天支持:

  • 实时 SSE 流式响应
  • 智能体执行动画
  • 用于调试的事件跟踪面板

步骤 6:查看生成的代码

点击 查看代码 查看从您的可视化设计生成的生产就绪的 Rust 代码。

生成的代码视图

您可以复制此代码或使用 编译 生成一个完整的 Rust 项目。


功能

Agent 类型

Agent描述
LLM Agent由 LLM 驱动的单个 Agent
Sequential按顺序执行子 Agent
Parallel并行执行子 Agent
Loop迭代直到退出条件
Router根据输入路由到子 Agent

Tool 类型

Tool描述
Function带有代码编辑器的自定义 Rust 函数
MCPModel Context Protocol 服务器
Browser46 种 WebDriver 自动化操作
Google Search基于事实的网络搜索
Load Artifact将文件加载到上下文中

实时聊天

直接在工作室中测试 Agent:

  • 实时 SSE 流式响应
  • Agent 执行动画
  • 用于调试的事件追踪面板
  • 会话内存持久化

代码生成

将可视化设计转换为生产代码:

  1. 查看代码 - 预览生成带语法高亮的 Rust 代码
  2. 编译 - 生成完整的 Rust 项目
  3. 构建 - 编译为可执行文件,并提供实时输出
  4. 运行 - 执行构建好的 Agent

架构

┌─────────────────────────────────────────────────────────────┐
│                     ADK Studio UI                           │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐ │
│  │   Palette   │  │   Canvas    │  │   Properties        │ │
│  │  - Agents   │  │  ReactFlow  │  │  - Name             │ │
│  │  - Tools    │  │  Workflow   │  │  - Model            │ │
│  │             │  │  Designer   │  │  - Instructions     │ │
│  └─────────────┘  └─────────────┘  └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼ HTTP/SSE
┌─────────────────────────────────────────────────────────────┐
│                    ADK Studio Server                        │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐ │
│  │   Routes    │  │   Codegen   │  │   Storage           │ │
│  │  /api/*     │  │  Rust code  │  │  Projects           │ │
│  │  /chat      │  │  generation │  │  File-based         │ │
│  └─────────────┘  └─────────────┘  └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼ Build
┌─────────────────────────────────────────────────────────────┐
│                   Generated Rust Project                    │
│  ┌─────────────────────────────────────────────────────┐   │
│  │  Cargo.toml + src/main.rs                           │   │
│  │  Uses: adk-rust, adk-agent, adk-model, etc.        │   │
│  └─────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────┘

API 端点

项目

端点方法描述
/api/projectsGET列出所有项目
/api/projectsPOST创建新项目
/api/projects/:idGET获取项目详情
/api/projects/:idPUT更新项目
/api/projects/:idDELETE删除项目

代码生成

端点方法描述
/api/projects/:id/codegenPOST生成 Rust 代码
/api/projects/:id/buildPOST编译项目
/api/projects/:id/runPOST运行已构建的可执行文件

聊天

端点方法描述
/api/chatPOST发送消息 (SSE 流)

环境变量

变量描述必需
GOOGLE_API_KEYGemini API 密钥是(针对 Gemini)
OPENAI_API_KEYOpenAI API 密钥是(针对 OpenAI)
ADK_DEV_MODE使用本地工作区依赖
RUST_LOG日志级别否(默认:info)

生成的代码结构

my-project/
├── Cargo.toml
└── src/
    └── main.rs

生成的 main.rs 示例:

use adk_rust::prelude::*;
use adk_rust::Launcher;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    dotenvy::dotenv().ok();
    let api_key = std::env::var("GOOGLE_API_KEY")?;
    let model = GeminiModel::new(&api_key, "gemini-2.0-flash")?;

    let agent = LlmAgentBuilder::new("assistant")
        .description("Helpful AI assistant")
        .instruction("You are a helpful assistant.")
        .model(Arc::new(model))
        .build()?;

    Launcher::new(Arc::new(agent)).run().await?;
    Ok(())
}

模板

Studio 包含预构建的模板:

  • 基本助手 - 简单的 LLM agent
  • 研究 Agent - 带有 Google 搜索的 Agent
  • 支持路由器 - 多 agent 路由
  • 代码助手 - 带有代码工具的 Agent

最佳实践

实践描述
从简单开始从单个 LLM agent 开始,逐步增加复杂性
经常测试使用聊天面板验证行为
审查代码在部署前检查生成的代码
项目版本控制导出并进行项目 JSON 版本控制
使用模板从模板开始,实现常见模式

上一页: ← Memory | 下一页: Development Guidelines →