DeepSeek+OpenAI Swarm,做Agent的绝配

admin 2025年1月22日12:00:29评论78 views字数 2606阅读8分41秒阅读模式
进入2025,搞Agent,已经是大模型发展的共识。

如何开发agent,有各种各样的框架,象Langflow,Dify 这样的低代码框架,开发比较简单,但缺乏灵活性,也有象Langgraph这样的代码框架,比较复杂,学习成本比较高。

这里边也有另一派观点,象Anthropic发了文章,认为不需要框架,简单的agent直接写就好。

其实二者应该折衷一下,我们需要简单的框架,能便于开发,还简单易用,学习成本低。

用Agent,还有一个关键点,就是如何选择模型。

01

deepseek

最近deepseek v3及R1的模型在国内外引起极大的反响,性能强大,可以媲美Openai的GPT系列。一句话,确实好用。

最重要的是,deepseek的接口完全兼容Openai的接口,且价格极低。

DeepSeek+OpenAI Swarm,做Agent的绝配

按这个价格,除非你的数据非常敏感,不能外连,否则,真不需要自己搭模型环境了,毕竟,本地的模型,在性能和质量上,是无法和这种规模的专业模型比较。还不需要考虑维护升级等各种麻烦。

02

OpenAI Swarm

Openai Swarm就是这样一个框架,它非常简单,一共大约五六百行代码,使用起来也非常容易。在2024年10月开源,由于跟openai结合很紧,对本地模型支持不太友好,国内用得人还比较少。但它和Deepseek可以很好的结合,毕竟,Deepseek和Openai的接口是兼容的。

OpenAI Swarm 的核心是一个多代理编排框架,旨在使代理协调变得轻量、可定制且易于测试。该框架允许开发人员构建、编排和管理一群 AI 代理,这些代理可以在彼此之间传递控制权以完成任务。当系统需要多个代理来处理工作流程的不同方面,或者代理需要根据复杂或动态的环境做出决策时,Swarm 特别有用。

Swarm 引入了两个主要概念:代理(Agent)和交接。代理表示执行特定任务或功能的单元,交接允许一个代理根据当前上下文将任务委托给另一个代理。这些抽象使得用相对简单的逻辑构建复杂、灵活的 AI 系统成为可能。

DeepSeek+OpenAI Swarm,做Agent的绝配

单Agent的灵活性

DeepSeek+OpenAI Swarm,做Agent的绝配

用一个实际的例子体验一下灵活性,这是swarm附带的例子,用于天气查询和发邮件,我们通过修改prompt来看看它的支持情况。

DeepSeek+OpenAI Swarm,做Agent的绝配
import jsonfrom openai import OpenAIfrom swarm import Agent,Swarmfrom swarm.repl import run_demo_loopdeepclient=OpenAI(api_key="sk-XXX", base_url="https://api.deepseek.com")dpclient = Swarm(client=deepclient)defget_weather(location, time="now"):"""Get the current weather in a given location. Location MUST be a city."""print(f"location:{location}")return json.dumps({"location": location, "temperature""65""time": time})defsend_email(recipient, subject, body):print("Sending email...")print(f"To: {recipient}")print(f"Subject: {subject}")print(f"Body: {body}")return"Sent!"weather_agent = Agent(    name="Weather Agent",    model = "deepseek-chat",    instructions="You are a helpful agent.",    functions=[get_weather, send_email],)prompt="查询北京的天气"if __name__ == "__main__":    response = dpclient.run(    agent=weather_agent,    max_turns=5,    messages=[{"role""user""content": prompt}],    )#print(response)    print(response.messages[-1]["content"])

如上,prompt写“查询北京的天气”,它就只查北京天气,并不会发邮件。

如果改成“查询北京上海西安的天气” ,它会循环调用函数对三个城市查询。

如果改成“查询北京上海西安的天气,并给[email protected]发邮件”,结果是这样的,循环查询天气,然后发邮件。

location:北京location:上海location:西安Sending email...To: sunzm@abc.comSubject: Weather ReportBody: Current weather in:- Beijing: 65°F- Shanghai: 65°F- Xi'an: 65°FSent!
注:max_turn是个有意思的参数 ,需要多试试
DeepSeek+OpenAI Swarm,做Agent的绝配

简单的多Agent交接

DeepSeek+OpenAI Swarm,做Agent的绝配

复杂的程序需要用到多Agent的配合,这个在swarm里的实现也非常简单

def transfer_to_agent_b():return agent_bagent_a = Agent(    name="Agent A",    instructions="You are a helpful agent.",    functions=[transfer_to_agent_b],)agent_b = Agent(    name="Agent B",    instructions="Only speak in Haikus.",)

大体的代码就是这么简单,直接return一个函数名就行。开源里有多agent的例子,有兴趣可以看看。

03

总结

有了大模型,开发的难度大大降低,用大模型辅助开发,再加上好的模型和好的框架,Agent的开发效率会大幅提升,效果也会比较理想。

Deepseek+Swarm是个非常好的组合,值得尝试。

swarm的开源在

https://github.com/openai/swarm

DeepSeek+OpenAI Swarm,做Agent的绝配

END

原文始发于微信公众号(AI与安全):DeepSeek+OpenAI Swarm,做Agent的绝配

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月22日12:00:29
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   DeepSeek+OpenAI Swarm,做Agent的绝配https://cn-sec.com/archives/3659574.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息