marvin

用 Python 装饰器,让任意函数秒变 AI 能力

Marvin 是一个面向 Python 的“环境智能”库,旨在将大语言模型(LLM)的能力无缝嵌入日常代码,让开发者无需复杂提示工程即可构建 AI 驱动的功能。它解决的核心问题是:传统 LLM 集成需要繁琐的 API 调用、提示管理和输出解析,而 Marvin 通过声明式 API 和类型注解,让模型自动完成文本分类、实体提取、数据生成、图像理解等任务。其核心能力包括:基于 Pydantic 的强类型输出(确保结构化结果)、内置函数装饰器(将普通函数升级为 AI 函数)、多模态支持(文本与图像)、以及异步和流式处理。Marvin 还提供简洁的 DSL(领域特定语言),降低使用门槛,适合快速原型和生产级应用。它强调“环境智能”理念,即 AI 作为背景能力,自动响应上下文,减少显式交互。项目活跃,文档完善,但依赖外部模型 API(如 OpenAI),需配置密钥。

开源 free 开源模型
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 6198
维护状态 活跃
是否开源 是
定价模式 free

项目数据

分类开源模型
开发团队PrefectHQ
所属国家
定价模式free
价格说明开源库,Apache-2.0 许可证,完全免费,可自行部署使用。
访问状态
是否开源是
开源协议Apache-2.0
主要语言Python
技术栈/模型agents,ai,ambient-ai,chatbots,gpt,llm,nli,python,structured-outputs
GitHub 星标★ 6198
30天Star增速
HF 下载量
上线时间2023-03-10 00:00:00
最近更新2026-09-22 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数3

使用教程

难度:入门 约 10 分钟 部署方式:库/依赖 6 步

环境要求

  • Python 环境(marvin 是 Python 库)
  • uv 包管理器(README 使用 uv add 安装)
  • 一个可用的 LLM 提供方 API Key,默认使用 OpenAI
  • 可访问外网以调用模型接口

安装与启动步骤

  1. 1准备 Python 项目

    marvin 是 Python 库,README 通过 uv add 安装,需先在项目目录中初始化 Python 项目环境并确认 uv 可用。

  2. 2安装 marvin

    在项目目录执行安装命令,uv 会把 marvin 写入项目依赖并下载安装。

    uv add marvin
  3. 3配置模型密钥

    Marvin 默认使用 OpenAI,需设置 OPENAI_API_KEY 环境变量,把示例值换成你自己的真实密钥。

    export OPENAI_API_KEY=sk-xxxxxxxx
  4. 4运行第一个任务

    调用 marvin.run 让模型执行一个简单任务,能打印出结果说明安装和密钥配置成功。

    python -c "import marvin; print(marvin.run('Write a short poem about artificial intelligence'))"
  5. 5尝试结构化输出

    通过 result_type 指定返回类型,让模型直接返回 Python 原生类型,验证结构化输出能力。

    python -c "import marvin; print(marvin.run('the answer to the universe', result_type=int))"
  6. 6测试信息抽取

    使用 marvin.extract 从非结构化文本中抽取指定类型的数据,可按需附加 instructions 约束。

    python -c "import marvin; print(marvin.extract('i found $30 on the ground and bought 5 bagels for $10', int, instructions='only USD'))"

关键配置

配置项必填说明示例
OPENAI_API_KEY是OpenAI 密钥,Marvin 默认用它调用模型sk-xxxxxxxx

如何确认成功

运行 marvin.run 能正常打印出诗句,再执行 result_type=int 的例子输出 42,即表示安装与密钥配置成功。

常见问题

Q:必须使用 OpenAI 吗?

A:不是。Marvin 默认使用 OpenAI,但原生支持所有 Pydantic AI 模型,可切换到其他提供方。

Q:没有 uv 怎么安装?

A:README 只给出了 uv add marvin 这一安装方式,可先按 uv 官方文档安装 uv 再执行该命令。

Q:怎样拿到结构化结果而不是纯文本?

A:在 marvin.run 中传入 result_type 指定目标类型(如 int),或使用 cast、extract、classify 等工具。

Q:如何限制抽取范围?

A:在 extract 等调用中通过 instructions 参数传入额外约束,例如只提取美元金额。

注意事项

  • API Key 属于敏感信息,不要写进代码或提交到 Git 仓库。
  • 所有示例都需要联网调用大模型接口,无网络时会失败。
  • README 未提供 pip 安装、端口或 Docker 部署说明,本教程仅覆盖库安装与代码调用。

核心亮点

  • 声明式 API 结合类型注解,自动输出 Pydantic 结构化数据,省去解析烦恼
  • 函数装饰器一键增强,无需重构现有代码,上手极快
  • 支持多模态(文本+图像)和流式输出,覆盖常见 AI 任务

不足之处

  • 深度依赖外部 LLM API(如 OpenAI),本地模型支持有限
  • 文档/社区待观察,高级用法示例偏少

适用场景

  • 快速构建文本分类、情感分析等 NLP 流水线
  • 从非结构化文档中自动提取实体并生成结构化数据
  • 为现有 Python 应用注入 AI 功能(如智能客服、内容审核)

替代项目

LangChain、Semantic Kernel、Outlines

项目介绍

marvin 是智能体领域的开源项目,由 PrefectHQ 开发,2023 年首次发布。

在全站 13,014 个收录项目中,它的 GitHub 星标数(6,198)位列前 8%,在智能体分类的 2,499 个项目里位列前 8%。

项目目前处于活跃维护状态,最近一次代码更新于 2026-09-22。开源库,Apache-2.0 许可证,完全免费,可自行部署使用。

它主要面向的使用场景是:快速构建文本分类、情感分析等NLP流水线。同类可对比的替代方案包括 LangChain、Semantic Kernel、Outlines。

上一篇:Awesome-GPT-Agents

下一篇:TaskWeaver

同类项目推荐

xinchao-dynamic-mind 开源

给 AI 装上疲惫和欲望,让交互更真实

独立、可自托管的 AI 动态心智状态引擎:驱动力、念头池、疲惫、睡眠与意图。

★ 195 2026-08-09
deepseek-harness 开源

把 AI 能力拆成乐高积木,拼出你的专属智能体。

DeepSeek Harness: Everything is a Plugin.

★ 233327 2026-08-15
AutoGPT 开源

开箱即用的 AI 员工,交代任务就自己干完

AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mis···

★ 187492 2026-08-09
EvoAgentX 开源

让 AI 智能体自己迭代变强,越用越聪明

EvoAgentX: Building a Self-Evolving Ecosystem of AI Agents

★ 3351 2026-09-12