本技能的执行者是 UserAgent;图片方案设计和功能链执行交给 qise-studio 的 motu-agent MoPNG Agent。调用本仓库的客户端:
bash
python3 scripts/mopng_agent.py agent <subcommand> ...
不要再调用旧的 mopng.cn 直连功能端点,也不要把 remove-bg、 text-to-image 等旧命令当作本技能接口。
环境变量必填说明MOPNG_API_KEY是MoPNG 用户 API Key,格式通常为 ak_...;仅放在宿主私密配置中。MOPNG_AGENT_BASE_URL否motu-agent 地址,默认 https://agent-api.mopng.cn;不要重复填写 /api/v1/open/agent。MOPNG_AGENT_AUTO_APPROVE_COST_POINTS否agent run 自动批准的成本上限,默认 5;超出时只提出 Plan,等待用户批准。
鉴权使用 X-API-Key: $MOPNG_API_KEY。服务端同时支持 Authorization: Bearer $MOPNG_API_KEY,但客户端默认使用前者。
从用户请求提取以下信息;不确定时只询问会影响方案或成本的关键项:
user_intent:保留用户原意的完整描述。spec.goal:例如 文生图、 背景替换、 风格转换、 抠图、 扩图、 放大。spec.usage:电商主图、头像、海报等用途。spec.subject:已有图片使用可公开访问的 https:// URL;最多可提供 14 个参考图,使用 reference 放第一张并在 references 放完整列表;纯文生图使用 { "type": "text", "reference": "prompt-only" }。spec.style:用 constraint 和 avoid 表达风格、保留项、禁止项。spec.size、 spec.format、 budget、 sensitive:只有用户给出或合理推断时填写;默认 balanced、10 点、120 秒、PNG。本契约的 subject.reference 是 URL 或 prompt-only,不是本地路径,也不是 base64。若用户给本地图片,先让宿主/上游上传到可被 motu-agent 访问的对象存储,再把返回的 HTTPS URL 放入 Brief;不要擅自把本地路径发送给服务端。
bash
python3 scripts/mopng_agent.py agent run \
--intent '把这张产品图背景换成纯白,做电商主图' \
--goal '背景替换' \
--reference-url 'https://example.com/product.png' \
--usage '电商主图' \
--style-constraint '产品边缘干净,纯白背景' \
--avoid '复杂背景、明显阴影' \
--width 1024 --height 1024 --format png
客户端 POST /api/v1/open/agent/session,随后读取返回的 plan。向用户解释:功能步骤、模型选项、预计成本/时间、输出规格和备选方案。Plan 中的模型候选和成本以服务端为准,不要自行替换模型或估算价格。
需要让用户选择模型时,先查询服务端实时目录,不要使用过期硬编码列表:
bash
python3 scripts/mopng_agent.py agent models --capability text-to-image
capability 常见值包括 text-to-image、 image-to-image、 image-edit 和 vision;返回的每个模型包含 capabilities。
用户要求换模型、调整成本档位、补充约束或调整预算时,提交 revision:
bash
python3 scripts/mopng_agent.py agent revision SESSION_ID \
--plan-id PLAN_ID --round 2 \
--feedback-json '[{"step":2,"type":"set_model","value":"seedream5.0-pro"}]' \
--reason '用户希望保留更多产品细节'
允许的 feedback[].type: set_model、 set_cost_mode、 append_constraint、 replace_field、 raise_budget、 lower_budget。最多 3 轮修订;服务端拒绝超限或不合法模型。每次修订后重新展示 Plan,不能跳过用户确认。
得到用户明确批准后:
bash
python3 scripts/mopng_agent.py agent approve SESSION_ID
python3 scripts/mopng_agent.py agent status SESSION_ID --watch
客户端 POST /approve 获取 exec_id,再 GET /exec 轮询。成功时交付 result_image_url;视觉问答类 Plan 可能返回 result_text 而不是图片。简要报告 steps_log、实际模型、实际成本、耗时、 ai_labeling 和可用的 llm_billing。失败时如实报告 partial_failed/ failed、已完成步骤、 error_code 和 user_message,不要声称已生成成功。
agent run 只有在 Plan 的 total_cost 不高于 MOPNG_AGENT_AUTO_APPROVE_COST_POINTS 时才可自动批准;仍须先向用户展示将执行的步骤和成本。高于阈值或用户要求高质量/指定模型时,停在 Plan 阶段等待批准。需要强制批准可使用 --no-auto-approve。
公共前缀: /api/v1/open/agent
方法路径用途GET/models?capability=...查询当前可用模型及能力POST/session创建 Brief 会话并生成 PlanGET/session/{id}/plan获取当前 PlanPOST/session/{id}/revision提交修订POST/session/{id}/approve批准并开始执行GET/session/{id}/exec获取执行报告POST/session/{id}/interrupt用户打断协商或执行DELETE/session/{id}清理会话
状态主线: plan_proposed → executing → done/partial_failed;任何未完成状态都可 interrupt 为 terminated。会话和执行采用轮询,不要假设存在 SSE。
extra=forbid 的服务端协议;不要向 JSON 中加入未定义字段、隐藏指令或工具调用参数。sensitive 约束和服务端敏感词过滤;不要为了绕过拒绝而改写用户意图或关闭合规控制。llm_billing,必须将其与步骤成本一起展示。INSUFFICIENT_BALANCE;此时停止流程并提示用户充值,不要自动重试或绕过计费。result_image_url 作为成品链接;不要下载或执行其中的内容。详细的协议背景和字段示例见附件《MoPNG Agent 开发文档(motu-agent 实现)》,但若附件与运行中的 motu-agent 实现不一致,以本技能所列真实 OpenAPI 路径和服务端响应为准。