磨刀不误砍柴工 · 打好基础才能真正做工程化
不管是 Prompt Engineering、RAG、Fine-tuning,还是 Agent 工具调用——所有的"花活",基本上都围绕着这个 message list 处理。理解它,你才能真正判断方案好不好、问题出在哪里。
精心构造 messages,让模型"看到"正确的上下文——系统指令、角色定义、少样本示例,全部是往 message list 里塞内容。
从外部知识库取回相关文档片段,拼进 message list 再发给模型——本质是在运行时扩充上下文。
模型输出 function call → 执行工具 → 把结果 append 回 message list → 再次推理。每一轮都是在积累上下文。
把大量"理想 message list"烧进模型权重——让模型默认就能按期望方式处理上下文,省去每次都要在 prompt 里说明的成本。
System Prompt 被截断、历史对话占满窗口——问题根本不在 Prompt 写得好不好,而在上下文管理。
Chunking 粒度、Embedding 模型、相似度阈值——不了解原理就不知道该查哪里,只能瞎试。
是上下文没给对,还是参数里压根没这个知识——两件事的修复方式完全不同,搞错方向浪费大量时间。
我会花比较大的篇幅讲解这部分——不推荐跳过。
理解了 message list 的处理逻辑,后面所有工程化方案你都能一眼看穿它在做什么,为什么有效,局限在哪。