AI Agent Harness Engineering 规划能力突破:Prompt Chain 让智能体学会复杂任务拆解


1. 标题 (Title)

  • 从“一次性瞎蒙”到“分步骤通关”:Prompt Chain 解锁 AI Agent 百万级复杂任务规划力
  • Harness Engineering 第一课:用 Prompt Chain 帮 LLM 拆解任务、追踪进度、自我修正
  • 告别 Agent 规划混乱!手把手教你构建可解释、可扩展、可落地的 Prompt Chain 系统
  • AI Agent 落地的核心钥匙:Prompt Chain 的原理、设计框架与生产级实战案例

2. 引言 (Introduction)

2.1 痛点引入 (Hook)

嘿,各位正在尝试把大语言模型(LLM)从“聊天玩具”变成“生产力工具”的开发者们,你们是不是遇到过下面这些让人抓耳挠腮的场景?

场景一:复杂任务直接问 LLM,结果一塌糊涂
“帮我写一篇符合硅谷投资风格的A轮商业计划书,要求包含市场分析(3年全球趋势、20页用户调研报告提炼)、产品路线图(MVP到Beta到V1.0的里程碑、每阶段技术栈选型验证)、财务预测(36个月现金流模型、GAAP合规损益表、用户LTV/CAC计算逻辑验证)、团队介绍(5个岗位的JD、面试题库设计)、融资需求拆解(2000万美金的使用比例、里程碑式付款条款)。”
当你把这堆要求甩给 GPT-4 Turbo 或者 Claude 3 Opus 后,它要么给你一个只有10页、全是套话的PPT大纲,要么财务预测的数据全是错的(甚至连GAAP是什么都忘了提),要么用户调研的提炼完全不符合你的产品赛道。更气人的是,你问它“刚才的调研数据来自哪里?”,它还会一本正经地编一个“2024年Gartner中国AI SaaS市场白皮书第127页”——结果你去查Gartner,根本没有这一页!

场景二:用了 ReAct 框架,Agent 还是容易“迷路”或者“无限循环”
好不容易从 Prompt Engineering 进阶到了 Agentic Workflow,听说 ReAct(Reasoning + Acting)是解决复杂任务的神器,结果你自己写的 ReAct Agent 要么陷入“Reasoning → Thinking → Reasoning”的死循环,要么在执行到某个子任务时(比如调用第三方API查天气),突然因为 API 响应超时就直接放弃任务,要么规划的子任务逻辑混乱,比如先写财务预测,再写市场分析,再反过来用市场分析改财务预测,但改的时候又忘了保留用户调研的部分逻辑。

场景三:想让 Agent 处理需要“长期记忆”和“多维度验证”的任务,完全不知道从哪下手
比如你想让 Agent 帮你“监测公司GitHub仓库过去7天的所有PR,找出包含安全漏洞的代码、统计符合ESLint规范的PR比例、生成给团队的周报并自动发送到Slack”。这里面需要:长期记忆(记住之前已经处理过的PR,避免重复分析)、多工具调用(GitHub API、安全扫描工具API、ESLint CLI、Slack API)、多维度验证(安全扫描的结果要和代码变更的上下文结合,不能只靠工具的静态报告;周报要和团队的周会计划对比,突出重点)。单纯用单个Prompt或者简单的ReAct框架,根本做不到稳定、高效、可复现。

为什么会出现这些问题?核心原因在于:大多数 LLM(包括最强大的 GPT-4o 和 Claude 3.5 Sonnet)的“单次推理窗口”是有限的,而且它们在没有明确“指令模板”和“任务分解约束”的情况下,很难自发地进行“结构化的复杂任务规划”、“子任务间的依赖管理”、“长期进度的追踪与修正”、“多源信息的整合与验证”

而今天要给大家分享的 Prompt Chain(提示链) 技术,正是解决这些问题的一把金钥匙!它属于 AI Agent Harness Engineering(智能体线束工程) 的核心分支——所谓的“Harness Engineering”,就是指“通过一系列可复用、可组合、可监控的‘线束组件’(比如 Prompt 模板、工具调用协议、记忆管理模块、验证逻辑链),把原本‘不可控’的 LLM 变成‘像计算机程序一样稳定、可调试、可扩展’的 AI Agent 的工程实践体系”。

2.2 文章内容概述 (What)

本文将带你从 “为什么要学 Prompt Chain” 讲起,逐步深入到 “Prompt Chain 的核心原理”“设计 Prompt Chain 的黄金框架”“从0到1构建生产级 Prompt Chain 系统的实战案例”(我们会用 Python + LangChain + OpenAI GPT-4o Mini 构建一个“硅谷A轮商业计划书自动生成器”,这个生成器能覆盖引言里提到的所有要求,甚至能自我验证、自我修正),最后再讨论 “Prompt Chain 的未来发展趋势”“生产级部署的最佳实践”

2.3 读者收益 (Why)

