cloudwego/eino

AI 工程

用 Go 把 LLM 组件编排成图与智能体的框架,适合已用 Go 构建后端的团队。

13,447
1,154
Go
Apache-2.0
创建于 1 年前

如果你已经用 Go 写后端,又不想为了 AI 层单独引入 Python 或 TypeScript 服务,Eino 值得花时间看一下。它是框架而不是现成应用:你需要写 Go 代码,并从独立的扩展仓库里挑选组件实现。

解决什么问题

Go 团队做 LLM 功能,常见做法是手写:调模型 HTTP API、拼提示词、接检索、自己维护工具调用循环。小流程尚可,一旦出现分支、需要跨多个节点流式输出,或者要在中间插入人工确认,这些胶水代码就成了应用本身,改流程等于重写。Eino 让你用带类型的图或配置化的智能体描述节点和边,由框架负责数据传递、节点间的流衔接和工具循环,从而把「业务流程」和「模型交互」分开。

有什么不同

核心抽象是类型化的编排图:声明 start、lambda、chat-model、end 等节点,用边连接,编译后调用。确定性的处理流水线本身可以包装成工具交给智能体,由模型决定何时调用某个领域工作流,这是在精确控制和模型自主之间取得平衡的实用方式。在此之上,Agent Development Kit 提供内部处理 ReAct 循环的 ChatModelAgent,以及能拆解任务、委派给子智能体、并可执行 shell、Python 或网页搜索的 DeepAgent。

框架还统一处理横切关注点:流式会自动传播,组件只需实现适合自己的流式形态,节点之间的拼接、合并由框架完成;回调可以在固定生命周期点注入日志、追踪和指标;interrupt/resume 能让智能体或工具暂停等待人工输入,并从检查点恢复。代价是整个应用要按 Go 的类型和惯用法来组织,你采用的是框架的图模型,而不是组合几个独立小库。代码路径显式且类型清晰,但抽象需要时间熟悉,智能体层对委派和状态结构也有既定做法。

谁值得试

适合已经用 Go 承载领域服务、希望让智能体把现有服务当工具调用的后端团队;也适合需要图状流程、并且在意流式、回调和人工介入暂停的团队。愿意让服务端统一使用一种语言的团队同样合适。反过来说,如果只是写个小脚本、做一次性的提示词调用,或主要工作是在 Python 里做实验,引入 Go 加这套框架带来的结构可能超过任务本身所需。如果只需要接入模型,组件实现在本仓库之外,动手前先确认目标供应商是否已覆盖。

使用条件与边界

README 写明需要 Go 1.18 及以上;OpenAI、Claude、Gemini、Ark、Ollama、Elasticsearch 等供应商集成位于独立的 eino-ext 仓库,只引入核心模块并不能直接连模型。文档站是主要参考,可运行的范例在 eino-examples 仓库。项目拆成核心、扩展、示例和 devops 工具四个仓库,它们之间的版本兼容需要你自己跟进。

对于一个以智能体开发为主打的项目,安全指引值得注意:漏洞应报告给字节跳动安全中心,而不是公开 issue。README 没有说明执行 shell 或 Python 的工具在运行时如何隔离,使用 DeepAgent 的团队应按这项能力本身的风险来评估,并查阅文档中关于人工介入检查点的说明。仓库自身的 lint 规则和 GoDoc 要求面向贡献者,并不构成对第三方组件质量的保证。

HotRepo 点评

HotRepo 目前只有一个记录点:截至 2026-10-26 当周 Go 周榜第 18 名、周增 109 星。这只是一份带日期的快照,无法判断关注度是在上升还是回落,可比的日榜历史也缺失。2025-04-09 的 Hacker News 帖子获得 4 分、1 条评论,2025-04-10 的评论只是复述了组件集成和链/图编排能力。决定采用前,建议核对你要用的模型供应商在 eino-ext 中的实现,是否与你计划使用的核心版本兼容。

项目源码与说明

Hacker News 讨论

Eino: A Golang AI Application Development Framework Like Langchain/Langgraph
▲ 4 · 1 条评论 · 2025年4月9日

本文由 AI 根据项目 README 生成,更新于 2026年10月26日,以项目官方文档为准。