News

微软Agent框架:AIContextProvider如何为智能体提供动态上下文

微软Agent框架:AIContextProvider如何为智能体提供动态上下文

在构建高级AI智能体时,仅仅依靠固定的系统提示和工具往往力不从心。随着对更智能系统需求的增长,我们需要智能体能够根据特定情境、用户或时间进行动态调整。为此,微软Agent框架引入了AIContextProvider机制。

AIContextProvider旨在为AI智能体提供动态上下文信息,并且支持链式调用,能够整合来自多个源的数据。这些上下文提供者按照注册顺序执行,这使得您可以以可预测的方式叠加多层上下文修改。在智能体的设置中配置执行序列,确保早期提供者提供的上下文对链中后续运行的提供者可用。这种机制允许开发者在大型语言模型(LLM)调用之前和之后介入管道,通过保持流程透明来避免意外行为。

上下文提供者的架构

要创建自定义的上下文提供者,您需要继承AIContextProvider类。微软Agent框架在后台处理了所有复杂的路由和管道管理,留给开发者只需重写两个关键方法来实现自定义逻辑:

  • ProvideAIContextAsync (预调用):此方法在请求发送到LLM之前被调用。在此阶段,您可以完全访问当前的会话、之前的指令以及待处理的消息。
  • StoreAIContextAsync (后调用):此方法在LLM生成响应之后、但尚未返回给用户之前触发。在此阶段,您可以分析最终的响应或检查可能发生的任何错误。

实际应用示例:智能体记忆功能

以一个咖啡师智能体为例,我们希望AI能够记住用户的特定冲泡习惯和设备。例如,当用户说“我刚买了一个V60手冲咖啡壶”或“我真的不喜欢酸味咖啡”时,智能体能够记住这些信息。

在这种场景下:

  • ProvideAIContextAsync:负责从数据库中获取用户的现有偏好和事实,并将其作为上下文附加到LLM的指令中。例如,可以添加“用户使用V60冲泡,偏好1:15的比例,喜欢深色巧克力风味的烘焙。”
  • StoreAIContextAsync:在LLM生成响应后,可以将用户请求传递给一个成本较低的“事实提取器”智能体。这个提取器智能体负责从用户对话中识别并保存新的事实,以供将来使用。这样,咖啡师智能体就能随着时间的推移不断学习和积累用户的个性化信息,从而提供更精准的服务。

通过这种方式,AIContextProvider不仅增强了AI智能体的适应性,还使其具备了学习和记忆的能力,从而构建出更智能、更个性化的AI应用。

↗ 阅读原文