读完本文,你将能够:

  1. 深刻理解 LLM 单次推理的局限性,以及 Prompt Chain 如何弥补这些局限性;
  2. 熟练掌握 Harness Engineering 的基本概念,以及 Prompt Chain 在其中的定位;
  3. 灵活运用 本文提出的“DIVE-CHECK-REFINE(拆解-验证-修正)”黄金框架,设计任意复杂场景的 Prompt Chain;
  4. 独立完成 一个覆盖“任务拆解、进度追踪、工具调用、多维度验证、自我修正”的生产级 Prompt Chain 实战项目;
  5. 避免踩坑 生产级 Prompt Chain 部署中的常见问题(比如 Prompt 漂移、Token 爆炸、推理成本过高、响应速度过慢);
  6. 打开视野 了解 Prompt Chain 的未来发展方向(比如自适应 Prompt Chain、基于强化学习的 Prompt Chain 优化、跨模态 Prompt Chain)。

3. 准备工作 (Prerequisites)

3.1 技术栈/知识

为了能顺利完成本文的实战项目,你需要具备以下知识:

  1. Python 基础:熟练掌握 Python 3.9+ 的语法(包括函数、类、装饰器、异步编程、上下文管理器),能熟练使用 pippoetry 管理 Python 依赖;
  2. Prompt Engineering 基础:了解基本的 Prompt 设计原则(比如清晰性、具体性、约束性、示例驱动),知道什么是 Zero-Shot、Few-Shot、Chain-of-Thought(CoT)、Tree-of-Thought(ToT);
  3. LLM API 调用基础:至少使用过一种主流 LLM 的 API(比如 OpenAI GPT-3.5 Turbo/GPT-4o、Anthropic Claude 3.5 Sonnet、Google Gemini 1.5 Pro);
  4. Git/GitHub 基础(可选,但推荐):实战项目中我们会模拟调用 GitHub 仓库的 Issue/PR 提取API,了解 Git/GitHub 的基本操作能更好地理解这个子任务;
  5. 异步编程基础(可选,但推荐):生产级 Prompt Chain 通常需要并行执行多个独立子任务(比如并行调用市场调研API、竞品分析API),了解 Python 的 asyncio 库能显著提升系统的响应速度。

3.2 环境/工具

你需要准备以下环境和工具:

  1. 操作系统:Windows 10/11、macOS 12+、Linux(Ubuntu 20.04+ 推荐);
  2. Python 环境:Python 3.10+(推荐使用 pyenv 管理 Python 版本,使用 poetry 管理项目依赖);
  3. LLM API 密钥:至少获取一个主流 LLM 的 API 密钥(本文实战项目会使用 OpenAI GPT-4o Mini,因为它的性价比最高——推理成本只有 GPT-4o 的 1/100,响应速度也很快;如果你有 Anthropic Claude 3.5 Sonnet 的 API 密钥,也可以替换使用,效果会更好);
  4. 代码编辑器/IDE:VS Code(推荐安装 Python 插件、LangChain 插件)、PyCharm 等;
  5. Postman/Thunder Client(可选,但推荐):用来测试第三方 API 的调用(比如 GitHub API、Slack API);
  6. Jupyter Notebook/Lab(可选,但推荐):用来调试 Prompt Chain 的各个环节,比如单独测试某个 Prompt 模板的效果、单独测试某个工具调用的逻辑。

4. 核心内容:原理篇——从 LLM 单次推理到 Prompt Chain 多轮协同

4.1 核心概念

在正式开始讲解 Prompt Chain 之前,我们需要先明确几个 Harness Engineering 和 Prompt Chain 领域的核心概念,这些概念是我们后续学习的基础。

4.1.1 AI Agent(智能体)

