你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Visual Studio Code 中使用 Azure AI Foundry 代理服务(预览版)

开始使用 Azure AI Foundry for Visual Studio Code 扩展后,使用 Azure AI Foundry 代理服务生成代理。 代理是微服务架构,可以实现以下功能:

  • 使用训练数据回答问题或使用检索增强生成 (RAG) 技术搜寻其他来源来回答问题。
  • 执行特定行动。
  • 自动化整个工作流

代理结合 AI 模型和工具来访问并与您的数据进行交互。

Azure AI Foundry 开发人员可以通过在熟悉的 Visual Studio Code(VS Code)环境中开发、测试和部署代理来保持高效。

重要

本文中标记了“(预览版)”的项目目前为公共预览版。 此预览版未提供服务级别协议,不建议将其用于生产工作负载。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款

在设计器视图中创建和编辑 Azure AI 代理

按照以下步骤创建 Azure AI 代理:

  1. 登录到 Azure 资源

  2. 设置默认项目

  3. 部署一个模型以便与您的代理一起使用。

  4. Azure AI Foundry 扩展 视图中,找到 “资源 ”部分。

  5. 选择+”子节旁边的加号()图标以创建新的 AI 代理。

    代理子节旁加号的屏幕截图。

在设计器中与代理交互

选择保存位置后,代理 .yaml 文件和设计器视图都打开,以便可以编辑 AI 代理。 在代理设计器中执行以下任务:

  1. 在提示符中,输入代理的名称。

  2. 在下拉列表中,选择模型部署的名称。 部署名称是在部署现有模型时选择的。

  3. 该扩展生成 ID 值。 配置以下字段:

    • 为智能体添加说明。
    • 设置系统指令。
    • 配置代理人使用的工具。

    用于编辑和与 AI 代理交互的代理设计器的屏幕截图。

  4. 若要保存 .yaml 文件,请在 VS Code 菜单栏上选择“ 文件>保存 ”。

探索 Azure AI 代理的 .yaml 定义

在打开设计器的同时,系统也会打开你的 AI 智能体的 .yaml 文件。 此文件包含您的代理的详细信息和设置信息。 它类似于以下 .yaml 文件示例:

# yaml-language-server: $schema=https://aka.ms/ai-foundry-vsc/agent/1.0.0
version: 1.0.0
name: my-agent
description: Description of the agent
id: ''
metadata:
  authors:
    - author1
    - author2
  tags:
    - tag1
    - tag2
model:
  id: 'gpt-4o-1'
  options:
    temperature: 1
    top_p: 1
instructions: Instructions for the agent
tools: []

将工具添加到 Azure AI 代理

Azure AI Foundry 代理服务具有以下一组工具,可用于与数据源交互。 这些工具在用于 Visual Studio Code 的 Azure AI Foundry 扩展中提供。

有关使用 MCP 工具的详细信息,请参阅 Visual Studio Code 中的 Azure AI Foundry 代理服务和 MCP 服务器工具(预览版)。

将工具添加到 AI 智能体

  1. 在设计器的 “工具” 部分右上角,选择“ 添加工具”。 在下拉列表中,选择要添加的工具。

    代理设计器中用于添加工具的选择的屏幕截图。

  2. 设计器显示用于配置该工具的相应窗格,如下图所示:

    • 使用必应搜索建立事实依据:

      “使用必应搜索建立事实依据”工具的窗格的屏幕截图。

    • 文件搜索:

      文件上传工具窗格的屏幕截图。

    • 代码解释器:

      代码解释器工具窗格的屏幕截图。

    • OpenAPI 3.0 指定工具:

      OpenAPI 3.0 指定工具窗格的屏幕截图。

  3. 输入所需信息后,选择“ 创建并连接”、“ 上传和保存”或 “创建工具”。 该按钮因窗格而异。

添加工具时,还可以添加它所需的任何新资产。 例如,如果添加文件搜索工具,则可以使用现有的矢量存储资产,或为矢量存储创建新的资产来托管上传的文件。

在 Azure AI Foundry 上创建 Azure AI 代理

使用以下步骤直接在 Azure AI Foundry 上创建代理:

  1. 在设计器中,选择 “在 Azure AI Foundry 上创建代理 ”按钮。

    代理设计器的屏幕截图,其中突出显示了用于在 Azure AI Foundry 上创建代理的按钮。

  2. 在 VS Code 中,刷新“Azure 资源”视图。 已部署的代理将显示在 “代理” 子节中。

    Azure 资源视图中已部署的代理的屏幕截图。

