首页 › new-tools › 写AI应用的三把新锤子,白嫖起步

国内还在卷"哪个模型更强"的时候,海外一批工程师已经悄悄换了打法:不纠结模型,先把工程台换掉。数据原型用 Marimo,业务 Agent 用 PydanticAI,模型调度用 LiteLLM——三件全部开源免费起步,组合起来就是一条从"验证想法"到"上生产"的完整流水线。这三件在国内技术社区的曝光度都还很低,属于典型的"海外已跑通、国内没人提"的时间差红利。本文把三件工具的玩法、命令和组合方式一次讲透,你今天就能照着搭起来。

先看全局:三把锤子怎么配合

很多人建 AI 应用是这样的:Jupyter 里试模型 → 手写 prompt → 硬编码调 API → 上线后账单爆炸、输出没法校验。三把锤子正好把这个流程每一环都换掉:

flowchart TD
    A["数据和需求"] --> B["Marimo<br/>响应式工作台"]
    B -->|原型验证| C["PydanticAI<br/>业务Agent"]
    C -->|统一出口| D["LiteLLM<br/>自托管网关"]
    D --> E["DeepSeek Qwen"]
    D --> F["Claude GPT"]
    D --> G["Ollama 本地"]

一句话总结分工:Marimo 负责想清楚,PydanticAI 负责写出来,LiteLLM 负责兜住钱。下面逐个拆。

第一把:Marimo——把 Notebook 从草稿纸变成应用

是什么:Marimo(官网 marimo.io,GitHub 仓库 marimo-team/marimo)是一个"响应式"Python Notebook。它和 Jupyter 最大的区别只有一条,但这条足以致命:Jupyter 的单元格可以乱序执行,隐藏状态是数据科学圈著名的翻车源——你先跑了第 5 格再跑第 2 格,变量就对不上了,报告看起来对、实际全错。Marimo 把依赖关系做成了显式的:你改任何一个变量,所有引用它的下游单元格自动重跑,跑不动的自动标记失效。换句话说,它强制你的笔记本永远处于"一致状态"。

三个真香细节:

  1. Notebook 就是纯 .py 文件。Git diff 友好、code review 友好、可以直接 python your_notebook.py 当脚本跑。Jupyter 的 .ipynb 是一坨 JSON,diff 出来全是 base64 图片,评审基本靠信仰。
  2. 一条命令变 Web 应用:marimo run app.py,你的数据分析笔记本立刻变成一个带滑块、按钮的交互页面。给业务同事做"输入参数→看结果"的小工具,以前要搭 Streamlit,现在笔记本本身就够了。
  3. 内置 SQL 单元格,可以直接对 DataFrame 写 SQL,还有 AI 辅助补全。

价格:核心开源免费,云端托管版收费(具体额度以官网为准)。

和国内对比:国内数据岗现在基本两条路——Jupyter 传统艺能,或者百度 AI Studio、魔搭这类托管平台。Marimo 这类"响应式 Notebook"在国内社区几乎没有成规模的讨论,属于你学会了就能在团队里当"那个会新东西的人"的技能。

适用人群:数据分析师、算法工程师、需要经常给老板/同事做演示小工具的后端开发。

第二把:PydanticAI——像写 FastAPI 一样写 Agent

是什么:PydanticAI(GitHub 仓库 pydantic/pydantic-ai,文档 ai.pydantic.dev)是 Pydantic 官方团队出的 Agent 框架。Pydantic 是 Python 世界数据校验的事实标准,FastAPI 就是建在它上面的——所以这个框架的气质你大概能猜到:类型安全、显式声明、生产可用。

它解决的核心痛点:大多数框架里,LLM 的输出是一段"祈祷没写错的字符串",你要自己 JSON.parse、自己校验、失败了自己哭。PydanticAI 的做法是:你用 Pydantic 模型声明"我要什么结构",模型输出不符就带着校验错误信息自动重试,直到拿到一个经过校验的 Python 对象。Agent 调工具(tool)时参数同样走类型校验,依赖注入的写法和 FastAPI 几乎同款——后端工程师几乎零学习成本。

一个最小的用法长这样:

from pydantic import BaseModel
from pydantic_ai import Agent

class 车险报价(BaseModel):
    城市: str
    月保费: float
    理由: str

agent = Agent('openai:gpt-4o', output_type=车险报价)
result = agent.run_sync('给上海一台10万家用车估个月保费')
print(result.output.月保费)   # 直接是校验过的 float,不是字符串

价格:MIT 协议开源免费。官方配套的观测平台 Logfire 是独立 SaaS 收费(有免费额度,以官网为准),但不用它也完全不影响框架本身。

