上个月初,报名参加了 openagents 社区举办的黑客松大赛,本想设计一个加速阅读代码的 AI 工具,主要包含一个 tauri 桌面客户端,一个 http_agent 数据接收服务端, 一个 llm_agent 处理信息。

桌面客户端的交互花费了不少精力,并且这个功能暂时不经过 openagents 会更简单一些,这样我可以有更多精力优化 llm 的效果,所以就暂时放弃了这个项目。 然后又重新写了一个项目。 一个获取天气的服务器 agent,一个发送地点和日期的客户端,一个提供出行指南的 agent

这个项目是链式的,确定性较高,输入地点和日期,获取天气,再生成出行指南,但没有发挥 openagents 这个框架的优势,没有个性化的分布式 agents,似乎也缺少了一些特色。 于是在参考了一些大佬的方案之后,增加了多智能体协作功能,在接收相同底层数据(天气)的情况下,系统能够同时生成符合不同角色视角的差异化建议。 于是就有了来自四个魔法学院学生的个性化表现,同样的地点,同样的天气,不同的角色也可以有不同的选择方式。

如果 agents 都对一个频道的消息做出回复的话,就会造成一个频道里面的信息停不下来的情况,所以在代码中进行了一下改进,所有的 agents 都只对 weather_connector 的消息做出回复。 由于项目的子程序很多,手动启动比较复杂,所以我设计了一个启动脚本。 最终程序运行只需要执行两个脚本。
启动network,studio界面和所有的agents
python launcher.py all
发送地点和时间,1是为了简化时间格式,代表明天,类推2就是后天
python travel_sender.py Beijing 1
程序调用的模型来自 ollama 的本地模型,openagents 的 custom 选项现在支持本地大模型了,配置过程中遇到一个代理会导致网络不通的问题,我是关了代理解决的。

代码在 github 开源了,也有相关视频链接在仓库里。
https://github.com/starttown/travel-guide-network.git
期待您的反馈建议,To Be Continued...