Overview
在本指南中,您可以学习;了解如何使用以下命令创建和注册新的代理项目:
agentengine create:获取入门模板,重写项目身份字段,并写入使用您的配置值的个性化环境文件。
Agentengine init:在Atlas Agent Engine 上注册您的代理并生成本地开发文件。
搭建项目脚手架
本部分介绍如何使用 agentengine create 命令搭建新项目的脚手架。
agentengine create 命令不需要 agentengine auth login,也不会在Atlas Agent Engine 上注册您的项目。在本地运行和测试代理之前,您可以手动自定义脚手架文件。
命令语法
使用以下命令搭建新项目:
agentengine create [--template <template-id>] [--name <display-name>] [--dir <path>] [--llm <provider>] [--llm-base-url <url>] [--llm-model <model>] [--llm-auth-header <header>] [--memory] [--yes]
根据您指定的标志, CLI会提示您配置项目。
此命令创建一个包含 project-config.yaml文件的项目目录,并在 <project-directory>/agents/<slug> 子目录中构建助手的工作区目录。 <slug> 值是 --name 值的小写带连字符版本。工作区目录包含 agent.yaml、.env 以及其他特定于代理的文件(将在后续章节中介绍)。
命令标志
标记 | 说明 |
|---|---|
| |
| |
| 可选。目标项目目录。助手的工作区文件构建在此路径的 |
| 有条件(如果设立了 |
| 有条件(如果设立了 |
| 有条件(对于 |
| 有条件(OpenRouter 和兼容连接必需)。模型或部署名称。 |
| 可选。为代理入门模板启用内存并提示输入 |
| 可选。 Scaffold 一个仅生成内存的项目,仅生成 |
| 可选。允许对代理和工具进行开放式出站访问权限,而不是列出所选的 LLM 主机。将 |
| 可选。接受所有可选提示的默认值,包括检测到的本地环境变量值。 |
| 可选。标准CLI帮助标志,显示命令的用法信息。 |
显示名称限制
CLI将显示名称复制到生成的源文件中。名称不能包含以下字符:
双引号 (
")反斜杠 (
\)反引号
控制字符、换行符或文本方向字符
如果在使用交互式CLI时输入了无效名称, CLI将显示错误并再次提示。如果向 --name 标志传递无效名称,则该命令将失败并显示错误,指出指定不允许的字符或字符类别。
支持的模板
下表描述了可以传递给 agentengine create 命令的入门模板:
模板 | 类型 | 用例(Use Case) |
|---|---|---|
| 代理启动器 | 具有可选内存的最小Atlas Agent Engine代理。 |
| 代理启动器 | 使用 Google 助手开发套件 (ADK) 构建的最小代理。 |
| 代理启动器 | 一个最小化的 TypeScript LangGraph代理,支持人工参与功能和 IANA 时区。 |
| 代理启动器 | 具有工具、策略、声明、可选内存和人工查看的现实代理。 |
| 代理启动器 | 使用 Google ADK 构建的保险域代理。 |
| 代理启动器 | 一个功能齐全的 TypeScript代理,结合了深度代理协调器、子代理和内存支持工具。 |
| 客户端应用 | 现有已部署代理的 Next.js 和 Vercel AI SDK 聊天用户界面。 |
本地环境默认值
当您从提供商目录中选择 LLM 连接时,agentengine create 会提示您输入所需的连接详细信息,例如API密钥。如果在Shell环境中设立了 LLM_API_KEY,该命令会将其作为默认。确认该值后,该命令会将其作为 LLM_API_KEY 写入生成的 .env文件。您无需手动配置此值。
提示
要通过网关路由代理的 LLM 调用,请参阅“LLM 网关配置”部分。
启用内存后,agentengine create 会检测本地环境中的 VOYAGE_API_KEY,并将其作为默认。确认该值会将其写入生成的 .env。
当您使用 --yes 标志运行agentengine create 时,该命令不会提示输入检测到的环境值。对于除 custom 之外的每个提供商目录选项,您必须在运行命令之前在环境中设立LLM_API_KEY。当您同时传递 --memory --yes 时,必须在运行命令之前在环境中设立VOYAGE_API_KEY,否则命令会失败。
注意
当您选择支持的 LLM提供商时, CLI会将您的 LLM 档案写入共享 LLM_API_KEY 变量名称下生成的 .env文件,并使用与 project-config.yaml 中的内存提取的 api_key_secret 相同的 LLM_API_KEY 值。这样,代理和内存提取就可以股票一个已上传的密钥。要学习;了解更多信息,请参阅为代理添加内存。
chatbot-client 模板生成 .env.local文件而不是 .env文件。在运行应用之前,您必须使用以下值手动填充 .env.local文件:
已部署代理的API URL
自定义脚手架代理
agentengine create 完成后,导航到代理位于 <project-directory>/agents/<slug> 的工作区目录并查看生成的文件。
所有生成的代理都包含 .agents/skills/atlas-agent-engine(对于 Codex、Copilot 和其他代理)或 .claude/skills/atlas-agent-engine(对于 Claude Code)的 atlas-agent-engine技能。
使用代理入门模板时,查看生成的代理源和 .env文件,确认 LLM 连接满足您的要求。 LLM客户端、模型、端点和身份验证行为在生成的代理源代码中配置。
对于配置 LLM 连接的目录选项,生成的 .env文件包含共享档案 LLM_API_KEY。如果您选择 Manual setup,请在代理代码中配置 LLM 连接,并将代码所需的任何密钥添加到 .env文件中。要学习;了解更多信息,请参阅在代码中设置 LLM 网关。
使用 chatbot-client 模板时,查看.env.local文件并确认您正确设立了已部署代理的API URL、项目ID、工作区ID和服务帐户访问权限令牌。聊天机器人客户端应用中没有 agent.yaml文件。
注意
使用本地 Git凭证获取模板。生成的项目目录会自动初始化为 Git存储库。
手动设置代理
您可以自己创建所需的文件,而不是使用 agentengine create 命令来搭建代理。每个代理都需要将以下文件放在一个目录中:
agent.yaml:代理配置,描述平台如何运行代理.env:运行时密钥和环境变量pyproject.toml:定义Python项目元数据,包括[project].name字段
此目录是您的工作区目录,您可以在其中运行agentengine 命令。当您稍后运行agentengine init 命令时, Atlas助手引擎会将此目录注册为工作区。
以下步骤描述了如何手动设立代理。
创建agent.yaml 文件。
在工作区目录中创建 agent.yaml文件。 entrypoint 和 sandboxes 字段为必填字段。
下表描述了可用的 agent.yaml 字段:
字段 | 必需 | 说明 |
|---|---|---|
| 是 | 应用实例的Python导入路径,采用 |
| 是 | 配置运行代理及其工具的 |
| No | 用作Docker Compose 服务和网络名称前缀的代理名称。使用带连字符的小写字母数字值,但不要包含前导或尾随连字符。 |
| No | 人工可读的代理描述。最多使用 500 个字符。 |
| No | 框架标识符,例如 |
| No | 代理语言。支持的值为 |
| No | 代理版本。接受严格的 semver 值,可以将 |
| No | 远程 MCP服务器配置。要学习;了解更多信息,请参阅使用远程 MCP 服务器。 |
| No | 平台用户界面中显示的代理功能。该字段接受一个 |
| No | |
| No | 功能标志。该区块接受 |
| No | 为托管构建声明私有包注册表。要学习;了解更多信息,请参阅代理 YAML 模式。 |
以下示例显示了最小的 agent.yaml 配置:
entrypoint: my_agent.graph:app name: my-agent framework: langgraph sandboxes: agent: secrets: ["*"] tools: [] tool: secrets: - ANTHROPIC_API_KEY tools: - invoke_llm
创建 .env 文件。
在工作区目录中创建 .env文件,提供代理代码所需的密钥。将 LLM客户端所需的密钥变量添加到此文件中。
在代理代码中配置 LLM提供商、模型、端点和身份验证行为,而不是在 agent.yaml 中。 .env文件仅用于存储密钥,例如API密钥。要学习;了解有关 agent.yaml文件的更多信息,请参阅“代理合同参考”指南。
下表列出了 .env文件的必需变量和可选变量:
变量 | 必需 | 说明 |
|---|---|---|
| 是 | MongoDB连接字符串 |
| No | LLM提供商密钥。该平台不要求特定的提供商或验证 LLM凭证,但如果没有提供程序,您的代理会在运行时失败。常用键包括 |
重要
.env文件是运行时验证的密钥的唯一来源。容器故意忽略主机环境变量。容器仅在运行时挂载 .env,因此文件中缺少的任何密钥在容器中也会丢失。不要向版本控制系统提交任何真正的秘密。
LLM 网关配置
代理如何进行和验证 LLM 调用完全由您的代码决定。有关设立环境变量或在 agentengine create 中选择 LLM 选项的说明仅应用于示例入门模板。 Atlas Agent Engine 不会托管或管理您的 LLM 连接。
设立LLM 网关有两种方法:
使用入门模板将有效的 LLM 连接构建到生成的代理中。
从入门模板设置 LLM 网关
运行agentengine create 命令时,该命令会提示您选择 LLM 连接,类似于以下示例:
Which LLM connection do you want to use? 1) OpenAI 2) Anthropic 3) Google Gemini 4) OpenRouter 5) OpenAI-compatible - AWS Bedrock, Azure Foundry 6) Anthropic-compatible - AWS Bedrock, Azure Foundry 7) Manual setup - implement the LLM client in code
如果您从此目录中选择一个提供商,agentengine create 命令会提示输入连接所需的详细信息,其中可能包括以下内容:
基本 URL
模型或部署名称
API 密钥
无法识别托管时的连接身份验证标头
该命令将选定的 LLM客户端写入生成的代理源,并将共享档案作为 LLM_API_KEY 存储在生成的 .env文件中。
该命令还会提示您选择助手和工具访问权限外部主机的方式:
应用推荐的
network.egress配置。如果没有可用的网关托管,例如当您选择Manual setup(custom) 时,此选项将指示您稍后配置 LLM 出口。允许所有出站访问权限。
重要
您选择的提供商仅配置由此 agentengine create 命令创建的入门项目。它不会自动配置您以后创建的其他代理。
如果您的 LLM 连接不是列出的选项之一,请选择 Manual setup 并在代码中设立网关。此选项会创建模型构建器存根,以便您可以在代理代码中配置连接。
在代码中设置 LLM 网关
要将 LLM 连接到代理,请创建一个特定于框架的模型,并将生成的模型实例从代理的入口点传递给 app.llm(...) 方法。您可以将模型构建代码放在代理代码中的任何文件中,但入门模板会将存根放在特定于语言的文件中。如果您不使用入门模板,则可以在其他地方定义模型,只要 app.llm(...) 接收到受支持的模型对象。
下表描述了在不同运行时的代码中设置 LLM 网关的惯例:
运行时 | file | 您返回的内容 |
|---|---|---|
LangGraph Python |
| A LangChain |
LangGraph TypeScript |
| A LangChain |
ADK Python |
| ADK |
构造函数用于设置端点、身份验证标头和模型名称。示例,LangGraph Python insurance-agent 模板在 src/<module>/llm.py 中定义 build_llm() 并返回一个 LangChain BaseChatModel。代理入口点导入 build_llm() 并将返回的模型传递给 app.llm(...)。
允许网关托管,以便代理可以访问它。将自定义网关托管和端口添加到 agent.yaml文件中的 network.egress区块。示例,要将 gateway.example.com:443 添加到工具沙箱的现有出口允许列表,运行以下命令:
agentengine agent egress add --component tool gateway.example.com:443
注册您的代理
搭建好代理的脚手架后,您可以使用 agentengine init 命令注册代理并生成本地开发文件。在运行此命令之前,请执行以下先决任务:
创建一个包含
agent.yaml、.env以及pyproject.toml或package.json的代理工作区目录。 Agentengine create 命令在<project-directory>/agents/<slug>中构建此目录,或者您也可以通过手动设置代理来创建该目录。
命令语法
在代理工作区目录中,运行以下命令以注册代理并生成本地文件:
agentengine init [--workspace-id <id>] [--project-id <id>] [--org-id <id>] [--base-url <url>] [--context <name>]
此命令以交互方式选择或创建组织和项目,生成本地开发文件,并将代理注册为Atlas Agent Engine 上的工作区。
命令标志
标记 | 说明 |
|---|---|
| (可选)将此目录链接到现有工作区,而不是创建工作区。 |
| (可选)在没有提示的情况下使用的项目ID 。 |
| (可选)在没有提示的情况下使用的组织ID 。 |
| (可选)覆盖Atlas Agent Engine API基本URL。 |
| (可选)要创建或更新的命名本地上下文。 |
交互式流程
运行agentengine init 时, CLI将指导您完成以下步骤:
使用编号菜单列出您的组织,包括
"Create a new organization..."选项。如果组织不存在, CLI会提示您输入名称以创建组织。选择组织后,将使用编号菜单列出您的项目,包括
"Create a new project..."选项。如果项目不存在, CLI会提示您输入名称以创建项目。将所选项目另存为处于本地身份验证状态的活动
project_id。在代理目录中生成以下本地开发文件:
docker-compose.yml.agentengine/Dockerfile.agentengine/entrypoint.py.dockerignore.gitignore
将代理注册为平台上的工作区,并创建指定了
workspace_id、org_id和project_id的.agentengine/state.json文件。
注意
如果 .agentengine/state.json文件已存在, CLI将跳过工作区注册。重新运行 agentengine init 命令以重新注册代理,而不会覆盖生成的文件。如果平台上已存在工作区名称,则会重复使用现有的 workspace_id。
后续步骤
以下部分介绍如何为每种模板类型启动本地开发。要学习;了解有关本地开发和测试的更多信息,请参阅在本地运行和测试代理以及测试代理。
代理入门模板
如果您使用的是 TypeScript 模板,请先安装 Node.js 依赖项,然后再在本地启动代理:
pnpm install
检查脚手架代理后,运行agentengine dev up 以在本地启动代理:
agentengine dev up
聊天机器人客户端模板
在 .env.local文件中设置必要的值后,安装依赖项并启动开发服务器:
pnpm install pnpm run dev
在浏览器中打开 http://localhost:3000 以使用聊天用户界面。