核心概念:AI Agent 是指“能够感知环境(Perceive)、做出决策(Decide)、执行动作(Act)、并根据环境反馈进行学习/修正(Learn/Refine)的自主软件实体”。
问题背景:传统的 LLM 应用(比如聊天机器人、文本生成器)只能“被动地响应用户的输入”,无法“主动地感知环境、制定长期计划、执行多个动作”;而 AI Agent 正是为了解决这个问题而诞生的。
问题描述:如何让 LLM 具备“自主行动能力”?
问题解决:通过给 LLM 配备“感知模块”(比如文件读取器、API 调用器、摄像头/麦克风接口)、“决策模块”(比如 Prompt Chain、ReAct、ToT、Reflexion)、“执行模块”(比如工具调用引擎、代码解释器)、“记忆模块”(比如短期记忆、长期记忆、检索增强生成 RAG),把 LLM 变成一个“自主软件实体”。
边界与外延

  • 边界:目前的 AI Agent 还处于“弱智能体”阶段,只能处理“结构相对清晰、目标相对明确、约束相对可控”的任务,无法处理“结构完全模糊、目标完全不明确、约束完全不可控”的任务(比如“帮我发明一种新的能源材料”——虽然 LLM 能提供一些思路,但自主研发还是不可能的);
  • 外延:AI Agent 的外延非常广,包括个人助理 Agent、办公自动化 Agent、代码生成 Agent、游戏 NPC Agent、自动驾驶 Agent(虽然自动驾驶 Agent 更多依赖计算机视觉和强化学习,但 LLM 也可以用来处理“自然语言交互”和“复杂场景的决策辅助”)等。
    概念结构与核心要素组成
    一个完整的 AI Agent 通常包含以下 5 个核心要素:
  1. LLM 核心(Brain):负责“理解用户意图”、“制定任务计划”、“做出决策”、“整合多源信息”;
  2. 感知模块(Sensors):负责“从环境中获取信息”,比如文件读取、API 调用、数据库查询、RAG 检索、摄像头/麦克风输入等;
  3. 执行模块(Actuators):负责“执行决策模块制定的动作”,比如工具调用、代码解释、文件写入、API 调用、Slack 消息发送等;
  4. 记忆模块(Memory):负责“存储和检索 Agent 的历史信息”,分为:
    • 短期记忆(Short-Term Memory, STM):存储“当前任务的上下文信息”,比如用户的初始输入、之前的子任务执行结果、当前的进度状态,通常存储在 LLM 的推理窗口(Context Window)中;
    • 长期记忆(Long-Term Memory, LTM):存储“Agent 的历史任务信息、用户偏好信息、领域知识信息”,通常存储在向量数据库(Vector Database)中,比如 Pinecone、Weaviate、ChromaDB、FAISS;
    • 工作记忆(Working Memory, WM):存储“当前正在处理的子任务的详细信息”,比如子任务的目标、约束、所需工具、当前的中间结果,通常存储在 Agent 的状态变量中;
  5. 决策模块(Decision Engine):负责“根据感知模块获取的信息、记忆模块存储的信息,制定和修正任务计划,做出下一步的动作决策”,这是 AI Agent 的“灵魂”,也是 Prompt Chain 发挥作用的地方。
4.1.2 Harness Engineering(智能体线束工程)

核心概念:Harness Engineering 是指“通过一系列可复用、可组合、可监控、可调试的‘线束组件’(Harness Components),把原本‘不可控’的 LLM 变成‘像计算机程序一样稳定、可复现、可扩展’的 AI Agent 的工程实践体系”。
问题背景:随着 AI Agent 技术的发展,越来越多的开发者开始尝试构建 AI Agent,但他们很快就发现:构建一个“原型级”的 AI Agent 很容易(比如用 LangChain 写一个简单的 ReAct Agent 只需要 10 行代码),但构建一个“生产级”的 AI Agent 却非常困难——因为原型级 Agent 不需要考虑“Prompt 漂移”、“Token 爆炸”、“推理成本过高”、“响应速度过慢”、“系统稳定性”、“可解释性”、“可监控性”、“可调试性”等问题,但生产级 Agent 必须全部考虑。
问题描述:如何构建“生产级”的 AI Agent?
问题解决:通过 Harness Engineering 体系,把 AI Agent 的各个核心要素(LLM 核心、感知模块、执行模块、记忆模块、决策模块)拆分成“可复用、可组合、可监控、可调试”的“线束组件”,然后像“搭积木”一样把这些组件组合起来,构建出生产级的 AI Agent。
边界与外延

  • 边界:Harness Engineering 目前还处于“早期发展阶段”,没有统一的标准和框架(虽然 LangChain、LangGraph、AutoGen、CrewAI 等工具提供了一些参考,但这些工具之间的兼容性还很差);
  • 外延:Harness Engineering 的外延不仅包括 AI Agent 的构建,还包括 AI Agent 的测试、部署、监控、维护、优化等全生命周期管理。
    概念结构与核心要素组成
    Harness Engineering 体系通常包含以下 6 个核心要素:
  1. 线束组件库(Harness Component Library):存储“可复用、可组合、可监控、可调试”的线束组件,比如 Prompt 模板库、工具调用协议库、记忆管理模块库、验证逻辑链库、状态追踪模块库等;
  2. 线束编排引擎(Harness Orchestration Engine):负责“根据用户的需求,从线束组件库中选择合适的组件,编排成一个完整的 AI Agent 工作流”,比如 LangGraph、AutoGen、CrewAI 等工具都可以看作是“线束编排引擎”;
  3. 线束测试框架(Harness Testing Framework):负责“测试 AI Agent 的各个环节,确保 AI Agent 的稳定性、准确性、可复现性”,比如 LangSmith、PromptFlow、Evidently AI 等工具;
  4. 线束监控平台(Harness Monitoring Platform):负责“监控 AI Agent 的运行状态,比如推理成本、响应速度、Token 使用率、错误率、用户满意度等”,比如 LangSmith、Prometheus + Grafana、New Relic 等工具;
  5. 线束调试工具(Harness Debugging Tool):负责“调试 AI Agent 的工作流,比如查看 Agent 的推理过程、修改 Prompt 模板、调整工具调用参数等”,比如 LangSmith、VS Code 的 LangChain 插件等;
  6. 线束优化模块(Harness Optimization Module):负责“优化 AI Agent 的性能,比如通过 Prompt 压缩减少 Token 使用率、通过并行执行提升响应速度、通过自适应 Prompt 优化提升准确性、通过强化学习优化任务计划等”。
