SuperAPI AI 工具集

developing-genkit-tooling

智能体与模型

查看项目

更新于 10-15 21:50

技能介绍

用途:本资料是开发 Genkit 工具(tooling)的最佳实践,面向需要编写 Genkit CLI 命令或 MCP 服务器工具的开发者,旨在通过命名与架构上的一致性,方便用户与智能体理解和使用这些工具。

命名规范:CLI 子命令使用 kebab-case 并以冒号分隔,格式为 noun:verb 或 category:action,例如 flow:run、eval:run、init;参数在代码中使用 camelCase(如 flowName),帮助文本中使用标准格式(如 <flowName>)。MCP 工具名使用 snake_case,格式为 verb_noun,例如 list_flows、run_flow、list_genkit_docs、read_genkit_docs。

CLI 命令架构:命令基于 commander 实现,位于 cli/src/commands/。多数命令需与用户项目运行时交互,应使用 runWithManager 管理运行时进程生命周期。输出方面,日志使用 @genkit-ai/tools-common/utils 的 logger;当命令产生数据时应提供 JSON 输出或写文件选项;支持流式操作(如 flow:run)时提供 --stream 标志并将输出管道到 stdout。

MCP 工具架构:位于 cli/src/mcp/,分静态与运行时两种模式。静态工具(如文档)不需要运行中的 Genkit 项目上下文,通过 defineDocsTool(server) 注册,仅依赖服务器实例。运行时工具(如 flows、运行时控制)与特定项目的运行环境交互,通过 defineRuntimeTools(server, options) 注册,依赖包含 manager 与 projectRoot 的 options,且必须使用 getCommonSchema(options.explicitProjectRoot, ...) 以保证在需要时可接受 projectRoot 参数。错误处理上,MCP 工具通常应捕获错误并返回带 isError: true 的 content 块,而非抛出异常,以便客户端收到结构化错误响应。

适用场景与限制:适用于为 Genkit 生态开发 CLI 与 MCP 工具的贡献者。资料未提供价格、平台支持范围、具体安装命令及完整代码示例之外的更多细节。