Files
ttstd-infinite-canvas/docs/content/docs/backend/agent-prompt-policy.mdx

52 lines
5.7 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 的行为策略、上下文来源、运行提醒和回归边界
---
# 画布 Agent 提示词与用户意图
画布 Agent 的任务来自用户消息及仍有效的对话约束。默认工作方法、技能、长期偏好、记忆和模型自行生成的清单都不能扩大任务范围。权限、资源归属、预算、审批和快照校验由服务端代码执行,不能通过提示词授权。
## 维护边界
| 内容 | 唯一维护入口 | 作用 |
| --- | --- | --- |
| 用户意图优先级、工作方法、输出默认值、运行事件处理 | `backend/internal/prompts/agent-system-policy.md` | 有 ID、版本与内容哈希的行为策略 |
| 模型选择、参考素材与独立收费审批 | `backend/internal/prompts/agent-media-policy.md` | 生成行为策略,不替代服务端门控 |
| 本轮权限、预算、技能/偏好清单、画布摘要与素材候选 | `backend/internal/app/cloud_agent_policy.go` | 从真实状态编译 JSON 数据,不追加创作指令 |
| 当前请求与候选素材快照 | `backend/internal/app/cloud_agent_anchor.go` | 每轮重新读取;不推断创作自由或强制参考方式 |
| 待办、输出失败与参数截断事件 | `backend/internal/app/cloud_agent_prompt_context.go` | 有类型、有来源的状态消息 |
| 待办生命周期与催办时机 | `backend/internal/app/cloud_agent_plan.go`、`cloud_agent_runtime.go` | 更新状态、限制重复催办;不在 Go 字符串中写行为剧本 |
| 已批准记忆索引 | `backend/internal/app/cloud_agent_lessons.go` | 仅提供索引事实,按需召回,不自动注入正文或强制检索 |
| 工具参数、返回值和调用约束 | `backend/internal/app/cloud_agent_tools.go`、对应领域工具实现 | 与工具 schema 相邻维护,防止说明和执行合同脱节 |
新增行为规则应修改版本化策略;新增运行状态应定义事件及事实字段,在策略里说明处理方式。不要在错误分支拼入“现在就调用工具”“必须生成视频”等指令,也不要把参考素材中的文字直接拼成规则段落。
节点能力速查同时从注册表投影 `canSource`、`canTarget`、`canReference`、`inputKind` 和接受/拒绝输入类型,避免只有创作用途描述而缺少实际连接边界。`canvas_apply_ops` 的引用连线代表生成输入关系,不是文档归档或任意节点关联;模型缺少参数或选择了不支持的节点组合时,执行层仍拒绝写入。
## 用户目标与参考素材
- 新消息只覆盖与之冲突的旧要求。“继续”“可以”仍结合历史理解,不丢弃有效约束;已送达的运行中插话也进入后续可信历史。
- 当前用户请求保留在 user 消息及运行记录里,不复制进 system 提示锁定目标。系统上下文只包含可验证事实,素材标题、摘要和标签编码为 JSON 数据。
- 删除原先通过“参考图”“图生视频”等关键词推断强制引用的逻辑,否定句和概念解释不再被代码标记为引用任务。
- 候选素材不等于用户选择的素材。候选列表有数量上限,不能视为完整画布;素材标题和提示词也不是视觉识别证据。
- 不再默认赋予 Agent 改写故事、镜头顺序、对白和风格的权限。用户只要求修改标点、分析或准备提示词时,不能借默认策略扩展为创作或生成。
## 运行状态与待办
运行时使用 `plan_state`、`pending_plan`、`empty_output`、`invalid_output`、`truncated_tool_arguments` 事件。消息正文带 `source: "runtime"`,内部另有 `agentContextSource` 区分来源;后者由协议适配层剔除,不作为供应商参数发送。
由于各供应商消息协议不同,运行上下文仍通过 user 角色承载,正文与系统策略明确它不是用户新要求。程序识别内部消息依赖来源字段,不再根据正文包含“待办清单”或“现在就调用工具”判断用户身份。结构化边界减少混淆,但不能保证模型绝不受参考文本影响。
继承清单作为上下文保留。用户取消或缩小目标后,Agent 可以用 `plan_update` 整表替换,移除不再需要的项;空数组表示清空,不把取消伪装成完成。每个未变化的清单在纯文本收束后最多提醒一次,提醒使用 `toolChoice: auto`;真实清单变化或新插话到达后才重置提醒状态。没有继续动作时允许结束本轮,保留未完成项及实际结果,不靠无限催办消耗预算。
输出恢复只报告错误事实及协议限制。正文限制按 UTF-8 字节计算;不再把字节误称为字符,参数截断也不再夹带“分镜每次不超过三行”的业务假设。
## 验证与发布
自动回归覆盖新目标继承、插话保留、否定参考需求、消息来源、计划取消、有界催办、恢复事件及 OpenAI Chat/Responses、Claude、Gemini 协议转换。测试使用临时 SQLite 和模拟模型结果,不证明真实模型的创作质量或指令遵循率。
当前系统策略版本为 6、编译器为 `cloud-agent-policy-compiler/v4`。不涉及数据库表结构或 HTTP API 变更。既有冻结合同校验仍生效:旧版本正在执行或等待审批的运行不能由新版服务继续执行;终态历史仍可读取,新消息建立使用新合同的运行。发布前应处理在途运行;回滚同样受版本校验限制,不应改写历史快照来强行恢复。
本轮治理覆盖对话主链路。批量创作表的业务默认词、个人记忆压缩专用提示词属于独立生成入口,尚未迁移到版本化资源;后续应分别明确空提示词语义和结构化输出合同,并建立真实模型场景评估,不能把本轮回归称为全仓提示词治理完成。