4.1.3 Prompt(提示词)

核心概念:Prompt 是指“用户输入给 LLM 的一段文本,用来指导 LLM 完成特定的任务”。
问题背景:LLM 是“预训练的语言模型”,它们的知识和能力都来自于“预训练数据”,但预训练数据是“通用的”,无法覆盖所有“特定场景的特定任务”——因此,我们需要通过 Prompt 来“激活” LLM 在特定场景下的特定能力。
问题描述:如何通过 Prompt 让 LLM 完成特定的任务?
问题解决:通过遵循“清晰性、具体性、约束性、示例驱动”等 Prompt 设计原则,设计出“高质量的 Prompt”,从而让 LLM 完成特定的任务。
边界与外延

  • 边界:Prompt 的效果受限于 LLM 的“预训练数据”和“推理窗口大小”——如果预训练数据中没有相关的知识,或者 Prompt 的长度超过了 LLM 的推理窗口,那么 Prompt 的效果就会很差;
  • 外延:Prompt 的外延不仅包括“文本 Prompt”,还包括“图像 Prompt”、“音频 Prompt”、“视频 Prompt”等“多模态 Prompt”,以及“结构化 Prompt”(比如 JSON 格式的 Prompt)、“代码 Prompt”等“特殊格式的 Prompt”。
    概念结构与核心要素组成
    一个高质量的文本 Prompt 通常包含以下 6 个核心要素(来自于 OpenAI 的 Prompt Engineering 最佳实践):
  1. 角色设定(Role):告诉 LLM 它现在扮演的是什么角色,比如“你是一位拥有10年硅谷投资经验的风险投资家,专注于 AI SaaS 领域的早期投资”;
  2. 任务目标(Task):明确告诉 LLM 它需要完成的任务是什么,比如“帮我写一篇符合硅谷投资风格的A轮商业计划书”;
  3. 输入信息(Input):告诉 LLM 完成任务所需的输入信息是什么,比如“产品赛道是‘AI驱动的企业内部文档智能检索与问答系统’,产品名称是‘DocAI Q&A’,创始人团队有3人(CTO 是前 Google Search 的核心工程师,CEO 是前 Salesforce 的产品总监,COO 是前 Dropbox 的运营总监),种子轮融资了500万美金,目前有10家付费试点客户,ARR(年度经常性收入)是20万美金”;
  4. 输出要求(Output):明确告诉 LLM 输出的格式、内容、长度、风格等要求,比如“输出格式是 Markdown,内容包含市场分析、产品路线图、财务预测、团队介绍、融资需求拆解5个部分,每个部分不少于1000字,风格要专业、简洁、有说服力,符合硅谷风险投资家的阅读习惯”;
  5. 约束条件(Constraints):明确告诉 LLM 完成任务时需要遵守的约束条件,比如“市场分析中的数据必须来自2023-2024年的权威机构报告(比如 Gartner、IDC、Forrester),财务预测必须符合 GAAP 合规要求,用户调研的提炼必须结合我提供的10家付费试点客户的反馈”;
  6. 示例(Examples)(可选,但推荐):给 LLM 提供一些“输入-输出”的示例,帮助 LLM 更好地理解任务要求,比如“如果我输入‘产品赛道是AI驱动的代码审查工具’,你可以参考‘2023年Gartner代码审查工具市场白皮书’中的数据来写市场分析”。
4.1.4 Chain-of-Thought(CoT,思维链)

