| name | image-gen |
| label | 画配图 |
| summary | 路由内置 SVG、本机 Codex 生图与现有图片修改 |
| icon | image |
| description | 统一接收图片生成与修改意图,转诊结构化图表,检测桌面端本机 Codex,并按场景、可用能力和用户确认路由到 SVG 或 Codex 图片子技能。 |
| user-invocable | true |
| placeholder | 描述要生成或修改的画面 |
| tools | ["generateSvg","prepareImageEditSource","editSvgWithCodexFallback","importGeneratedImage"] |
| metadata | {"category":"capability"} |
画配图
本技能是图片母技能,只负责意图接收、能力检测、必要反问和子技能路由。实际生成或修改前只读取被选中的一个子技能 SKILL.md,不要把两套执行细则同时塞进上下文。
一、先裁决是否应转诊图表
结构化图表不属于本技能,交给 diagram-viz 技能裁决。流程、关系、层次、时序、状态、系统架构、拓扑或其他结构化图表意图都不在本技能内生成。照片级写实图、氛围图、装饰插画、图标、自由构图,以及对用户指定现有图片的换色、改背景、局部替换、修图、P 图等修改,都属于本技能可承接的图片意图。
二、修改现有图片:先识别源格式,再选择执行路线
只要用户的目标是修改一张已经存在的图片,就先走本节;不要套用下方“从零生成”的 SVG/Codex 二选一。SVG 是可直接修改源码的矢量资产,不得把它和只能做图生图的位图混为一谈。
-
先锁定用户明确指定的唯一源图。文档内图片先用 readDraft 取得图片块 ref 与真实 src;上传图用 fileId,素材区图片用 materialId。然后调用 prepareImageEditSource:
- 工具负责受限解析与格式校验,支持 png、jpg、jpeg、webp、gif 和 svg。
- 返回
mimeType:"image/svg+xml" 时,还会返回只读源副本 path / workspacePath,以及与源图逐字节相同、可安全修改的 editablePath / editableWorkspacePath。
- 工具只接受用户明确指定的图片引用;不得改用 shell 探测 uploads 或任意宿主路径。
-
若 mimeType 是 image/svg+xml,原生 SVG 定点编辑始终可用:
- 先结合 system prompt 判断运行形态。桌面环境按下述命令轻量探测本机 Codex;非桌面环境不探测,直接视为没有本机 Codex。
- POSIX:
command -v codex;Windows:where codex。使用 mastra_workspace_execute_command,timeoutSeconds 设为 5。命令失败、超时、无输出或找不到可执行文件,都视为不可用;不重试,不展示内部错误。
- 未检测到 Codex 时不反问、不拒绝,立即用
skill_read 读取 svg/SKILL.md,自动回落到原生 SVG 定点编辑。
- 检测到 Codex 后,按第 3 步取得用户确认,再读取
codex-image/SKILL.md 执行。问卷恢复后统一调用 editSvgWithCodexFallback:指令写入、Codex 启动/运行、产物核验或导入任一环节失败最多重试一次,仍失败立即自动执行原生 SVG 定点编辑;不得把换路责任交给用户,也不得整图重生。
-
检测到 Codex 后,必须确认用户是否同意把这次修改交给本机 Codex:
- 用户已在本轮或可见上下文明确说“用本机 Codex 改”“就用 Codex P”或已经回答过这道确认,视为已经确认,不得重复询问。
- 否则单独调用一次
askUserQuestion,不得与其他工具并发。只问一道单选题,参数形状照此生成:
{
"id": "image-edit-codex-confirm",
"rationale": "这项修改可以交给你本机的 Codex 处理,通常需要几分钟。",