当前位置: 首页 > news >正文

思维链(CoT)× 智能体(Agent)× 提示词(Prompt)讲解

1. 概述(What & Why)

  1. 目标:用通俗语言、可复制模板与可运行示例,让读者上手并落地。
  2. 适用人群:开发者 / 产品 / 数据人 / 研究者。
  3. 读完收获
    1. 弄清 Prompt / CoT / Agent 的边界;
    2. 掌握 Zero‑shot → 自一致性 → ReAct/PoT/ToT 的增量方法;
    3. 拿到 评测与风控 清单;
    4. 可直接用的 代码片段 / 模板

2. 概念与边界:Prompt vs CoT vs Agent

2.1 Prompt(提示词)

  • 定位:输入层的指令与约束(系统/角色/范围/格式/Few‑shot 示例)。
  • 特征:单轮、无状态、无外部工具;成本最低。

2.2 CoT(Chain‑of‑Thought,思维链)

  • 定位:输出层的中间步骤显式化(“先写过程,再给结论”)。
  • 形态:Zero‑shot 触发语 / Few‑shot 示例 / 自一致性投票 / LtM 拆解 / ToT 搜索。
  • 特征:单轮但多步;可解释性和稳定性提升;成本中等(token↑)。

2.3 Agent(智能体/编排器)

  • 定位:编排层控制循环:思考 → 行动(工具) → 观察 → 反思 → 继续/结束
  • 能力:工具选择与参数规划、状态/记忆、失败重试、停止条件。
  • 特征:多轮、有状态、有外设;能力最强、成本最高。

2.4 分层关系(从下到上)

  1. 模型推理引擎 → 2) 提示层(Prompt) → 3) 推理风格(CoT/SC/LtM/ToT/PoT) → 4) 编排层(Agent/ReAct) → 5) 数据/工具层(检索/SQL/代码执行/HTTP 等)

3. 方法谱系(从入门到进阶)

3.1 Zero‑shot CoT(零样本)

  • 做法:提示里加触发语 “请一步一步推理”
  • 适用:通用复杂题、无需示例即可生效。

3.2 Few‑shot CoT(少样本)

  • 做法:放 2–4 个 题目→步骤→答案 的高质量样例。
  • 适用:题型稳定、风格需要模仿时更稳。

3.3 Self‑Consistency(自一致性)

  • 做法:以较高温度一次生成 k=5–20 条不同思路链,对最终结论多数表决
  • 价值:显著增稳,常作为低成本“Boost”。

3.4 Least‑to‑Most(由易到难拆解)

  • 做法:先列 3–5 个子问题(编号)→ 逐一求解 → 串联总解。
  • 适用:层次清晰、可分解的问题。

3.5 Tree‑of‑Thoughts(思维树搜索)

  • 做法:关键节点分叉多条思路,配评估/启发式搜索。
  • 适用:规划/组合优化/创作等分叉巨大场景(更慢更强)。

3.6 ReAct(Reason + Act)

  • 做法:在链中交替“思考/行动/观察”,行动为检索/计算/代码执行等。
  • 价值:显著降低幻觉、提升可验证性。

3.7 PoT(Program‑of‑Thought)

  • 做法:把可计算/可验证部分外包给执行器(Python/SQL/正则/公式引擎)。

4. 工程落地(最小可用)

4.1 统一输出协议(建议)

  1. 步骤:≤8 条、每条 ≤25 字;
  2. 中间量:用 k=v(如 total=84);
  3. 最终答案:单行 最终答案:…
  4. 工具日志[tool=name, args=…, result=要点]

4.2 Prompt‑only(一次性调用)

prompt = ("指令:将以下文本改写为正式语气;只输出结果。\n""文本:明天开会准时到"
)
text = llm(prompt, temperature=0.2)
print(text)

4.3 CoT + 自一致性(单轮、多样采样→投票)

from collections import CounterFINAL = "最终答案:"def extract_final(s):i = s.rfind(FINAL)return s[i+len(FINAL):].strip() if i != -1 else s.strip().splitlines()[-1]def majority_vote(xs):cnt = Counter(xs)return cnt.most_common(1)[0][0]base = ("请一步一步推理,用要点式步骤列出关键中间过程;""最后用‘最终答案:’输出结论。\n""问题:一箱24瓶水,买3箱,另送半箱,共多少瓶?"
)
samples = [llm(base, temperature=0.8) for _ in range(8)]
answers = [extract_final(s) for s in samples]
winner  = majority_vote(answers)
print("Best Answer:", winner)

