Microsoft 365 Agents Toolkit 命令行接口 (Agents Toolkit CLI) 是基于文本的命令行接口,可帮助从终端或 CI/CD 进程为 Microsoft 365 搭建、验证和部署应用程序。 有关详细信息,请参阅 源代码 和 npm 包。
无论你喜欢以键盘为中心的开发人员作,还是要自动执行 CI/CD 管道,Agents Toolkit CLI 都提供与 IDE 扩展相同的功能。 它提供以下功能,以方便开发适用于 智能 Microsoft 365 Copilot 副驾驶®、Microsoft Teams 和 Microsoft 365 的代理或应用:
- 协作:邀请其他开发人员协作处理代理工具包项目进行调试和部署。
- 代理/应用程序创建:使用可用的模板和示例生成新的代理或应用。
- 代理/应用程序预览版:在 Teams、Outlook 和 Microsoft 365 应用中上传和预览代理或应用。
- 资源预配和部署:预配必要的云资源并将应用程序部署到 Azure。
- 验证、打包和发布:使用 CLI 命令验证、打包和发布代理或应用程序。
- 环境管理:管理多个环境、Microsoft Entra应用和 Teams 应用注册。
入门
从 npm
安装 @microsoft/m365agentstoolkit-cli
,并运行 atk -h
以检查所有可用命令:
npm install -g @microsoft/m365agentstoolkit-cli
atk -h
支持的命令
下表列出了可帮助开发人员生成和管理代理或应用程序的受支持命令:
命令 | 说明 |
---|---|
atk doctor |
用于生成Microsoft 365 应用版的先决条件检查程序。 |
atk new |
创建新的 Microsoft 365 应用。 |
atk add |
将功能添加到 Microsoft 365 应用。 |
atk auth |
管理 Microsoft 365 和 Azure 帐户。 |
atk entra-app |
管理当前应用程序中的Microsoft Entra应用。 |
atk env |
管理环境。 |
atk help |
显示 Microsoft 365 代理工具包 CLI 帮助。 |
atk install |
跨 Microsoft 365 上传给定的应用程序包。 |
atk launchinfo |
获取已获取Microsoft 365 应用的启动信息。 |
atk list |
列出可用Microsoft 365 应用模板和示例。 |
atk provision |
在 或 m365agents.local.yml 中m365agents.yml 运行预配阶段。 |
atk deploy |
在 或 m365agents.local.yml 中m365agents.yml 运行部署阶段。 |
atk package |
将 Microsoft 365 应用构建到包中以供发布。 |
atk validate |
使用清单架构、验证规则或测试用例验证 Microsoft 365 应用。 |
atk publish |
在 中 m365agents.yml 运行发布阶段。 |
atk preview |
预览当前应用程序。 |
atk update |
将 Microsoft 365 应用清单更新到开发人员门户。 |
atk upgrade |
升级项目以使用最新版本的 Microsoft 365 代理工具包。 |
atk collaborator |
检查、授予和列出谁可以访问和管理Microsoft 365 应用和Microsoft Entra应用程序的权限。 |
atk uninstall |
清理与清单 ID、游戏 ID 或环境关联的资源。 |
全局选项
以下是可用于每个命令的全局选项:
选项 | 说明 |
---|---|
--version -v |
显示 Microsoft 365 代理工具包 CLI 版本。 |
--help -h |
显示 Microsoft 365 代理工具包 CLI 帮助。 |
--interactive -i |
在交互模式下运行 命令。 默认值为 true。 |
--debug |
打印调试信息。 默认值为 false。 |
--verbose |
打印诊断信息。 默认值为 false。 |
--telemetry |
启用遥测。 默认值为 true。 |
交互模式
命令具有不同的默认交互模式。 默认情况下,某些命令是交互式的,有些命令是非交互式的。 若要确定命令的默认交互模式,请将 选项与特定命令结合使用 -h
。
atk doctor
命令atk doctor
检查生成Microsoft 365 应用版所需的先决条件。
atk new
默认情况下,该 atk new
命令在交互模式下运行,并提供创建新Microsoft 365 应用的指导。 若要在非交互模式下工作 atk new
,请将 --interactive
标志设置为 false
。
atk new
atk new -i false
命令 | 说明 |
---|---|
atk new sample |
从现有示例创建应用。 |
atk list samples |
显示所有可用预先存在的示例的列表。 |
atk new
参数
下表列出了可用于 atk new
的参数:
参数 | 必需 | 说明 |
---|---|---|
--app-name -n |
是 | 应用程序的名称。 |
--capability -c |
是 | 指定应用功能。 可用选项包括 declarative-agent 、 basic-custom-engine-agent 和 weather-agent 。 使用 atk list templates 查看所有可用选项。 |
--programming-language -l |
否 | 程序设计语言。 可用选项包括 javascript 、 typescript 和 csharp 。 默认值为 javascript 。 |
--folder -f |
否 | 创建项目文件夹的目录。 默认值为 ./ 。 |
--spfx-solution -s |
否 | 创建或导入现有SharePoint 框架解决方案。 可用选项为 new 和 import 。 默认值为 new 。 |
--spfx-install-latest-package |
否 | 安装最新版本的 SharePoint 框架。 默认值为 true 。 |
--spfx-framework-type -k |
否 | 如果选择了 framework 功能,则适用。 可用选项包括 minimal 、 react 和 none 。 默认值为 react 。 |
--spfx-webpart-name -w |
否 | SharePoint 框架 Web 部件的名称。 默认值为 helloworld 。 |
--spfx-folder |
否 | 包含现有SharePoint 框架解决方案的目录或路径。 |
--me-architecture -m |
否 | 基于搜索的消息扩展的体系结构。 可用选项包括 new-api 、 api-spec 和 bot 。 默认值为 new-api 。 |
--openapi-spec-___location -a |
否 | OpenAPI 说明文档位置。 |
--api-operation -o |
否 | 选择 () Teams 可以与之交互的作。 |
--bot-host-type-trigger -t |
否 | 指定应用模板的 Chat Notification Message 触发器。 可用选项包括 http-express 、 http-webapi 和 http-and-timer-functions 。 默认值为 http-express 。 |
atk new
场景
下面是使用 atk new
控制所有参数的方案列表:
创建天气代理。
atk new -c weather-agent -l typescript -n myagent -i false
创建新的计时器触发的通知机器人。
atk new -c notification -t timer-functions -l typescript -n myapp -i false
导入现有SharePoint 框架解决方案。
atk new -c tab-spfx -s import --spfx-folder <folder-path> -n myapp -i false
atk add
将功能添加到 Microsoft 365 应用。
命令 | 说明 |
---|---|
atk add spfx-web-part [options] |
与 Microsoft 365 紧密集成的自动托管 SPFx Web 部件。 |
atk add action [options] |
使用 API 扩展 Copilot 的作。 |
atk add auth-config [options] |
添加配置以支持声明性代理中的身份验证作。 |
atk add capability [options] |
使用 API 扩展 Copilot 的功能。 |
atk auth
管理 Microsoft 365 和 Azure 帐户。
命令 | 说明 |
---|---|
atk auth list |
显示所有已连接的 Microsoft 365 和 Azure 帐户。 |
atk auth login |
登录到 Microsoft 365 或 Azure 帐户。 |
atk auth logout <service> |
注销 Microsoft 365 或 Azure 帐户。 |
atk entra-app
管理当前应用程序中的Microsoft Entra应用。
命令 | 说明 |
---|---|
atk entra-app update |
更新当前应用程序中的 Microsoft Entra 应用。 |
atk env
管理应用程序环境。
命令 | 说明 |
---|---|
atk env add |
通过从指定的环境复制来添加新环境。 |
atk env list |
Lists所有可用环境。 |
atk env reset |
重置环境文件。 |
atk env
场景
通过从现有开发环境复制来创建新环境:
atk env add staging --env dev
atk help
命令 atk help
显示可用于 Microsoft 365 代理工具包 CLI 的所有命令。
atk install
跨 Microsoft 365 上传给定的应用程序包。
atk install
参数
下表列出了可用于 atk install
的参数:
命令 | 说明 |
---|---|
--file-path |
应用清单 zip 包的路径。 |
--xml-path |
XML 清单 xml 文件的路径。 |
--scope |
应用范围。 可用选项为“个人”和“共享”。 |
atk install
场景
将包含基于 JSON 的清单的应用程序包上传到 Teams、Outlook 和 Microsoft 365 应用。
atk install --file-path appPackage.zip
使用基于 JSON 的清单将共享范围内的应用程序包上传到 Teams、Outlook 和 Microsoft 365 应用。
atk install --file-path appPackage.zip --scope Shared
将带有基于 XML 的清单的 Outlook 外接程序应用程序包上传到 Outlook。
atk install --xml-path manifest.xml
atk launchinfo
获取已获取Microsoft 365 应用的启动信息。
atk launchinfo
参数
下表列出了可用于 atk launchinfo
的参数:
命令 | 说明 |
---|---|
--title-id |
指定获取的 Microsoft 365 应用的游戏 ID。 |
--manifest-id |
指定获取的 Microsoft 365 应用的清单 ID。 |
atk launchinfo
场景
按游戏 ID 获取已获取Microsoft 365 应用的启动信息。
atk launchinfo --title-id U_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
按清单 ID 获取获取的 Microsoft 365 应用的启动信息。
atk launchinfo --manifest-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
atk list
列出可用Microsoft 365 个应用模板和示例。
atk list
参数
下表列出了可用于 atk list
的参数:
命令 | 说明 |
---|---|
atk list samples |
显示可用应用示例的列表。 |
atk list templates |
显示可用应用模板的列表。 |
atk provision
命令 atk provision
在 中 m365agents.yml
运行预配阶段。
若要在 中 m365agents.local.yml
触发预配阶段,请运行 atk provision --env local
。
atk provision
参数
下表列出了可用于 atk provision
的参数:
参数 | 必需 | 说明 |
---|---|---|
--env |
否 | 指定由 Microsoft 365 Agents Toolkit 搭建的项目基架的环境名称。 |
--folder -f |
否 | 指定项目的根文件夹。 默认为 ./ 。 |
--ignore-env-file |
否 | 在未指定 --env 时跳过加载 .env 文件。 |
atk deploy
命令 atk deploy
在 中 m365agents.yml
运行部署阶段。
若要在 中 m365agents.local.yml
触发部署阶段,请运行 atk deploy --env local
。
atk deploy
参数
下表列出了可用于 atk deploy
的参数:
参数 | 必需 | 说明 |
---|---|---|
--env |
是 | 指定由 Microsoft 365 Agents Toolkit 搭建的项目基架的环境名称。 |
--folder -f |
否 | 指定项目的根文件夹。 默认为 ./ 。 |
--ignore-env-file |
否 | 在未指定 --env 时跳过加载 .env 文件。 |
--config-file-path -c |
否 | 指定配置 yaml 文件的路径。 |
atk package
将 Microsoft 365 应用构建到包中以供发布。
atk package
参数
下表列出了可用于 atk package
的参数:
参数 | 必需 | 说明 |
---|---|---|
--env |
否 | 指定由 Microsoft 365 Agents Toolkit 搭建的项目基架的环境名称。 |
--env-file |
否 | 指定要在应用清单模板文件中替换的变量的 .env 文件。 |
--manifest-file |
否 | 指定应用清单文件路径。 默认值为 ./appPackage/manifest.json 。 |
--output-folder |
否 | 指定包含清单 () 的输出文件夹。 默认值为 ./appPackage/build 。 |
--output-package-file |
否 | 指定输出压缩的应用包文件路径。 默认值为 ./appPackage/build/appPackage.${env}.zip 。 |
--folder -f |
否 | 指定项目的根文件夹。 默认值为 ./ 。 |
atk validate
使用清单架构、验证规则或测试用例验证 Microsoft 365 应用。
atk validate
参数
下表列出了可用于 atk validate
的参数:
参数 | 必需 | 说明 |
---|---|---|
--env |
否 | 指定由 Microsoft 365 Agents Toolkit 搭建的项目基架的环境名称。 |
--env-file |
否 | 指定要在应用清单模板文件中替换的变量的 .env 文件。 |
--manifest-file |
否 | 指定应用清单文件路径。 默认值为 ./appPackage/manifest.json 。 |
--package-file |
否 | 指定压缩的应用包文件路径。 |
--output-folder |
否 | 指定包含清单 () 的输出文件夹。 默认值为 ./appPackage/build 。 |
--output-package-file |
否 | 指定输出压缩的应用包文件路径。 默认值为 ./appPackage/build/appPackage.${env}.zip 。 |
--folder -f |
否 | 指定项目的根文件夹。 默认值为 ./ 。 |
--validate-method -m |
否 | 指定验证方法 Allowed 值: validation-rules 或 test-cases 。 |
atk publish
命令 atk publish
在 中 m365agents.yml
运行发布阶段。
atk publish
参数
下表列出了可用于 atk publish
的参数:
参数 | 必需 | 说明 |
---|---|---|
--env |
否 | 指定由 Microsoft 365 Agents Toolkit 搭建的项目基架的环境名称。 |
--env-file |
否 | 指定要在应用清单模板文件中替换的变量的 .env 文件。 |
--manifest-file |
否 | 指定应用清单文件路径。 默认值为 ./appPackage/manifest.json 。 |
--package-file |
否 | 指定压缩的应用包文件路径。 |
--output-folder |
否 | 指定包含清单 () 的输出文件夹。 默认值为 ./appPackage/build 。 |
--output-package-file |
否 | 指定输出压缩的应用包文件路径。 默认值为 ./appPackage/build/appPackage.${env}.zip 。 |
--folder -f |
否 | 指定项目的根文件夹。 默认值为 ./ 。 |
atk preview
命令 atk preview
允许你在开发过程中预览应用。 此命令提供应用的实时视图,帮助你在部署之前识别和修复问题。
atk preview
参数
下表列出了可用于 atk preview
的参数:
参数 | 必需 | 说明 |
---|---|---|
--m365-host -m |
否 | 在 Teams、Outlook 或 Microsoft 365 应用中预览应用程序。 可用选项包括 teams 、 outlook 和 office 。 默认值为 teams 。 |
--manifest-file |
否 | 指定应用清单文件路径。 默认值为 ./appPackage/manifest.json 。 |
--run-command -c |
否 | 命令启动服务,并且仅在本地环境中工作。 如果未定义,它将从项目类型 (、 dotnet run 或 func start ) npm run dev:atk 自动检测相应的命令。 如果为空,则跳过启动本地服务。 |
--running-pattern -p |
否 | 启动服务的就绪信号输出。
local 仅适用于环境。 如果未定义,则命令 默认值为 (started|successfully|finished|crashed|failed|listening|ready) 。 如果为空,则进程作为就绪信号启动。 |
--open-only -o |
否 |
local 仅适用于环境。 如果为 true,则直接打开 Web 客户端,而不启动本地服务。 默认值为 false 。 |
--browser -b |
否 | 选择浏览器以打开Microsoft Teams Web 客户端。 可用选项包括 chrome 、 edge 和 default 。 默认值为 default 。 |
--browser-arg -ba |
否 | 要传递给浏览器的参数。 例如,--browser-args="--guest 。 |
--exec-path -ep |
否 | 执行命令时添加到系统环境变量“PATH”的路径。 默认值为 devTools/func 。 |
--desktop -d |
否 | 如果为 true,请打开 Teams 桌面客户端,而不是 Web 客户端。 默认值为 false。 |
--env |
否 | 指定项目的现有环境。 默认值为 local 。 |
--folder -f |
否 | 指定项目的根文件夹。 默认值为 ./ 。 |
atk preview
场景
命令atk preview
必须在 和 atk deploy
之后atk provision
使用。
以下列表提供了 的 atk preview
常见方案:
本地预览版:下面是使用本地预览版的依赖项:
- Node.js
- .NET SDK
- Azure Functions Core Tools
atk preview --env --local atk preview --env --local --browser chrome
远程预览
atk preview --env --remote atk preview --env --remote --browser edge
注意
React 等后台服务的日志保存在
~/.fx/cli-log/local-preview/
中。
atk update
将应用清单更新到开发人员门户。
atk update
参数
下表列出了可用于 atk update
的参数:
参数 | 必需 | 说明 |
---|---|---|
--env |
否 | 指定由 Microsoft 365 Agents Toolkit 搭建的项目基架的环境名称。 |
--env-file |
否 | 指定要在应用清单模板文件中替换的变量的 .env 文件。 |
--manifest-file |
否 | 指定应用清单文件路径。 默认值为 ./appPackage/manifest.json 。 |
--package-file |
否 | 指定压缩的应用包文件路径。 |
--output-folder |
否 | 指定包含清单 () 的输出文件夹。 默认值为 ./appPackage/build 。 |
--output-package-file |
否 | 指定输出压缩的应用包文件路径。 默认值为 ./appPackage/build/appPackage.${env}.zip 。 |
--folder -f |
否 | 指定项目的根文件夹。 默认值为 ./ 。 |
atk upgrade
升级项目以使用最新版本的 Microsoft 365 代理工具包。
atk upgrade
参数
下表列出了可用于 atk upgrade
的参数:
参数 | 必需 | 说明 |
---|---|---|
--force -f |
否 | 强制升级项目以使用最新版本的 Microsoft 365 代理工具包。 默认值 false 为 。 |
atk collaborator
检查、授予和列出谁可以访问和管理应用和Microsoft Entra应用程序的权限。
命令 | 说明 |
---|---|
atk collaborator status |
显示项目的当前权限状态。 |
atk collaborator grant |
授予另一个帐户的权限。 |
atk collaborator status
参数
下表列出了可用于 atk collaborator status
的参数:
参数 | 必需 | 说明 |
---|---|---|
--env |
否 | 指定由 Microsoft 365 Agents Toolkit 搭建的项目基架的环境名称。 |
--manifest-file |
否 | 指定应用清单文件路径。 默认值为 ./appPackage/manifest.json 。 |
--entra-app-manifest-file -a |
否 | 选择 Entra 清单模板文件的路径。 默认值为 ${folder}/aad.manifest.json 。 |
--all -a |
否 | 显示所有协作者。 |
--folder -f |
否 | 选择项目的根文件夹。 默认值为 ./ 。 |
atk collaborator grant
参数
下表列出了可用于 atk collaborator grant
的参数:
参数 | 必需 | 说明 |
---|---|---|
--email |
否 | 输入协作者的电子邮件地址。 |
--manifest-file |
否 | 指定应用清单文件路径。 默认值为 ./appPackage/manifest.json 。 |
--entra-app-manifest-file -a |
否 | 选择 Entra 应用清单文件的路径。 默认值为 ${folder}/aad.manifest.json 。 |
--env |
否 | 指定由 Microsoft 365 Agents Toolkit 搭建的项目基架的环境名称。 |
--folder -f |
否 | 选择项目的根文件夹。 默认值为 ./ 。 |
atk collaborator
场景
向另一个 Microsoft 365 帐户授予协作处理应用的权限。
atk collaborator grant -i false --manifest-file ./appPackage/manifest.json --env dev --email other@email.com
atk uninstall
在 Microsoft 365 Agents Toolkit 生成的项目中清理与清单 ID、游戏 ID 或环境关联的资源。 资源包括开发人员门户中的应用注册、Bot Framework 门户中的机器人注册,以及 Microsoft 365 应用中上传的自定义应用。
atk uninstall
参数
下表列出了可用于 atk uninstall
的参数:
命令 | 说明 |
---|---|
--mode |
选择清理资源的方法。 |
--title-id |
指定已安装 Microsoft 365 应用的游戏 ID。 |
--manifest-id |
指定已安装Microsoft 365 应用的清单 ID。 |
atk uninstall
场景
使用游戏 ID 删除获取Microsoft 365 应用程序。
atk uninstall -i false --mode title-id --title-id U_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
使用清单 ID 删除获取的 Microsoft 365 应用程序。
atk uninstall -i false --mode manifest-id --manifest-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --options 'm365-app,app-registration,bot-framework-registration'
使用 Microsoft 365 Agents Toolkit 生成的项目中的环境删除获取的 Microsoft 365 应用程序。
atk uninstall -i false --mode env --env xxx --options 'm365-app,app-registration,bot-framework-registration' --folder ./myapp
在交互模式下卸载。
atk uninstall