XAgent 反思智能体提示词深度解析:ReflectAgent 的 get_examples_for_dispatcher 与后验知识生成机制
AI Agent大模型后端任务调度【免费下载链接】XAgentAn Autonomous LLM Agent for Complex Task Solving项目地址https://gitcode.com/gh_mirrors/xa/XAgent点击查看免费下载导读本文聚焦 XAgent 中负责「反思Reflection」能力的智能体——ReflectAgent以其提示词模块 XAgent/agent/reflect_agent/prompt.py 及对应文档 Markdown_Docs/XAgent/agent/reflect_agent/prompt.md 为核心完整剖析get_examples_for_dispatcher函数的返回值设计、系统提示词SYSTEM_PROMPT的逐段语义以及它如何被 AgentDispatcher 调度、被工作流中的后验知识生成posterior knowledge环节消费。读完本文你将掌握 XAgent 反思智能体的完整提示词构造方式、占位符填充机制以及如何将反思结果转化为结构化知识以指导后续子任务执行。一、核心入口get_examples_for_dispatcher 函数在 XAgent 的智能体体系中每个专用智能体plan_generate_agent、plan_refine_agent、tool_agent、reflect_agent都向外暴露一个同名函数get_examples_for_dispatcher其职责是向「调度器」提供一组示例用于指导调度器为特定任务生成或精炼目标智能体的提示词。1.1 返回值三元组该函数返回三个变量返回值含义ReflectAgent 中的实际内容example_input用户查询或任务的示例输入作为调度器的输入示范Reflect on the previous actions and give the posterior knowledgeexample_system_prompt系统提示的示例SYSTEM_PROMPT后验知识获取者角色设定example_user_prompt用户提示的示例USER_PROMPT当前为空字符串源码见 XAgent/agent/reflect_agent/prompt.pydef get_examples_for_dispatcher(): The example that will be given to the dispatcher to generate the prompt Returns: example_input: the user query or the task example_system_prompt: the system prompt example_user_prompt: the user prompt example_input Reflect on the previous actions and give the posterior knowledge example_system_prompt SYSTEM_PROMPT example_user_prompt USER_PROMPT return example_input, example_system_prompt, example_user_prompt文档 Markdown_Docs/XAgent/agent/reflect_agent/prompt.md 中明确给出了该函数的「输出示例」示例输入为Reflect on the previous actions and give the posterior knowledge示例系统提示为SYSTEM_PROMPT示例用户提示为USER_PROMPT与源码实现完全一致。1.2 与其他智能体示例输入的差异根据文档记载各智能体的get_examples_for_dispatcher示例输入各不相同反映各自职责定位plan_generate_agentGenerate a plan for writing a Python-based calculator.生成计划plan_refine_agentRefine a plan for writing a Python-based calculator.精炼计划tool_agent一个 JSON 格式字符串表示任务的详细信息工具树搜索reflect_agentReflect on the previous actions and give the posterior knowledge对已执行动作进行反思并产出后验知识。可见反思智能体的输入是一段「动作后的反思指令」输出则是对整体过程的总结与经验提炼。二、SYSTEM_PROMPT 逐段解析后验知识获取者的角色设定SYSTEM_PROMPT是整个反思提示词的主体源码位于 XAgent/agent/reflect_agent/prompt.py。它完整定义了 ReflectAgent 在推理时应扮演的角色、可用的上下文信息以及必须产出的三类内容。2.1 角色定位posterior_knowledge_obtainer提示词开头将模型设定为posterior_knowledge_obtainer后验知识获取者并声明其已经与以下三类资源共同执行过某个子任务subtask中间思考intermediate thoughts——即推理路径reasoning path工具调用tool calls——可以与物理世界交互、提供及时且准确的数据工作区workspace——一个最小的文件系统与代码执行器。这三者正是 XAgent 中一个子任务执行过程的三要素思考、行动工具调用与环境状态。2.2 四个上下文占位符SYSTEM_PROMPT中嵌入四个以{{...}}包裹的占位符它们在运行时由工作流代码填充实际内容占位符语义{{all_plan}}任务的完整计划全部子任务构成的计划树{{terminal_plan}}本次已处理的终端子任务计划{{tool_functions_description_list}}可用工具的描述列表{{action_process}}已执行步骤的动作过程记录占位符的填充逻辑由基类BaseAgent.fill_in_placeholders实现见 XAgent/agent/base_agent.py它按placeholders[role]中的键值对对提示词中对应的{{key}}做字符串替换返回深拷贝后的消息列表从而保证原始 prompt_messages 不被污染。2.3 反思必须产出的三类内容SYSTEM_PROMPT最后一段要求模型「从该过程中学习后验知识」并明确列出三件事Summary总结总结现有过程中的工具调用与思考。由于完整过程过长无法全部带入下一子任务总结必须包含该子任务处理过程的足够信息特别地如果修改了某些文件必须说明文件名file_name与具体做了什么。Reflection of SUBTASK_PLAN子任务计划反思执行完子任务后沉淀出「下次生成计划」时可用的经验并将在下一次为任务生成计划时被携带使用。Reflection of tool calling工具调用反思从过程中学到的工具调用知识例如tool xxx is not available now某工具当前不可用或I need to provide a field yyy in tool aaa某工具需要补充某个字段。这类知识会在下次处理任务前展示给模型。这三类产出正是「后验知识」的组成部分总结解决「信息携带」问题计划反思解决「计划质量提升」问题工具反思解决「工具使用正确性」问题。三、调度链路XAgentDispatcher 如何按能力分发get_examples_for_dispatcher之所以存在是为了支撑调度器XAgentDispatcher按能力类型ability_type动态选择示例并精炼提示词。核心逻辑位于 XAgent/agent/dispatcher.pydef get_examples(self, ability_type: RequiredAbilities): if ability_type RequiredAbilities.plan_generation: from .plan_generate_agent import get_examples_for_dispatcher elif ability_type RequiredAbilities.plan_refinement: from .plan_refine_agent import get_examples_for_dispatcher elif ability_type RequiredAbilities.tool_tree_search: from .tool_agent import get_examples_for_dispatcher elif ability_type RequiredAbilities.reflection: from .reflect_agent import get_examples_for_dispatcher return get_examples_for_dispatcher()这里采用「按需导入lazy import」模式仅当需要某类能力时才加载对应智能体模块。能力枚举RequiredAbilities定义在 XAgent/utils.py其中reflection 5。3.1 dispatch 完整流程XAgentDispatcher.dispatch见 XAgent/agent/dispatcher.py的执行步骤如下通过get_examples(ability_type)拿到example_input、example_system_prompt、example_user_prompt若调度器启用self.enable为真调用DispatcherAgent.parse(target_task, example_input, example_system_prompt, example_user_prompt)让 LLM 针对具体任务精炼出更贴合的 system/user 提示词降级兜底若调度器返回的prompt_messages[0].content与prompt_messages[1].content均为空输出格式不符则回退使用默认提示词即直接以example_system_prompt与example_user_prompt构造消息通过build_agent构造目标智能体实例构造失败时同样回退。这意味着get_examples_for_dispatcher返回的 SYSTEM_PROMPT 不仅是「示例」更是调度器精炼失败时的默认提示词承担着保证系统稳定性的兜底职责。四、工作流调用reflection.py 中的后验知识生成反思智能体并非独立运行而是由工作流模块 XAgent/workflow/reflection.py 中的get_posterior_knowledge函数驱动。该函数完整展示了 ReflectAgent 的运行时上下文构造过程agent agent_dispatcher.dispatch( RequiredAbilities.reflection, Reflect on the previous actions and give the posterior knowledge )随后函数根据配置config.enable_summary决定输入内容的处理方式开启总结enable_summaryTrue调用summarize_plan与summarize_action见 XAgent/agent/summarize.py对计划与动作过程进行压缩摘要以控制送入模型的上下文长度关闭总结直接将all_plan、terminal_plan、finish_node.process序列化为带缩进的 JSON 字符串。最终通过agent.parse填充四个占位符all_plan、terminal_plan、tool_functions_description_list、action_process并传入反思结果的目标函数参数结构见下文。ReflectAgent.parse的实现位于 XAgent/agent/reflect_agent/agent.py先调用fill_in_placeholders完成占位符替换再拼接additional_messages最后委托给基类的generate方法发起模型请求。4.1 输出结构约束generate_posterior_knowledge 函数 schema反思结果并非自由文本而是受函数 schema 约束的结构化 JSON定义于 XAgent/ai_functions/pure_functions/generate_posterior_knowledge.ymlfunctions: - name: generate_posterior_knowledge parameters: type: object properties: summary: type: string reflection_of_plan: type: array items: type: string reflection_of_tool: type: array items: type: object properties: target_tool_name: type: string reflection: type: array items: type: string required: [target_tool_name, reflection] required: [summary]该 schema 与SYSTEM_PROMPT的三类产出一一对应summary字符串子任务处理过程总结必填项reflection_of_plan字符串数组对计划生成的经验反思对应「Reflection of SUBTASK_PLAN」reflection_of_tool对象数组每个对象含target_tool_name目标工具名与reflection反思字符串数组对应「Reflection of tool calling」。4.2 请求参数注入机制get_posterior_knowledge将function_manager.get_function_schema(generate_posterior_knowledge)[parameters]作为arguments传入agent.parse。基类BaseAgent.generate见 XAgent/agent/base_agent.py在CONFIG.default_request_type openai时若未显式提供 functions会将arguments包装为一个名为reasoning的函数并强制function_call {name: reasoning}确保模型必须按该结构输出返回的message[arguments]由调用方用json5.loads解析成字典即最终的后验知识数据。这一机制保证了反思产出在跨子任务传递时具有稳定的字段结构。五、在 XAgent 整体架构中的位置反思智能体属于 XAgent 六大必需能力之一。从RequiredAbilities枚举XAgent/utils.py看完整能力集包括tool_tree_search工具树搜索值 0、plan_generation计划生成值 1、plan_refinement计划精炼值 2、task_evaluator任务评估值 3、summarization总结值 4、reflection反思值 5。ReflectAgent通过声明abilities set([RequiredAbilities.reflection])标识自身能力并由AgentDispatcher.regist_agent注册进对应的 agent 市场agent market。在自动调度器AutomaticAgentDispatcher中任务按能力类型直接取市场中的首个智能体实例化见 XAgent/agent/dispatcher.py。从执行时序看反思发生在子任务完成之后一个子任务执行完毕工作流调用get_posterior_knowledge让 ReflectAgent 产出总结与经验这些经验随后在下一个子任务的计划生成与工具调用环节被重新展示给模型形成「执行 → 反思 → 经验沉淀 → 指导后续执行」的闭环这也是 XAgent 能持续改善复杂任务求解质量的关键机制之一。六、小结get_examples_for_dispatcher是理解 XAgent 反思智能体的最佳切入点对外它向调度器提供统一的示例三元组输入、系统提示、用户提示支撑XAgentDispatcher按RequiredAbilities.reflection动态精炼提示词并在精炼失败时作为默认提示词兜底对内其返回的SYSTEM_PROMPT定义了 posterior_knowledge_obtainer 的角色、四个上下文占位符以及总结、计划反思、工具反思三类产出要求下游这些产出由generate_posterior_knowledge函数 schema 约束为结构化 JSON经get_posterior_knowledge工作流函数XAgent/workflow/reflection.py解析后携带到后续子任务中复用。阅读顺序建议先看 XAgent/agent/reflect_agent/prompt.py 理解提示词本身再读 XAgent/agent/reflect_agent/agent.py 掌握代理实现随后以 XAgent/agent/dispatcher.py 和 XAgent/workflow/reflection.py 串起完整调用链即可对 XAgent 的反思机制形成系统认识。赞分享AI Agent大模型后端任务调度【免费下载链接】XAgentAn Autonomous LLM Agent for Complex Task Solving项目地址https://gitcode.com/gh_mirrors/xa/XAgent点击查看免费下载相关推荐XAgent ReflectAgent 深度解析反思机制与后验知识生成的实现原理XAgent ReflectAgent 深度解析反思机制与后验知识生成的实现原理 本文以 XAgent 多智能体框架中的 ReflectAgent 类为核心AI Agent大模型后端任务调度XAgent 计划生成 Agent 提示词工程解析get_examples_for_dispatcher 与 SUBTASK_SPLIT 机制XAgent 计划生成 Agent 提示词工程解析get_examples_for_dispatcher 与 SUBTASK_SPLIT 机制 本指南以 XAAI Agent大模型后端任务调度XAgent 反思机制全解get_posterior_knowledge 如何把执行过程沉淀为后验知识XAgent 反思机制全解get_posterior_knowledge 如何把执行过程沉淀为后验知识 本篇围绕 XAgent 工作流中的反思模块 reflAI Agent大模型后端任务调度上一篇如何用Max抢票机器人tix_bot轻松搞定热门门票2025终极抢票神器指南下一篇claude-skills 版本演进实录从 19 个技能到 67 个专家的全栈开发插件工程实践创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考