--- title: 图像生成工具 created: 2026-05-07 updated: 2026-05-07 type: entity tags: [tool, agent, backend, llm] sources: [packages/backend/src/modules/netaclaw/tools/builtin/text_to_image.ts, packages/backend/src/modules/netaclaw/tools/builtin/image_to_image.ts, packages/backend/src/modules/netaclaw/image_providers/, packages/backend/src/modules/netaclaw/service/image_storage.ts, docs/superpowers/specs/2026-05-02-image-generation-tools-design.md] --- # 图像生成工具 图像生成工具是 2026-05-03 新增的 AIGC 工具族,为 [[tool-system]] 增加 `text_to_image` 和 `image_to_image`。它支持火山引擎 Ark 与 MiniMax 图像模型,通过模型渠道配置读取 provider 凭据,并把生成结果持久化后返回给前端渲染。 ## 工具 | 工具 | 文件 | 能力 | | --- | --- | --- | | `text_to_image` | `tools/builtin/text_to_image.ts` | 根据 prompt 生成图片,支持宽高比、尺寸、数量、水印、seed 和 provider 扩展参数 | | `image_to_image` | `tools/builtin/image_to_image.ts` | 基于输入图片和 prompt 做图生图 | | `image_common.ts` | `tools/builtin/image_common.ts` | 尺寸裁剪、结果持久化和工具返回格式 | 两者注册到 Tool Catalog 的 `aigc` toolset,能力标识为 `image_aigc`,`requiresModel: true`,因此最终可见性仍由 [[tool-governance]] 和 Agent 模型渠道配置决定。 ## Provider 层 `image_providers/` 抽象了 provider 差异: - `types.ts`:统一 `ImageGenerationProvider`、凭据、请求和错误类型。 - `ark.ts`:火山引擎 Ark 图像生成实现。 - `minimax.ts`:MiniMax 图像生成实现。 工具执行时会从模型渠道读取 supplier、baseUrl、apiKey 和 `extra.imageDefaults/imageConstraints`,再合并用户参数。provider 错误会被包装成可重试/不可重试的文本结果,避免直接把底层异常泄漏给模型。 ## 结果持久化 `ImageStorageService` 负责把 URL/base64 图片结果落到后端可访问存储,并返回结构化结果。工具返回不再只是纯文本,而是可包含图片数组的 `rawResult`,由 [[frontend-architecture]] 的 renderer registry 决定展示方式。 ## 与工具系统的关系 图像工具继承当前工具链路: ```text Tool Catalog 注册 -> Tool Governance 同步/启停 -> ToolResolver 根据 Agent 和模型渠道注入 -> runAgent 执行工具 -> WebSocket 推送结构化 tool_result -> 前端 renderer 展示图片结果 ``` 这意味着排查“Agent 看不到图像工具”时,不应只看 `tools/builtin` 文件,还要检查 catalog 同步、工具治理、模型渠道是否支持 image provider。 ## 相关页面 - [[tool-system]] - [[tool-catalog]] - [[tool-governance]] - [[llm-providers]] - [[frontend-architecture]]