4.4 ReAct Agent(思考 ↔ 行动 ↔ 观察)

import re, jsonFINAL = "最终答案:"def tool_calculator(expr):assert re.fullmatch(r"[0-9\.\+\-\*\/\(\)\s]+", expr)return str(eval(expr, {"__builtins__": None}, {}))def tool_search(q):kb = ["引入第二供应商,降低单点故障","搭建接口适配层与契约测试,隔离外部 API 变更","关键路径加缓冲并滚动风险评审"]return json.dumps(kb, ensure_ascii=False)def react(task):trace = []if re.search(r"[0-9\+\-\*\/\(\)]", task):thought = "思考: 先用计算器得到表达式结果\n行动: calculator(expr=(24*3)+12)"obs = tool_calculator("(24*3)+12")trace.append((thought, obs))final = f"{FINAL}{obs}(依据:计算器)"trace.append((final, "done"))else:thought = "思考: 检索本地知识库拿到三条缓解措施\n行动: search(query=项目延误 缓解)"obs = tool_search("项目延误 缓解")trace.append((thought, obs))final = f"{FINAL}见要点(依据:检索)"trace.append((final, "done"))return trace

4.5 参数与实践建议

  1. 温度:CoT/SC 采样期 0.6–1.0;最终敲定降温。
  2. k 值:SC 建议 5–20;离线画 Reasoning@k 曲线。
  3. 链长:严格控制(≤8 步),强制“要点式”。

5. 评测与观测(把“更好”量化)

  1. 任务正确率:EM/Accuracy(算术/选择/抽取)。
  2. Reasoning@k:k=1/5/10 的准确率曲线(验证多采样红利)。
  3. 成本/时延:总 tokens、平均链长、P95、工具次数。
  4. 稳定性:同题多次答案一致度(可用 κ 值)。
  5. 可解释性:是否覆盖关键中间量(等式/单位/证据要点)。
  6. 观测日志prompt_hash / temperature / steps / FINAL / tokens / tool_calls / duration

6. 安全与风控

  1. Prompt/检索注入:模板化输入、参数白名单、危险指令拦截(如“忽略所有指令”)。
  2. 代码/SQL 沙箱:CPU/内存/IO/网络/时长限制;只读凭据与最小权限。
  3. 数据合规:脱敏、分级;对外只展示“要点依据”,完整链留内部审计。

7. 选型与架构(三问决策)

  1. 需要外部信息/执行吗? 需要 → Agent(ReAct/PoT)
  2. 多步推理且要依据吗? 是 → CoT(+ SC/LtM/ToT)
  3. 时延/成本敏感吗? 敏感 → Prompt‑only 或短链 CoT

8. 提示词模板库(可直接复制)

8.1 通用 CoT(零样本)

你是一个严谨的解题助理。请一步一步推理,用“要点式步骤”列出关键中间过程;
最后用“最终答案:”给出结论。若涉及计算,请给出等式并做单位/数量级检查。
问题:{...}

8.2 Least‑to‑Most(拆解)

先把问题分解为 3–5 个更小的子问题(编号列出);逐一给出中间结论;
最后合并这些结论,输出“最终答案:……”

8.3 自一致性(系统/调用侧)

系统:对同一问题生成多份“思路各不相同”的解答草稿(≥5 份)。
解码:temperature=0.8, top_p=0.9, n=8

8.4 ReAct(推理 + 行动)

采用“思考/行动/观察”的循环:
- 思考:说明需要的信息或验证点(1–2句);
- 行动:检索/计算/代码执行(描述动作与参数);
- 观察:记录关键结果(要点式);
重复以上直到可以下结论;最后输出“最终答案:……(并列出用到的关键信息要点)”。

8.5 结构化输出(JSON)

请按以下 JSON 输出:
{"steps": ["要点1", "要点2", "要点3"],"final_answer": "..."
}
问题:{...}

9. 代表性案例

9.1 算术

  1. 题目:一箱 24 瓶水,买 3 箱,另送半箱,共多少瓶?
  2. 步骤要点:72 + 12 = 84。
  3. 最终答案:84。

