返回列表 发布新帖
查看: 28|回复: 2

想问大佬们一些 go+ Python (langgraph agent)的一些开发问题

不争发表于 前天 09:58 来自手机版 | 查看全部 |阅读模式
RT ,新进的这家公司想把之前用 fastapi 写的一套后端用微服务把网关什么的迁移到 go 上,通过 rpc 调用 py 的 agent 微服务,然后通信上司让我看那个 NATS ,但是我还是有一些问题,希望大佬们解答一下给一些建议

1. 因为 python 里面的 agent 调用涉及那种 SSE 流传输什么的,go 和 python 怎么通信比较好呢?
2. 数据的保存,如果是那种不涉及 agent 调用的接口好弄一些,直接在 go 里面做 CURD 就行了,但是有些接口是 agent 生成完数据再保存到数据库并且还要返回给用户某些东西的,这种是在哪些层面保存,agent 又应该如何返回呢?
3. 因为感觉难的大头是在 agent 和 go 之间的通信,不敢让 ai 一把梭,但是上司用 AI 生成的方案看着又很不靠谱。。。

大家有啥相关经验或者意见可以分享一下嘛?
回复

使用道具 举报

abcde发表于 前天 12:55 | 查看全部
1. llm 返回的流数据可以传给任何流,你可以选用 NATS 或者其他消息队列,返回给用户时候变成 SSE
2. agent 生成的东西不应该保存到数据库,而是考虑保存到 S3 这类存储服务
3. 我看完了也没搞清楚 go 部分到底要干嘛?如果本身功能角色不清晰,和任何系统对接都会变成一坨不可名状的东西
回复

使用道具 举报

世上无我这般人发表于 前天 15:00 来自手机版 | 查看全部
我讲下我们的方案, 供参考
1. 外部请求经由 API 服务, 先把 session / message 之类数据前置准备好, 包括使用的模型/配置等等, 保存到 DB, 返回前端消息创建成功.
2. python 端相当于是个纯运行 agent 的异步任务后台, 用一个消息队列触发. 用 rpc 触发也可以, 个人感觉 python 用 rpc 比较丑陋, 很少这么用.
3. python agent 接到的任务就是运行一个指定的 message, 负责直接维护和 LLM 供应商的数据流, 然后根据数据做各种操作, tool call / 本地数据操作之类的.
4. 需要暴露给用户的内容, python agent 把约定好的 sse chunk 数据塞进当前 message 专属的 redis stream 或者类似的轻量队列就好, 再做些生命周期管理避免资源占用.
5. 前端经过 API 服务用新接口打开 sse 连接, 从当前 message 专属的队列里读 sse chunk 然后吐给前端.
回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表