Tech Explorer Logo

搜索内容

字节跳动开源基于 Golang 的大模型应用开发框架 Eino

5 min read
Cover image for 字节跳动开源基于 Golang 的大模型应用开发框架 Eino

字节跳动今日宣布,经过半年多的内部使用和迭代,基于 Golang 的大模型应用综合开发框架 —— Eino,已在 CloudWeGo 正式开源。

快速认识 Eino

Eino 基于明确的组件定义,提供强大的流程编排能力,覆盖开发全流程,旨在帮助开发者以最快的速度实现最有深度的大模型应用。

你是否曾有这种感受:想要为自己的应用添加大模型的能力,但面对这个较新的领域,不知如何入手;想持续的站在研究的最前沿,应用最新的业界成果,但使用的应用开发框架却已经数月没有更新;想看懂项目里的用 Python 写的代码,想确定一个变量或者参数的类型,需要反复查看上下文。

Eino 的独特优势

基于大语言模型的软件应用正处于快速发展阶段,新技术、新思路、新实践不断涌现。一个优秀的大模型应用开发框架,既需要封装领域内”不变”的通用核心要素,又需要基于最新进展敏捷的横向和纵向扩展

目前较为主流的框架如 LangChainLlamaIndex 等,都基于 Python,虽然能借助 Python 较为丰富的生态快速实现多样的功能,但是同时也继承了 Python 作为动态语言所带来的”弱类型检验”和”长期维护成本高”等问题。在大模型应用快速进入大规模线上运行阶段的当下,基于 Golang 这一强类型语言而实现的高可靠性高可维护性,逐渐具有更大的价值。

基于大模型的应用开发是相对较新的领域,有时需要摸着石头过河,靠实践来检验认知。依托字节跳动高频应用豆包、抖音等的多样场景、快速迭代和海量反馈,Eino 在实践驱动设计方面有独特的优势。

内核稳定

  • 提供稳定的组件定义:每类组件作为一个 interface,有完善、稳定的定义
  • 支持通用基座能力:包括流式编程能力、Callback 能力、option 扩展能力
  • 提供固定的数据流转和流程编排范式:Chain(链式有向无环图)、Graph(有向图或有向无环图)、Workflow(有字段映射能力的有向无环图)

敏捷扩展

  • 支持组件横向扩展:如 ChatModel 可扩展支持 OpenAI、Gemini、Claude 等实现
  • 支持 Lambda 类型:可将自定义 function 声明为 Lambda 类型参与编排
  • 提供特定编排范式:如 ReAct Agent、Host Multi-Agent 等最佳实践封装

高可靠易维护

  • 强类型系统:充分利用 Golang 的强类型特性进行类型检查
  • 模块化设计:核心库和组件实现是单独的 go module,依赖最小化
  • 清晰的分层设计:每层职责明确、功能内聚

工具生态

  • 提供链路追踪、调试、可视化三大辅助工具
  • 内置 tracing callback,集成 Langfuse 平台
  • 支持 IDE 插件和 UI 拖拽式开发

项目开源地址:

Share

更多文章