9.2 SQL 边界

  1. 问题WHERE status='ACTIVE' AND updated_at >= '2025-10-01' 查不到。
  2. 排查链
    1. 列类型是否含时间;
    2. 边界写法是否应 00:00:00
    3. 字符串解析格式;
    4. EXPLAIN 看索引命中。

9.3 阅读整合

  1. 任务:三段材料提到“延误原因/缓解措施/新发布日期”,请汇总。
  2. 输出:三类要点表格 + “最终答案:2025‑12‑15”。

10. 常见坑与 FAQ

  1. 链越长越好? 不是。控制 ≤8 步,聚焦关键中间量。
  2. 有了 CoT 还会算错? 会。可计算的交给 PoT/执行器;加“验算步”。
  3. Agent 一定更强? 不一定。无外设需求时,纯 CoT 更省更稳。
  4. 提示词万能? 不是。质量受模型与编排上限约束,提示工程是“锦上添花”。

11. Roadmap:训练与蒸馏(可选)

  1. 数据格式{"input": 问题, "rationale": 步骤文本, "output": 答案}
  2. 蒸馏:用大模型生成 rationale+output,筛错链后监督小模型(SFT/LoRA)。
  3. 实践:步骤短而关键(等式/检查点/证据要点),可结构化(JSON)。

12. 附录:最小示例目录

cot-prompt-agent-starter/
1) README.md
2) requirements.txt
3) common/3.1) llm.py3.2) utils.py
4) prompt_only/main.py
5) cot_sc/main.py
6) agent_react/main.py
7) data/knowledge.json
8) examples/8.1) arithmetic.json8.2) decision.json

13. 理论加餐:原理、机制与边界

13.1 生成模型视角:显式/隐式“理由变量”

  1. 将模型看作条件分布 p_theta(y, r | x),其中:
    • x:输入;r:理由/步骤(rationale);y:最终答案。
  2. Prompt-only 近似 argmax_y p(y|x)。
  3. CoT 等价于先考虑 r 再生成 y:argmax_{y,r} p(y,r|x)。
  4. 自一致性(Self-Consistency)相当于在不同 r 上做多样采样,再对 y 多数表决,近似边缘化 r。
  5. 过程监督(Process Supervision)显式优化 r 的质量;结果监督(Outcome Supervision)只看 y 的正误。

直觉:当一条答案可以由多种正确思路到达时,对 r 进行多样化采样/搜索能提升稳定性与上界。

13.2 搜索即推理:把 CoT 看成在“思路空间”的搜索

  1. 单链 CoT:在一条路径上贪心或采样展开(近似深度优先)。
  2. Tree-of-Thoughts:在关键节点分叉(控制宽度与深度),用启发式或打分函数筛选。
  3. Self-Consistency:在不同随机种子/温度下重复独立搜索,最后聚合。
  4. ReAct/Agent:搜索过程中允许外部行动(检索/计算/API),将观察结果反馈到搜索状态。

13.3 何以有效:三条机制

  1. 解耦复杂性:把 x -> y 的复杂映射分解为可验证的子映射 x -> r1 -> … -> rk -> y。
  2. 错误可见性:中间量可被校验(单位、等式、引用),便于纠错与回退。
  3. 多样性增益:不同 r 提供解空间覆盖,投票或打分减少偶然误差与幻觉。

13.4 何时无效或负效

  1. 短路任务(答案显然/模式化强):链条只会增加冗余与成本。
  2. 不可验证子步(主观创作/价值判断):长链未必更好,可能合理化幻觉。
  3. 分解失配:错误的任务分解会放大错误(garbage in, garbage out)。

13.5 忠实性 vs 似然性(Faithfulness vs Plausibility)

  1. 忠实性:步骤是否真实反映了可复现实证的推断过程。
  2. 似然性:步骤读起来是否合理顺滑。
  3. 风险:CoT 可能产出“看似有理但不真实”的解释。工程上用执行器/校验器/可追溯证据提升忠实性。

13.6 长度偏置与成本控制

  1. 长度-似然耦合:更长输出可能把概率质量摊薄,稳定性下降;也可能用填充语掩盖错误。
  2. 控制策略:
    • 明确步数上限与“要点式”格式;
    • 要求结构化中间量(k=v、JSON);
    • 设定停止条件/早停(达到置信阈值即收敛)。

