feat(agent): 创作能力 - 接通专业节点发现与插件执行基础
This commit is contained in:
@@ -7,6 +7,8 @@ description: 面向图片创作的 AI 视觉分析、问题定位和修改建议
|
||||
|
||||
> 状态:MVP 已实现,当前审美标准为 `2026-08-v1`。
|
||||
|
||||
执行入口已统一到 `art-critique-execution`:手动分析各阶段通过后台文本任务提交,原图使用资源引用,节点记录阶段任务 ID。一次分析最多 9 个不同模型阶段,不自动重复提交。停止观察不等于取消后台任务,已提交阶段仍可在任务中心查看;自动费用审批及整条管线刷新恢复仍待接入。Agent 当前支持准备输入和读取已有报告,尚未开放自动启动收费分析。
|
||||
|
||||
## 1. 先说结论
|
||||
|
||||
这个节点的定位不是“图片生成器”,而是一个视觉老师:用户把图片接进来,它负责看图、指出问题、解释原因,并给出可以执行的修改方向。
|
||||
|
||||
58
docs/design/agent-capabilities.mdx
Normal file
58
docs/design/agent-capabilities.mdx
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
title: Agent 能力发现与插件动作
|
||||
description: 在线画布助手的节点发现、技能渐进读取和插件动作接入合同
|
||||
---
|
||||
|
||||
# Agent 能力发现与插件动作
|
||||
|
||||
在线画布助手通过 `canvas_list_capabilities` 查询实时节点注册表和有效启用的插件。内置节点及插件贡献不再依赖助手中的固定节点类型枚举。发现返回名称、来源、输入约束、默认数据和插件提供的动作;发现到声明不代表专用执行器已经存在。
|
||||
|
||||
## 技能自动发现
|
||||
|
||||
`canvas_list_skills` 支持 `query`、`offset`、`limit`,默认每页 40 条、最多 100 条,返回 `items`、`total`、`nextOffset`。助手先根据任务检索元数据,再读取 `SKILL.md`,按入口引用搜索、读取关联文件。无需用户手动选中技能;是否选用由模型结合任务判断,不保证每次都调用技能。
|
||||
|
||||
在线技能工具执行时重新取得当前已加入技能目录,复用账号隔离缓存和安装、移除时的缓存失效机制。插件文档可通过 `canvas_read_plugin` 按已发现 ID 读取。文档和技能说明不扩大用户授权,也不意味着浏览器可以执行技能包中的任意脚本。
|
||||
|
||||
## 专业短剧节点
|
||||
|
||||
创作方案和通用工作流支持 `styleboard`、`story_input`、`script`,复用手动短剧入口的数据结构。画风节点初始为空,显示系统已有的选择入口;故事节点使用专用编辑卡片;分镜节点使用真实表格。
|
||||
|
||||
`script.shots` 可填写逐镜 `durationSeconds`、`videoMotionPrompt`、`dialogue`,最多 100 行,写入稳定行 ID。方案连到分镜节点时使用 `storyboard:context` 输入。仅创建这些节点不产生媒体生成项;图像、视频仍沿用既有方案和费用确认。
|
||||
|
||||
`canvas_list_styles` 按 `source=system|user` 查询系统预设或当前用户保存的风格。`canvas_apply_style` 只接受该目录返回的真实 ID,复用页面的异步画风保存入口:关联项目时先保存项目设置,再应用画布节点;不关联项目时走原画布保存机制。异步返回时校验画布、项目及用户上下文,避免写到新页面。该动作是原画风选择逻辑,不冒充普通节点撤销能够回滚服务端项目设置;需要改回时重新应用原风格。
|
||||
|
||||
`canvas_read_storyboard` 返回真实行 ID、镜头内容及素材关联。`canvas_edit_storyboard` 支持 `append`、`update`、`remove`,按行 ID 操作;仅允许镜头文本与正数时长字段,不允许伪造任务状态或素材 ID。移除行保留生成素材,剩余行保留 ID 并重排序号。分镜编辑进入原画布操作、撤销与历史记录链路,不自动重新生成媒体。
|
||||
|
||||
## 插件动作接入
|
||||
|
||||
已在宿主注册的 `RegisteredPlugin` 可提供 `agentActions`:
|
||||
|
||||
```ts
|
||||
agentActions: [{
|
||||
id: "create-analysis-node",
|
||||
description: "创建图片分析节点",
|
||||
inputSchema: { type: "object", properties: {}, additionalProperties: false },
|
||||
buildOperations(input, snapshot) {
|
||||
// 在此校验本动作入参,仅返回操作,禁止请求模型或产生其他副作用。
|
||||
return [{ type: "add_node", nodeType: "my-analysis-node" }];
|
||||
},
|
||||
}]
|
||||
```
|
||||
|
||||
模型根据目录通过 `canvas_plugin_action` 提交 `pluginId`、`actionId`、`input`。动作构建器负责业务入参校验;宿主核对插件有效启用状态、动作存在性、`canvas.write` 权限、操作数量及生成操作的 `generation.run` 声明,再交给原画布执行链路。工具调用和结果沿用原会话记录。
|
||||
|
||||
构建器必须是纯函数:输入和快照以副本传入,返回 1 至 100 个操作,不自行网络请求、收费或写入资源。`inputSchema` 用于向模型说明合同,不替代动作构建器的校验。仅上传带节点声明的 JSON 插件不会凭空获得 JavaScript 执行器;执行器需要通过宿主支持的插件运行时接入。本接口没有增加任意远程代码执行能力。
|
||||
|
||||
插件还可提供 `readAgentNode(node, snapshot)`,将节点状态转换为有限的结构化结果,通过 `canvas_read_plugin_node` 读取。必须校验插件启用及 `canvas.read` 声明,不返回内嵌媒体和密钥。审美批改、肖像排查已接入 `prepare-input` 动作和状态读取;同一图片已有对应节点时复用,不重复创建。审美报告仅在当前唯一输入与报告指纹一致时返回,否则标为过期。
|
||||
|
||||
节点类型冲突会拒绝注册。插件停用后不再出现在能力目录,新建节点和调用插件动作都会失败,旧作品保留。未知节点类型不能降级为普通文本。
|
||||
|
||||
## 当前边界与后续接入
|
||||
|
||||
审美分析的手动入口已接入 `art-critique-execution` 统一执行边界。各阶段通过现有后台文本任务运行,原图先准备为资源引用,任务正文不内嵌媒体。最多提交 9 个不同阶段,不自动重复提交同一阶段;节点保存 `stageTaskIds`,任务元数据记录节点、执行和阶段标识。底层 pipeline 支持注入阶段执行器,费用审批可在这一入口接入,不复制审美判断与解析逻辑。
|
||||
|
||||
停止观察不代表后台任务取消或未收费。已提交任务保留在任务中心;本批没有自动恢复整条管线或重新提交失败阶段。画布输入改变后停止后续观察,不将旧结果写到新输入。Agent 目前仍不能自动启动该收费分析,须先接通具体阶段报价、用户批准和任务接续。
|
||||
|
||||
本批接入在线画布助手。首页尚未改造成通用工具循环,本机 Agent 仍使用原技能包交付机制。现有插件只有声明而没有 `agentActions` 时,可发现贡献并创建节点,不宣称能自动执行它的专用分析、编辑或导出。
|
||||
|
||||
已补齐画风预设的模型选择与项目同步、分镜专用增删改。审美批改与肖像排查的新分析仍通过插件自己的入口执行:前者涉及多次模型调用,后者涉及本机任务,尚未接入统一 Agent 费用和任务编排。后续继续接通这些执行器,以及首页与本机端的同一能力目录。不得以任意 `metadata` 更新替代具有业务校验和费用语义的执行接口。
|
||||
Reference in New Issue
Block a user