核心概念:Chain-of-Thought 是指“让 LLM 在完成复杂任务之前,先‘一步步地思考’,把复杂任务拆分成多个简单的子任务,然后再逐个解决这些子任务,最后得出最终结果”的 Prompt 技术。
问题背景:传统的“Zero-Shot”或“Few-Shot”Prompt 技术,在处理“需要多步推理”的复杂任务时(比如数学题、逻辑推理题、代码调试题),效果往往很差——因为 LLM 会“直接跳过推理过程,给出最终结果”,而这种“一次性推理”的准确率非常低。
问题描述:如何提升 LLM 在“多步推理”复杂任务上的准确率?
问题解决:通过在 Prompt 中加入“Let’s think step by step.”(让我们一步步地思考)或者提供“包含推理过程的示例”,让 LLM 先“一步步地思考”,再给出最终结果——这就是 Chain-of-Thought 技术。
边界与外延

  • 边界:Chain-of-Thought 技术的效果受限于 LLM 的“推理能力”——只有“推理能力较强”的 LLM(比如 GPT-4o、Claude 3.5 Sonnet、Gemini 1.5 Pro)才能从 Chain-of-Thought 技术中受益,而“推理能力较弱”的 LLM(比如 GPT-3.5 Turbo、Llama 3 8B)使用 Chain-of-Thought 技术的效果可能不明显,甚至会产生反效果;
  • 外延:Chain-of-Thought 技术的外延非常广,包括“Zero-Shot CoT”、“Few-Shot CoT”、“Self-Consistency CoT”(让 LLM 生成多个不同的推理过程,然后选择最一致的结果)、“Tree-of-Thought(ToT,思维树)”(让 LLM 生成多个不同的推理路径,然后评估每个路径的有效性,选择最优的路径)、“Graph-of-Thought(GoT,思维图)”(让 LLM 生成一个包含多个节点和边的思维图,节点代表中间结果,边代表推理关系)等。
    数学模型
    Chain-of-Thought 技术的核心数学原理可以用“条件概率”来描述:
    假设我们有一个任务 TTT,输入为 xxx,输出为 yyy,传统的 Zero-Shot/Few-Shot Prompt 技术是让 LLM 直接计算 P(y∣x)P(y|x)P(yx)(给定输入 xxx,输出 yyy 的概率);
    而 Chain-of-Thought 技术是让 LLM 先计算 P(c∣x)P(c|x)P(cx)(给定输入 xxx,生成思维链 ccc 的概率),再计算 P(y∣x,c)P(y|x,c)P(yx,c)(给定输入 xxx 和思维链 ccc,输出 yyy 的概率),最后计算 P(y∣x)=∑cP(c∣x)⋅P(y∣x,c)P(y|x) = \sum_{c} P(c|x) \cdot P(y|x,c)P(yx)=cP(cx)P(yx,c)(对所有可能的思维链 ccc 求和)。
    大量的实验表明,对于“需要多步推理”的复杂任务,P(y∣x,c)P(y|x,c)P(yx,c) 通常远大于 P(y∣x)P(y|x)P(yx)——因此,Chain-of-Thought 技术可以显著提升 LLM 在这些任务上的准确率。
4.1.5 Prompt Chain(提示链)

