15.MAF预定义ChatClient中间件
文章平均质量分 72
MAF预定义ChatClient中间件
JaydenAI
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[MAF预定义ChatClient中间件-09]MessageInjectingChatClient:赋予工具消息注入的能力
MAF框架通过FunctionInvokingChatClient中间件驱动AIFunction调用,但默认仅将结果封装为Tool角色的ChatMessage,无法像LangChain工具那样灵活添加结构化消息。为解决此问题,演示程序利用MessageInjectingChatClient在银行转账工具中动态注入风控提示消息:当检测到未确认转账时,注入Assistant消息警告欺诈风险并索要验证码;若已确认则直接执行转账。通过会话状态管理两次调用差异,输出结果显示风险拦截与成功转账的不同流程。此原创 2026-06-03 07:25:52 · 556 阅读 · 0 评论 -
[MAF预定义ChatClient中间件-03]CachingChatClient:利用缓存省钱又省时
本文介绍了CachingChatClient中间件,它通过缓存LLM调用结果来减少重复请求,节省时间和费用。该中间件将LLM视为纯函数,对相同输入返回缓存结果而非重新调用。演示程序展示了如何使用DistributedCachingChatClient子类配合内存缓存实现该功能:首次调用触发LLM请求并缓存结果,后续相同请求直接返回缓存,清除缓存后再次触发新请求。文章还分析了CachingChatClient抽象类的核心实现,包括缓存开关和键生成机制。原创 2026-05-27 09:05:44 · 561 阅读 · 0 评论 -
[MAF预定义ChatClient中间件-02]FunctionInvokingChatClient:ReAct循环和工具审批实现者
FunctionInvokingChatClient是实现Agent核心功能的关键中间件,主要承担两项核心功能:1)通过ReAct循环实现推理与工具调用的交替执行,解决复杂任务;2)为敏感工具函数引入人机交互审批流程。演示代码展示了如何利用该中间件实现天气查询的ReAct工作流和银行转账的审批机制,前者自动完成"思考-行动-观察"循环,后者在敏感操作前生成审批请求等待用户确认。该设计既保证了Agent的自动化执行能力,又为关键操作提供了必要的安全控制。原创 2026-05-27 09:02:30 · 1449 阅读 · 0 评论 -
[MAF预定义ChatClient中间件-08]OpenTelemetryChatClient-实现链路跟踪和性能监控
本文介绍了如何利用OpenTelemetry为LLM调用添加可观测性支持。通过OpenTelemetryChatClient中间件,开发者可以方便地获取链路跟踪和性能指标数据。文章演示了在本地使用Docker搭建Jaeger、Prometheus和Grafana监控环境的过程,并提供了一个C#控制台应用示例,展示如何集成OpenTelemetry SDK来收集和输出LLM调用的监控数据。示例中创建了多层级的Activity来模拟调用链,并通过配置不同的Exporter将数据发送到控制台、Jaeger和Pro原创 2026-05-30 08:41:50 · 656 阅读 · 0 评论 -
[MAF预定义ChatClient中间件-07]PerServiceCallChatHistoryPersistingChatClient:一步一存档
摘要 本文探讨了ChatHistoryProvider的默认存档机制及其局限性。默认情况下,该提供者在ReAct循环结束后才存档所有消息,存在数据丢失风险。作者通过自定义ChatHistoryProviderWrapper中间件实现细粒度存档,在每次迭代时保存消息。演示程序验证了这一点:当查询苏州天气时,系统会依次调用位置查询和天气预报工具,默认设置下这些中间消息仅在最终存档,而使用包装类后每次工具调用都会即时保存。这种改进确保了对话历史的完整性和可靠性,特别适用于需要记录详细交互过程的场景。原创 2026-05-29 08:26:40 · 879 阅读 · 0 评论 -
[MAF预定义ChatClient中间件-06]利用ImageGeneratingChatClient开发专业图片生成Agent
本文介绍了一种结合大语言模型(LLM)与专业图片生成模型的解决方案。通过开发ImageGeneratingChatClient中间件,用户可以自然语言描述图片需求,由LLM生成专业提示词,再由ImageGenerator调用图片生成API实现高质量图片输出。文章包含具体实现:1)定义ImageGenerator类处理API调用和错误处理;2)展示如何通过中间件构建对话循环,实现从自然语言描述到图片生成的全流程。该方案降低了用户直接编写专业提示词的门槛,提升了图片生成体验。原创 2026-05-29 08:21:05 · 1185 阅读 · 0 评论 -
[MAF预定义ChatClient中间件-05]动态修改AIContext的两种解决方案
本文介绍了两种动态配置ChatOptions的方法:1)通过ConfigureOptionsChatClient中间件动态切换AI模型,示例展示了交替使用gpt-5.2-chat和DeepSeek-V4-Pro模型生成幽默回复;2)通过AIContextProviderChatClient中间件结合CompactionProvider实现对话历史摘要功能,利用SummarizationCompactionStrategy在保持语义前提下精简对话历史。两种方法都通过构建器模式灵活配置IChatClient,前原创 2026-05-28 08:48:41 · 602 阅读 · 0 评论 -
[MAF预定义ChatClient中间件-04]ReducingChatClient:精减对话腾出上下文窗口
本文介绍了ReducingChatClient中间件的设计目的和实现原理,该组件通过精简对话历史来优化LLM的决策质量。主要内容包括: 问题背景:过多的对话上下文会干扰Agent判断,需要合理精简以腾出上下文窗口空间。 核心实现: 基于IChatReducer接口设计摘要功能 SummarizingChatReducer实现通过LLM生成对话摘要 提供targetCount和threshold参数控制摘要触发条件 边界保护机制: 保持工具调用完整性 避免用户问题孤立 提供自定义提示词功能 应用效果:演原创 2026-05-28 08:46:12 · 599 阅读 · 0 评论 -
[MAF预定义ChatClient中间件-01]LoggingChatClient:在LLM调用前后输出日志
LoggingChatClient是一个用于记录LLM调用的中间件,继承自DelegatingChatClient。它会在调用前后输出日志,记录输入输出内容、时间戳等信息,支持通过日志级别控制输出详细程度。演示代码展示了如何将其与OpenAIClient集成,在Debug级别记录调用状态,在Trace级别还会输出完整的请求响应内容,便于调试和监控Agent行为。原创 2026-05-26 08:52:49 · 697 阅读 · 0 评论
分享