← 返回资讯热点
AI热点SegmentFault发布时间:2026-09-15 08:25热度 132.0000

LangChain Agent多轮工具调用后忽略输出约束,长任务下如何保证指令遵循?

问题描述 在做一个自动化代码审查的Agent,流程是:读取diff → 分析改动 → 调用多个工具收集上下文 → 生成审查意见。 实际跑到第5、6步之后,模型开始忽略system prompt里定好的输出格式约束,返回纯文本而不是约定的JSON,多轮之后越来越明显。 运行环境 Python 3.11 / langchain 0.2.x 模型:gpt-4o(deepseek-chat 复现了同样现象) 关键代码 SYSTEM_PROMPT = """ 你是一个代码审查助手。 【重要】所有输出必须是合法 JSON:{"risk": [...], "suggestion": [...]} """ for step in workflow_steps: result = agent.invoke( {"messages": state["messages"] + [step.to_message()]} ) state["messages"].append(result) # 上下文随步骤线性增长 期望结果 经过10+轮工具调用后,模型仍稳定遵守JSON输出约束。 已尝试 关键指令在每轮user message里重复 —— 有效,但token消耗接近翻倍 定期摘要压缩历史上下文 —— 摘要时容易把格式约束一起压掉 换长上下文模型 —— 成本接受不了 想听听大家在工程实践里是怎么处理长任务下的指令遵循问题的?有没有比"暴力重贴prompt"更优雅的方案?

来源:SegmentFault
说明:本站展示中文整理摘要,便于快速阅读;完整内容和版权归原站所有。