在实际落地的 AI Agent 系统中,什么才是真正决定成败的关键?
-
MCP、Function Calling 与 AI Agent:概念辨析与关系梳理
从工程实现角度理解 MCP 和 Function Calling 的区别,以及它们与 AI Agent 的关系。
-
ContextVar底层实现深度解析:从原理到实战
核心洞察
Java的ThreadLocal绑在线程上,Python的ContextVar绑在执行上下文上。在协程时代,一条线程会并发执行多个Task,如果继续用ThreadLocal存储上下文,Task之间会互相覆盖。ContextVar通过”协程创建时复制Context”的机制,完美解决了这个问题。本文将深入解析ContextVar的底层实现机制,并与ThreadLocal进行本质对比。
-
链表 vs 数组:为什么高性能系统偏爱连续内存?
从网络测量的视角看数据结构选择:cache locality 为什么比算法优雅更重要。
-
Web服务器高并发技术深度解析:事件循环 vs 线程池模型
核心对比
事件循环和线程池是两种本质不同的并发模型。事件循环用”时间分片”在一个线程上同时处理数万连接,资源占用极低;线程池用”真并行”让每个请求独占资源,简单但开销巨大。本文将深入解析这两种模型的底层原理、优缺点对比,以及在什么场景下选择哪种架构。
-
RAG 评估的黄金陷阱:为何高召回率不等于高质量答案
在构建 RAG 系统时,我们往往习惯盯着检索指标如精确率和召回率,却忽略了生成环节的真实表现。本文剖析了为何高召回率可能掩盖生成幻觉,强调忠实性和答案相关性才是评估核心,并分享从人工评测到 LLM-as-Judge 的演进路径,以及构建分层评估流水线的实践建议。读完后,你将明白如何避免评估误区,确保 RAG 系统真正可靠。
-
RAG 检索缓存的双层架构:L1 精确匹配 + L2 语义匹配的设计权衡
在 RAG 系统中,检索延迟和 API 成本是两大痛点。本文记录了我们在 CookHero 项目中设计的 L1+L2 双层缓存架构——用 Redis 做精确匹配,用 Milvus 做语义匹配——以及这个设计背后的思考和踩过的坑。
-
对话式 RAG 的预处理链路:意图识别与查询重写的工程取舍
在对话式 RAG 系统中,用户的输入往往不能直接拿去检索——“它怎么做”指代不明,“好的”根本不需要检索。本文记录了 CookHero 项目中意图识别和查询重写模块的设计过程,包括我们在 Prompt 工程上的反复迭代,以及一些”看起来简单但容易做错”的细节。
-
多轮对话场景下的上下文压缩:从爆 token 到稳定运行的工程实践
在构建一个真实的多轮对话系统时,上下文管理是绕不开的痛点。本文记录了我们在 CookHero 项目中如何从”对话几轮就爆 token”走向”稳定运行”的完整过程,包括踩过的坑、做过的权衡,以及最终的压缩策略设计。
-
理解 LLM 推理中的 KV Cache 机制
在大型语言模型(LLM)的推理过程中,KV Cache(键值缓存)是一个至关重要的优化机制。它显著提升了模型在生成长文本时的效率和响应速度。本文将深入解析 KV Cache 的工作原理及其在推理中的应用。