Agent基础:大模型交互与推理技术Prompt 工程、Function Calling、ReAct、Self-Refine

以下是对四个紧密关联的大模型交互与推理技术------Prompt 工程、Function Calling、ReAct、Self-Refine------的系统化讲解。它们常被组合使用以提升大语言模型(LLMs)在复杂任务中的表现,尤其在构建智能 Agent 时。


一、定义解析

技术 全称/英文 中文含义 核心目标
Prompt 工程 Prompt Engineering 提示词工程 通过精心设计输入提示(prompt),引导模型输出更准确、可靠、符合任务需求的结果。
Function Calling Function Calling 函数调用 让 LLM 能够识别何时需要调用外部工具(如 API、数据库、计算器),并生成结构化参数供执行。
ReAct Reasoning + Acting 推理-行动协同范式 通过交替生成"推理"(Thought)和"动作"(Action),实现模型与环境的闭环交互,增强决策能力。
Self-Refine Self-Refinement 自我优化机制 模型在生成初步答案后,主动反思其质量,并基于反馈进行迭代修正,提升输出准确性或完整性。

✅ 这四项技术共同服务于一个更高目标:让 LLM 从"被动回答者"转变为"主动思考者+执行者"。


二、核心逻辑

1. Prompt 工程

  • 输入设计:通过指令(Instruction)、示例(Few-shot)、角色设定(Role)、约束条件(Constraints)等元素构造 prompt。
  • 输出引导:控制模型输出格式(如 JSON、步骤列表)、风格(正式/口语)、内容范围(避免幻觉)。
  • 关键技巧:链式思维(CoT)、分步引导、错误预防性提示(如"若不确定,请回答'我不知道'")。

2. Function Calling

  • 触发机制:模型判断当前任务是否需外部信息(如查天气、计算、搜索)。
  • 结构化输出 :模型不直接回答,而是输出函数名 + 参数(如 {"name": "get_weather", "args": {"city": "北京"}})。
  • 执行-反馈闭环:外部系统执行函数后,将结果作为新上下文输入模型,继续生成最终回答。

3. ReAct

  • 循环流程
    Thought → Action → Observation → Thought → ... → Final Answer
  • 双通道协同
    • Reasoning(推理):解释为何采取某动作、当前状态、目标进展;
    • Acting(行动):调用工具、点击按钮、查询数据库等。
  • 依赖外部环境:必须有可交互的"世界"(如网页、API、模拟器)提供 Observation。

4. Self-Refine

  • 三阶段流程
    1. 生成初稿(Draft):模型给出初步答案;
    2. 自我批评(Critique):分析答案的缺陷(如事实错误、逻辑漏洞、遗漏要点);
    3. 优化重写(Refine):基于批评生成改进版。
  • 可迭代多次:支持多轮 refine 直到满足质量阈值(或达到最大轮次)。

三、关键细节

技术 关键点 注意事项
Prompt 工程 - Few-shot 示例质量 > 数量 - 明确禁止幻觉的指令有效 - 使用 XML/JSON 标记结构化输出 避免模糊指令(如"好好回答");不同模型对 prompt 敏感度差异大
Function Calling - 需预定义函数 schema(名称、参数、描述) - 模型需训练/微调支持结构化输出 - 支持多函数并行调用(部分平台) 若函数描述不清,模型可能误调用;参数类型错误常见(如字符串 vs 数字)
ReAct - 推理需具体、可操作(避免空泛) - Observation 必须真实、及时 - 适用于多跳推理任务(如复杂问答、网页导航) 上下文长度限制易导致早期推理丢失;无外部环境则无法运行
Self-Refine - 批评环节需具体(不能只说"不好") - 初稿质量影响 refine 上限 - 可结合人类反馈或规则校验器 多轮 refine 可能陷入局部最优;增加延迟和 token 消耗

四、实例说明

场景:用户问「明天上海适合户外跑步吗?」

组合使用流程:
  1. Prompt 工程:系统预设角色为"健康助手",并要求"若需天气信息,请调用 get_weather 函数"。
  2. Function Calling
    • 模型输出:{"name": "get_weather", "args": {"city": "上海", "date": "tomorrow"}}
    • 系统执行后返回:{"temperature": 18°C, "condition": "多云", "aqi": 45}
  3. ReAct 循环
    • Thought: "AQI < 50 属于优,温度适宜,适合跑步。"
    • Action: 无(无需进一步工具)
    • Final Answer: "明天上海天气多云,18°C,空气质量优,非常适合户外跑步!"
  4. Self-Refine(可选)
    • 初稿:"明天可以跑步。"
    • 批评:"未说明原因,缺乏具体数据支撑。"
    • 优化后:"根据天气预报,明天上海18°C、多云、AQI 45,非常适合跑步。"

💡 实际系统中,这四项技术常被集成:Prompt 设定规则 → Function Calling 获取数据 → ReAct 规划步骤 → Self-Refine 优化表述。


五、常见误区

误区 纠正说明
误区1:认为"写好 prompt 就万能" Prompt 工程有上限,复杂任务必须结合工具调用与推理机制(如 ReAct)才能突破 LLM 的知识边界。
误区2:Function Calling = 普通 API 调用 关键区别在于:模型自主决定何时调用、调哪个函数、传什么参数,而非固定流程。
误区3:ReAct 就是 CoT + 工具调用 ReAct 强调动态交互闭环,而 CoT 是静态推理链。ReAct 能处理"工具返回失败需重试"等动态场景,CoT 不能。
误区4:Self-Refine 总能提升质量 若初稿存在根本性错误(如误解问题),自我批评可能无法识别;需结合外部验证(如检索、规则)才可靠。
误区5:四项技术必须全用 应按任务复杂度选择:简单问答只需 Prompt 工程;多跳查询用 ReAct + Function Calling;高精度输出可加 Self-Refine。

总结

这四项技术构成了现代 LLM Agent 的"认知骨架":

  • Prompt 工程是"语言接口",
  • Function Calling是"手脚",
  • ReAct是"行动大脑",
  • Self-Refine是"自我纠错机制"。

合理组合,方能打造真正可靠的智能体。

相关推荐
杜子不疼.40 分钟前
GUI Agent:通往AGI的关键一环,从界面交互到智能代理的演进之路
交互·agi
康一夏11 小时前
React面试题,封装useEffect
前端·javascript·react.js
社恐的下水道蟑螂13 小时前
深入掌握 AI 全栈项目中的路由功能:从基础到进阶的全面解析
前端·react.js·全栈
FanetheDivine13 小时前
图片标注框选组件
前端·react.js
子玖13 小时前
antd6的table排序功能
前端·react.js
徐同保14 小时前
react两个组件中间加一个可以拖动跳转左右大小的功能
前端·javascript·react.js
lkbhua莱克瓦2415 小时前
RAG到RGA:生成式AI的范式演进
人工智能·llm·prompt·大语言模型·rag·rga
2501_9481949815 小时前
RN for OpenHarmony AnimeHub项目实战:正在热播页面开发
javascript·react native·react.js
2501_9445210015 小时前
rn_for_openharmony商城项目app实战-语言设置实现
javascript·数据库·react native·react.js·harmonyos