默认情况下,Agent 365 CLI 针对的是 Microsoft 商业云。 它通过使用 https://login.microsoftonline.com 进行身份验证,调用位于 https://graph.microsoft.com 的 Microsoft Graph,并调用位于 https://agent365.svc.cloud.microsoft 的 Agent 365 服务。 Microsoft 365 美国政府云包括政府社区云(GCC)、GCC High 和国防部(DoD)。 要在这些云中使用CLI,选择云环境并配置该云端点。
本文解释了 CLI 如何解析云端设置,以及如何在你的 a365.config.json 文件或环境变量中配置它们。
Note
Agent 365 CLI 的最新版本支持云感知端点解析。 在配置美国政府云之前,先更新到最新版本。 有关更新说明,请参见更新 Agent 365 CLI。
Important
可配置端点并不保证每个云端都能使用所有Agent 365服务或功能。 一些商业云端可用的服务和功能可能尚未在GCC、GCC High或DoD中提供。 在运行安装程序前确认你的云服务可用性。 关于 GCC 中 Agent 365 功能的可用性,请参见 Microsoft Agent 365 服务描述。
支持的云环境
环境名称告诉CLI你针对哪个云。 为每个美国政府云明确设置。
| 云 |
environment 值 |
环境变量后缀 (<ENV>) |
|---|---|---|
| 商业(默认) | prod |
PROD |
| GCC | gcc |
GCC |
| GCC High | gcc-high |
GCC_HIGH |
| DoD | dod |
DOD |
环境名称控制两种行为:
- CLI读取与环境名称匹配的环境范围变量。 例如,当
gcc-high时,CLI 读取A365_GRAPH_BASE_URL_GCC_HIGH。 - 安装程序为所选云端授予 Agent 365 可观测性资源的权限。 更多信息请参见 可观测性权限。
环境名称本身不会改变权威主机、Microsoft Graph 基础 URL 或 Agent 365 服务端点。 按照 配置GCC 和 配置GCC High或DoD中描述的,配置这些端点。
Important
不要将 Azure CLI 云名称 AzureUSGovernment 用作环境。 这个名称并不能区分GCC、GCC High和DoD,所以当CLI需要云端特定设置时会报告配置错误。 使用 gcc、gcc-high 或 dod 改用。
CLI 如何解析云设置
CLI先解析环境名称,然后用它解析每个端点。
环境名称
CLI使用它找到的第一个值:
- 位于
environment中的a365.config.json字段。 -
A365_ENVIRONMENT环境变量。 - 对于运行时不使用
a365.config.json文件的设置命令,将显示当前活动的 Azure CLI 云的名称(az cloud show)。 如果 Azure CLI 云是AzureUSGovernment,设置会停止并要求你将A365_ENVIRONMENT设置为gcc、gcc-high或dod。 - 默认值,
prod。
当安装程序生成 a365.config.json 文件时,会记录已解析的 environment、authorityHost 和 graphBaseUrl 值,以便后续命令针对同一云运行。
develop list-available命令不读取a365.config.json。 它总是从 A365_ENVIRONMENT 读取环境,所以在美国政府云中使用该命令时设置该变量。
颁发机构主机与 Microsoft Graph 基 URL
对于每个端点,CLI使用它找到的第一个值:
- 环境作用域环境变量(
A365_AUTHORITY_HOST_<ENV>或A365_GRAPH_BASE_URL_<ENV>)。 - (
a365.config.jsonauthorityHost或graphBaseUrl) 中的匹配字段。 - 商业云默认值(
https://login.microsoftonline.com或https://graph.microsoft.com)。
CLI不会从未带后缀的变量(如 A365_GRAPH_BASE_URL)读取这些设置。
每个解析值都必须是 HTTPS 源:仅包含方案、主机和可选端口。 不要包含路径、查询字符串、片段或用户信息。 例如,CLI接受 https://login.microsoftonline.us 但拒绝 https://login.microsoftonline.us/common。 如果某个值验证失败,CLI会以错误停止。
CLI在设置、同意、认证、Microsoft Entra ID查询、清理和创建实例流程中,一致地应用已解析的权威主机和 Graph 基础 URL。 它为每个授权主机分别缓存令牌,因此切换云时不会重复使用来自其他云的令牌。
Important
将授权主机和 Graph 的基址 URL 配对到同一云端。 如果你覆盖了其中一个,就覆盖另一个,这样认证和 Graph 数据平面调用都能针对同一个环境。
Agent 365 服务端点
CLI调用Agent 365服务以发现模型上下文协议(MCP)服务器,管理MCP服务器,并注册代理的消息端点。 仅用环境变量配置这些服务端点。 这些端点没有 a365.config.json 字段。
| Variable | Description |
|---|---|
A365_DISCOVER_ENDPOINT_<ENV> |
Agent 365 工具发现端点的完整网址。 CLI调用该URL来发现MCP服务器。 它还使用该 URL 的来源来进行相关的 Agent 365 服务调用,包括 MCP 服务器管理和消息端点注册。 默认值为 https://agent365.svc.cloud.microsoft/agents/v2/discoverMCPServers。 |
A365_CREATE_ENDPOINT_<ENV> |
CLI 用于注册代理消息端点时调用的完整 URL。 该值的优先级高于 A365_DISCOVER_ENDPOINT_<ENV> 的原点来源。 |
A365_DELETE_ENDPOINT_<ENV> |
CLI调用的完整URL,用于移除代理的消息端点注册。 该值优先于 A365_DISCOVER_ENDPOINT_<ENV> 的来源。 |
每个值必须是绝对的 HTTPS URL。 如果端点需要路径,可以包含路径,但不要包含查询字符串、片段或用户信息。
Important
仅仅设置环境名称并不能将 Agent 365 的服务调用从商业服务切换出去。 如果你没有设置 A365_DISCOVER_ENDPOINT_<ENV>,CLI会调用商业版的Agent 365服务,即使是在美国政府云中也是如此。
配置GCC
GCC 使用商业云授权主机和 Microsoft Graph 基础 URL,因此你无需重写这些值。 有关详细信息,请参阅 Microsoft Graph 国家云部署。 将环境设置为 gcc,并将 Agent 365 的服务调用指向 GCC 服务。
在 a365.config.json中,设 environment 域为:
{
"tenantId": "YOUR_TENANT_ID",
"environment": "gcc",
"messagingEndpoint": "https://your-app.azurewebsites.net/api/messages",
"deploymentProjectPath": "."
}
然后设置环境变量。 设置 A365_ENVIRONMENT 也适用于不读取 a365.config.json 的命令,例如 develop list-available。 在 Bash 中,执行以下命令:
export A365_ENVIRONMENT="gcc"
export A365_DISCOVER_ENDPOINT_GCC="https://gcc.agent365.svc.cloud.microsoft/agents/v2/discoverMCPServers"
在 Windows PowerShell 中,执行以下命令:
$env:A365_ENVIRONMENT = "gcc"
$env:A365_DISCOVER_ENDPOINT_GCC = "https://gcc.agent365.svc.cloud.microsoft/agents/v2/discoverMCPServers"
配置GCC High或DoD
GCC High 和 DoD 使用自己的权威主机和 Microsoft Graph 基础网址:
| 云 |
environment 值 |
颁发机构主机(authorityHost) |
Microsoft Graph 基础 URL(graphBaseUrl) |
|---|---|---|---|
| GCC High | gcc-high |
https://login.microsoftonline.us |
https://graph.microsoft.us |
| DoD | dod |
https://login.microsoftonline.us |
https://dod-graph.microsoft.us |
这些数值来自以下文章。 请查看它们当前的端点:
GCC High 和 DoD 租户使用 Azure 政府。 Agent 365 CLI 在某些操作中使用 Azure CLI,比如检测租户,所以请在 Azure 政府版中登录 Azure CLI。 有关说明,请参见 Connect to Azure 政府 with Azure CLI。 Azure 政府 中的 Azure 服务也使用与全球 Azure 不同的域名。 例如,如果你在 Azure 应用服务 中托管代理,你的消息终端使用Azure 政府域。 关于端点映射,请参见 比较 Azure 政府 和全球 Azure。
在 a365.config.json 中或使用环境变量设置这些值。 环境作用域变量优先于匹配的 a365.config.json 字段,因此可以用它们覆盖每台机器或每条管道的已检入的配置。
在 a365.config.json 中配置
以下示例针对GCC High:
{
"tenantId": "YOUR_TENANT_ID",
"environment": "gcc-high",
"authorityHost": "https://login.microsoftonline.us",
"graphBaseUrl": "https://graph.microsoft.us",
"messagingEndpoint": "https://your-app.azurewebsites.us/api/messages",
"deploymentProjectPath": "."
}
通过环境变量进行配置
以下Bash示例针对GCC High:
export A365_ENVIRONMENT="gcc-high"
export A365_AUTHORITY_HOST_GCC_HIGH="https://login.microsoftonline.us"
export A365_GRAPH_BASE_URL_GCC_HIGH="https://graph.microsoft.us"
以下 Windows PowerShell 示例针对 GCC High:
$env:A365_ENVIRONMENT = "gcc-high"
$env:A365_AUTHORITY_HOST_GCC_HIGH = "https://login.microsoftonline.us"
$env:A365_GRAPH_BASE_URL_GCC_HIGH = "https://graph.microsoft.us"
对于国防部,将环境设置为dod,使用DOD后缀,并使用 DoD Microsoft Graph 的基础 URL。
如果你的云端有Agent 365服务,也将A365_DISCOVER_ENDPOINT_<ENV>设置为该云的发现终结点。 否则,CLI会调用 commercial Agent 365 service。 欲了解更多信息,请参见 Agent 365 服务端点。
配置参考
本节列出 a365.config.json 了控制云设置的属性和环境变量。
a365.config.json 属性
| 财产 | Description | 必需 | Default |
|---|---|---|---|
environment |
云环境名称。 使用 prod、 gcc、 gcc-high或 dod。 该值决定了 CLI 读取哪些环境范围变量,以及 Observability 资源设置使用哪些变量。 |
否 | prod |
authorityHost |
所选云的 OAuth 授权主机。 该值必须是 HTTPS 源。 | 否 | https://login.microsoftonline.com |
graphBaseUrl |
所选云端的 Microsoft Graph 基础 URL。 该值必须是 HTTPS 源。 | 否 | https://graph.microsoft.com |
环境变量
| Variable | Description |
|---|---|
A365_ENVIRONMENT |
云环境名称。 当 a365.config.json 未设置 environment 时,CLI 使用该值;对于不读取 a365.config.json 的命令也是如此。 默认值为 prod。 |
A365_AUTHORITY_HOST_<ENV> |
OAuth 授权服务器主机。 该值在 a365.config.json 中优先于 authorityHost。 |
A365_GRAPH_BASE_URL_<ENV> |
Microsoft Graph 基础网址。 该值在 a365.config.json 中优先于 graphBaseUrl。 |
A365_DISCOVER_ENDPOINT_<ENV> |
Agent 365 工具的发现端点。 CLI 还会使用其源来处理相关的 Agent 365 服务调用。 |
A365_CREATE_ENDPOINT_<ENV> |
消息端点注册URL。 |
A365_DELETE_ENDPOINT_<ENV> |
消息端点移除URL。 |
A365_MCP_APP_ID_<ENV> |
CLI 用于获取工具服务器令牌的 Agent 365 Tools 资源应用程序 ID 大多数开发者不需要设置这个变量。 |
环境后缀如何得出
CLI 从你的环境名称中为每个环境作用域变量派生 <ENV> 后缀。 CLI会修剪名称,将所有非字母或数字的字符替换为下划线(_),并将其转换为大写字母。 空名变为 PROD。
| 环境名称 | 归一化后缀 | 示例变量 |
|---|---|---|
gcc |
GCC |
A365_DISCOVER_ENDPOINT_GCC |
gcc-high |
GCC_HIGH |
A365_GRAPH_BASE_URL_GCC_HIGH |
dod |
DOD |
A365_AUTHORITY_HOST_DOD |
环境名称和变量上的后缀必须解析为相同的归一化值。 例如,A365_ENVIRONMENT=gcc-high 与 A365_AUTHORITY_HOST_GCC_HIGH 配对。
可观测性权限
在设置过程中,CLI授予代理蓝图对所选云中的 Agent 365 可观测资源的 Agent365.Observability.OtelWrite 权限:
| 云 | 可观测性资源的应用程序 ID |
|---|---|
| 商用 | 9b975845-388f-4429-889e-eab1ef63949c |
| GCC | 2c672ad5-b104-44ed-8069-bb68dd138546 |
| GCC High | 009c6bd0-82e4-4466-95b3-4c996521f3d7 |
| DoD | a9e04047-c6a7-430b-a7ae-faf8f8eed1b7 |
早期版本的 CLI 总是对商业 Observability 资源授予该权限。 如果你在美国政府云中搭建了使用较早版本的代理,先为你的云设置环境并重新运行 a365 setup all,以便 CLI 向你的云中的可观测性资源授予权限。
验证配置
配置云端后,运行只读命令确认CLI是否使用预期端点。 例如:
- 运行
develop list-available命令。 输出显示环境和CLI调用的发现端点URL。 - 通过使用
develop get-token命令获取令牌。
排查云配置问题
下表列出了常见的云配置错误及其解决方法。
| 症状 | 原因 | 解决方案 |
|---|---|---|
Authority host must be an HTTPS origin without a path, query, fragment, or user info. (或Graph Base URL同样错误) |
授权主机或 Graph 基本 URL 包含路径、查询字符串或片段。 | 使用裸 HTTPS 源。 例如,使用 https://login.microsoftonline.us 而不是 https://login.microsoftonline.us/common/oauth2/v2.0/authorize。 |
错误提示AzureUSGovernment或 Azure CLI 云无法区分 GCC Moderate (GCC)、GCC High 和 DoD。 |
环境为 AzureUSGovernment,或者安装程序通过 Azure CLI 检测到了该云。 |
将环境设置为 gcc、gcc-high 或 dod。 |
| CLI调用美国政府云中的商业 Agent 365 服务。 |
A365_DISCOVER_ENDPOINT_<ENV> 没有设置,或者它的后缀和环境名不匹配。 |
使用适合你的环境的后缀设置A365_DISCOVER_ENDPOINT_<ENV>。 |
| Setup 授予商业可观测性资源的权限。 | 环境尚未设置,因此CLI使用 prod。 |
为你的云端设置环境,重新运行设置程序。 |
PowerShell fallback is available only for commercial Graph and authority endpoints. |
Microsoft Graph 登录失败,使用自定义端点时 CLI 无法回退到 PowerShellConnect-MgGraph。 |
解决登录失败的问题。 例如,确认你已在你的云环境中注册客户端应用,并且使用你的云租户中的账户登录。 |