[MAF预定义的AIContextProvider-01]TextSearchProvider——RAG在MAF中的实现
作为最核心的AIAgent,`ChatClientAgent`构建了一个管道与LLM交互。为了让管道的输出更符合我们的需求,有两个主要的途径:输入增强(Input Enhancement)和输出增强(Output Enhancement),前者通过通过改变输入让LLM返回更高质量的内容,后者则直接对... ...
OpenClaw.NET 上线 MetaSkills :软件工程第一性原理的工业级实践
当系统平稳运行时,你是发号施令的架构师,驾驭 LLM 和云原生框架在宏观上狂奔。但当服务器在深夜崩溃,当 AI 给出的解释全是指鹿为马的幻觉时,你必须有能力瞬间推开抽象的胡言乱语,化身成底层机器的同类——读十六进制内存快照,抓 TCP 报文头部,在无数死锁的线程栈里,徒手掐死那只 bug。 这,才... ...
用了一年 AI 开发之后,我总结出这 7 件必须先做的事
过去一年,很多开发者都开始使用 AI 辅助开发。 从写接口、补单元测试、生成 SQL,到解释老代码、改前端样式、生成文档,AI 确实能帮开发者节省不少时间。我们内部也做过一些评估,整体效率有提升,但并没有外界宣传中那么夸张。更真实的情况是:AI 在一些明确、局部、重复性强的任务上非常有效;但在复杂业 ...
[MAF预定义ChatClient中间件-09]MessageInjectingChatClient-赋予工具消息注入的能力
当工具在执行过程借助注入对话历史的消息来描述当前的情况,以辅助LLM后续能够更加精准的推理,这是非常有价值的。比如工具在执行过程中发现验证的风控风险,可以注入一条`Assistant`消息模拟LLM的回复来提示用户风险的存在。 ...
.NET Core自定义 ALC 中启动WebHost的HostingStartup解析异常
问题场景 在 .NET Core插件系统中,插件程序集通过自定义 AssemblyLoadContext(ALC)加载,与宿主程序的 Default ALC 保持隔离。当插件内部若需要自托管一个 Web 服务,调用 Host.CreateDefaultBuilder() 启动 WebHost 时,此 ...
【EF Core】继承策略——TPC
在开始主题之前,老周分享另一个知识,碰巧这知识点也是 EF Core 的,是前些天一位新手程序猿问的,他那是一个小项目,因为小,所以采用 Code First 的方案。不过程序有两个版本,一个是用 SQLite 数据库,一个用 SQL Server。然后有些实体他设定了 CHECK 约束。众所周知, ...
AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础
按照之前文章《氛围编程实战系列:先规划清楚学习路径》这个规划路径,我们今天来开发第二个功能:合并知识功能。 总结这篇文章的初期阶段,其实让笔者非常的困惑。因为经历了太多思想碰撞。最终认为如果要持续学习一件新事物,还必须要从现实出发,不要为了学习而学习,而要为了解决一个实际问题而学习,哪怕这个问题开始 ...
[MAF预定义ChatClient中间件-08]OpenTelemetryChatClient-实现链路跟踪和性能监控
赋予部署的应用和服务可观测性已经是一个基本的需求,在这方面,`OpenTelemetry`无疑已经称为了事实上的标准。`OpenTelemetryChatClient`是一个预定义的`IChatClient`中间件,它利用重写的`GetResponseAsync`和`GetResponseStrea... ...
[MAF预定义ChatClient中间件-07]PerServiceCallChatHistoryPersistingChatClient——基于ReAct循环的一步一存档
在默认的情况下,`ChatHistoryProvider`基于**调用**对产生的请求和消息进行存档。如果一次调用涉及多轮ReAct循环,意味着每次调用可能会很多条消息,但是它们只会在ReAct循环结束之后才会被存档一次。如果最后存单失败,意味着这些消息将全部丢失,所以有时候我们ReAct循环的每次... ...
[MAF预定义ChatClient中间件-06]利用ImageGeneratingChatClient开发专业图片生成Agent
我们目前已经有相当专业的图片生成的模型,它可以利用我们提供的文本提示来生成高质量的图片,但是由于我们对文字的驾驭能力不够,写不出迎合LLM的提示词。ImageGeneratingChatClient中间件结合我们注册的ImageGenerator将两者结合在一起:我们通过与Agent对话的方式说出我... ...
精选 5 款基于 .NET 开源免费、功能强大的 Windows 系统优化工具
前言 在数字化办公与娱乐需求日益增长的今天,Windows 系统的流畅度与稳定性直接影响着我们的日常体验。为了帮助大家告别系统卡顿、冗余服务以及隐私泄露的困扰,大姚给大家分享 5 款基于 .NET 开源、功能强大且免费的 Windows 系统优化工具。 Optimizer Optimizer 是一款 ...
[MAF预定义ChatClient中间件-05]动态修改ChatOptions和请求消息
调用`IChatClient`的`GetResponseAsync`或者`GetStreamingResponseAsync`方法时,我们通常会传入一个`ChatOptions`对象来控制运行行为。`ConfigureOptionsChatClient`利用指定的委托对象来动态设置`ChatOpti... ...
[MAF预定义ChatClient中间件-04]ReducingChatClient——精减对话历史又不丢失基本语义
绝大部分的Agent都采用对话的方式来和用户进行交互,所以对话的内容就成了Agent决策的基础,对话历史也成为占据LLM上下文窗口的主要内容。LLM推理的质量并非与上下文的丰富程度成正向关系,有时候过多的上下文信息反而会干扰Agent的判断,导致它做出错误的决策。`ReducingChatClien... ...
当 AgentGateway 遇上 OpenClaw.NET:企业级智能体基础设施的深度协同实战
2026 年 6 月,Linux 基金会旗下的[智能体 AI 基金会(AAIF)正式接纳 AgentGateway 为第四大核心托管项目](https://aaif.io/blog/agentgateway-joins-aaif-as-an-open-gateway-for-agentic-ai-i ...
[MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
我们知道LLM的调用不仅仅是一个耗时的操作,还会产生一定的费用,所以我们希望能够尽可能地减少不必要的调用。`CachingChatClient`就是为此而生的一个中间件实现,它通过在内存中维护一个缓存来存储之前调用LLM的输入和输出,从而避免了对相同输入的重复调用。当我们调用`GetResponse... ...
[MAF预定义ChatClient中间件-02]FunctionInvokingChatClient——实现ReAct循环和人机交互的大功臣
在众多预定义的`IChatClient`中间件中,`FunctionInvokingChatClient`无疑是最重要的一个,以至于没有它整个Agent就无法工作了。原因在于驱动Agent执行的核心机制的ReAct循环就是通过`FunctionInvokingChatClient`实现的,我们注册的... ...
AI编程系列01:裸 API 账单场景下,如何自建 LLM 用量可视化看板
很多开发者接入聚合型 LLM API 后,会遇到一个很现实的问题:服务商只给账单接口,不提供 Web 管理后台。Token 消耗、扣费明细、成本趋势都藏在 JSON 里,看得见数据,却看不清变化。 按照上篇文章《氛围编程实战系列:先规划清楚学习路径》这个规划路径,我们今天就来用 AI 先开发一个 L ...
记一次 .NET 某注塑模具系统 CPU爆高分析
一:背景 1. 讲故事 前些天有位朋友在微信上找到我,说他们的系统出现了CPU爆高,找不到原因,让我帮忙看一下,dump也拿出来了,接下来上windbg分析。 二:CPU爆高分析 1. 真的爆高吗 dump的分析第一原则就是相信数据,先使用 !tp 观察cpu使用率。 0:031> !tp Usin ...
[MAF预定义ChatClient中间件-01]LoggingChatClient——在调用LLM前后输出日志
`LoggingChatClient`是一个预定义的`IChatClient`中间件,它在调用前后输出日志,帮助我们更好地了解Agent的执行过程。它会记录每次调用的输入和输出,以及调用的时间戳等信息。这对于调试和监控Agent的行为非常有用。 ...
氛围编程实战系列:先规划清楚学习路径
氛围编程实战系列:先规划清楚学习路径 上篇文章《入门:我的第一个Vibe Coding实践程序》笔者已经带大家初步体验了氛围编程的能力和效果,体验过后,下一步我们具体要做什么,要有一个大致的规划,也就是这篇文章要介绍的内容。 01 | 为什么先规划学习路径 很多技术初学者开始做 AI 编程时,容易先 ...


