Zing 论坛

正文

tool_schema_generator:Dart LLM工具Schema自动生成器,零样板代码对接OpenAI/Claude/Gemini

Dart开发者构建AI Agent的利器,通过注解自动从Dart函数生成OpenAI、Anthropic、Gemini兼容的JSON Schema工具定义,支持类型推断、运行时注入和完整类型安全。

Dart代码生成LLMAI AgentJSON SchemaOpenAIClaudeGemini工具调用GitHub
发布时间 2026/06/04 23:44最近活动 2026/06/04 23:52预计阅读 3 分钟
tool_schema_generator:Dart LLM工具Schema自动生成器,零样板代码对接OpenAI/Claude/Gemini
1

章节 01

tool_schema_generator:Dart LLM工具Schema自动生成器核心导读

tool_schema_generator是专为Dart开发者设计的代码生成工具,旨在解决AI Agent开发中手动编写维护LLM工具调用JSON Schema的繁琐问题。通过注解从Dart函数自动生成OpenAI、Anthropic、Gemini兼容的工具Schema,支持类型推断、运行时注入和完整类型安全,是Dart生态构建AI Agent的利器。

2

章节 02

项目背景与解决的核心问题

当使用Gemini、OpenAI、Claude等LLM构建AI Agent时,需向模型提供可调用工具的描述。传统做法是手动编写维护特定厂商格式的JSON映射,不仅枯燥且易出错。tool_schema_generator针对这一痛点,让开发者只需编写标准Dart函数并添加注解,即可自动生成精确的LLM工具Schema。

3

章节 03

核心特性解析

  1. 零样板代码:从Dart语法推断类型、名称和可空性,函数签名为Schema单一事实来源;2. 完整类型支持:覆盖基础类型、集合、枚举、自定义类等;3. 多厂商支持:同一Dart函数生成OpenAI、Anthropic、Gemini三种格式Schema;4. 无缝集成:基于source_gen构建,输出.g.dart文件,与json_serializable共存;5. 高度定制:通过@Tool()覆盖名称描述、从文档注释提取信息、@Describe()参数说明、@Inject()隐藏应用控制参数。
4

章节 04

快速上手与使用方法

安装:在pubspec.yaml添加tool_schema_generator依赖及build_runner开发依赖;定义工具:用@Tool()注解标记Dart函数,添加part文件声明;生成代码:运行dart run build_runner build生成.g.dart文件;获取Schema:通过toolRegistry.schemasFor获取对应厂商格式;执行调用:用toolRegistry.call根据LLM返回的工具名称和参数调用函数。

5

章节 05

高级功能与异常处理

高级功能:枚举自动转为字符串枚举Schema;自定义类通过构造函数参数生成嵌套Schema;@Tool()覆盖元数据;限制特定厂商支持;@Inject()注入应用控制参数(不出现在Schema但调用时可用)。异常处理:提供ToolNotFoundException、MissingToolArgumentException、InvalidToolArgumentException、ToolExecutionException等类型化异常,便于精确处理错误。

6

章节 06

技术架构与核心价值

设计理念:类型安全优先(编译期捕获错误)、单一事实来源(函数定义即业务逻辑+API契约+Schema模板)、渐进式采用(可从单个工具开始,与现有生成器共存)。核心价值:提升开发效率(消除重复劳动)、类型安全(保证代码与Schema一致性)、跨平台支持(三大LLM平台)、可维护性(函数变更自动同步Schema)。

7

章节 07

适用场景与总结

适用场景:AI助手开发(添加邮件发送等能力)、自动化工作流、智能客服系统、内部工具平台。总结:tool_schema_generator填补了Dart生态AI Agent开发的重要拼图,问题定位精准,技术方案优雅,生态集成完善,多平台支持,生产就绪,是Dart/Flutter构建AI应用的成熟LLM工具Schema生成方案。