agent设计:单agent负责多个tools,还是设计多个agent,每个agent分别负责一个tools,效果更好?

agent设计:单agent负责多个tools,还是设计多个agent,每个agent分别负责一个tools,效果更好?

1 Like

单一职责

2 Likes

好的,谢谢

肯定是分开设计呀

个人观点是看情况,一般倾向于 单个agent 能解决,就单个agent (但是你要考虑到,有些任务 比如research的任务,天生适合 交给对事实梳理能力更强的 思考模型,显然分出来会更好)

这个和软件设计不太一样
软件设计 多写一个函数,执行起来负担是很小很小的,因此方便起见,可以考虑 separation of concern 。然而 大模型的话,多一个Agent 调用,就会带来 非常明显的 latency 增加,而且agent 和 agent 需要沟通成本,还要考虑上下文传递。(最近 OpenAI 放出的 openai-agents 库,就引入了 handoff 的概念,就是为了解决 agent 之间传递的方便性)

你提到的多个 tools 的问题,确实是一个需要 trade-off 的地方,因为tool越多 传给 LLM 的上下文也必然更多,虽然很多库写法已经非常简化,不必写很多 函数的描述,但内在其实还是会传一大堆的,而且会不会互相干扰,能不能稳定触发tool 的调用,都需要实际测试

进一步说,不建议刚开始就设计 agent 网络,可以参考我的 OpenAI news 帖子(最后涉及到一点) link

3 Likes

佬哥你字多,我觉得你说的对

1 Like

:grinning_face_with_smiling_eyes: 写字多,才能让自己思考起来,学起来就快,反正是互惠的

1 Like

嗯,是的,我昨天开始也在尝试用openai-agents,对于agent一直是自己在摸爬滚打,想学习一下,也没有找到什么设计原则之类的东西。我现在做的有7个tool,未来还会更多,感觉越来越复杂了……

1 Like

我一直不明白,为什么不用cursor写脚本调用api,比agent好用多了,也很容易调试

场景不同

我觉得cursor的agent做的就挺好的,可以扒扒编译后的代码,学习下cursor的内部实现

实际体验确实如佬友所说 :clap:

1 Like

给力,我也觉得,老哥,字多,你赢了