最近想用开源模型(比如Qwen2.5或者DeepSeek)搭一个能自动执行多步任务的Agent,比如写个脚本帮我查天气、订闹钟、发邮件这种。但写Tool Use的逻辑太痛苦了,手动解析模型输出的JSON经常格式不对,函数名字也对不上。试过LangChain,感觉太重了,配置一堆东西反而跑不起来。有没有轻量一点、开箱即用的方案?最好是能直接对接本地部署的开源模型,不用调OpenAI接口那种。或者有没有人用过类似CrewAI、AutoGPT的简化版?求分享踩坑经验,先谢过了!
搞AI Agent卡在工具调用上了,有没有好用的开源框架推荐?
全部回复
共 170 条Qwen2.5和DeepSeek对function calling的支持其实还行,关键是你别自己手动解析JSON,直接用vLLM或者Ollama的tools参数,模型会按schema吐结构化输出,省一大半事。轻量框架可以看看Dify或者FastGPT,本地模型接进去就能跑工具调用,不用写太多胶水代码。CrewAI我试过,多agent协作挺香但底层还是依赖LangChain那套,你要嫌重的话不如直接拿OpenAI的function calling协议自己封装一层,几十行就能搞定。
之前也被这个问题折磨过,手动解析JSON确实容易翻车,尤其是一些小模型输出不稳定。后来换成了Qwen-Agent,阿里自己出的,跟Qwen系列配合挺顺,工具注册和调用基本不用自己造轮子。如果想更轻量,可以看看Outlines或者LMQL做结构化输出约束,配合vLLM本地跑,函数名和参数格式基本不会错。CrewAI试过,多Agent编排还行,但单Agent工具调用感觉还是偏重了,不如直接用原生function calling。
最近也在折腾这个,Qwen2.5的function calling其实挺稳的,关键是别自己手写解析,直接用vLLM或者llama.cpp自带的tool call解析,能省一大半事。框架的话可以看看Dify或者FastGPT,虽然带界面但底层挺轻的,本地模型接进去就能跑。LangChain确实太重了,我也弃了。要是想再简单点,直接拿Qwen-Agent试试,阿里自己出的,跟Qwen系列模型配合比较顺。
试试Outlines或LMQL,直接约束模型输出JSON格式,比手动解析稳多了。
我最近也在折腾这个,Qwen2.5的工具调用其实原生支持还行,但得用对prompt模板,不然JSON确实容易崩。后来换成了Outlines做结构化输出约束,基本告别手动解析了,配vLLM本地跑挺顺。CrewAI试过,多Agent编排挺方便但底层还是依赖LangChain那套,轻量算不上。你要单Agent多工具的话,可以看看Dify或者直接手撸一个function calling loop,反而更可控。
我之前也踩过一模一样的坑,手动解析JSON真的要命。后来换了Qwen-Agent,阿里自己出的,对接本地Qwen模型特别顺,工具注册就写个装饰器的事,比LangChain清爽太多。CrewAI多Agent协作还行,但单Agent干这种杂活有点杀鸡用牛刀了。你要是不想折腾框架,其实vLLM加Qwen2.5的function calling原生支持也够用,格式基本不会崩。
试试Dify或者FastGPT吧,本地模型接tool calling挺顺的,比LangChain省心多了。
Qwen2.5 function call本身挺稳的,配vLLM加个轻量parser就够用,LangChain确实太重了。
qwen2.5本身function calling格式就挺稳的,可以试试vLLM的tool parser,直接帮你把输出解析成结构化调用,省得自己写正则。CrewAI我踩过坑,它对本地模型支持一般,默认还是走OpenAI那套。后来换成了smolagents,代码量小很多,接本地模型改个base_url就行,写工具就是普通Python函数加个装饰器。
试过Qwen2.5配vLLM加outlines约束JSON输出,格式基本不会崩,比手写解析省心太多。