LangGraph 有了 Swift 版:iOS 端跑 Agent 工作流

一位开发者把 LangGraph 的核心抽象搬到了 Swift 生态,让 iOS/macOS 应用可以原生构建有状态、多 Actor 的 AI Agent 工作流,无需再靠 Python 后端中转。
Swift 开发者终于不用羡慕 Python 那套 Agent 工具链了
昨天 Hacker News 上出现了一个叫 Swarm 的项目,作者 Christopher Karani 直接把标题写成"I Built LangGraph for Swift"。这不是第一次有人尝试把 LangGraph 搬到苹果生态——早在 2024 年 3 月,Bartolomeo Sorrentino 就做过一版 LangGraph-Swift 配合 LangChain-Swift 使用——但这波新项目意味着社区终于开始认真对待一件事:iOS/macOS 上的 Agent 应用,不应该只是一个套壳调 API 的客户端。
这件事的意义比它表面看起来更大。过去两年 Agent 框架的战争基本发生在 Python 生态里,LangGraph、LlamaIndex Workflows、CrewAI、AutoGen 你方唱罢我登场。Swift 这边呢?苹果自己给了 Foundation Models framework(WWDC25 推出的端侧模型接入),但真要做 Agent 编排——多轮工具调用、状态回滚、循环判断、人机交互中断——开发者只能自己撸状态机,或者把编排逻辑丢到服务端用 Python 跑,客户端做纯 UI。这对追求端侧隐私和响应速度的移动场景是个明显的错配。

