ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

agents-cli scaffold 命令 Flag 参考:create 与 enhance 的完整参数体系及源码解析

agents-cli scaffold 命令 Flag 参考:create 与 enhance 的完整参数体系及源码解析 agents-cli scaffold 命令 Flag 参考create 与 enhance 的完整参数体系及源码解析【免费下载链接】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本篇围绕 scaffold 技能的 flags.md 参考文档 展开完整覆盖agents-cli scaffold create与agents-cli scaffold enhance两条命令的全部 Flag 定义、默认值与取值范围并结合同仓库中 create 命令源码、enhance 命令源码 和 模板常量定义 深入解析每个参数的底层行为项目名校验与归一化、部署目标与会话类型的默认值推导链、严格编程模式下的必填约束以及 enhance 基于三方比对smart-merge的增量更新机制。读完后你可以准确写出可复制运行的 scaffold 命令并理解每个 Flag 在源码中究竟如何生效。1. scaffold 命令组总览scaffold是 agents-cli 中负责“项目脚手架”的命令组其命令组定义在 cmd_scaffold_group.py包含三个子命令子命令职责create从模板创建一个全新的 agent 项目enhance为已有项目追加部署目标、CI/CD 等脚手架upgrade将项目升级到更新版本的 agents-cli 模板本文聚焦 flags.md 文档覆盖的create与enhance两条命令的 Flag 参考。两条命令共享一套模板类选项在源码中由shared_template_options装饰器统一挂载见 create.py 第 69–168 行因此大部分 Flag 在两条命令中行为一致。2.agents-cli scaffold createFlag 全表以下表格完整继承 flags.md 中的createFlag 参考Flag短写默认值说明--agent-aadkAgent 模板——本地名如adk、本地路径local/path、adk-samples 快捷方式adkname仅限 legacypython/agents/树或远程 Git URL--deployment-target-dagent_runtime部署目标agent_runtime、cloud_run、gke、none--regionus-east1GCP 区域--prototype-p关跳过 CI/CD 与 Terraform首次迭代推荐--session-type—会话存储in_memory、cloud_sql、agent_platform_sessions。与cloud_run或gke目标搭配使用Agent Runtime 自行管理会话--cicd-runner—CI/CD 运行器github_actions、google_cloud_build、skip--agent-directory-dirapp/项目内自定义 agent 代码目录--agent-guidance-filenameGEMINI.md编码代理指引文件GEMINI.md、CLAUDE.md或AGENTS.md--output-dir-o.项目输出目录--bq-analytics关启用 BigQuery Agent Analytics 插件agent_runtime、cloud_run、gke均支持--skip-checks-s关跳过 GCP 与 Agent Platform 的验证检查--adk关快速开始模式adk agent_runtime prototype跳过交互提问--auto-approve/--yes-y关非交互模式跳过提问缺失参数用默认值--interactive-i关交互模式显示菜单与提示面向终端人工使用查看某版本 CLI 的完整可用 Flagagents-cli scaffold create --help。2.1 ADK 专属说明--adk是内置 ADK 模板的快捷方式而adk是唯一的内置模板。--agent还可以接收模板仓库形式org/repo[/path]tag或localpath其他框架正是以此方式交付。如需使用 Google AI Studio 替代 Vertex AI编辑生成项目的.env注释掉GOOGLE_*三行取消注释GEMINI_API_KEY。生成的.env模板即如此组织见 python 基础模板的 .env.example# Vertex AI Configuration (default) GOOGLE_GENAI_USE_VERTEXAItrue GOOGLE_CLOUD_PROJECTyour-gcp-project-id GOOGLE_CLOUD_LOCATIONglobal # Alternatively, for Gemini API via Google AI Studio, # comment out the three lines above and uncomment: # GEMINI_API_KEYyour-api-key-here2.2 取值范围由源码枚举保证--session-type、--cicd-runner、--deployment-target的合法取值在源码中以click.Choice硬约束非法值会被 Click 直接拒绝SESSION_TYPES枚举template.py 第 55–68 行in_memory无状态数据驻留内存cloud_sqlPostgreSQL 持久化agent_platform_sessions托管会话服务。DEPLOYMENT_TARGETS枚举template.py 第 396–413 行agent_runtimeVertex AI 托管平台cloud_runServerless 容器平台gke托管 KubernetesAutopilotnone不做云部署。--cicd-runner的 Choice 列表为[google_cloud_build, github_actions, skip]见 create.py 第 126–130 行。3.create关键 Flag 的源码级行为3.1--adk快速开始模式的默认值覆写链--adk并非简单别名源码中它会强制覆写多个参数create.py 第 403–426 行agent强制置为adk若同时传了其他--agent值会被忽略并打印警告deployment_target强制置为agent_runtime同样忽略其他取值prototype True、auto_approve True即跳过所有交互提问。因此agents-cli scaffold create my-agent --adk等价于--agent adk --deployment-target agent_runtime --prototype --auto-approve是官方推荐的最快启动路径。3.2--prototype跳过 CI/CD 与 Terraform 的双重效果--prototype在源码中有两处联动效果未指定--deployment-target时自动推导deployment_targetnonecreate.py 第 717–723 行CI/CD 运行器强制置为skip即使显式传了--cicd-runner github_actions也会被忽略并提示create.py 第 836–844 行。这实现了 flags.md 所说的 “Prototype First” 模式先只生成可运行的代码仍含 Dockerfile待 agent 迭代完成后再用scaffold enhance追加部署与 CI/CD。3.3--agent四种模板来源的解析流程--agent的取值解析逻辑位于 create.py 第 476–566 行支持四种来源本地名如adk从内置agents/目录加载对应.template旧名adk_base、adk_a2a_base、adk_a2a通过AGENT_ALIASES映射到adktemplate.py 第 49–53 行本地路径local/path/to/template源码会将其复制到临时目录再套用模板远程模板仓库org/repo[/path]tag或完整 Git URL由remote_template.fetch_remote_template拉取adk-samples 快捷方式adkname拉取 ADK 示例仓库并用启发式方式模板化CLI 会提示“需按生成的 README 完成配置”。从源码结构看模板来源会以recorded_spec记录到项目清单中后续enhance与upgrade可据此重新拉取同一模板——这是 enhance 无需重新指定--agent也能复现原模板的基础。3.4 项目名约束26 字符上限与自动归一化flags.md 未展开但源码中明确存在的两条规则项目名超过 26 字符直接报错UsageError与技能文档“26 字符以内、仅限小写字母/数字/连字符”的约束一致create.py 第 388–393 行含大写或下划线的名称会被自动归一化转小写、下划线替换为连字符并打印提示normalize_project_name。另外注意不要预先mkdir项目目录——若目标目录已存在create会直接报 “Project directory ... already exists”。3.5--session-type与部署目标的联动会话类型的最终取值由部署目标决定create.py 第 764–829 行部署目标session_type 行为agent_runtime强制none显式传--session-type会被警告并丢弃Agent Runtime 内部自管会话none含 prototype强制in_memorycloud_run/gkeadk模板支持三种取值未指定时交互模式弹出选择菜单非交互模式默认in_memory非 Python 语言模板Go/Java/TypeScript无论传什么都回退为in_memory并打印警告。这也解释了 flags.md 中“与cloud_run或gke目标搭配使用Agent Runtime 自行管理会话”的备注。3.6 默认值与“严格编程模式”文档表格中列出的默认值--region us-east1、--agent-guidance-filename GEMINI.md、--output-dir 当前目录与源码逐一对应--region在shared_template_options中声明defaultus-east1create.py 第 93–97 行--agent-guidance-filename默认GEMINI.mdcreate.py 第 163–167 行可按 IDE 传CLAUDE.mdClaude Code或AGENTS.mdOpenAI Codex 等--deployment-target选项本身未声明默认值——在严格的编程模式strict programmatic下它是必填项缺失会抛出UsageError并提示改用-i或-y表格中 “默认agent_runtime” 描述的是--adk快速开始及交互/自动批准模式下的选择结果。三种运行模式的行为差异无-i无-y严格编程模式所有必需参数必须以 Flag 显式提供否则报错--auto-approve/-y跳过提问缺失参数取默认值如项目名缺省为my-agent、部署目标取该模板第一个可用目标--interactive/-i面向人工终端弹出编号菜单模板选择、部署目标、会话类型、CI/CD 运行器、区域确认。--skip-checks/-s会跳过 GCP 凭证与 Vertex AI 的验证仍会尝试解析一个 project ID 写入.env便于本地开发--bq-analytics则把 BigQuery Agent Analytics 插件加入生成物用于 agent 观测分析。4.agents-cli scaffold enhanceFlag 全表flags.md 中的enhanceFlag 参考如下在已有项目目录内执行或用路径代替.Flag短写默认值说明--deployment-target-d—追加部署目标agent_runtime、cloud_run、gke、none--cicd-runner—追加 CI/CD 运行器github_actions、google_cloud_build、skip--agent-directory-dirapp/agent 代码目录非默认位置时必须传入--session-type—会话存储in_memory、cloud_sql、agent_platform_sessions--regionus-east1GCP 区域--dry-run关预览变更而不应用依赖已保存的元数据--force关强制覆写所有文件跳过 smart-merge 比对--prefer-new关冲突时以新模板版本为准--agent-guidance-filenameGEMINI.md编码代理指引文件如 Claude Code 用CLAUDE.md--bq-analytics关追加 BigQuery Agent Analytics 插件--skip-checks-s关跳过 GCP 与 Agent Platform 验证--prototype-p关Prototype 模式跳过 CI/CD 运行器提问--auto-approve/--yes-y关非交互跳过提问缺失参数用默认值--interactive-i关交互模式显示菜单与提示面向终端查看完整 Flag 列表agents-cli scaffold enhance --help。--force、--dry-run、--prefer-new三个 enhance 独有选项在 enhance.py 第 818–836 行 中定义注意源码校验了--dry-run与--force不可同时使用二者语义冲突一个跳过比对一个预览比对结果。4.1 smart-mergeenhance 的三方比对机制enhance 的核心不是“直接覆盖文件”而是基于 agents-cli-manifest.yaml 中保存的生成元数据做三方比对run_three_way_merge 调用点见 enhance.py 第 781–795 行用原始生成参数manifest 中记录的create_params在临时目录重建 “old” 模板树用old 参数 本次 enhance 的覆写参数重建 “new” 模板树参数拼装逻辑见 _build_enhance_create_args以“当前项目文件”为结果、old/new 为基线做三方对比只更新用户未修改过的文件——你的 agent 逻辑与自定义代码得以保留应用前自动备份项目backup 工具应用后把新参数回写 manifest。在此机制下--force跳过比对全量覆写--dry-run只预览差异清单不落盘要求项目已有保存元数据否则无法重建 old 树--prefer-new某文件既被模板更新又被用户修改冲突时以新模板为准--agent-directory若 agent 代码不在默认的app/下例如放在agent/必须传入否则比对基准与落点都会错位。4.2 版本锁定与保存配置复用从源码结构看enhance 还内置了版本锁定能力若项目记录的acli_version与当前 CLI 版本不同enhance 会通过uvx google-agents-cli锁定版本以原版本重放命令enhance.py 第 235–280 行保证模板行为与项目创建时一致_ENV_SKIP_VERSION_LOCK环境变量可跳过锁定。4.3 典型 enhance 场景# 在原型项目上追加 Agent Runtime 部署 agents-cli scaffold enhance . --deployment-target agent_runtime # 追加 GitHub Actions CI/CD 流水线 agents-cli scaffold enhance . --cicd-runner github_actions # 先预览变更再应用 agents-cli scaffold enhance . --deployment-target gke --dry-run当部署目标从cloud_run/gke切换到agent_runtime时manifest 中残留的session_type会被自动清除_stale_manifest_keys_for_target与 create 侧“Agent Runtime 自管会话”的规则保持一致。5. 实践建议与约束小结快速起步agents-cli scaffold create my-agent --adk一条命令完成 adk agent_runtime prototype 三合一跳过所有交互Prototype First先--prototype让 agent 代码跑通再enhance . --deployment-target target追加基础设施避免一次性生成大量尚不需要的 Terraform/CI 文件编程化调用CI、Agent 调用场景不要依赖交互模式显式传齐--agent、--deployment-target等必需参数需要无交互确认时加--auto-approveAI Studio 用户生成后按 base_templates/python/.env.example 的注释注释GOOGLE_*三行并启用GEMINI_API_KEY已有项目确认 agent 代码目录后再 decide 是否传--agent-directory对非标准结构可先在/tmp下scaffold create ref-project --output-dir /tmp生成参考项目按需挑选文件此用法见同目录 SKILL.md 的 “Scaffold as Reference” 章节。6. 参考文件索引内容路径本文核心依据Flag 参考文档flags.mdscaffold 技能主文档流程、模板与部署选项SKILL.mdcreate 命令实现Flag 定义、默认值推导、错误处理create.pyenhance 命令实现smart-merge、版本锁定enhance.py会话类型 / 部署目标枚举template.pyscaffold 命令组注册cmd_scaffold_group.py项目清单模板enhance 元数据来源agents-cli-manifest.yaml生成的 .env 示例AI Studio 切换方法.env.example本文描述的行为基于当前仓库版本的源码与文档不同 agents-cli 版本的 Flag 集合可能变化请以agents-cli scaffold create --help/agents-cli scaffold enhance --help的实际输出为准。【免费下载链接】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),仅供参考
返回列表