13.7 训练范式:理由蒸馏与过程奖励

  1. 理由蒸馏:用强模型或人工标注的 r 微调小模型,移植“会想”的分解风格。
  2. 过程奖励/验证器:训练逐步判别器或规则集合,对中间步骤评分,引导搜索与生成。
  3. 混合监督:结果监督 + 过程监督;离线生成候选步骤,在线筛选、打分、再训练。

13.8 校准与不确定性

  1. 答案层不确定性:自一致性投票分布的熵可作为置信度近似。
  2. 步骤层不确定性:
    • 关键等式/事实做重复独立求解并比较一致度;
    • 证据的引用覆盖率与一致性(是否自相矛盾)。
  3. 阈值策略:低置信度时自动触发 ToT、再检索或升级模型。

13.9 错误分解与调优路径

  1. 检索错(拿错材料)→ 强化检索/过滤;
  2. 计算错(口算/逻辑差)→ 交给 PoT/执行器;
  3. 编排错(停不下来/选错工具)→ 策略、停止条件、限流与熔断;
  4. 表达错(指令误解/格式不符)→ 收紧 Prompt 协议与单测。

13.10 安全与合规的边界

  1. 信息暴露:完整链可能泄露敏感推断或策略;对外只展示要点依据与可验证结果。
  2. 对抗样本:攻击者可借链条注入错误先验;需模板化输入、参数白名单与沙箱。
  3. 可审计性:保留思考/行动/观察日志(脱敏、分级)。

13.11 何时选 CoT、ToT、ReAct(理论视角)

  1. 可分解且可验证、无需外设 → CoT + 自一致性(近似边缘化理由)。
  2. 分叉巨大/全局规划 → ToT(在思路空间显式搜索与剪枝)。
  3. 需要事实/计算/接口 → ReAct/PoT Agent(推理=搜索,行动=外部干预/计算)。

13.12 实操清单(把理论落到规范)

  1. 为任务定义可验证的中间量与停机条件。
  2. 统一输出协议(步数上限、JSON/要点式、“最终答案:”标签)。
  3. 以 SC/ToT/Verifier 作为求精层;把计算交给 PoT。
  4. 设不确定性阈值:自动升配搜索/模型/检索;低置信度时输出“部分答案 + 待验证”。
  5. 对外展示依据而非长链全文;内网保留完整可审计日志。
http://www.dtcms.com/a/565779.html

相关文章:

  • MAC-SQL 图1
  • 第一章 WPF概述
  • 建设网站主机免费版展厅设计与施工公司
  • 如何注册网站免费的吗wordpress注释符号
  • 博客网站快速排名常用的设计软件有哪些
  • 做直播导航网站有哪些网站后端开发语言
  • C# 常用集合的使用
  • 合肥市建设网官方网站公司微网站怎么做的
  • 网站服务器的费用如何在网站后台删除栏目
  • 3.4 Lua代码中的文件操作
  • 高盛西湖智谷引进高科技企业 聚集产业高质量发展
  • 行业网站建设公司自己怎么做一个企业官网
  • Hercules
  • Python从入门到精通:(2)Python 核心进阶教程从数据结构到面向对象
  • 普洱专业企业网站建设制作书签图片大全简单漂亮
  • 违法网站开发者网页在线短网址生成器
  • HWiNFO下载和安装图文教程(附安装包,非常详细)
  • 【Unity基础详解】(6)Unity核心:物理系统
  • LLM基础·Huggingface使用教程
  • 新手学做网站百度云做塑胶网站需要什么
  • Oracle故障处理|【实战笔记】一次“删不掉的表”:全局临时表 ORA-14452 故障复盘
  • npm install core-js不成功
  • 【论文精读】SimDA:用于高效视频生成的简单扩散适配器
  • 许昌哪个网站做苗木百度网站介绍显示图片
  • CLIP:打破模态壁垒,重塑AI理解世界的方式
  • firewall-cmd 防火墙操作技巧详解(适用于 CentOS / RHEL 系列)
  • 视频融合平台EasyCVR结合视频智能分析技术构建高空抛物智能监控系统,守护“头顶上的安全”
  • python node 网站开发广东省建设工程执业中心网站
  • ModelEngine智能体全流程体验评测:从创建到部署的深度实践
  • 青岛北京网站建设公司哪家好一万元小型办厂设备