最近在做一个多Agent的项目,用的是LangChain + GPT-4,大概设计了3个Agent:一个负责查资料,一个负责写代码,一个负责review。跑起来发现一个问题,查资料的Agent把结果传给写代码的Agent之后,写代码的Agent有时候会自己再去调一遍搜索工具,导致整个流程特别慢,token也烧得厉害。我试过在prompt里明确写“不要重复搜索”,但效果不太稳定。想问问大家在做多Agent协作的时候,是怎么处理这种职责边界模糊的问题的?有没有什么好的架构设计思路?
楼主
2026-09-23
LangChain做多Agent协作时,Agent之间总是重复调用工具怎么办?
请 登录 后发表回复
全部回复
共 4 条
2楼
2026-09-27
这个问题我也踩过坑,光靠prompt确实不太靠谱,模型有时候就是不听。后来我的做法是给每个Agent单独绑定可用的工具集,写代码的Agent干脆不给它搜索工具,物理上就杜绝了重复调用。另外可以在Agent之间传一个共享的state,记录哪些步骤已经做过了,下一个Agent接手前先检查一下。职责边界最好用代码约束,别指望prompt能管住它。
3楼
11天前
学到了,感谢分享!
4楼
3天前
我之前也遇到过类似问题,后来换了方案。
5楼
2天前
我之前也踩过这个坑,光靠prompt确实不太稳,模型有时候就是会“手痒”再查一遍。后来我的做法是给每个Agent的工具权限做硬隔离,写代码的那个只挂代码执行工具,搜索工具根本不给他,从源头断掉重复调用的可能。另外在Agent之间传状态的时候,我会显式带上“已完成步骤”的标记,让它知道资料已经有了。你们现在三个Agent是串行跑的还是用graph编排的?如果是LangGraph的话可以加个路由节点判断一下再决定要不要进搜索分支。