你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
注释
本文档引用 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 条消息,但旨在保持对话简洁,以获得最佳性能