Output Constraint: LLM 输出约束

Output Constraint(输出约束) Output Constraint 是通过提示词、格式规范或模型能力,对 LLM 的输出内容、结构、长度、风格等进行约束,使输出结果可预期、可解析、可被下游系统直接消费的一类技术。 在 AI Agent 场景中,输出约束尤为重要——Agent 的输出往往需要被代码解析、传递给下一个工具,或渲染到 UI,任何格式偏差都可能导致流程中断。 约束维度 维度 说明 示例 格式约束 要求输出为特定结构 JSON、XML、Markdown 表格、YAML 内容约束 限定输出范围或值域 只能从给定选项中选择、不得包含某类内容 长度约束 限制输出的字数或条数 “不超过 100 字”、“恰好输出 3 条建议” 风格约束 限定语气、人称、语言 正式/口语、中文/英文、第一人称 Schema 约束 强制输出符合 JSON Schema 字段类型、必填项、枚举值 方式一:提示词约束(Prompt-based) 最简单直接的方式,在 System Prompt 或 User Prompt 中明确描述输出格式: system_prompt = """ 你是一个情感分析助手。 输出要求: - 只输出 JSON,不要有任何额外文字 - 格式如下: { "sentiment": "positive" | "negative" | "neutral", "confidence": 0.0 ~ 1.0, "reason": "简短理由(不超过 20 字)" } """ response = llm.call(system_prompt, user_input="这个产品真的太好用了!") # 输出:{"sentiment": "positive", "confidence": 0.95, "reason": "用户使用了强烈的赞美语气"} 优点:通用,任何模型都支持 缺点:无法 100% 保证格式,模型偶尔会"越界" ...

Created 26266-04-26 · Updated 23236-07-23 · 2 min · 316 words · -

Chain of Thought (CoT): 思维链

思维链(Chain of Thought,CoT) CoT 是 Chain of Thought(思维链)的缩写。 思维链是一种让大语言模型在给出最终答案之前,先逐步输出中间推理过程的提示技术,是 ReAct、Tree of Thoughts 等众多 Agent 推理框架的基础。 用一句话概括:思维链就是通过提示词告诉模型"先把推理步骤写出来,再给结论"。 一个直观的比喻:就像项目管理里不直接说"把产品做出来",而是拆成"需求 → 设计 → 开发 → 测试 → 上线"这几个里程碑节点——CoT 提示词做的就是这件事:告诉模型"达到最终答案之前,先经过哪几个中间节点"。模型拿到这些节点后,自己填充每个节点之间的具体内容,而不是直接跳到终点。里程碑节点越清晰合理,模型走偏的概率就越低。 CoT 是提示词概念还是模型推理概念 CoT 同时横跨两个层面,两者不可分离: 提示词层面:在提示词里给出推理结构框架(先分析已知条件、再逐步推理、最后给结论),但不需要也不可能提前写出每一步的具体内容 模型推理层面:模型接收到结构约束后,在逐 token 生成 response 的过程中自己填充每一步的具体内容 关键在于:LLM 是逐 token 生成的,每生成一个 token 都会参考前面所有已输出的内容。写出推理步骤不是推理完成后的附加结果,而是推理本身的载体: 写出"步骤 1:..." → 这段文字进入上下文 ↓ 生成"步骤 2:..."时参考步骤 1 → 推理被约束在正确方向上 ↓ 生成最终结论时参考所有步骤 → 结论更准确 如果不写出步骤,中间推理只存在于模型的隐式状态(注意力权重)里,无法作为显式上下文影响后续生成,更容易偏移。 因此,CoT 的本质是:显式约束 vs 隐式依赖: 不用 CoT:完全依赖模型训练出来的内部权重,简单问题通常没问题 用 CoT:在上下文层面施加显式约束,对复杂、多步骤任务效果提升明显 CoT 的收益与任务复杂度正相关——越复杂的推理任务,CoT 的价值越显著。 ...

Created 26266-04-26 · Updated 23236-07-23 · 4 min · 713 words · -