和国内对比:国内做 LLM 应用,要么直接 LangChain,要么干脆裸写 prompt + 正则解析。LangChain 那套抽象在国内已经被吐槽很多轮了;PydanticAI 的"少抽象、多校验"路线在国内还很少有人系统介绍——但它可能是最适合国内后端工程师体质的一类框架。

适用人群:要把 LLM 接进真实生产系统的后端工程师;被 LangChain 抽象伤过的人;任何受够了"字符串碰运气"的人。

第三把:LiteLLM——一个网关管住所有模型的钱包

是什么:LiteLLM(GitHub 仓库 BerriAI/litellm,文档 docs.litellm.ai)干一件事:把上百个模型服务商的 API 统一成 OpenAI 格式(据其文档描述支持上百个 provider)。它有两层用法:

真正的杀招在网关层,这是个人和团队都值得开的一个服务:

  1. 虚拟密钥:给每个同事、每个项目发独立 key,各自设预算上限,谁烧钱一目了然,到顶自动熔断。
  2. 主备路由:主模型超时/报错,自动降级到备用模型,回调里挂上日志。国内开发者可以轻松做到"DeepSeek 打主力、Claude 兜底、本地 Ollama 付零成本跑批"。
  3. 成本记账:每次调用自动算 token 花费,按项目/按 key 出报表。

价格:核心开源免费(MIT,自托管),企业版收费(以官网为准)。

和国内对比:这个品类国内其实有同类——One API 及其衍生项目在国内用得很多。LiteLLM 的差异点在于:Python SDK + 代理网关一体、预算/回调/路由这些"公司用法"做得更厚、海外新模型的适配速度通常更快。已经用 One API 的可以把它当海外视角的参照物,没用的可以直接从 LiteLLM 起步。

适用人群:任何同时用超过一家模型的人;小团队要管住 AI 开销的技术负责人;做 AI 产品要给客户配额的人。

组合拳:今天就能跑通的三步

# 第一步:工作台(约5分钟)
pip install marimo
marimo edit          # 建笔记本,写完 marimo run 变成可分享的小应用

# 第二步:网关(约10分钟)
pip install 'litellm[proxy]'
litellm --config config.yaml   # config 里填 DeepSeek/Ollama/Claude 的 key 和主备关系

# 第三步:业务 Agent(约30分钟)
pip install pydantic-ai
# Agent 的 model 参数直接指向 LiteLLM 网关的 base_url(localhost:4000)
# 从此你的业务代码只认一个地址,底下换模型零改动

串起来之后的效果:原型在 Marimo 里验证 → 逻辑固化成 PydanticAI 的类型安全 Agent → 所有调用经 LiteLLM 网关记账、限流、降级。这套结构的好处是每一层都可以单独换掉——明天出了更强的模型,你只改网关里的一行配置。

信息差总结

环节 你以为的方案 海外工程师在用的
数据原型 Jupyter 乱序执行,靠自觉 Marimo 响应式笔记本,永不状态错乱
Notebook 复用 截图发群里 marimo run 一键变交互 Web 应用
LLM 输出 字符串 + 祈祷 PydanticAI 校验失败自动重试
模型切换 改代码、发版本 LiteLLM 网关改一行配置
团队开销 月底看账单吓一跳 虚拟密钥 + 预算熔断,按人记账
容灾 主模型挂了全组躺平 主备自动降级

行动指南

  1. 今晚(30分钟):装 Marimo,把你手头最烦的一个 Jupyter 分析迁过去,感受"改一格、下游自动跟"的爽感;
  2. 本周末(2小时):用 LiteLLM 网关把你常用的两三家模型(比如 DeepSeek + Ollama)收编成一个本地接口,给不同项目发不同虚拟 key;
  3. 下周(半天):挑一个你正在做的 prompt 功能,用 PydanticAI 重写成带校验的 Agent,对比一下"字符串祈祷版"和"类型安全版"的返工率差多少。

参考来源

诚实声明:本文撰写时实时检索通道受限,未能对最新版本与价格做当日核验,文中功能描述基于各项目官方文档的历史公开信息,价格、版本、星标数请以官网实时页面为准。

  1. Marimo 官网:https://marimo.io | GitHub:https://github.com/marimo-team/marimo
  2. PydanticAI 文档:https://ai.pydantic.dev | GitHub:https://github.com/pydantic/pydantic-ai
  3. LiteLLM 文档:https://docs.litellm.ai | GitHub:https://github.com/BerriAI/litellm

本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护。 聚焦5G/6G核心网、3GPP标准、AI工具实战。知识星球「51学通信」提供深度技术答疑和行业洞察。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入