71 lines
9.4 KiB
Plaintext
71 lines
9.4 KiB
Plaintext
---
|
||
title: Agent 能力发现与插件动作
|
||
description: 在线画布助手的节点发现、技能渐进读取和插件动作接入合同
|
||
---
|
||
|
||
# Agent 能力发现与插件动作
|
||
|
||
在线画布助手通过 `canvas_list_capabilities` 查询实时节点注册表和有效启用的插件。内置节点及插件贡献不再依赖助手中的固定节点类型枚举。发现返回名称、来源、输入约束、默认数据和插件提供的动作;发现到声明不代表专用执行器已经存在。
|
||
|
||
## 技能自动发现
|
||
|
||
`canvas_list_skills` 支持 `query`、`offset`、`limit`,默认每页 40 条、最多 100 条,返回 `items`、`total`、`nextOffset`。助手先根据任务检索元数据,再读取 `SKILL.md`,按入口引用搜索、读取关联文件。无需用户手动选中技能;是否选用由模型结合任务判断,不保证每次都调用技能。
|
||
|
||
在线技能工具执行时重新取得当前已加入技能目录,复用账号隔离缓存和安装、移除时的缓存失效机制。插件文档可通过 `canvas_read_plugin` 按已发现 ID 读取。文档和技能说明不扩大用户授权,也不意味着浏览器可以执行技能包中的任意脚本。
|
||
|
||
## 专业短剧节点
|
||
|
||
Agent 拆镜与分镜节点底部输入共用 `generateScriptRows`:调用 `canvas_generate_storyboard` 后,由现有 `agent_storyboard_rows` 任务结合画风、角色、画布资产和短剧技能生成真实行。原始剧本保存在 `composerContent`;没有节点时可用 `canvas_create_storyboard` 创建明确标为待拆镜的空表,此时不得宣称镜头已完成。此入口用于已获准的搭建任务,不取消创作方案确认;通用方案直接交付镜头时仍要求完整 `script.shots`。
|
||
|
||
受管模型先用 `creation-runs` 准备真实报价,用户确认后批准并提交;外部自定义渠道沿用明确说明外部费用的提交确认,不伪造价格。整表重拆确认会说明替换镜头行、保留原媒体;取消或报价过期不提交。局部修改继续使用 `canvas_edit_storyboard`。专业拆镜完成后 Agent 继续读取真实表格检查,再进行后续操作;取消时停止本轮。单镜时长选项不表示总片长,总片长应在剧本要求中说明。
|
||
|
||
创作方案和通用工作流支持 `styleboard`、`story_input`、`script`,复用手动短剧入口的数据结构。画风节点初始为空,显示系统已有的选择入口;故事节点使用专用编辑卡片;分镜节点使用真实表格。
|
||
|
||
`script.shots` 必须逐镜填写正数 `durationSeconds` 和非空 `videoMotionPrompt`,`dialogue` 按需填写,最多 100 行,写入稳定行 ID。仅有正文或提示词的分镜方案会返回校验错误供模型修正;通用节点创建工具也校验真实分镜行,不能以空表代替交付。方案连到分镜节点时使用 `storyboard:context` 输入。仅创建这些节点不产生媒体生成项;图像、视频仍沿用既有方案和费用确认。
|
||
|
||
`canvas_get_context.storyboardReadiness` 与 `canvas_read_storyboard.readiness` 复用原分镜生成前置校验,返回画风状态、阻塞原因、真实行数量、未填完整的行 ID 和实际总时长。助手先检查这些状态;缺画风时读取真实目录,结合已确认风格与用户授权应用,只有关键取舍尚不明确时才追问。已有空表通过逐行编辑补齐,保留原行 ID 和素材关联;有足够剧本信息时直接编写镜头,不要求用户重复手动生成分镜。提示词引导不替代生成入口的业务校验,写入镜头也不代表媒体已生成。
|
||
|
||
`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` 动作和状态读取;同一图片已有对应节点时复用,不重复创建。审美报告仅在当前唯一输入与报告指纹一致时返回,否则标为过期。
|
||
|
||
节点类型冲突会拒绝注册。插件停用后不再出现在能力目录,新建节点和调用插件动作都会失败,旧作品保留。未知节点类型不能降级为普通文本。
|
||
|
||
## 当前边界与后续接入
|
||
|
||
审美分析的手动入口和 `canvas_start_art_critique` 共用原插件面板及 `art-critique-execution`。Agent 准备输入后可打开分析并准备报价;已有当前图片的完整报告直接复用。只有用户明确要求重新分析时传 `retry=true`。打开面板后暂停本轮工具循环,同批后续操作不执行,避免等待费用确认期间重复调用模型;分析完成后用户可让 Agent 读取报告继续。这次接入使用原插件弹窗展示费用卡,尚未把费用卡嵌入聊天消息或完成后自动唤醒会话。
|
||
|
||
`ApprovedToolExecution` 复用已有 `creation-runs` 报价、批准和幂等执行接口。各阶段先准备真实请求,再展示费用;确认按钮只批准当时费用卡列出的提交 ID,后来到达的阶段继续等待。首批为场景理解及四个独立视觉分析,后续聚合、定位、复核和提示词按前面的实际结果报价,不预先虚构后续输入。按用量收费的金额是估算,不是封顶;自定义渠道另行标注外部费用。
|
||
|
||
各阶段通过现有后台文本任务运行,原图先准备为资源引用,任务正文不内嵌媒体。每轮最多 9 个不同阶段;节点保存 `billingRunId`、`lastRunId`、`lastRunModel` 和 `stageTaskIds`,任务元数据记录节点、执行和阶段标识。底层 pipeline 注入批准后的阶段执行器,不复制审美判断与解析逻辑。工具调用仍进入原会话历史;费用记录由服务端创作运行保存,节点保存恢复入口。
|
||
|
||
关闭面板或停止观察不代表后台任务取消或未收费。重新打开后,在图片、节点和模型未变时可选择“继续上次分析”:同阶段相同请求找回原报价或任务,已提交阶段沿用原任务 ID,已完成结果重新参与本地管线计算,未批准阶段继续等确认。报价过期且未提交时更新报价并重新确认;刷新后旧费用卡不能批准新报价。请求内容变化时后端拒绝复用,需重新开始,不静默新增收费阶段。
|
||
|
||
执行控制或报价错误会中止其他待确认阶段,不能被当作部分模型结果降级后宣称成功。已提交阶段的模型失败保留原管线的部分报告处理,不自动付费重试;整轮重新分析走新报价。当前仍是浏览器驱动的管线,关页后已提交后台任务继续,尚未提交的后续阶段不会自动运行。画布输入或账号变化、插件停用会阻止继续提交或回写旧结果。
|
||
|
||
本批接入在线画布助手。首页尚未改造成通用工具循环,本机 Agent 仍使用原技能包交付机制。现有插件只有声明而没有 `agentActions` 时,可发现贡献并创建节点,不宣称能自动执行它的专用分析、编辑或导出。
|
||
|
||
已补齐画风预设的模型选择与项目同步、分镜专用增删改,以及 Agent 发起审美分析报价。肖像排查涉及本机任务,仍使用插件自己的执行入口;后续接通该执行器,以及首页与本机端的同一能力目录。不得以任意 `metadata` 更新替代具有业务校验和费用语义的执行接口。
|