开发与工程 python-sdktypescript-sdkstructured-outputfunction-callingmulti-provider-modelspydanticasync-execution

Mirascope

用统一接口调用不同前沿模型,并构建带工具和结构化输出的智能体。

FollowAgents 评估 · FARS-2.1
不推荐
55/ 100 五分制 2.8 / 5
1 2 3 4 5 6
1信任安全11 / 29 · 1.9/5

CI 工作流将默认权限限制为 contents: read,发布任务仅单独授予 id-token: write;测试录像还会过滤授权头、API 密钥、Cookie 和组织标识,因此依赖权限与敏感信息处理有明确证据。扣分在于产品层没有展示工具权限隔离、调用前用户确认、数据保留或供应商传输说明;execute_tools 可执行用户注册工具,但没有副作用分级、恢复或回滚机制。仓库、站点、版权主体和许可证归属清楚,但没有可核实的个人维护者身份,且给定出版者身份仍属未知。

2可靠稳定8 / 14 · 2.9/5

README、包脚本、CI 和测试配置共同呈现了统一调用、结构化输出及工具循环,并覆盖 Python 3.10–3.13、TypeScript 和多个运行时。锁文件检查、冻结安装和录像回放提高依赖可用性,但实际模型服务仍依赖外部供应商和凭据。可见 ToolExecutionError、ToolNotFoundError 等错误类型,不过没有提供面向用户的错误消息实现或恢复指导;README 所称四个 CI 作业也与工作流中的更多作业不完全一致。

3适用触发10 / 18 · 2.8/5

示例覆盖普通调用、Pydantic 结构化结果、工具型代理、异步及流式能力入口,并显示 Python、TypeScript、Node、Bun、Deno 与 macOS 特例,适配面较广。装饰器、显式 tools 列表和 tool_calls 循环使触发路径较清楚。扣分在于“任何前沿 LLM”的边界没有由所给文件充分限定,供应商差异、支持矩阵、网络要求及不适用场景也未系统说明。

4规范维护13 / 18 · 3.6/5

README 清晰划分 python、typescript、website 和 docs,并指向结构文档;快速安装、开发命令、CI 命令、语义化版本和 MIT 全文都很明确。示例质量良好,但没有所给范围内的 FAQ。已知限制仅零散提到 Bun 和 Apple Silicon;有版本号、语义化版本声明和发布流程,却没有变更日志。Mirascope, Inc.、仓库工作流和发布路径表明组织层维护责任,但没有明确联系人、支持渠道或安全报告路径。

5有效结果7 / 13 · 2.7/5

统一模型调用、类型化结构输出、工具注册和响应恢复循环能产生可直接消费的对象与文本,具有明显的集成价值。扣分在于更高级能力主要通过外部文档声明,所给材料没有展示复杂代理编排、治理优势或与替代方案的比较;也没有令牌、延迟、供应商费用或运维成本说明,因此成本收益只能得到有限支持。

6证据核验6 / 8 · 3.8/5

安装、示例、版本、许可和 CI 主张大多能在 package.json、工作流与测试配置之间相互核对,尤其跨来源佐证很强。扣分在于“任何前沿 LLM”等宽泛主张没有完整支持矩阵,流式、异步和多轮能力仅被指向外部文档;README 的 CI 作业数量与实际工作流不一致,使部分事实陈述和概括没有完全分离。

证据充分度: 评估于 2026年8月14日 审查版本 dd02f478b350
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
源码中未见的安全控制:执行前用户确认、回滚或恢复路径
使用前请注意
  • 工具函数由应用代码定义并通过 execute_tools 执行;在接入具有写入、删除、支付或消息发送能力的工具前,应自行增加权限隔离、参数审查和逐次确认。
  • 调用会依赖外部模型供应商和 API 密钥,但所给材料没有说明各供应商的数据保留、地域、遥测或隐私策略。
  • VCR 过滤敏感请求头是积极措施,但请求体和 URI 也可能含有敏感数据;现有配置仍以 URI 和 body 匹配并可能将其写入录像。
  • 不要仅凭 README 徽章推断当前修订的 CI 或覆盖率已经通过;本评估没有执行测试。
  • 安装 all extra 可能扩大依赖面;部署前应审查语言子包的锁文件、传递依赖和实际需要的供应商额外项。
评估证据 [1][2][3][4][5][6][7]
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

Mirascope 是一个采用 MIT 许可证的 Python 与 TypeScript 单体仓库,定位为连接不同前沿大语言模型的统一编程接口。Python API 通过 `@llm.call` 把普通函数变成模型调用,并可用 Pydantic 模型约束和解析结构化结果。开发者可用 `@llm.tool` 注册函数工具,再通过 `response.tool_calls`、`execute_tools()` 和 `resume()` 驱动工具调用循环。项目还说明支持流式处理、异步执行和多轮对话,但相关用法未在所给快速入门中展开。它是供应用程序嵌入的开发库,而非独立托管的聊天产品;仓库同时包含 Python、TypeScript、网站和跨语言文档。

