为了解决LLM调用的无状态问题,需要将消息历史作为上下文发送给LLM。随着对话的进行,消息历史不断增长,可能超出LLM的上下文窗口限制,导致响应质量下降。因此,压缩对话历史是必要的。MAF提供了多种压缩策略,CompactionProvider支持摘要、折叠、删除和替换等策略,有效压缩消息历史,保留核心信息。
本文介绍了如何使用ChatHistoryMemoryProvider和Mem0Provider为AI代理实现长期记忆功能。Mem0Provider通过远程调用Mem0服务存储和检索对话历史,使AI能够像人类一样记住用户偏好。示例中,代理根据用户的口味偏好进行外卖点餐,展示了会话状态的创建和管理。Mem0Provider的实现与ChatHistoryMemoryProvider相似,但不需要维护向量数据库。
本文探讨了通过赋予智能代理记忆能力来提升外卖服务质量。短期记忆支持多轮对话,长期记忆实现跨会话的信息共享。使用ChatHistoryMemoryProvider,代理能够记录用户的口味偏好,并在后续点餐中根据这些偏好推荐菜品。示例代码展示了这一功能的实现,并指出了推荐多样性方面的不足。
Agent Skills通过动态加载提示词机制增强用户与LLM的对话。以翻译古典诗词为例,定义了名为translator的Skill,提供三种翻译变体。实现包括AgentSkill类及其子类,支持从文件或内存加载。AgentSkillsProvider管理这些Skills,并通过构建器模式简化配置,旨在提升对话的灵活性和准确性。
ChatClientAgent通过输入增强和输出增强与大型语言模型(LLM)交互。检索增强生成(RAG)利用TextSearchProvider根据上下文检索相关信息,从而提升LLM的回答质量。文章示例展示了如何使用TextSearchProvider获取2026年斯诺克世锦赛冠军吴宜泽的信息,强调了RAG在解决LLM知识局限性中的重要性。
在构建对话式 AI 应用时,管理上下文信息至关重要。AIContextProvider 是 Microsoft Agent Framework 的核心,允许开发者在对话中注入和持久化上下文。通过重写 InvokingAsync、InvokedAsync 和 Serialize 方法,开发者可以动态调整 AI 行为,实现个性化交互。
完成下面两步后,将自动完成登录并继续当前操作。