- 博客(35)
- 收藏
- 关注
原创 RAG系列:#5 RAG中的11种分块策略
## 三、语义分块策略(5种)当我们不再满足于字符级别的切分,而是希望每个块都代表一个完整的语义单元时,就需要引入更高级的策略。本篇文章,我们将系统地梳理RAG中最常用的11种分块策略,从最简单的固定大小分块,到基于语义的复杂分块,并附上可运行的代码示例,帮助你快速上手。如果块太大,噪声增多,检索精度下降,同时向量表示的语义也会被稀释。我们从固定大小分块、递归字符分块、文档结构分块等基础方法,讲到基于语义的句子分块、聚类分块,再到父子分块、动态分块等高级策略,共覆盖了11种主流方法。
2026-07-31 16:21:18
205
原创 【Agent Harness】Gliding Horse 工具结果压缩体系:如何用“指针”驯服上下文膨胀
## 压缩策略:分级处理Gliding Horse 采用三级压缩:| 级别 | 存储内容 | 典型大小 | 使用场景 ||------|----------|----------|----------|| L1 | 指针 + 摘要 | 几十字节 | 大多数情况 || L2 | 指针 + 部分数据 | 几百字节 | 需要部分细节 || L3 | 完整结果(通常避免) | 几 KB 以上 | 调试或特殊需求 |这种设计就像给数据贴标签,而不是把整头大象塞进背包。:用几十字节的摘要,代替几千字节的原始结果。
2026-07-28 16:46:40
199
原创 【高效管理token成本】OpenClaw精细化分库管理memory以减少token成本的方案的可行性研究
# 五、总结OpenClaw的精细化分库管理memory方案,通过将记忆按语义维度切分、动态路由检索,实现了token成本从“线性增长”到“常数级”的跃迁。### 2.2 路由与激活当收到用户输入时,一个轻量级分类器(如基于Embedding的KNN)判断输入属于哪个分库,然后仅从该分库检索最相关的片段,拼接到当前prompt中。## 三、代码实现:从理论到实践### 3.1 模拟分库检索与token成本对比以下代码演示了如何构建简单的分库系统,并对比传统全量记忆与分库方案的token消耗。
2026-07-28 16:45:36
225
原创 零基础认识大语言模型(LLM)工作原理(10.Tool Calling:让 AI 第一次拥有行动能力)
在前面的章节中,我们了解到大语言模型(LLM)本质上是一个“文本生成器”——它根据输入的提示,预测下一个最合理的词语。其核心思想是:在LLM的输入中,提供一组预先定义好的工具(如函数、API接口),LLM在生成回答时,可以自主决定是否需要调用某个工具,并生成相应的参数。通过将外部工具以结构化的方式暴露给LLM,我们赋予了它“行动能力”——它不再只是被动地生成文本,而是可以主动决策、调用工具、获取反馈,最终完成任务。:LLM分析问题,如果认为需要调用工具,它会生成一个特殊的响应,包含要调用的工具名称和参数。
2026-07-27 14:52:16
296
原创 从 Bun 的 Rust 重写,看 C# 如何重建 AI 基础设施层
在 AI 领域,C# 作为 .NET 生态的旗舰语言,正悄然重塑 AI 基础设施层,以应对大规模模型推理、数据处理和实时系统带来的挑战。Rust 的所有权模型和零成本抽象,让 Bun 在 I/O 密集型任务(如 HTTP 服务器、文件操作)中获得了接近原生硬件的性能,同时避免了 Zig 在大型项目中的维护复杂性。C# 通过不断进化,已从“企业级语言”蜕变为 AI 基础设施的重建工具:它的高性能内存管理、原生异步模型和丰富的互操作能力,使其在模型推理、流式处理、分布式系统等领域站稳脚跟。实现无分配数据处理。
2026-07-27 14:51:03
222
原创 从架构特点到功能缺陷,重新认识分析型分布式数据库
然而,许多开发者对其架构特点的理解仍停留在表面,导致在实际应用中频繁踩坑。与传统关系型数据库(如 MySQL)不同,分析型数据库通常采用列式存储、向量化执行引擎和分布式查询调度,以应对 TB 级甚至 PB 级的数据分析场景。## 总结分析型分布式数据库通过列式存储、MPP 架构和向量化执行,在 OLAP 场景中实现了极致的查询性能,但其功能缺陷同样显著:写入实时性不足、JOIN 操作脆弱、事务支持薄弱。:列式存储配合压缩,可将存储成本降低 90% 以上,尤其适用于具有高基数或重复值的字段(如城市、性别)。
2026-07-26 14:32:12
192
原创 从 docker 到 runC
今天,我们就从 Docker 这个“指挥官”出发,深入到它手下的“执行者”——runC。简单说,Docker 像一个“管家”,你告诉它:“我要跑一个 Nginx”,它就会帮你拉镜像、创建容器、跑起来。命令2. Docker 守护进程(dockerd)接收命令3. dockerd 调用 containerd(容器管理守护进程)4. containerd 启动 runC 实例5. runC 根据 OCI 规范创建并运行容器所以,最终容器进程是由 runC 创建的,Docker 只是“指挥官”。
2026-07-26 14:30:57
184
原创 【GUI-Agent】阿里通义MAI-UI 代码阅读(2)--- 实现
视觉解析器把屏幕变成机器可读的结构化数据,任务规划器把人类语言翻译成机器可执行的操作,执行引擎则负责最后的物理交互。这种设计的好处是模块化——你可以单独升级视觉模型(比如换成YOLOv8),或者增强规划器(接入GPT-4进行复杂推理),而其他部分不用改动。未来,随着多模态大模型的发展,这类GUI-Agent可能会直接跳过视觉解析环节,由模型端到端生成操作坐标,实现真正的“看-想-做”一体化。上一期我们聊了MAI-UI的设计理念和架构,今天我们要深入代码,看看这个GUI-Agent到底是怎么跑起来的。
2026-07-25 15:27:38
218
原创 深度学习框架PyTorch笔记(四)数据转换 Data Transformation
# 数据转换的基本概念在 PyTorch 中,数据转换(Transformation)本质上是一个可调用对象,它接收一个输入数据(如 PIL 图像、Tensor 或 NumPy 数组),并返回转换后的输出。在后续的工程实践中,建议根据具体任务需求灵活组合不同的变换,并通过可视化验证转换后的数据是否符合预期。- 测试集只做必要的尺寸调整和标准化,不做随机增强,以保证评估结果的稳定性。的基本使用方式,然后通过两个完整的代码示例演示了图像分类中的常见增强策略和自定义转换的实现方法。此外,还介绍了如何混合使用。
2026-07-24 17:11:52
791
原创 Hermes Agent 完全指南:比 Claude Code 更自由的开源 AI Agent,从安装配置到多 Agent 协作
Claude Code是闭源的,受限于Anthropic的生态,而Hermes Agent完全开源(MIT协议),你可以随意修改、定制,甚至把它集成到自己的项目中。如果你觉得Claude Code已经很酷了,那Hermes Agent绝对能让你眼前一亮:它完全开源、高度可定制,还能玩转多Agent协作,简直是开发者的自由天堂。## 总结Hermes Agent是一个开源、自由、强大的AI Agent框架,它比Claude Code更灵活,支持自定义工具、多模型切换,甚至多Agent协作。
2026-07-23 15:06:22
262
原创 5.3 死锁时间线
这种设计,在 _M_acquire()没有 bug 时,是没有问题的,即 _M_acquire()只有在 _M_counter_为 0 时才会陷入睡眠,这样,后序的 _M_release()一定会唤醒它。.release(),包括析构函数中的两次,都会在 _M_release()内部走到快速返回路径,根本不会触发 notify, Worker A 永久睡死。T2:Worker A 进入 _M_acquire(),调用 __atomic_wait_address_bare,继而进入 _S_do_spin。
2026-07-22 14:43:26
216
原创 推理过程展示
18 的核心体验升级:MoA 运行时,每个参考模型的推理过程以独立标签块展示,你可以看到每个模型各自的想法,最后再看聚合器的综合结论。实际效果示例——限流方案设计:│ 令牌桶方案: ││ - 实现简单,内存占用固定 ││ - 适合突发流量场景 │。
2026-07-22 14:42:40
197
原创 用 Solon TeamAgent 落地供应链异常管理与自动补货
public String check_inventory(@Param(description = “SKU 编码”) String sku) {@ToolMapping(description = “查询指定 SKU 当前库存、安全水位、在途数量、日均消耗”)@ToolMapping(description = “根据当前库存、日均消耗、提前期计算建议补货量”)@Param(description = “提前期天数”) int leadTimeDays) {.role(“你是库存监控专家。
2026-07-21 14:36:59
219
原创 基于Tez引擎的 Hive SQL 性能优化
hive.vectorized.adaptor.usage.mode 有 none / chosen / all 三种配置,设置为 all 表示对不支持原生向量化的函数使用适配器包装,使其能在向量化框架内处理,避免因不支持的函数导致整个执行链路回退为行模式。3.MAP1 的task数量只有8个,显然没有充分利用集群资源,那么下一步便是分析表信息:表是否分区和 where 语句有没有使用分区字段、分区数量多少、文件数量多少、数据量多大,带着这些信息尝试增加task数量,提高任务并行度充分利用集群资源。
2026-07-21 14:36:07
255
原创 Mongo CRUD 基础实战——用户与商品管理
{ _id: duplicateId, name: “商品2(重复ID)”, category: “B”, price: NumberDecimal(“20”) },{ _id: duplicateId, name: “商品B(重复ID)”, category: “B”, price: NumberDecimal(“20”) },{ _id: new ObjectId(), name: “商品A”, category: “A”, price: NumberDecimal(“10”) },
2026-07-20 22:10:27
186
原创 目前统计到的节点上微服务的线程总数可达到5000以上。
NIO线程数到达1000(达到设置的最大值)、thread线程2000多(用的Async没有用线程池设置)、Hystrix线程3000多、数据库连接100多、少量redis和mq的线程。因为没有用线程池导致thread线程会不停的进行创建,这里需要改成线程池配置,另外涉及到@Async的使用方式不规范问题。Hystrix线程没有进行配置,或配置没有生效,导致线程也是不停的进行创建,也同时涉及到Hystrix的使用规范问题。因此从统计来看大头在NIO线程、thread线程和Hystrix线程的治理。
2026-07-20 22:08:38
177
原创 从 SwiGLU 到 MoE —— FFN 才是大模型真正的算力核心
零基础认识大语言模型(LLM)工作原理(5.Transformer的FFN模块到底是什么?x → Linear(升维) → GELU(激活函数) → Linear(降维) → y。MoE(Mixture of Experts)为什么是 FFN 的终极形态?FFN 不再只是“变换层”,而是“特征选择 + 特征重组系统”Attention 是“通信系统”,FFN 是“计算系统”。6.6 MoE(混合专家模型):FFN 的终极形态。为什么 FFN(尤其是SwiGLU)是算力大头?
2026-07-19 15:38:19
205
原创 Progressive Disclosure:让模型按需读取命令面
工具太多时,把所有 schema 一次性塞进上下文,会让模型注意力变差。CLI 的 list 和 -h 可以把这个问题拆开。模型先看一级命令,确定领域;再看二级命令,确定动作;最后只读取目标命令的参数说明和示例。上下文更小,误选工具的概率也会下降。
2026-07-19 15:36:51
172
原创 在线状态服务核心类(技术亮点:本地缓存 + 异步更新)
单 Redis 实例性能瓶颈 亿级用户下,单实例 bitCount 操作耗时 > 100ms,无法支撑高并发 分片 Bitmap 架构:将用户 ID 按模 N 分片到多个 Redis 实例 每个分片 bitCount 耗时 < 1ms,整体性能线性提升。实时统计性能问题 每次查询都实时计算所有分片的 bitCount,QPS 超过 1000 就会压垮 Redis 定时聚合 + 多级缓存:定时任务每 10 秒计算一次结果,写入缓存 查询延迟从几十毫秒降低到 < 1ms,QPS 提升 1000 倍。
2026-07-18 14:23:19
196
原创 不止认证:Filter 扩展点的六位插槽模型
安全链上共 7 个位置,其中 AUTHENTICATION(位置 [4])由框架的 IPluginAuthenticationProvider 认证链占用,插件不实现此位置的 Filter 扩展接口。Filter 横向穿透:一条SecurityFilterChain上挂载所有插件的 Filter,宿主无法在运行时针对单个插件的 Filter 做启停控制。之前,全部走宿主鉴权,回调完全没法处理。Filter 在安全链上执行,不能无条件开放——防重放 Filter 如果写坏了,可能把所有请求都拦截掉。
2026-07-15 14:28:27
162
原创 让 AI 第一次拥有行动能力
虽然真正执行这些动作的依然是外部程序,但从用户的角度来看,AI 已经不再只是一个聊天机器人,而开始像一个真正能够"做事"的助手。因此,工具调用(Tool Calling)的本质,就是让模型停止猜测,转而获取真实数据。模型负责判断"是否需要工具",真正执行工具的是外部程序(Agent Runtime)。它让 AI 从"只会说"迈向了"能够做",成为现代 AI Agent 的基础能力。于是,一个越来越明显的问题出现了:LLM 很聪明,但它无法直接与现实世界交互。
2026-07-15 14:27:21
233
原创 AI Agent Teams 配置与实战指南
为什么需要 Agent Teams?你有没有过这种经历:本来要加个登录功能,写着写着顺便"优化"了数据库连接池优化完发现原来的认证逻辑被改坏了改回来,又改坏了另一个模块最后回头一看——登录功能还没做完这就是目标漂移和质量失控。Agent Teams 的思路很简单:把一个 AI 拆成多个角色,每个角色有明确的职责边界。Planner 产品经理 → Builder 开发 → Reviewer QAPlanner(产品经理):分析需求,锁定目标,生成实施 spec。
2026-07-14 21:52:06
299
原创 【机器人 / 强化学习】QAM 与 DIVL:评价-执行闭环的完美配合
0x00 概要LWD 的核心主张是"部署时持续改进",而这一主张在算法层面能否落地,取决于两个关键能力:有没有一双火眼金睛,能从好坏参半的部署数据中看清真正的价值方向?有没有一身好功夫,能把价值方向转化为丝滑流畅的动作改进?DIVL 和 QAM 就是为这两个问题而生的。如果用更形象的方式来理解,DIVL 是"大脑",QAM 是"肌肉"。DIVL 负责"评价"环节:它的核心任务是更新 Q_φ 和 V_ψ 参数,产出越来越准确的"裁判"。
2026-07-14 21:51:19
205
原创 自定义业务错误码的好处?
规范的业务错误码(Business Error Code)是前后端高效协同的核心。使用 Python 的 Enum 来统一管理错误码,可以避免代码中出现“魔术数字(Magic Numbers)”,并且让前端能够根据错误码做精准的页面提示或跳转。二,自定义业务错误码。
2026-07-12 15:02:36
221
原创 表格数据一键批量抓取工具,全程零代码
我就试着搜索看看有无相关工具,还真有,简数采集器有一个功能叫「列表页|表格数据」采集模式,表格里的数据它可以一次性全抓下来,每一行自动变成一条独立数据。首先得创建一个采集任务,在任务列表里点「创建采集任务(高级模式)」,采集模式选「列表页|表格数据(单页多数据)」,填上你要采集的网址,保存。每个字段是独立的,互不影响。你有没有干过这种事,打开一个网页,上面有个表格,几十行数据,你想把它一行一行弄下来,于是一个个复制粘贴,枯燥且手酸。圈选完区块,保存,点「第2步:详情提取器」,进入下一步数据字段配置。
2026-07-12 15:01:35
172
原创 是别的分区节点处理的 > 转发到正确分区
isMyNodePartition()) {//如果该节点不属于本分区 ctx.getSelfId()(Rule Node 自身的 ID)作为 originator → 规则节点 ID 被分配到固定分区 → 集群中只有一个节点负责该规则节点,不会重复触发。ctx.enqueueForTellNext //它走的是持久化的消息队列(Kafka/内存队列),通常用于触发下游节点,N个/触发批次(与设备数相关,但异步消费)通常,规则引擎是“事件驱动”的(设备发一条消息,规则链处理一条)。
2026-07-10 14:24:26
164
原创 代码之外:一个技术人的职场困境与自我和解
基于这一点,我想说的是,大多数普通打工人能够够得着的技术管理岗位,并没有想象中那么高端和神圣,相对应的,它也没有那么遥不可及。我也曾无数次幻想过,自己能像梁文锋那样,从底层出发,做出真正改变世界的产品,而不是一头栽进繁琐的项目事务中,去沟通那些毫无逻辑的业主需求,去编写那些狗屁不通的汇报文档,去应付那些走马观花的检查流程……”但这恰恰是最难受的地方。还有那种几乎不可能完成的任务,你通过妥协的方案勉强救火了,事后没有任何奖励不说,反而被不停地挑刺,批评妥协方案的种种不好,要求必须升级成完美的方案。
2026-07-10 14:22:38
177
原创 清理蓝牙连接状态
执行:进入后执行:scan offquit然后重启蓝牙服务:检查是否还有残留连接:正常情况下输出:表示当前没有残留连接。写入以下完整代码:import re“”"解析 HC-05 发来的数据。保存并退出:Ctrl + OEnterCtrl + X9. 运行程序执行:成功连接后会显示:Connected。
2026-07-09 16:06:40
171
原创 DeepAgents - 使用Postgres作为Checkpoint
langgraph-checkpoint-postgres 提供了 AsyncPostgresSaver,内部自动管理三张表:checkpoints(状态快照)、checkpoint_writes(写操作记录)、checkpoint_blobs(序列化数据)。这两个参数在大多数云厂商的 PG 实例上都有默认值(比如阿里云 RDS 默认 idle_session_timeout = 600s、idle_in_transaction_session_timeout = 60s),你甚至不一定知道它们开着。
2026-07-09 16:06:00
307
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