查看已部署的 AI 代理的详细信息

选择已部署的代理将在仅查看模式下打开 “代理首选项 ”窗格。 您可以:

  • 选择 “编辑代理 ”按钮以查看代理设计器和代理的 .yaml 定义以供编辑。
  • 选择“打开代码文件”按钮以创建使用代理的示例代码文件
  • 选择 打开代理模拟场 按钮以打开代理环境。

代理首选项窗格的屏幕截图,其中突出显示了“编辑代理”、“打开代码文件”和“打开 Playground”按钮。

编辑和更新已部署的 AI 代理

  1. “代理首选项 ”窗格中,选择 “编辑代理 ”按钮。 代理设计器用代理的 .yaml 文件打开。

  2. 编辑代理的配置,例如模型、工具和说明。

  3. 完成编辑后,选择 Azure AI Foundry 上的更新代理 按钮以保存更改。

代理首选项窗格的屏幕截图,其中突出显示了 Azure AI Foundry 上的“更新代理”按钮。

创建示例代码文件

  1. 右键单击已部署的代理,然后选择 “打开代码文件 ”选项。 或者,在 “代理首选项 ”窗格中,选择“ 打开代码文件 ”按钮。

    代理快捷菜单的屏幕截图,其中突出显示了“打开代码文件”选项。

  2. “选择首选 SDK ”下拉列表中,为代理代码文件选择首选 SDK,然后选择 Enter 密钥。

    用于选择 SDK 作为代理代码文件选择的一部分的下拉列表的屏幕截图。

  3. “选择语言 ”下拉列表中,选择代理代码文件的首选语言,然后选择 Enter 键。

    用于选择语言作为代理代码文件选择一部分的下拉列表的屏幕截图。

  4. “选择身份验证方法 ”下拉列表中,选择代理代码文件的首选身份验证方法,然后选择 Enter 密钥。

    用于选择身份验证方法作为代理代码文件的一部分的下拉列表的屏幕截图。

浏览示例代码文件

以下 Python 示例代码文件演示了通过 Azure AI Foundry 项目 API 与代理交互的基本调用。

生成的代理示例代码文件的屏幕截图。

使用智能体操场与智能体交互

  1. 右键单击已部署的代理,然后选择 “打开 Playground”选项。

    或者,在“工具”子部分中选择“智能体操场”链接,然后从下拉列表中选择智能体

    此步骤将打开 “代理演练 ”窗格,并使用代理启动线程,以便可以发送消息。

    Visual Studio Code 中代理演示环境的屏幕截图。

  2. 输入提示并查看输出。

    此示例使用 Bing Grounding 来说明网络搜索信息。 代理使用在代理设计器中配置的模型和工具。 信息的来源显示在代理批注的部分中。

    VS Code 中“智能体操场”页的屏幕截图,其中突出显示了智能体备注。

浏览线程

“线程”子节显示使用代理运行期间创建的线程。 在 Azure 资源 视图中,展开 “线程 ”子部分以查看列表。

“线程”子部分中线程的屏幕截图。

在浏览线程时,请记住这些术语:

  • 线程是代理和用户之间的会话。 线程存储消息并自动处理截断,以便将内容放入模型的上下文中。

  • 消息是代理和用户之间的单个交互。 消息可以包括文本、图像和其他文件。 消息作为列表存储在线程上。

  • 运行是一个代理程序的单次执行。 每个运行可以有多个线程,每个线程可以有多个消息。 代理使用其配置和线程的消息通过调用模型和工具来执行任务。 在运行过程中,代理会将消息追加到线程。

查看线程详细信息

若要查看 “线程详细信息 ”窗格,请选择一个线程。

线程详细信息窗格的屏幕截图。

查看运行详细信息

若要查看 JSON 文件中的运行信息,请在“线程详细信息”窗格中选择“查看运行信息”按钮。 以下屏幕截图显示了一个示例 JSON 文件。

运行详细信息的示例 JSON 文件的屏幕截图。

使用多代理工作流

可以使用用于 Visual Studio Code 的 Azure AI Foundry 扩展来创建多代理工作流。 多代理工作流是一系列协同工作的代理来完成任务。 工作流中的每个代理都可以有自己的模型、工具和说明。

创建新的多代理工作流

  1. 打开命令面板(Ctrl+Shift+P)。

  2. 运行以下命令:>Azure AI Foundry: Create a New Multi-agent Workflow

  3. 选择编程语言。

  4. 选择要在其中保存新工作流的文件夹。

  5. 输入工作流项目的名称。

