可组合的项目模板
cargo adk new 可根据三个选择创建一个可运行的 Rust 项目:
- 模板定义 agent 或工作流的结构;
- 附加组件添加会话、MCP 或遥测等功能;以及
- 企业模式选择一个模板和一组经过审核的附加组件,用于构建常见的产品结构。
已安装的 CLI 具有权威性,因为自定义模板目录可以扩展或替换内置注册表。
cargo adk templates
cargo adk addons
cargo adk new --help
创建项目
# One LLM agent
cargo adk new support-agent --template llm
# A tool-using agent with operating capabilities
cargo adk new support-agent \
--template tools \
--addon sessions \
--addon telemetry \
--addon guardrails
# Preview generated files without writing them
cargo adk new support-agent --template graph --dry-run
basic 仍是 llm 的别名。在新的文档和自动化中,请使用明确的 llm 名称。
内置模板
内置注册表目前包含 13 个模板。
| 模板 | 创建内容 | 适用场景 |
|---|---|---|
llm | 一个对话式 LlmAgent | 一个代理可以负责请求,并根据需要调用工具 |
tools | 一个 LLM 代理以及类型化的 #[tool] 示例 | 第一个有用的里程碑是一次可见的 Rust 工具调用 |
rag | 具有向量搜索知识路径的代理 | 答案必须使用私有文档或知识集合 |
api | 通过 HTTP API 暴露的代理 | 另一个应用程序将通过网络调用该代理 |
openai | 配置为 OpenAI 的 LLM 代理 | OpenAI 是预期的起始提供程序 |
sequential | 按固定顺序执行的多个代理 | 每个阶段都依赖于上一阶段的工作 |
parallel | 具有聚合结果的并发专业代理 | 独立工作可以同时运行 |
loop | 持续执行,直到满足条件 | 审查、修复或优化周期需要有界循环 |
conditional | 基于决策在代理之间进行路由 | 不同请求需要不同的专业代理或路径 |
graph | 带检查点的分支工作流 | 工作必须能够恢复、分支、汇合,或在进程故障后继续 |
realtime | 双向音频和视频处理 | 产品需要实时语音或多模态对话 |
custom | Agent trait 的手动实现 | 执行契约无法通过内置 agent 表达 |
agent-engine | 带有 Dockerfile 和 deploy/terraform/ 的 Gemini Enterprise Agent Engine BYOC 容器 | agent 以预构建容器的形式部署到 Agent Runtime |
先选择执行形态。之后再添加会话、MCP、遥测或其他产品功能,而不是使用这些功能来决定工作流。
功能附加项
重复 --addon 以组合功能。生成器会按稳定的优先级顺序解析它们的功能标志、导入项、初始化片段、环境示例和生成的文件。
| 附加组件 | 添加内容 | 典型使用原因 |
|---|---|---|
telemetry | OpenTelemetry 追踪设置 | 跨越模型、代理和工具边界跟踪请求 |
auth | API 密钥和 JWT 身份验证脚手架 | 保护已部署的代理端点 |
sessions | 会话状态服务设置 | 使用存储的状态继续对话或工作流 |
memory | 语义记忆和 RAG 集成 | 检索当前对话之外的相关知识 |
mcp | MCP 功能连接和客户端起始点 | 连接由其他进程或服务负责的功能 |
guardrails | 输入和输出验证钩子 | 在 agent 执行前后强制执行产品规则 |
eval | 评估测试框架脚手架 | 在发布前,针对可重复案例衡量行为 |
browser | 浏览器自动化集成 | 让经批准的 agent 操作 Web 界面 |
server | Axum HTTP 和 A2A 服务器设置 | 将 agent 发布给远程调用方 |
docker | 多阶段容器构建文件(Dockerfile、Dockerfile.static、.dockerignore) | 将 agent 打包为最小容器镜像 |
示例:
cargo adk new order-agent \
--template tools \
--addon mcp \
--addon sessions \
--addon server \
--addon auth \
--addon telemetry
生成的能力代码只是一个起点。在发布之前,请将占位端点、凭据、策略和内存中服务替换为由部署方决定的选项。
组合式企业模式
模式与普通模板位于同一 --template 命名空间中。
不存在单独的 --pattern 标志。
| 模式 | 组成 | 产品起点 |
|---|---|---|
multi-agent | sequential + 遥测 | 可见的多阶段工作流 |
production | llm + 服务器 + 身份验证 + 会话 + 遥测 | 经过身份验证且可观测的代理服务 |
pipeline | sequential + 会话 + 遥测 | 有状态的处理流水线 |
chatbot | llm + 会话 + 记忆 + 服务器 | 具备记忆能力的对话式 HTTP 产品 |
a2a-server | llm + 服务器 + 会话 | 独立部署的 A2A agent |
a2a 仍然是 a2a-server 的别名。
cargo adk new operations-agent --template production
cargo adk new research-team --template multi-agent --addon eval
cargo adk new public-specialist --template a2a-server --addon auth
提供商和模型选择
模板具有默认提供商,但 CLI 可以覆盖它,而无需更改执行结构。
cargo adk new support-agent \
--template tools \
--provider openai \
--model company-approved-model
在 CI 中使用 --non-interactive,这样缺少选择时会直接失败,而不是打开提示。需要让其他程序获取生成结果时,使用 --json-output。
自定义模板
当组织需要超越内置注册表的可复用起点时,传入包含 TOML 清单的目录。
cargo adk new finance-agent \
--template company-finance \
--template-dir ./agent-templates
如果自定义模板与内置模板同名,则会在该 CLI 调用中替换内置模板。将清单置于版本控制中,并在 CI 中测试生成的项目。
name = "company-finance"
description = "Company finance agent with approved defaults"
provider = "openai"
features = ["minimal", "tools"]
imports = ["use std::sync::Arc;"]
验证生成的项目
cd support-agent
cargo adk build
cargo run
cargo adk build 会编译并验证生成的项目,但不会部署该项目。提交生成的源代码,检查其启用的功能和环境要求,并在 CI 中保留相同的命令作为门禁。
保持自动化内容为最新
注册表内容可能会在不同版本之间发生变化。在升级自动化项目生成之前:
cargo adk templates
cargo adk addons
cargo adk new smoke-agent --template tools --addon mcp --dry-run
这会根据构建环境中安装的确切 cargo-adk 二进制文件,验证名称和兼容性。