You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LangGraph多智能体系统:如何添加并填充resolution状态字段?

问题解决方案

你的当前实现方向存在缺失,需要从智能体系统提示、agent_node节点逻辑两方面修改,必要时调整监督者逻辑,才能正确填充resolution字段。具体步骤如下:

1. 修改智能体系统提示,让LLM输出明确的解决状态标识

给每个智能体的系统prompt添加要求,让它在处理完查询后,用固定格式标注问题是否解决。示例如下:

system_prompt = """
你是负责[具体任务]的智能体,处理用户查询后,请在输出结尾用固定格式标注是否解决问题:【RESOLUTION: True/False】
...原有的系统提示内容...
"""

固定格式能让后续代码快速解析出resolution的布尔值。

2. 修复并修改agent_node函数,提取并更新resolution字段

你当前的agent_node只返回了messages,完全没处理resolution字段,且代码存在语法错误(HumanMessage构造时括号不匹配,智能体输出应使用AIMessage而非HumanMessage)。修改后的代码如下:

def agent_node(state, agent, name):
    result = agent.invoke(state)
    output_content = result["output"]
    
    # 解析输出中的解决状态
    resolution = "【RESOLUTION: True】" in output_content
    
    return {
        "messages": [
            AIMessage(
                content=output_content,
                name=name,
                additional_kwargs={"intermediate_steps": result["intermediate_steps"]}
            )
        ],
        "resolution": resolution  # 填充resolution字段
    }

3. 可选:让监督者参与最终resolution判断(如果需要全局决策)

如果需要监督者根据所有智能体的交互结果最终确定问题是否解决,需做两处调整:

  • 在监督者的系统prompt中,要求它根据历史消息判断问题是否解决,并返回包含resolution的决策
  • 在监督者节点函数中,将判断结果赋值给resolution字段返回

关键说明

  • 你之前的agent_node未返回resolution,导致状态里的该字段一直是初始的None,这是核心问题
  • 智能体本身不知道要输出解决状态标识,必须通过系统prompt明确约束

内容的提问来源于stack exchange,提问作者user1452759

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 11:23:12