应用先定义一个由 @llm.call("provider/model") 装饰的 Python 函数,函数返回的字符串成为模型请求内容;调用该函数后,Mirascope 向所选模型服务发起请求并返回响应对象。设置 format=Book 等 Pydantic 类型后,可调用 .parse() 得到经过类型化的结构化对象。通过 @llm.tool 声明工具并将其传入 tools=[...] 后,代码检查 response.tool_calls,以 response.execute_tools() 执行本地工具,再用 response.resume(...) 将结果交还模型,循环至没有待处理工具。仓库还提供 Python 与 TypeScript 实现及示例;文档网站可用 bun run website:dev 启动,根目录的 bun run ci 会运行拼写检查、Python/TypeScript lint 与类型检查以及文档构建。

  1. Python 应用开发者需要用同一种装饰器接口调用不同模型,而不想让业务函数直接绑定某个供应商 SDK。
  2. 后端团队需要让模型返回符合 Pydantic 模型的对象,例如书籍、工单或领域实体,而不是自行解析自由文本。
  3. 智能体开发者需要把现有 Python 函数暴露为模型工具,并在应用代码中明确控制工具执行与恢复循环。
  4. 需要流式、异步或多轮模型交互的团队,可将 Mirascope 作为应用内库进一步评估其完整文档。
  5. 同时维护 Python 与 TypeScript 服务的工程团队,可评估该仓库提供的两种语言实现和统一跨语言文档。

这个 Agent 有哪些优点和局限?

优点
  • @llm.call 提供统一模型调用入口,仓库明确宣称可用于任意前沿大语言模型。
  • 结构化输出直接结合 Pydantic 模型,并提供 .parse() 获取类型化结果。
  • 工具执行循环由应用代码显式控制,可检查 tool_calls、执行工具并恢复模型响应。
  • 同时包含 Python 和 TypeScript 实现,以及统一的跨语言文档。
  • 除基础调用外,项目明确列出流式、异步和多轮对话支持。
局限
  • 快速入门只展示了 Anthropic 模型标识,未列出其他供应商、模型适配器或各自的配置方式。
  • 材料没有给出 API 凭证的环境变量名称、错误处理、重试、超时或速率限制策略。
  • 示例中的工具由应用进程本地执行,采用者仍需自行处理工具权限、隔离和副作用。
  • Python 安装命令使用 [all] 可选依赖集合,但材料没有说明其包含内容或最小安装方式。
  • TypeScript 实现存在,但所给材料没有提供对应的安装命令或首个可运行示例。

如何安装或部署这个 Agent?

在 Python 项目中运行:

uv add "mirascope[all]"

该命令需要 Python 和 uv。模型调用还需要对应供应商的 API 凭证和网络连接,但所给材料没有说明凭证名称、环境变量或支持的 Python 版本,因此需按所选模型供应商补充配置。只有开发文档网站时才明确需要 Bun。

如何使用这个 Agent?

最小调用示例:

from mirascope import llm

@llm.call("anthropic/claude-sonnet-4-5")
def recommend_book(genre: str):

return f"Recommend a {genre} book."
response = recommend_book("fantasy")
print(response.text())

如需结构化结果,定义 Pydantic BaseModel,将其传给 format,然后调用 .parse()。如需工具,使用 @llm.tool 装饰函数,通过 tools=[get_available_books] 注册,并在 while response.tool_calls: 循环中执行 response.resume(response.execute_tools())。所选 Anthropic 模型的具体凭证配置没有在材料中给出。

常见问题

Mirascope 是否包含模型使用费用?
材料没有说明费用。模型调用依赖外部供应商服务,因此具体价格和配额需由所选供应商确定。
运行示例需要哪些密钥?
需要所选模型供应商的 API 凭证。示例使用 anthropic/claude-sonnet-4-5,但材料没有给出凭证变量名或配置步骤。
工具调用会自动完成吗?
不会完全隐藏在一次函数调用中。示例要求应用检查 response.tool_calls,调用 execute_tools(),再以 resume() 继续,直到工具调用结束。
能否直接部署成聊天服务?
所给材料把 Mirascope 展示为嵌入应用的库,没有提供独立聊天服务器、容器镜像或生产部署命令。
是否支持 TypeScript?
仓库明确包含 typescript/ 实现和示例,但材料没有展示 TypeScript 的安装及调用代码。

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents