文章
共 61 篇 · 在这座岛上写下的思考
大模型应用的可观测性:日志、指标与追踪
大模型应用出问题时,"哪里错了"往往比传统服务更难定位——可能是检索没召回、可能是 prompt 有歧义、也可能是模型本身的随机性。可观测性决定了你能不能快速找到原因。
SSE 流式输出:让大模型边想边说
大模型生成一段长回答可能要十几秒,用户盯着空白页面会以为卡死。SSE 让内容边生成边推送,把"首字延迟"从十几秒压到一秒内。这篇文章讲清 SSE 的原理、实现和踩坑点。
提示词工程:从"能跑"到"稳定"
写一个能出结果的 prompt 很容易,写一个在几百种输入下都稳定的 prompt 很难。这篇文章讲清结构化提示的要素、输出格式约束的方法,以及怎么用版本管理让 prompt 的改动可回溯。
向量数据库选型:Milvus、Qdrant 与 pgvector
向量检索是 RAG 的地基,但选型不只是比性能。数据量级、是否需要混合检索、运维成本、能否复用现有数据库,这四个问题决定了答案。
大模型应用的 Token 成本怎么算与控制
大模型应用的成本不只是"每次调用多少钱",而是输入、输出、重试、上下文膨胀共同决定的。这篇文章拆解成本的构成,并给出工程上真正有效的六个控制手段。
大模型应用响应慢怎么优化
首字延迟高,往往不是模型不够快,而是你把三次模型调用串成了一条线。减少往返次数比换更快的模型有效得多。这篇拆解「响应慢」的六个方向和「状态混乱」的五个方向,并给出三个核心重构动作。
用 LangGraph 构建客服状态机
把多轮流程写在提示词里,同一句话跑两次可能走两条不同路径,线上出问题还无法复现。LangGraph 用「显式状态 + 节点 + 条件边」把隐式流程变成可画、可测、可恢复的图,这篇讲清它的建模方式和分流判据该怎么选。
MCP:模型上下文协议解决了什么问题
在没有统一协议之前,每个 Agent 对接每个工具都要单独写一遍适配,M 个模型乘 N 个工具就是 M×N 份胶水代码。MCP 用一套开放标准把这件事收敛成 M+N,代价是引入了一层进程边界和新的上下文开销。
大模型的记忆系统怎么设计
大模型本身是无状态的,所谓的「记忆」全靠每次请求重新喂进去。但上下文窗口不是记忆系统,把所有历史都塞进去会带来成本、延迟和记忆漂移。这篇讲清工作记忆、短期记忆、长期记忆的分层设计,以及召回复核与时间衰减怎么做。
Function Calling 的实现原理
模型从来没有执行过你的函数,它只是输出了一段结构化 JSON。把 Function Calling 拆成六步来看,你会发现它的本质是「结构化输出 + 客户端分发」,理解了这点,并行调用、参数校验、失败重试的边界就都清楚了。
Agentic RAG:让检索从固定流程变成自主决策
传统 RAG 是一条「查询→检索→生成」的单向管道,简单问题够用,一旦遇到多跳推理就非常脆弱。Agentic RAG 把检索变成 Agent 可以反复调用的工具,自主决定检索什么、检索几次。这篇讲清三大瓶颈、三点转变和量化收益。
RAGAS 评测:怎么知道 RAG 答得好不好
光看答案对不对,分不清是检索的问题还是模型的问题。RAGAS 的真正价值不是给一个分数,而是把这两层拆开——它要你提供检索片段,所以能定位是哪一环的锅。这篇讲透指标分类、四分支诊断、修法和工具的边界。
怎么保证 RAG 的召回率
召回是 RAG 效果的天花板——没被捞回来的内容,后面再怎么重排、再怎么换大模型都救不回来。这篇拆开五种互补的召回手段,讲清「宁多勿漏」这个取舍的代价,以及为什么多路分数不能直接相加。
文档切块策略:从固定长度到语义切块
切块是 RAG 里最容易被拍脑袋决定的参数,「按 500 字切」抄下来只要一秒钟。但 chunk 是检索单元,它的设计目标是「能独立回答一个问题」。这篇从切口复现讲到结构感知、父子块和语义切块,给出参数怎么定的完整思路。
为什么要把大模型部署到本地
云端 API 调用简单、按量付费,看起来很划算,但长期使用成本、数据合规和稳定性这三笔账算下来,本地部署在特定场景下反而是更优解。
RAG 的核心流程:离线建库与在线推理
很多人把 RAG 理解成「向量库 + 大模型」,效果不好就换更强的模型。但一条链路上有十几个环节,模型只占两三个。这篇把离线建库和在线推理两条链路完整拆开,并说明为什么排障要按这两半切开。