使用多代理工作流项目所需的文件创建一个新文件夹,其中包括一个示例代码文件来帮助你入门。

安装依赖项

安装多代理工作流项目所需的依赖项。 依赖项因创建项目时所选的编程语言而异。

从源安装以下包:

    git clone https://github.com/microsoft/agent-framework.git
    pip install -e agent-framework/python/packages/azure-ai -e agent-framework/python/packages/core

先决条件

若要运行示例多代理工作流 C# 项目,请确保拥有 Azure AI Foundry 项目或 Azure OpenAI 资源。

设置和安装

  1. 官方 .NET 网站下载并安装 .NET 9 SDK。

  2. 转到项目目录并运行以下命令以获取所需的 NuGet 包:

    dotnet restore
    
  3. 示例工作流项目使用必要的环境变量创建一个 .env 文件。 使用 Azure OpenAI 凭据创建或更新 .env 文件:

    # Your Azure OpenAI endpoint
    AZURE_OPENAI_ENDPOINT=https://<your-openai-resource>.openai.azure.com/
    
    # Your Azure OpenAI API key
    AZURE_OPENAI_API_KEY=<your-api-key>
    
    # Your model deployment name in Azure OpenAI
    MODEL_DEPLOYMENT_NAME=<your-model-deployment-name>
    

    重要

    从不将 .env 文件提交到版本控制。 将其添加到 .gitignore 文件。

在本地运行多代理工作流

在本地运行 dotnet run 之前,请设置所需的环境变量。 可以从 Azure AI Foundry 门户获取这些值。

  1. 根据您的操作系统设置环境变量:

    $env:AZURE_OPENAI_ENDPOINT="https://your-resource-name.openai.azure.com/"
    $env:MODEL_DEPLOYMENT_NAME="your-deployment-name"
    $env:AZURE_OPENAI_API_KEY="your-api-key"
    
  2. 使用以下命令运行应用程序:

    dotnet build
    dotnet run
    

更新项目根目录中的 .env 文件,并添加以下环境变量:

AZURE_OPENAI_ENDPOINT=https://your-resource-name.openai.azure.com/
AZURE_OPENAI_API_KEY=your-api-key
MODEL_DEPLOYMENT_NAME=your-deployment-name

使用以下命令运行应用程序:

python workflow.py

可视化多代理工作流执行

通过使用用于 Visual Studio Code 的 Azure AI Foundry 扩展,可以直观显示代理之间的交互及其协作方式,以实现所需的结果。

通过添加以下代码片段在工作流中启用可视化效果:

from agent_framework.observability import setup_observability
setup_observability(vs_code_extension_port=4317) # Default port is 4317

若要实时监视和可视化多代理工作流执行(目前仅适用于 Python 交互模式):

  1. 打开命令面板(Ctrl+Shift+P)。

  2. 运行以下命令:>Azure AI Foundry: Visualize the Multi-Agent Workflow

VS Code 中将打开一个新选项卡以显示执行图。 可视化图表在工作流进行时自动更新,以显示代理之间的流向及其交互。

端口冲突

如果发现任何端口冲突,请通过设置 FOUNDRY_OTLP_PORT 环境变量来更改可视化端口。 在 workflow.py 文件中相应地更新可观测性端口。

例如,若要将端口更改为 4318,请使用以下命令:

  export FOUNDRY_OTLP_PORT=4318

workflow.py中,更新可观测性配置中的端口号:

  setup_observability(vs_code_extension_port=4318)

清理资源

本文中创建的 Azure 资源将计费给 Azure 订阅。 如果你预计将来不需要这些资源,请将其删除,以避免产生更多费用。

删除代理

小窍门

由于可以在 Azure AI Foundry 门户中 自定义左窗格 ,因此你可能会看到与这些步骤中显示的项不同。 如果未看到要查找的内容,请选择 ... 左窗格底部的更多内容。

  1. Azure AI Foundry 门户的左侧菜单中,选择 “代理”。

  2. 选择要删除的代理,然后选择“ 删除”。

    Azure AI Foundry 门户的屏幕截图,其中包含所选代理的“删除”命令。

删除您的模型

  1. 在 VS Code 中,刷新“Azure 资源”视图。 展开 “模型 ”子部分以显示已部署模型的列表。

  2. 右键单击要删除的已部署模型,然后选择“ 删除”。

    快捷菜单的屏幕截图,其中显示了所选模型的“删除”命令。

删除连接的工具

  1. 打开 Azure 门户。

  2. 选择包含该工具的 Azure 资源组。

  3. 选择删除按钮。