它到底解决了什么
LangGraph 的核心抽象其实就三样东西:State(贯穿全流程的状态对象)、Node(消费并更新状态的函数)、Edge(决定下一步去哪的路由,支持条件跳转和循环)。这套东西的价值在于把 Agent 的"思考-行动-观察"循环显式建模成一张有向图,而不是藏在一堆 if-else 和 while 循环里。
Swarm 和更早的 LangGraph-Swift 沿用了这套心智模型。以 Sorrentino 那版为例,它提供的是 StatefulGraph,参数化一个 State 对象,节点是接受 AgentState 的 async 函数:
try graph.addNode("call_agent") { state in
guard let input = state.input else {
throw executionError("'input' argument not found in state!")
}
guard let intermediate_steps = state.intermediate_steps else {
throw executionError("'intermediate_steps' property not found in state!")
}
let step = await agent.plan(input: input, intermediate_steps: intermediate_steps)
return ["agent_outcome": step]
}
try graph.addConditionalEdge(fromNode: "call_agent", condition: { state in
guard case .some(let outcome) = state.agentOutcome else {
return "end"
}
return outcome.isFinish ? "end" : "action"
})
熟悉 Python 版 LangGraph 的人一眼就能看懂,几乎是逐字翻译。这不是坏事——Agent 框架最怕的是每家搞一套 DSL,跨语言迁移就是重写一遍业务逻辑。API 保持一致,意味着 Python 端验证过的工作流可以低成本搬到 iOS。
为什么现在做这件事有意义
2026 年的移动端 AI 应用生态已经跟一年前不一样了。有几个变量在同时变化:
第一,端侧模型可用了。苹果 Foundation Models framework 让开发者可以直接调用系统内置的 3B 参数级模型,处理摘要、分类、结构化提取这类任务完全够用。这意味着一个 Agent 工作流里,不是每个节点都要走网络,简单节点走端侧、复杂推理走云端成了合理架构。
第二,Swift Concurrency 已经足够成熟。async/await、Actor、TaskGroup 这套东西天然适合表达 Agent 的并发执行——多个工具并行调用、超时控制、结构化取消,Swift 的原语比 Python 的 asyncio 干净得多。LangGraph 那套"节点是异步函数"的抽象在 Swift 里其实更自然。
第三,工具调用成了标配。GPT、Claude、Gemini 都稳定支持了 function calling / tool use,DeepSeek V3.2 和 Qwen3 也跟上了。Agent 框架的价值不再是"教模型怎么用工具",而是编排多轮工具调用之间的状态。这正是 LangGraph 这类图式框架擅长的。
和竞品比怎么样
直说吧,目前 Swift 生态里能称得上"Agent 框架"的东西不多:
- LangChain-Swift + LangGraph-Swift:Sorrentino 的双人组,社区维护,跟 Python 版 API 对齐度最高,适合已经在用 LangChain 技术栈的团队。
- Swarm(新出):定位类似,从 HN 讨论看,作者更强调轻量和 Swift 原生感,没有把整个 LangChain 生态拖进来。
- 苹果 Foundation Models 的 Guided Generation:官方方案,好处是深度整合系统,坏处是只能用苹果自己的模型,跨模型编排完全没戏。
- 自己撸:仍然是很多团队的现实选择,但状态管理、断点续跑、可观测性这些坑要自己踩。
判断:如果你的 iOS 应用只是调一次 LLM 拿结果,不需要框架。但只要涉及"模型调工具、看结果、再决定下一步"这种循环,手写状态机的成本会迅速超过引入框架的学习成本。Swarm 和 LangGraph-Swift 的出现填补的就是这段空白。
一个真实场景
举个具体的例子。假设你在做一个 iOS 上的邮件助手,用户说"把上周老板发的那封关于 Q3 计划的邮件找出来,总结要点,然后草拟一封回复"。
这个任务如果用传统方式实现,你要写:查询邮件 API → 判断结果是否命中 → 没命中就换关键词重试 → 命中后调 LLM 总结 → 根据总结调 LLM 生成回复 → 让用户确认 → 用户改了再重新生成。
用 LangGraph 式的图来表达就是:
search_email → [conditional: found?] → summarize → draft_reply →
[conditional: user_approved?] → send / regenerate (回到 draft_reply)
状态对象里挂着 query、search_results、summary、draft、user_feedback。任何节点失败可以回滚到上一个稳定状态,用户中途关掉 App,下次进来能从上次断的地方继续——因为整个执行轨迹就是状态的演化序列,天然可持久化。
这就是图式框架相对于"一坨 async 函数互相 await"的核心优势:执行是数据,不是控制流。
值得注意的坑
泼点冷水。把 Python 生态的抽象搬到 Swift,不是没有代价的:
-
生态断层。LangGraph Python 版背后是整个 LangChain 生态——几百个集成、LangSmith 可观测性、LangGraph Platform 部署。Swift 版目前基本只有核心库,你要接 Pinecone、要接 Tavily 搜索、要做 tracing,都得自己写适配器。
-
模型 SDK 碎片化。iOS 上想同时调 GPT、Claude、Gemini、DeepSeek,要么每家 SDK 装一遍要么自己封装 HTTP。这也是为什么很多 iOS 开发者选择走 OpenAI 兼容的聚合网关——比如 OpenAI Hub 这类平台一个 Key 打通主流模型,国内还能直连,省掉在 App 里维护多套鉴权和 endpoint 的麻烦,Agent 框架里换模型只是改个 model 字符串的事。
-
调试体验。Python 端有 LangSmith 可以看每一步的 trace,Swift 端目前只能靠 print 或者自己接 OSLog。Agent 出问题最怕的就是"不知道它在哪一步跑歪了",这块工具链还得等社区补齐。
一点判断
这类项目短期不会有爆炸性用户量,但方向是对的。移动端跑 Agent 会是 2026 下半年到 2027 年的一个明确趋势,理由很简单:模型能力已经够、端侧算力已经够、用户对"手机上的智能助手"的期待已经被 Apple Intelligence 和各家 AI 手机拉高了。而支撑这一切的工程基础设施——框架、调试工具、部署方案——现在才刚刚开始出现。
对 Swift 开发者来说,现在是个不错的入场时机。LangGraph 的心智模型学一遍,Python 和 Swift 两边都能复用;框架本身还小,读源码、提 PR、影响 API 设计的窗口都还开着。等到明年苹果自己下场做类似的东西(我个人赌 WWDC26 会有动作),今天在社区攒的经验就是先发优势。
参考来源
- Swarm - LangGraph for Swift (GitHub):Hacker News 上的新项目,作者从零实现的 Swift 版 LangGraph
- LangGraph-Swift (GitHub):Bartolomeo Sorrentino 2024 年发布的版本,与 LangChain-Swift 配套使用