核心概念:Prompt Chain 是指“把一个复杂的任务拆分成多个‘逻辑独立、目标明确、输入输出清晰’的子任务,为每个子任务设计一个‘高质量的 Prompt 模板’,然后按照‘子任务之间的依赖关系’,把这些 Prompt 模板串联起来,形成一个‘多轮协同的工作流’——第一个子任务的输出作为第二个子任务的输入,第二个子任务的输出作为第三个子任务的输入,依此类推,最后一个子任务的输出就是整个复杂任务的最终结果”的 Harness Engineering 技术。
问题背景:虽然 Chain-of-Thought 技术可以提升 LLM 在“多步推理”复杂任务上的准确率,但它仍然存在以下几个局限性:

  1. 推理窗口有限:如果复杂任务的子任务数量很多,或者每个子任务的输入输出都很长,那么整个思维链的长度就会超过 LLM 的推理窗口——这时候 LLM 就会“忘记”之前的推理过程,导致最终结果出错;
  2. 不可控性:Chain-of-Thought 技术让 LLM“自发地”生成思维链,但 LLM 生成的思维链可能“逻辑混乱”、“子任务遗漏”、“约束条件违反”——开发者无法“精确控制” LLM 的推理过程;
  3. 不可复用性:Chain-of-Thought 技术生成的思维链通常是“针对特定输入的”,无法“复用”到其他类似的输入上——如果开发者需要处理多个类似的输入,就需要让 LLM 每次都生成新的思维链,这不仅浪费推理成本,还会导致结果的不一致性;
  4. 不可监控性:开发者很难“实时监控” LLM 的思维链生成过程——如果思维链的某个环节出错,开发者很难“快速定位”和“修复”问题;
  5. 无法调用外部工具:Chain-of-Thought 技术通常只能让 LLM“进行内部推理”,无法让 LLM“调用外部工具”(比如 API、数据库、代码解释器)——但很多复杂任务都需要“调用外部工具”才能完成。
    而 Prompt Chain 技术正是为了解决 Chain-of-Thought 技术的这些局限性而诞生的!
    问题描述:如何解决 Chain-of-Thought 技术的“推理窗口有限”、“不可控性”、“不可复用性”、“不可监控性”、“无法调用外部工具”等局限性?
    问题解决:通过 Prompt Chain 技术,把复杂任务拆分成多个“逻辑独立、目标明确、输入输出清晰”的子任务,为每个子任务设计一个“高质量的 Prompt 模板”,然后按照“子任务之间的依赖关系”,把这些 Prompt 模板串联起来,形成一个“多轮协同的工作流”——这样不仅可以“突破 LLM 的推理窗口限制”(因为每个子任务的输入输出都很短,不会超过 LLM 的推理窗口),还可以“精确控制” LLM 的推理过程(因为每个子任务的 Prompt 模板都是开发者精心设计的,包含明确的角色设定、任务目标、输入信息、输出要求、约束条件),“复用”到其他类似的输入上(因为 Prompt 模板是通用的,只需要替换输入信息即可),“实时监控”工作流的执行过程(因为每个子任务的输入输出都是独立的,开发者可以查看每个子任务的执行结果),“调用外部工具”(因为可以在某个子任务的前后插入“工具调用模块”,让 LLM 先调用外部工具获取信息,再进行推理,或者先进行推理,再调用外部工具执行动作)。
    边界与外延
  • 边界:Prompt Chain 技术的效果受限于“子任务拆分的合理性”——如果子任务拆分得“太粗”,那么每个子任务的输入输出仍然会很长,会超过 LLM 的推理窗口,而且不可控性仍然存在;如果子任务拆分得“太细”,那么子任务的数量会很多,会导致工作流的响应速度过慢,推理成本过高;
  • 外延:Prompt Chain 技术的外延非常广,包括“线性 Prompt Chain”(子任务之间是线性依赖关系,第一个子任务的输出作为第二个子任务的输入,依此类推)、“分支 Prompt Chain”(子任务之间是分支依赖关系,某个子任务的输出会根据条件不同,输入到不同的后续子任务中)、“循环 Prompt Chain”(子任务之间是循环依赖关系,某个子任务的输出会作为自身的输入,反复执行,直到满足某个条件为止)、“混合 Prompt Chain”(同时包含线性、分支、循环依赖关系的 Prompt Chain)、“自适应 Prompt Chain”(可以根据“当前子任务的执行结果”和“用户的反馈”,“动态调整”子任务的数量、顺序、Prompt 模板)、“基于强化学习的 Prompt Chain”(可以通过“强化学习”,“自动优化”子任务的拆分、顺序、Prompt 模板)等。
    概念结构与核心要素组成
    一个完整的 Prompt Chain 通常包含以下 7 个核心要素:
  1. 任务总目标(Overall Task Goal):明确整个 Prompt Chain 需要完成的总任务是什么;
  2. 子任务拆分结果(Subtask Decomposition Result):把总任务拆分成多个“逻辑独立、目标明确、输入输出清晰”的子任务,每个子任务都有一个唯一的 ID;
  3. 子任务依赖关系图(Subtask Dependency Graph):用“有向无环图(DAG)”或者“包含循环的有向图”来描述子任务之间的依赖关系——如果子任务 B 依赖于子任务 A 的输出,那么就画一条从 A 到 B 的有向边;
  4. 子任务 Prompt 模板库(Subtask Prompt Template Library):为每个子任务设计一个“高质量的 Prompt 模板”,每个 Prompt 模板都包含明确的角色设定、任务目标、输入占位符、输出格式要求、约束条件;
  5. 状态追踪模块(State Tracking Module):负责“存储和追踪”整个 Prompt Chain 的执行状态,比如当前执行到哪个子任务、每个子任务的输入是什么、每个子任务的输出是什么、总任务的完成进度是多少;
  6. 验证逻辑链(Validation Logic Chain):负责“验证”每个子任务的输出是否符合要求——如果符合要求,就继续执行下一个子任务;如果不符合要求,就触发“自我修正逻辑”,比如重新执行当前子任务、调整当前子任务的 Prompt 模板、或者回退到上一个子任务重新执行;
  7. 自我修正逻辑(Self-Refinement Logic):负责“修正”不符合要求的子任务输出——可以根据“验证逻辑链的反馈信息”,调整当前子任务的 Prompt 模板,然后重新执行当前子任务;或者回退到上一个子任务,调整上一个子任务的 Prompt 模板,然后重新执行上一个子任务,再重新执行当前子任务。

4.2 概念之间的关系

为了帮助大家更好地理解上面提到的 5 个核心概念之间的关系,我们用 ER 实体关系图交互关系图核心属性维度对比表格 来进行描述。

4.2.1 ER 实体关系图(Mermaid)

使用

包含

包含

包含

包含

包含

使用

包含

可能包含

可能使用

包含

包含

使用

可能包含

可能包含

可能调用

可能调用

可能读写

USER

AI_AGENT

LLM_CORE

PERCEPTION_MODULE

EXECUTION_MODULE

MEMORY_MODULE

DECISION_ENGINE

HARNESS_COMPONENT

PROMPT_TEMPLATE

COT_EXAMPLE

PROMPT_CHAIN

SUBTASK_DEPENDENCY_GRAPH

SUBTASK

VALIDATION_LOGIC

SELF_REFINEMENT_LOGIC

