多语言 Agent 框架
Spring AI(Java)/ LangChain4j / Candle(Rust)/ Mastra(TS)/ FastHTML(Python)/ Axum(Rust API)— 每种栈都有 agent 框架。
这个 pack 装了什么
这个包收齐了 六个 agent 框架,让团队留在自己的语言生态里,不用为了 LLM 功能在 Java 或 Rust 后端旁边硬塞一个 Python 服务。覆盖 Python 之外的四种语言:Java / Rust / TypeScript / Python(FastHTML 做全栈渲染)。
| # | 框架 | 语言 | 适合 |
|---|---|---|---|
| 1 | Spring AI | Java | Spring Boot 应用加 LLM 功能 |
| 2 | LangChain4j | Java/Kotlin | LangChain 在 JVM 的社区移植 |
| 3 | Candle | Rust | 本地模型推理 |
| 4 | Mastra | TypeScript | 全栈 TS agent + 工作流框架 |
| 5 | FastHTML | Python | 服务端渲染的 agent UI |
| 6 | Axum | Rust | 高吞吐 agent API |
这个 pack 反映了一个现实:LLM 功能现在出现在每种后端里,不只 Python。Spring Boot 的电商后端不想为了聊天功能再起一个 FastAPI 服务 —— Spring AI 跑在同一个 JVM 里。Rust API 网关不想要 Python sidecar —— Axum + Candle 编译成一个二进制。
为什么语言原生很重要
Python 优先的 agent 世界(LangChain / LangGraph / CrewAI)当 Python 已经是主栈时很好。如果你是 Java 公司,没这个 pack 你只有三个糟糕选项:
- 跑 Python sidecar 服务(额外部署 / 独立可观测性 / 两个进程之间 marshalling JSON)
- 用 SaaS LLM 网关(厂商锁定 / 延迟 / 费用)
- 在 Spring controller 里手写 OpenAI HTTP 调用(没有抽象 / 没有评估框架 / 没有 agent 循环)
Spring AI 和 LangChain4j 修这个。它们给 Java 提供 LangChain 给 Python 的同款原语 —— chat 模型 / 工具调用 / prompt 模板 / 向量存储 / agent 循环 —— 用地道的 Spring 或 Kotlin DSL。Rust(Candle 推理 + Axum API 面)和 TypeScript(Mastra 框架)同理。
代价是功能滞后。LangChain 第一天就发新模型集成;Spring AI 要几周;LangChain4j 有时比 Spring AI 还快因为是社区驱动。「模型昨天发的,只有 Python 接了」是真实场景。
一条命令装齐
# 装整个 pack,把每个框架的 starter 项目放进
tokrepo install pack/agent-frameworks-multilang
# 或按语言装
tokrepo install spring-ai
tokrepo install langchain4j
tokrepo install mastra
tokrepo install candle
TokRepo CLI 处理每个生态的包管理器 —— Spring AI 和 LangChain4j 用 Maven,Candle 和 Axum 用 Cargo,Mastra 用 npm/pnpm,FastHTML 用 uv。每个 starter 项目都带一个会调真模型的通过测试,写业务逻辑前先验证 API key。
几个常见坑
- Spring AI vs LangChain4j 不是「官方 vs 非官方」。Spring AI 来自 VMware/Broadcom;LangChain4j 是社区。两个都广泛使用。按你用的模型的功能对齐和人体工学偏好(Spring DSL vs LangChain 语义)选
- Mastra 还年轻。维护得好但小版本之间 API 有变化。生产钉具体版本,升级前看 release notes。生产用户一般等两个小版本再升
- Candle 做推理,不做编排。它在本地跑模型(Llama / Mistral 等)给你 embedding —— 但不是完整 agent 框架。要 Rust-only 栈把 Axum 配上做 API 层
- FastHTML 基于 HTMX,不是 SPA 框架。团队预期 React 或 Vue 的话 FastHTML 会很别扭。适合想要服务端渲染的 Python UI 直接接 agent,不要单独前端 repo 的场景
- 工具调用格式各家不同。OpenAI / Anthropic / Gemini 的工具调用 JSON schema 都不一样。每个框架抽象方式不同 —— Spring AI 的
@Tool注解 / LangChain4j 的反射@Tool/ Mastra 的类型化createTool()。别假设工具定义能跨框架移植
单这个 pack 不够时
这个 pack 给你你语言里的 runtime。你还需要:
- LLM 提供商:OpenAI / Anthropic / Bedrock / Ollama 自托管。六个框架都支持配置切多 provider
- 向量存储(如果做 RAG):见向量数据库横评 pack —— 多数条目都有 Java / Rust / TS 原生客户端
- 评估管道:LLM 评测 & 护栏 pack 里的 Promptfoo 是语言无关的 —— 不管后端啥语言都能指你的端点
纯 Python 栈、不关心多语言的,去看 Python Agent 框架。不挑语言、想平台无关并列对比,去看 多 agent 框架。
6 个资产打包就绪
常见问题
这些框架免费吗?
六个全是 Apache 2.0 或 MIT 开源 —— 框架本身不收按席位费。LLM API 调用(OpenAI / Anthropic 等)该付的还是要付,跟语言无关。Spring AI 来自 Broadcom 但免费;LangChain4j 社区驱动免费;Mastra 有 VC,开源免费 + 可选云服务。Candle / Axum / FastHTML 是纯 OSS。
Spring AI 跟 LangChain4j 怎么比?
Spring AI 是 Spring 团队做的标准答案 —— 跟 Spring Boot autoconfig / Spring Data / Spring Security 紧密集成。LangChain4j 社区驱动,把 LangChain 概念模型(chain / agent / callback)移植到 Java,功能覆盖更广。Spring 公司想要标准用法选 Spring AI;想要 LangChain 心智模型在 JVM 里、要最大集成广度选 LangChain4j。
Claude Code 或 Cursor 能用吗?
这些是运行时框架,不是编辑器集成。框架本身跑在你的服务里(Spring Boot / Axum 二进制 / Mastra 应用)。你的编辑器(Claude Code / Cursor)帮你写框架代码。Cursor 和 Claude Code 对 Java / Rust / TS 都支持得不错,Spring AI 还能从 JetBrains 的 Spring IDE 插件得到很好的自动补全。
和 Python Agent 框架 pack 的区别?
Python Agent 框架是纯 Python —— 五个框架都跑 CPython。这个 pack 是反面:暴露非 Python选项。已经定 Python 了那个 pack 更密集;在 Java/Rust/TS 上或还在挑语言这个 pack 是起点。两者互补不重叠。
Mastra 的运维坑是什么?
Mastra 有强意见认为工作流跟 agent 应该住同一个项目,共享类型。代码库干净是好的,但工作流引擎和 agent 框架版本紧耦合。Mastra 升级一个工作流坏了,你不能只回滚 agent 不回滚工作流。Mastra 版本升级要专门测试阶段。