通过


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

Foundry 代理服务中的线程、运行和消息(经典)

注释

本文档引用 Microsoft Foundry (经典)门户。

代理(经典版)现已弃用,将于 2027 年 3 月 31 日停用。 在正式版 Microsoft Foundry 代理服务中使用新代理。 按照 迁移指南 更新工作负荷。

Foundry 代理服务支持持久性线程、运行和消息。 这些组件对于管理对话状态和与用户的交互至关重要。

代理组件

使用代理时,需要执行以下步骤:

  • 创建代理: 创建代理以开始发送消息和接收响应。
  • 创建线程: 创建一次线程,并在用户回复时向其追加消息。 对话历史记录会自动维护和管理。
  • 发送消息: 代理和用户可以发送消息。 这些消息可以包括文本、图像和其他文件。
  • 运行代理: 启动运行时,代理将处理线程中的消息,并根据其配置执行任务。 它可能会在其响应过程中将新消息追加到消息线程。
  • 监视运行状态: 监视运行,直到运行完成。
  • 获取响应: 代理创建响应后,向用户显示该响应。

展示代理执行示例的图示。

代理人

代理是一个可配置的业务流程组件,它使用带有说明、工具、参数和可选安全和治理控件的 AI 模型。 在运行时,代理使用这些组件和给定线程的消息历史记录来响应用户输入。

线程

线程是代理和用户之间的会话。 它们存储消息,并自动处理截断,以确保内容能够适应模型的上下文。 创建线程时,可以在用户响应时追加新消息(每个线程最多 100,000 条)。

何时创建新线程

  • 新对话上下文:在启动新主题或用户显式想要“重新开始”时创建新线程。
  • 不同用户:每个用户通常应该有自己的线程来保持会话隔离。
  • 性能注意事项:包含数千条消息的线程可能会增加延迟。 请考虑为长时间运行的交互创建新线程。

线程生命周期

线程将持续存在,直到显式删除。 在标准代理设置中,线程存储在Azure Cosmos DB帐户中。 根据以下内容制定您的线程保留策略:

  • 存储成本:大量包含许多消息的线程使用存储
  • 符合性要求:管理线程删除时考虑数据保留策略

Messages

消息是线程中的单个通信部分。 它们可以由代理或用户创建,并且可以包含文本或其他文件。 消息以列表的形式存储在线程中,允许结构化和组织的对话流。

Runs

一次运行涉及在线程上调用智能体。 代理处理线程中的消息,并可能追加来自代理的响应的新消息。 代理使用其配置和线程的消息通过调用模型和工具来执行任务。 在运行过程中,代理会将消息追加到线程。

运行状态值

监视运行状态以确定处理何时完成:

状态 Description
queued 运行等待处理中
in_progress 代理正在积极处理
requires_action 智能体需要函数调用结果(用于函数调用工具)
completed 运行成功完成
failed 运行遇到错误
cancelled 已取消运行
expired 运行超出时间限制

最佳做法

  • 清理资源:在不再需要管理成本和存储时删除线程和代理
  • 正常处理错误:始终检查 failed 运行状态,并使用指数退避实现重试逻辑
  • 使用适当的轮询间隔:检查运行状态时,从 500 毫秒的间隔开始,并随着操作时间变长逐渐增加轮询间隔以适应长时间运行的操作。
  • 限制消息大小:虽然线程最多支持 100,000 条消息,但旨在保持对话简洁,以获得最佳性能

后续步骤