ER 实体关系图解释

  1. USER(用户)AI_AGENT(智能体) 之间是“一对多”的关系——一个用户可以使用多个 AI Agent;
  2. AI_AGENT(智能体)LLM_CORE(大语言模型核心)PERCEPTION_MODULE(感知模块)EXECUTION_MODULE(执行模块)MEMORY_MODULE(记忆模块)DECISION_ENGINE(决策引擎) 之间都是“一对一”的关系——一个 AI Agent 必须包含这 5 个核心要素;
  3. DECISION_ENGINE(决策引擎)HARNESS_COMPONENT(线束组件) 之间是“一对多”的关系——一个决策引擎可以使用多个线束组件;
  4. HARNESS_COMPONENT(线束组件)PROMPT_TEMPLATE(提示词模板) 之间是“一对多”的关系——一个线束组件可以包含多个提示词模板;
  5. PROMPT_TEMPLATE(提示词模板)COT_EXAMPLE(思维链示例) 之间是“一对多”的关系——一个提示词模板可能包含多个思维链示例;
  6. DECISION_ENGINE(决策引擎)PROMPT_CHAIN(提示链) 之间是“一对多”的关系——一个决策引擎可能使用多个提示链;
  7. PROMPT_CHAIN(提示链)SUBTASK_DEPENDENCY_GRAPH(子任务依赖关系图) 之间是“一对一”的关系——一个提示链必须包含一个子任务依赖关系图;
  8. PROMPT_CHAIN(提示链)SUBTASK(子任务) 之间是“一对多”的关系——一个提示链必须包含多个子任务;
  9. SUBTASK(子任务)PROMPT_TEMPLATE(提示词模板) 之间是“一对一”的关系——一个子任务必须使用一个提示词模板;
  10. SUBTASK(子任务)VALIDATION_LOGIC(验证逻辑)SELF_REFINEMENT_LOGIC(自我修正逻辑) 之间都是“一对一”的关系——一个子任务可能包含验证逻辑和自我修正逻辑;
  11. SUBTASK(子任务)PERCEPTION_MODULE(感知模块)EXECUTION_MODULE(执行模块)MEMORY_MODULE(记忆模块) 之间都是“一对多”的关系——一个子任务可能调用多个感知模块、执行模块,可能读写多个记忆模块。
4.2.2 交互关系图(Mermaid)

为了帮助大家更好地理解 Prompt Chain(提示链)AI_AGENT(智能体) 的其他核心要素之间的交互关系,我们用一个 顺序图(Sequence Diagram) 来进行描述——这个顺序图展示了一个“简化版的硅谷A轮商业计划书自动生成器”的 Prompt Chain 执行过程。

感知模块(RAG 检索器) LLM 核心(GPT-4o Mini) 子任务3的自我修正逻辑 子任务3的验证逻辑链 子任务3:生成市场分析部分 子任务2:调用 RAG 检索2023-2024年AI SaaS企业文档检索领域的权威报告 子任务1:明确任务总目标与输入信息验证 Prompt Chain(线性 Prompt Chain) 记忆模块 状态追踪模块 AI Agent(DocAI Q&A 商业计划书生成器) 感知模块(RAG 检索器) LLM 核心(GPT-4o Mini) 子任务3的自我修正逻辑 子任务3的验证逻辑链 子任务3:生成市场分析部分 子任务2:调用 RAG 检索2023-2024年AI SaaS企业文档检索领域的权威报告 子任务1:明确任务总目标与输入信息验证 Prompt Chain(线性 Prompt Chain) 记忆模块 状态追踪模块 AI Agent(DocAI Q&A 商业计划书生成器) alt [初始输出验证通过] [初始输出验证失败(比如数据不是来自权威报告)] 后续子任务(子任务4:产品路线图、子任务5:财务预测、子任务6:团队介绍、子任务7:融资需求拆解、子任务8:整合所有部分生成终稿)的执行过程与子任务3类似 用户 发送初始输入(产品赛道、名称、创始人团队、种子轮融资、试点客户、ARR) 1 初始化状态(总任务、输入信息、当前子任务ID=1、完成进度=0%) 2 开始执行 Prompt Chain 3 获取当前状态(当前子任务ID=1) 4 执行子任务1 5 发送子任务1的 Prompt(包含输入信息) 6 返回子任务1的输出(任务总目标确认、输入信息验证结果:通过) 7 更新状态(当前子任务ID=2、完成进度=10%、子任务1的输出) 8 获取当前状态(当前子任务ID=2) 9 执行子任务2 10 调用 RAG 检索器(检索关键词:2023 Gartner AI SaaS 企业文档检索、2024 IDC 企业知识管理市场、2023 Forrester AI 驱动的问答系统) 11 返回检索结果(5篇权威报告的摘要) 12 更新状态(当前子任务ID=3、完成进度=30%、子任务2的输出:检索结果) 13 获取当前状态(当前子任务ID=3) 14 执行子任务3 15 获取子任务1和子任务2的输出(任务总目标、输入信息、检索结果) 16 发送子任务3的 Prompt(包含任务总目标、输入信息、检索结果) 17 返回子任务3的初始输出(市场分析部分的草稿) 18 验证初始输出(验证规则:1. 包含3年全球趋势、20页用户调研报告提炼;2. 数据来自权威报告;3. 不少于1000字;4. 风格专业、简洁、有说服力) 19 返回验证结果:通过 20 更新状态(当前子任务ID=4、完成进度=50%、子任务3的输出:市场分析部分的终稿) 21 返回验证结果:失败,失败原因:数据来自“2024年某不知名博客”,不是权威报告 22 执行自我修正逻辑(修正规则:1. 从子任务2的检索结果中重新选择权威数据;2. 调整 Prompt 模板,加入“必须使用子任务2提供的检索结果中的数据”的约束条件) 23 调整子任务3的 Prompt 模板 24 发送调整后的 Prompt(包含任务总目标、输入信息、检索结果、新的约束条件) 25 返回子任务3的修正后输出 26 再次验证修正后输出 27 返回验证结果:通过 28 更新状态(当前子任务ID=4、完成进度=50%、子任务3的输出:市场分析部分的终稿) 29 获取所有子任务的输出 30 返回整个 Prompt Chain 的最终输出(完整的硅谷A轮商业计划书) 31 展示最终输出 32 用户

