ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

agents-cli 手动工作流实战:从零构建、评估并部署你的第一个 ADK Agent

agents-cli 手动工作流实战:从零构建、评估并部署你的第一个 ADK Agent agents-cli 手动工作流实战从零构建、评估并部署你的第一个 ADK Agent【免费下载链接】agents-cliThe CLI and skills that turn any coding assistant into an expert at creating, evaluating, and deploying AI agents on Google Cloud.项目地址: https://gitcode.com/GitHub_Trending/ag/agents-cli本文是一份面向偏好手敲命令的开发者而非依赖编码 Agent 自动完成的端到端实战指南完整走通agents-cli项目的创建项目 → 本地运行 → 定制 Agent → 添加自定义工具 → 结构化评估 → 部署上云 → 可观测性全链路。读完本文你将掌握agents-cli create / playground / run / eval run / deploy / infra single-project这一套核心命令的准确用法、背后的实现原理以及 ADKAgent Development Kit模板项目从脚手架到生产环境的完整手动工作流。如果你更希望让编码 Agent 代劳大部分操作可以参考 quickstart-tutorial快速开始教程本文默认你希望亲自输入每一条命令完全掌控整个流程。你将构建什么以一个默认 Agent 模板为起点——一个可以查询天气、播报当前时间的助手——然后逐步为其定制新的角色人设persona并添加一个自定义工具。整个过程中你会经历真实项目中 Agent 从开发到上线的全部环节用一条命令生成项目脚手架在本地 Web 交互界面playground与终端两种方式下运行 Agent修改系统指令instruction为 Agent 赋予人格用普通 Python 函数为 Agent 添加自定义工具用内置评估系统验证 Agent 行为部署到 Google Cloud 并开启可观测性。前置条件开始之前请确保你的环境满足以下条件Python 3.11与uv已安装项目依赖统一通过uv sync管理详见 getting-started认证已配置——二选一Gemini API KeyGoogle AI Studio适用于仅做本地开发与测试的场景参见 authentication.md - Option AGoogle Cloud 凭据Vertex AI部署上云必需参见 authentication.md - Option B。1. 创建项目在终端中执行agents-cli create my-first-agent --prototype --yes cd my-first-agent agents-cli install三个关键点需要理解--prototype跳过 Terraform 与 CI/CD 相关文件只生成 Agent 代码、测试与评估集eval set。从源码看该标志会把部署目标固定为none、CI/CD runner 固定为skip详见 create.py 中shared_template_options与部署目标选择逻辑--yes等价于--auto-approve/-y非交互模式自动接受默认值——ADK 模板、内存会话存储in-memory sessionagents-cli install通过uv sync安装项目全部 Python 依赖。从源码角度看create命令实际是一个功能强大的模板引擎create.py 支持从内置模板、local路径、远程 Git URL 以及adk数据科学示例等多种来源生成项目。你还经常用到这些参数参数作用--adk快捷模式等价于adk agent_runtime prototype一键跳过所有提示-d / --deployment-target部署目标agent_runtime、cloud_run、gke之一--cicd-runnerCI/CD 运行器google_cloud_build、github_actions、skip--region部署区域默认us-east1--session-type会话存储类型仅部分 Python Agent 支持--agent-guidance-filenameAgent 引导文件名默认GEMINI.md可改为CLAUDE.md、AGENTS.md-i / --interactive交互式向导模式--skip-checks跳过 GCP / Vertex AI 校验注意项目名会被自动规范化转小写、下划线转连字符且最长 26 个字符——这是为了兼容云资源命名规则源码见 create.py。2. 探索项目结构创建完成后项目结构如下my-first-agent/ ├── app/ │ ├── __init__.py # 注册应用 │ ├── agent.py # Agent 定义 —— 核心逻辑所在 │ └── app_utils/ # 遥测与工具代码 ├── tests/ │ ├── eval/ │ │ ├── datasets/ │ │ │ └── basic-dataset.json # 评估测试用例 │ │ └── eval_config.yaml # 评估指标配置 │ ├── integration/ │ │ └── test_agent.py # 集成测试 │ └── unit/ │ └── test_dummy.py # 单元测试 ├── pyproject.toml # 项目配置与依赖 └── GEMINI.md # 供编码 Agent 阅读的引导文件每个文件的完整说明见 project-structure.md。其中最重要的文件是app/agent.py打开后可以看到两个工具函数get_weather、get_current_time和 Agent 定义root_agent Agent( nameroot_agent, modelGemini(modelgemini-3.7-flash), instructionYou are a helpful AI assistant designed to provide accurate and useful information., tools[get_weather, get_current_time], )从模板源码看模板 agent.py默认模型为gemini-3.7-flash并配置了HttpRetryOptions(attempts3)重试策略。模板中的两个模拟工具还带有细节——例如get_weather对包含sf或san francisco的查询会返回Its 60 degrees and foggy.而get_current_time会对旧金山使用America/Los_Angeles时区并格式化输出时间。这些实现都直接体现在 agent.py 中方便你在本地立即验证。3. 本地运行 AgentPlayground启动 ADK Web 交互界面agents-cli playground然后在浏览器中打开 http://localhost:8080你会看到一个聊天界面。试着发送Whats the weather in San Francisco?Agent 会调用get_weather工具并回复类似Its 60 degrees and foggy in San Francisco.的内容。playground 支持热重载hot reload——保存app/agent.py的修改后会立即生效无需重启服务。从 cmd_playground.py 的源码可以看到它的实现细节默认监听127.0.0.1:8080可用--port/--host修改Python 项目实际执行的是uv run adk web . --host ... --port ... --reload_agents并自动把 URL 预填充为/dev-ui/?appagent_directory让你直接进入自己的 Agent 而无需手动选择支持--otel-to-cloud将 OpenTelemetry 追踪/日志导出到 Google Cloud非 Python 语言如 Go走不同的启动路径adk-go webJava 与 TypeScript 目前尚未支持 playground。4. 从终端测试 Agent不依赖浏览器时可以直接从命令行发送单条提示词agents-cli run Whats the weather in San Francisco?该命令会启动或复用一个本地后台服务器发送提示词并把 Agent 的流式响应打印到终端。从 run/cmd_run.py 的源码可以看出它远比发一条消息强大--file / -f可重复指定支持图片、PDF、音频、视频等多模态输入--session-id恢复既有会话实现多轮对话延续本地会话保存在运行中服务器的内存里配合--start-server可跨命令保持--start-server/--stop-server保持/停止常驻本地服务器后续请求零启动开销服务器空闲 30 分钟后下次请求会自动重启--url--mode直接查询已部署的远端 Agent协议可选a2aA2A 协议或adkADK SSEAgent Runtime 走:streamQuery--verbose打印完整 JSON 事件负载便于调试如果 Agent 返回图片、音频等二进制产物会自动保存到.google-agents-cli/artifacts/并在输出末尾以Artifacts:列出。5. 定制 Agent赋予人设让我们给 Agent 加一点个性。打开app/agent.py修改instructionroot_agent Agent( nameroot_agent, modelGemini( modelgemini-3.7-flash, retry_optionstypes.HttpRetryOptions(attempts3), ), instructionYou are a cheerful weather reporter who speaks in short, punchy sentences. Always include a fun weather-related pun in your responses. When asked about time, relate it back to weather somehow., tools[get_weather, get_current_time], )保存文件。如果 playground 仍在运行它会自动重载。再次询问相同的问题你会发现回复的语气明显不同了。要点instruction是 Agent 的系统提示词直接决定了模型的行为风格与约束。这里是调整 Agent人格的主要入口模板中 agent.py 的默认指令只提供了一个中性的助手定义把它替换成上面的多行字符串即可完成人设定制。6. 添加自定义工具在app/agent.py中、root_agent定义上方添加一个统计单词数量的函数def count_words(text: str) - str: Count the number of words in the given text. Args: text: The text to count words in. Returns: A string with the word count. word_count len(text.split()) return fThe text contains {word_count} words.然后在 Agent 的tools列表中注册它tools[get_weather, get_current_time, count_words],测试新工具agents-cli run How many words are in: The quick brown fox jumps over the lazy dogAgent 会调用count_words并返回单词数量。关键原理ADK 的工具就是普通 Python 函数。函数的docstring 会成为 LLM 看到的工具描述直接告诉模型该工具何时、如何使用因此务必写得清晰准确。这与模板中 agent.py 的两个内置工具含完整 Args/Returns 文档保持同一风格。7. 运行结构化评估评估用于验证 Agent 的行为是否符合预期。项目自带一个默认评估数据集tests/eval/datasets/basic-dataset.json{ eval_cases: [ { eval_case_id: greeting, prompt: { role: user, parts: [{text: Hello, what can you help me with?}] } } ] }模板中实际提供的数据集更丰富见 basic-dataset.json包含 3 个测试案例greeting问候、weather_query天气查询以及带reference标准答案的capital_lookup国家首都。每个 eval case 定义一个用户消息评估系统把消息发送给 Agent然后按eval_config.yaml中配置的指标给响应打分。默认的指标配置如下见 eval_config.yamlmetrics_to_run: - custom_response_quality custom_metrics: - name: custom_response_quality custom_function_file: response_quality.py # 本地 LLM-as-judge走 ADC 或 GEMINI_API_KEY - name: agent_turn_count custom_function: | def evaluate(instance): turns (instance.get(agent_data) or {}).get(turns, []) return {score: len(turns)}运行评估agents-cli eval run输出会显示每个 eval case 在配置指标下的得分。从 eval/cmd_run.py 源码可以看到eval run实际上是两步链式命令Step 1 执行eval generate对数据集执行推理、在artifacts/traces/下生成追踪文件Step 2 执行eval grade对追踪结果评分、写入结果目录。它还支持--dataset指定自定义数据集 JSON 路径--metrics逗号分隔的指标列表如final_response_quality,grounding--config指标与自定义指标配置的 JSON/YAML 文件--url改为对运行中的远端 ADK Agent 做推理--concurrency并行派发的 eval case 数量默认等于 CPU 核心数--project/--region指定评分所用的 Vertex eval 服务区域。完整的评估工作流——编写测试用例、添加指标、eval-fix 循环以及其余评估子命令eval dataset synthesize、eval compare、eval analyze、eval metric list、eval optimize——详见 Evaluation Guide。8. 部署到 Google Cloud评估通过后即可部署。首先为项目添加部署目标prototype 项目默认不包含agents-cli scaffold enhance --deployment-target cloud_runscaffold enhance会在现有项目上增量注入新的部署目标可选cloud_run、gke、agent_runtime其内部通过三路合并安全地把新文件合入项目并自动备份详见 enhance.py。接着设置 GCP 项目并部署gcloud config set project YOUR_DEV_PROJECT_ID agents-cli deploy验证部署状态agents-cli deploy --status关于agents-cli deploy的更多细节源码见 deploy/cmd_deploy.py它会读取项目根目录的agents-cli-manifest.yaml按其中的deployment_target分派到Agent RuntimeAgent 平台托管、Cloud Rungcloud run deploy或GKETerraform Docker build kubectl常用参数包括--project、--region、--secretsENVSECRET:VERSION格式挂载 Secret Manager 密钥、--update-env-vars、--memory/--cpu/--min-instances/--max-instances/--concurrency资源规格、--service-account、--labels、--no-wait异步部署、--dry-run仅打印将执行的命令等部署 Cloud Run 时CLI 会自动注入AGENT_VERSION、APP_URL等环境变量并默认以--no-allow-unauthenticated禁止匿名访问部署对首次部署常见的 IAM 传播延迟permissions might take a few minutes to propagateCLI 内置了最长 10 分钟、带完整抖动退避的自动重试见 cmd_deploy.py。部署需要 Google Cloud 凭据Vertex AI。Agent Runtime、GKE、密钥与 CI/CD 等其他部署选项见 Deployment Guide。9. 观测你的 AgentCloud Trace 默认开启无需任何配置。向 Agent 发送几个请求后打开 Google Cloud Console 的 Trace 资源管理器即可看到每次 LLM 调用与工具执行的 span 以及延迟分解。查看内容日志Content Logs要查看生产环境中 Agent 处理的实际提示词与响应需要先部署可观测性基础设施agents-cli infra single-project --project YOUR_DEV_PROJECT_ID该命令通过 Terraform 创建专用服务账号service account、GCS 存储桶与 BigQuery 数据集并把已部署的服务更新为使用这些资源。从 cmd_infra_single_project.py 源码可以看到两点重要行为不加--apply时只执行terraform init terraform plan预览变更确认无误后再用agents-cli infra single-project --apply真正落地基础部署agents-cli deploy本身不依赖它——默认使用 Compute Engine 默认服务账号与按需资源供给即可运行该命令用于需要专用服务账号、预置密钥或自定义 IAM 绑定的场景。应用后用agents-cli infra show查看实际部署了哪些资源。更多验证步骤、完整内容捕获与 BigQuery Agent Analytics 见 Observability Guide。你已完成的工作一览步骤发生了什么agents-cli create --prototype --yes创建了包含 Agent 代码、测试与评估集的项目agents-cli playground启动 ADK playground 进行交互式测试agents-cli run ...从终端测试 Agent编辑agent.py定制人设并添加工具agents-cli eval run用结构化评估验证 Agent 行为agents-cli deploy把 Agent 部署到 Google CloudTrace 资源管理器 内容日志验证链路追踪并配置提示词-响应日志记录下一步更多工具模式与高级用法可阅读模板自带的 ADK 工具文档深入编写更好的评估与理解指标见 Evaluation GuideAgent Runtime、GKE、密钥与 CI/CD 部署细节见 Deployment GuideBigQuery Agent Analytics 与第三方集成见 Observability Guide想了解整个项目的工作方式可阅读 Getting Started 与 项目结构说明。【免费下载链接】agents-cliThe CLI and skills that turn any coding assistant into an expert at creating, evaluating, and deploying AI agents on Google Cloud.项目地址: https://gitcode.com/GitHub_Trending/ag/agents-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表