- 博客(28)
- 收藏
- 关注
原创 LangChain 入门 Memory 会话记忆
在 LangChain 短期记忆是通过 AgentState 实现的,而会话历史(也就是消息列表)是 AgentState 的一部分LangChain 提供了 Checkpointer 对象来保存 AgentState,每一次用户与AI的交互都会生成一个快照,记录为一个 checkpoint。每次请求时,会拿到最近一次快照,再加上当前的消息,拼接好,发给模型,可以基于历史消息进行回答了image时间穿梭代码可以回滚到历史的某个位置。
2026-07-09 15:24:08
157
原创 2026世界杯实时看板, 支持AI聊天/竞猜/预测等
纯 HTML + ES Modules,加载速度极快,也方便任何人 fork 后直接改。Three.js 通过 importmap 从 CDN 加载,页面打开就能用,没有任何构建步骤。AI 聊天直接在浏览器调用 Anthropic API,system prompt 里注入了当前积分榜和今日赛程,所以 Claude 能基于实时数据回答问题。Action 跑 Python 脚本,调用 sports-skills CLI 抓 ESPN 数据,写入。整个项目没有后端,没有构建工具,没有 npm install。
2026-07-08 14:25:39
272
原创 Skill 到底是什么:一个文件夹改变 AI 的行为模式
它不是系统 prompt 的包装纸,不只是给 AI 加一段指令,而是一个自带上下文、脚本、参考资料的完整文件夹。。它用 YAML frontmatter 声明自己的名字和触发条件,正文里写清楚做这件事的步骤和注意事项。就这么简单。但就是这套极简的约定,催生了一个 13.6 万星的项目和一个 25+ 平台的生态系统。
2026-07-08 14:24:55
274
原创 使用过程明细数据
(2)ccusage 统计消耗 Token 和金额分别为:3520 万和 16.70 美元。(2)ccusage 统计消耗 Token 和金额分别为:7445 万和 35.06 美元。(1)五小时额度占比 100%,周额度占比为 34%。(1)五小时额度占比 0%,周额度占比为 24%。
2026-07-07 21:46:23
154
原创 新功能解读系列文章(2):自定义数据类型映射——异构迁移不再手工对齐
是 gt-checksum v4.0.0 在(结构校验)模式下新增的核心参数,用于指定用户自定义的数据类型映射规则文件。场景一:Oracle NUMBER 类型的多义性Oracle 的NUMBER类型是一个"万能数值类型",可以表示整数、定点数、浮点数,取决于precision和scale→ 应映射为BIGINT(整数)→ 应映射为(定点数)NUMBER(无精度) → 应映射为DECIMAL或保持原样不同业务场景对同一个NUMBER可能有不同的映射策略,内置规则无法覆盖所有情况。
2026-07-07 21:45:34
166
原创 先看这笔账到底花在哪
其中标准输入189,287,命中缓存4,328,576,输出23,643,输出里还包含3,112的 reasoning Token。
2026-07-06 19:32:07
204
原创 让每个命令都能精准路由:HagiCode Preset Task 的多技能支持实战
改造后的命令定义,就是在原来的基础上多了一个可选的skill字段。以last30days这个 bundled preset 为例,它的大致长这样:"prompt": "调研一下最近30天大家对 {topic} 的真实讨论"},"prompt": "把上面的调研结果整理成一份摘要"version升到了1.1,对应的 schema 也加了可选skill字段。第一条命令research绑了last30daysskill,执行时会路由到这个技能。第二条命令summarize。
2026-07-06 19:31:04
205
原创 你的 AI Agent 会在服务器上“修仙“——OpenClaw.NET 长持久会话技术解读
它们像是金鱼——每次对话都是全新的人生,上一秒的记忆下一秒就归零。我们管这叫"无状态架构",翻译成人话就是:你的 Agent 根本不会"记得"自己做过什么。多数开发者听到"会话持久化",第一反应是:"不就是存聊天记录吗?"扔数据库里不就完了。这种理解也不能说错——毕竟如果连聊天记录都存不住,确实谈不上持久化。但 OpenClaw.NET 刚刚合并的 PR #174 告诉我们:远不止于此。4350 行新增代码,24 个 commits,横跨 38 个文件,2026 年 7 月合并。
2026-07-05 20:26:13
445
原创 ReActAgent 使用指南:构建会思考、能行动的 AI Agent
ToolMapping(description = "根据订单 ID 查询订单状态")public String getOrderStatus(@Param(description = "订单 ID") String orderId) {// 模拟数据库查询return "订单 ORD-1001:已发货,预计 7 月 7 日送达";return "订单 ORD-1002:待处理,付款未确认";return "未找到订单:" + orderId;
2026-07-05 20:25:28
236
原创 什么是事务型的变量
下面的代码片断反映了IPromotableSinglePhaseNotification的定义:加上从父接口继承下来的成员,整个IPromotableSinglePhaseNotification接口一共具有4个方法成员。当整个事务中止回滚后,变量v的值回复到事务开始之前的状态,即值为1。事务型变量的性质已经说得很清楚了,现在根本的任务就是如何来定义这样的一个事务性变量类型,即上面实例程序中的TransactionalVariable<T>类型。》,在这里就不在赘言介绍了。
2026-07-04 19:28:56
145
原创 想成为优秀的技术人员你必须做到的几件事情
一个非常重要的观点是:如果你停留在一个地方不前,并不代表你能一直呆在那里,而是代表你正在落后。往前进并不意味着你是就能进步 - 这至少你不会沦落到最后。程序员为了保持向前发展,就需要不断学习 ,我们需要的不是慢慢的往前走,而是我们要奔跑起来!下面列出这方面的几个观点:1)、读书2)、订阅RSS和阅读一些杂志(我觉得msdn的杂志不错)3)、参加一些研讨会,自己准备一些简报(社区精英、博客园每月的活动等都不错)4)、学习一切可以帮助你的东西5)、教其他人其实也是教自己。
2026-07-04 19:28:14
181
原创 Net开发人员可以拥抱Entity Framework 了(EF4.3 Release!!!)
另外,上面示例中,添加ISBN字段后,已经有了的数据默认是Null,这会在程序中引起不必要的麻烦,我们假设希望已有的记录的ISBN是000-0-000-00000-0。我们什么也没干,一个简单的网站就完成了,是不是很神奇?更多的配置信息可以在。到此为止,我们已经一步一步完成了最简单的数据库迁徙/升级, 在上面生成的Migarations文件夹中主要一个配置文件和一个数据库迁移文件,数据库迁移文件有两个函数,一个是Up,即升级数据库,一个事Down,即回溯数据库,去看看生成的代码很容易理解它干了什么。
2026-07-03 21:12:02
193
原创 ildasm (IL Disassembler IL 反汇编器)。
Ngen.exe 创建本机映像(包含经编译的特定于处理器的机器代码的文件),并将它们安装到本地计算机上的本机映像缓存中。生成一个类型库,该类型库描述公共语言运行库程序集中定义的类型,应用程序(如 Visual Basic 6.0)可以使用生成的类型库绑定到程序集中定义的 .NET 类型。它安装有点类似将程序集安装在GAC中,有点不同的是它安装的程序集不需要强签名,而如果要将程序集安装在GAC中,则需要强签名。由此可见AL命令生成的程序集只是通过将链接的文件生成一个新的文件,连接文件还是还是存在的。
2026-07-03 21:11:02
227
原创 处理文件 EOF
记得之前讲到协程体整个是包在编译的 try...catch 代码块中的,这里直接崩溃难道是 msvc 的异常处理没起作用?挂上调试器看看崩溃堆栈:看起来是命中 promise 对象的 unhandle_exception,这里调用的 terminate 导致崩溃框弹出,而 unhandled_exception 恰恰是编译器捕获了 throw 抛出的异常,与直觉刚好相反。这里加打一行日志错误码 38 对应的是判断错误类型,如果是文件 EOF,直接返回空数据,上层会进行判断,从而退出读取循环不再报错了。
2026-07-01 21:43:58
157
原创 基于 IOCP 的协程调度器——零基础深入浅出 C++20 协程
一点一点降低版本尝试,发现能编译这段代码的最低版本是 msvc19.29,对应 vs16.11,如果你需要在本地安装测试环境的话,稳妥起见安装 msvc19.30、对应 vs17.0 也就是 VS2022 比较好,如果本地只有 VS2019,需要升级到第五个也就是最后一个发行版才可以。Compile Explorer 中指定最新的 msvc 编译器和 C++20 选项可以编译通过,注意在 Windows 中选项指定的语法与 Unix 大相径庭,别弄错了。* 套接字(Socket)事件。
2026-07-01 21:43:00
173
原创 在容器刷新早期(所有 BeanDefinition 加载完、实例化之前)把定义顺序调到自己想要的顺序。
此方式的风险:可读性差,容易踩坑,除非写框架,否则不建议。当在写自己的 时,想让 在 之前/之后运行。对普通 无效,也不会影响 Bean 实例化顺序,只影响配置类解析顺序。
2026-06-30 21:21:16
243
原创 修改很简单,但网上讲这点的文档不多,因此多记一笔。另外基于out_ptr会临时转移所有权这点来看,共享所有权模型的std::shared_ptr其实并不适合使用out_ptr,虽然标准没有禁止甚至还要
inout_ptr的名字比较抽象,但只是在out_ptr的基础上加了个“in”而已。它会返回一个类型的对象,函数签名如下:还是看例子,我们对Data增加一个函数,如果name是recreate则删除原来的对象重新创建一个:现实中没人这么写代码,但存在很多类似的c接口,而且我们也很难控制第三方库的代码质量,难免不会遇上类似的东西。如果想在这种接口上用智能指针,那只能说有福了:可以看到代码会变得很复杂,而且一但忘记使用reset就会内存错误。这时候我们就需要inout_ptr帮忙了。
2026-06-30 21:20:34
241
原创 Spring AI学习:聊天记忆
在使用聊天记忆功能时,需要向环绕增强(Advisor)提供conversationId,spring框架自动查表将历史对话提交给大模型。我使用的chatMemory是上下文滑动窗口式记忆(设置为最多将20条对话同时交给大模型),利用jdbc调用mysql对数据进行存储。pom.yml文件中的配置是为了让spring框架自动生成持久化存储的数据库表。当然,该表也可以自行查询数据,主要用途就是把数据交给前端渲染,提升用户体验。mysql数据库配置与正常使用时的配置相同。
2026-06-29 20:45:59
154
原创 开源任务管理工具!一款自托管的全能待办协作工具!
vikunja—— 一款开源的、可自托管的待办事项/任务管理应用,旨在帮助个人或团队组织工作任务,支持多平台部署和丰富的任务管理功能。功能特色私有化部署灵活:支持 Docker/K8s/Debain 部署、源码构建、预编译包安装等多种方式,个人服务器即可轻量运行多维度任务视图:提供列表、甘特图、表格、看板多种任务视图,支持拖拽式操作沉浸式操作体验:提供富文本编辑器,支持 Markdown、表格、图片、代码高等,并提供快捷键操作精细化权限控制。
2026-06-29 20:45:20
223
原创 IT运维监控/可观测性
监控平台在闪红,日志平台能搜到错误,链路图上有一段变慢,群里有人贴截图,也有人问“谁在看”。问题是,十几分钟过去,大家仍然在确认同一件事:这到底是不是故障?影响哪些业务?谁来牵头?要不要升级?有没有人能联系到那个服务的负责人?很多团队复盘时会说:MTTR 还是太高,工具要再升级。这句话只说对了一半。工具当然重要。没有可观测数据、没有告警路由、没有通知触达、没有作战室记录,故障响应只能靠人肉。但 MTTR 从来不是一个监控平台单独产出的指标,它是组织协作的结果。
2026-06-28 20:15:10
233
原创 这种设计的核心思想是模块化。就像给手机安装 App 一样,我们可以为 Agent 动态加载不同的技能,让它具备代码审查、文档生成、数据分析等能力。每个技能都是独立的,可以单独开发、测试和复用。
当用户输入一个请求时,Agent 首先扫描 skills 目录下所有 SKILL.md 的前置元数据,提取各技能的名称与描述,生成可用技能清单。最后,Agent 按照加载的指令执行任务,并将结果返回给用户。一个好的描述应该简洁明确,并包含触发条件,让 Agent 一看就知道"什么场景下该用我"。需要注意的是,deepagents 目前不支持通过 init_chat_model 构造的模型 对象,因此需要调整模型的初始化方式。# ========== 创建 Deep Agent ==========
2026-06-28 20:14:30
183
原创 AI沉默的二十年,是数据和算力的厚积薄发,更是从机器学习到深度学习算法的一次次突破
2011年,IBM的另一位"选手"——Watson,在美国综艺《危险边缘》(Jeopardy!)中,击败了人类冠军。Watson能理解自然语言提问,还能开玩笑,这让很多人第一次意识到:AI不仅能下棋,还能"听懂人话"。2016年,AlphaGo(阿尔法狗)击败世界围棋冠军李世石,2017年又击败柯洁。围棋的复杂度远超国际象棋,AlphaGo的胜利,让全世界再次沸腾。中国媒体报道量单日超过60万篇,AI彻底走出了学术圈,成了全民话题。但很少有人意识到,这场胜利不是天上掉下来的。
2026-06-27 22:21:23
213
原创 P15799 [GESP202603 五级] 找数
STL是一套内置的通用工具库,核心组成如下:容器:存储数据的结构。vector(动态数组)、map(键值对)、set(唯一元素)、list(链表)等。迭代器:类似指针,用于遍历容器(如 begin()、end())。算法:操作容器的函数。sort()(排序)、find()(查找)、copy()(复制)等。本题主要使用map。
2026-06-27 22:20:28
185
原创 FastAPI 生产环境静态文件完全指南:从 /favicon.ico 404 到 HSTS 混合内容,一次全根治
结果(混合内容)公寓里混进了可疑人员,物业虽然很负责(HTTPS加密),但你家的 快递员、保洁阿姨、偶尔来串门的朋友,全都大摇大摆地走消防通道,没有门禁、没有登记(这就是 HTTP,不加密的)。但有时候你在模板里硬编码了 HTTP 的外部 CDN 资源,或者用户上传后返回的 URL 是 http://,那麻烦就来了。同时,必须强制限定上传文件的扩展名,比如只允许 .jpg、.png,这个检测要在后端进行,前端校验只是摆设。这样一来,之前那个“用户可控路径”的警告,就从根源上被拆解了。
2026-06-24 21:39:48
209
原创 ffmpeg学习笔记
fmpeg是一款处理多媒体的瑞士军刀般的工具,视频、音频、字幕都能处理,解码、转码、合成、过滤,视频压缩、转换视频比例、把视频解码成一张张的图片,把图片编码为视频,都是这款组件的常用功能,这也是我目前了解到的一部分。它是由几个核心库构成的:libavutil它是一个包含工具类方法的组件,有随机数生成,数据结构,数学方法,核心的多媒体的基础工具等。libavcodec音视频的解码和编码组件。libvformat。
2026-06-24 21:38:57
158
原创 太秀了,我把自己蒸馏成了 Skill!已开源
不是蒸馏酒,是蒸馏人。同事.skill、前任.skill、女娲.skill、老板.skill、自己.skill…… 各种奇奇怪怪的蒸馏项目层出不穷,大家都在把身边的人「封装」成 AI 技能包。有人把离职同事蒸馏了,让 AI 继续干他的活;有人把前任蒸馏了,跟 AI 版的前任聊天回忆往事;甚至还有人搞了个「反蒸馏.skill」,专门防止自己被蒸馏。好家伙,赛博对轰?!我在互联网上苟活了 6 年,写了上千篇文章、录了几百期视频、回答了无数学员的问题,也积累了不少素材和语料。
2026-06-23 22:38:52
226
原创 Avalonia UI 12.0.0 正式发布:架构演进和性能飞跃
这一特性并非简单的锦上添花,对于试图竞标政府、国防或医疗系统 IT 采购合同的企业而言,遵守严格的无障碍合规性(Accessibility Compliance)是具有一票否决权的硬性门槛,这一更新彻底扫清了企业级应用部署的合规障碍。这种对稳定性和性能的极致追求,促使框架进行了一系列必要且果断的破坏性变更(Breaking Changes),彻底剥离了陈旧的 API、低效的输入编排范式以及不再符合现代编译标准的旧版目标框架。正如开发团队所言,旧版标准的维持已成为沉重的维护负担,阻碍了框架现代化的步伐。
2026-06-23 22:37:48
407
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