交互关系图解释
这个顺序图展示了一个“简化版的硅谷A轮商业计划书自动生成器”的 Prompt Chain 执行过程,主要包含以下几个步骤:

  1. 用户发送初始输入:用户向 AI Agent 发送初始输入(产品赛道、名称、创始人团队、种子轮融资、试点客户、ARR);
  2. AI Agent 初始化状态:AI Agent 调用状态追踪模块,初始化状态(总任务、输入信息、当前子任务ID=1、完成进度=0%);
  3. 开始执行 Prompt Chain:AI Agent 调用 Prompt Chain,开始执行工作流;
  4. 执行子任务1:明确任务总目标与输入信息验证——调用 LLM 核心,确认任务总目标,验证输入信息是否完整、正确;
  5. 执行子任务2:调用 RAG 检索器,获取2023-2024年AI SaaS企业文档检索领域的权威报告;
  6. 执行子任务3:生成市场分析部分——首先调用状态追踪模块,获取子任务1和子任务2的输出;然后调用 LLM 核心,生成市场分析部分的草稿;接着调用验证逻辑链,验证草稿是否符合要求;如果符合要求,就更新状态,继续执行下一个子任务;如果不符合要求,就触发自我修正逻辑,调整 Prompt 模板,重新生成,直到符合要求为止;
  7. 执行后续子任务:子任务4(产品路线图)、子任务5(财务预测)、子任务6(团队介绍)、子任务7(融资需求拆解)、子任务8(整合所有部分生成终稿)的执行过程与子任务3类似;
  8. 返回最终输出:Prompt Chain 执行完毕后,调用状态追踪模块,获取所有子任务的输出,然后返回给 AI Agent;
  9. 展示最终输出:AI Agent 把最终输出展示给用户。
4.2.3 核心属性维度对比表格(Markdown)

为了帮助大家更好地理解 Chain-of-Thought(CoT)Prompt Chain(提示链) 之间的区别,我们用一个 核心属性维度对比表格 来进行描述:

核心属性维度 Chain-of-Thought(CoT,思维链) Prompt Chain(提示链)
定义 让 LLM 在完成复杂任务之前,先“一步步地思考”,把复杂任务拆分成多个简单的子任务,然后再逐个解决这些子任务,最后得出最终结果的 Prompt 技术。 把一个复杂的任务拆分成多个“逻辑独立、目标明确、输入输出清晰”的子任务,为每个子任务设计一个“高质量的 Prompt 模板”,然后按照“子任务之间的依赖关系”,把这些 Prompt 模板串联起来,形成一个“多轮协同的工作流”的 Harness Engineering 技术。
推理方式 LLM“自发地”生成思维链,进行“一次性内部推理”。 开发者“手动地”拆分任务、设计 Prompt 模板,LLM“被动地”执行每个子任务的 Prompt 模板,进行“多轮外部协同推理”。
推理窗口限制 思维链的长度不能超过 LLM 的推理窗口——如果超过,LLM 就会“忘记”之前的推理过程,导致最终结果出错。 每个子任务的输入输出都很短,不会超过 LLM 的推理窗口——可以“突破” LLM 的推理窗口限制,处理“非常复杂、输入输出非常长”的任务。
可控性 不可控——LLM 生成的思维链可能“逻辑混乱”、“子任务遗漏”、“约束条件违反”,开发者无法“精确控制” LLM 的推理过程。 高度可控——每个子任务的 Prompt 模板都是开发者精心设计的,包含明确的角色设定、任务目标、输入信息、输出要求、约束条件,开发者可以“精确控制” LLM 的推理过程。
可复用性 不可复用——思维链通常是“针对特定输入的”,无法“复用”到其他类似的输入上。 高度可复用——Prompt 模板是“通用的”,只需要替换输入占位符即可“复用”到其他类似的输入上。
可监控性 不可监控——开发者很难“实时监控” LLM 的思维链生成过程,如果思维链的某个环节出错,开发者很难“快速定位”和“修复”问题。 高度可监控——每个子任务的输入输出都是独立的,开发者可以“实时查看”每个子任务的执行结果,如果某个子任务出错,开发者可以“快速定位”和“修复”问题。
可调试性 不可调试——开发者很难“调试” LLM
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