Skip to content

预设作者指南

这页写给已经熟悉预设、PromptManager 和提示词顺序的作者。

Agent Mode 并没有把预设作者从原有创作体系里移开。相反,它把预设中最有价值的一部分保留下来:你仍然可以决定上下文的组织顺序、角色信息的位置、世界书前后段落的关系,以及最终哪些说明靠近聊天历史。

变化在于,Agent 有两块专用的 PromptManager 组件:

text
Agent System Prompt
Agent Results

它们都可以在预设顺序中移动。理解它们的含义,是让预设和 Agent Profile 配合稳定的关键。

先区分三层

预设、配置档案和 SKILLS 的职责不同:

层级主要职责
预设决定普通提示词和 Agent 专用位置块在上下文中的顺序
Agent Profile决定 Agent 的系统提示词、工具、SKILLS、工作区权限、运行方式和输出策略
SKILLS承载较长的写作方法、示例、格式规范和参考材料

一个温和的原则是:预设负责“放在哪里”,Profile 负责“允许做什么、应该怎样做”,SKILLS 负责“需要时读哪些材料”。

Agent System Prompt

Agent System Prompt 在预设里是一个位置锚点,不是内容来源。

当 Agent Mode 启动时,前端会在这个位置放入一个内部 marker。后端 runtime 会把它替换为当前 Agent Profile 解析出的系统提示词。也就是说,真正的 Agent 系统提示词来自 Profile 的 instructions.agentSystemPrompt,而不是预设里这一块的文本。

这带来几个实际结论:

  • 不要试图在预设的 Agent System Prompt 里编写正文说明。
  • 需要修改 Agent 行为时,请修改或分发 Agent Profile。
  • 这个位置必须存在。缺失时,Agent run 会明确失败,而不是悄悄退回别的行为。
  • 旧预设如果没有这个位置,TauriTavern 会尽量补入默认引用。

默认顺序把它放在 Main Prompt 前面。这通常是稳妥选择,因为 Agent 的工作说明会先于普通主提示词进入上下文。

如果你确实需要调整,可以按意图移动:

放置方式适合场景
靠前,接近 Main Prompt希望 Agent 工作说明先框定整轮写作任务
放在角色、世界书或人格之后希望 Agent 先看到核心设定,再接收本配置的工作说明
靠近聊天历史之前希望 Agent 的行动规则贴近本轮对话上下文

不建议频繁移动它。移动位置会改变 Profile 系统提示词和其它上下文的相对关系,最好每次只改一个因素,并用同一段聊天做对照测试。

Agent Results

Agent Results 用来把过去已经提交到聊天中的 Agent 结果重新整理进新的 Agent prompt。

它不会把工具调用日志、草稿或隐藏工作区原样塞回上下文。它读取的是聊天消息上保存的 Agent 提交元数据和消息正文,并以系统消息形式放在 Agent Results 这个位置。

它的用途是让后续 Agent run 能知道:

  • 哪些聊天消息来自 Agent。
  • 当时的 runIdworkspaceIdcheckpointId 和提交信息。
  • 过去提交到聊天中的最终内容。

Agent Results 可以移动,也可以在你明确不希望后续 Agent 看到过去 Agent 结果时关闭。

常见放置方式:

放置方式适合场景
放在聊天历史附近希望 Agent 把过去提交结果当作对话上下文的一部分
放在 Post-History Instructions 前希望最终后置规则仍能约束 Agent 对历史结果的使用
关闭玩法刻意避免历史 Agent 结果影响后续回复,或旧结果容易造成重复

Agent Results 会占用上下文预算。较长或较早的 Agent 结果可能因为预算不足而不进入本轮 prompt。这是正常的预算行为,不适合把它当成无限记忆。

需要长期保留的简短事实,应该交给 persist/ 或之后开放的记忆机制;需要较长的写作规范,应该放进 SKILLS。

和 Agent Profile 的关系

预设和 Profile 的关系可以这样理解:

text
预设决定 Profile 系统提示词插入 prompt 的位置。
Profile 决定这段系统提示词的内容,以及 Agent 能做什么。

Profile 中的 instructions.agentSystemPrompt 有两种常见状态:

含义
null使用 TauriTavern runtime 默认 Agent 系统提示词
非空字符串完整替换默认系统提示词

如果你想使用默认行为,请保持 null。如果你提供自定义提示词,请写成一段完整、可独立工作的说明,不要只写半句补丁式规则。

当前阶段,Profile 还不会替你切换模型或 provider。model.mode 仍跟随本轮原有 prompt snapshot,preset 引用更多用于记录和校验,而不是重写上下文。因此,预设作者在分发内容时,仍应提醒用户选择合适的 API、模型和上下文设置。

分发建议

如果一套预设专门适配 Agent,建议同时提供:

  • 预设本体。
  • 推荐的 Agent Profile。
  • 与 Profile 配套的 SKILLS。
  • 一小段说明:Agent Mode 关闭时如何使用,Agent Mode 开启时应选择哪个 Profile。

不要假设用户已经安装了同名 Profile 或 Skill。更稳妥的做法是在说明里写清楚依赖,并让普通预设在 Agent Mode 关闭时仍能工作。

发布前检查

发布前可以用这张表做一次快速确认:

检查项期待结果
Agent Mode 关闭Agent 专用块不会影响普通生成
Agent System Prompt位置存在,未被删除,顺序符合你的设计
Agent Results位置符合预期;如果关闭,是有意为之
Profileinstructions.agentSystemPrompt 已写在 Profile 中,而不是写在预设 marker 中
SKILLS长素材没有堆进系统提示词,Agent 能按需读取
工具策略Profile 允许的工具和系统提示词要求一致

预设作者不需要把 Agent 做成另一套复杂系统。最好的适配往往只是两个清楚的位置、一个边界明确的 Profile,以及几份可读的 Skill 材料。

Released under AGPL-3.0.