首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于

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

2026-09-15 1 阅读 约2分钟阅读 AgnesAI
分享:
字号:
问题描述 在做一个自动化代码审查的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"更优雅的方案?
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