Files
ttstd-infinite-canvas/docs/design/agent-capabilities.mdx

59 lines
6.1 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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` 更新替代具有业务校验和费用语义的执行接口。