编辑上下文
对话的时间线就是模型的上下文,其中每一部分都能改:在任意位置插入卡片,编辑或删除已有内容,撤回,分支,然后再次发送。
时间线就是上下文
每次请求都按已保存的对话从上到下组装,大多数卡片原样发送。例外如下:
| 时间线上的内容 | 模型收到什么 |
|---|---|
| 第一张卡片是系统提示词时 | 作为本对话的系统提示词 |
| 其他位置的系统提示词卡片、计划模式引导、自动压缩的交接请求 | 模型开启 中途追加系统提示词 时,在该位置作为一条系统消息发送;否则在该位置作为一条 Mewrk 发来的消息送达 |
| 钩子记录,以及标着 仅本地 的行 | 不发送 |
| 因出错或停止运行而中断的回复或思考 | 在你编辑并保存之前不发送;在此之前卡片标着已中断 |
每次请求还会在时间线之前带上一些不显示在时间线上的内容:Mewrk 自己的系统提示词段落、你的项目指令,以及每个已开启记忆层级的 MEMORY.md 索引。
Mewrk 发来的消息
模型工作期间,Mewrk 会把周围发生的事交给它:模型没有用 task_wait 取走的后台任务结果、钩子补充的上下文、对话开始之后你才选中的技能、语言服务器报告的问题、模型读过的文件后来的改动、启动失败的 MCP 服务器,以及回复达到输出上限后请它接着写的请求。每一条都在时间线上单独显示为一行,用什么送达由 对话设置 → 高级工具 → 宿主消息容器 决定,子代理和工作流跟随对话:
- user 消息(默认):与 Claude Code 相同,一条包在
<system-reminder>里的 user 消息;后台结果是以[SYSTEM NOTIFICATION - NOT USER INPUT]开头的提醒里的<task-notification>。Mewrk 的系统提示词会告诉模型,这些都不是你说的话。代价是它和你说的话同在 user 角色里,只靠标签和抬头区分,模型偶尔会把它当成你的话,甚至当成确认;它还可能与相邻的用户消息合并成一条。 - box 工具结果:Mewrk 替模型写下一次 box 调用,消息作为这次调用的结果送达;后台结果是不带提醒和抬头的
<task-notification>。代价是这是一次模型从没发起过的调用,模型可能当成自己调的;每次请求都多声明一个box工具,模型偶尔会自己去调它;每条消息都多占一对调用与结果。
换一种容器后,此前的每一行也按新容器重放,所以在缓存还热时切换会让缓存失效(见工具锁定)。
模型开启 异步工具调用(见模型属性)时,子代理或工作流的结果改为作为启动它的那次 agent_spawn 或 workflow 调用的输出送达,任务运行期间模型可以接着做别的。
修改这一行的文字,模型此后读到的内容就随之改变。
注意 在 Anthropic Messages、AWS Bedrock、Claude Agent、OpenAI Responses 和 Azure OpenAI 上,模型的思考内容按提供商签名的原样回放,所以编辑它只改变你看到的内容,卡片上也会这样提示。想让这段思考不再发送,就删掉这张卡片。你自己插入的思考没有签名,在这些协议上不会作为思考发送。在其他协议上,卡片上的文字就是模型收到的内容。
插入
在时间线上右键,会出现一条线标出新卡片的位置:点在卡片上半部分插到它之前,下半部分插到它之后。用键盘时,让焦点落在一张卡片上,按 ShiftF10 在它之后插入。
菜单可以添加 系统提示词、用户输入、思考字段、工具调用 ▸ 或 模型回复 卡片;分叉会话 会把这条线以上的全部内容复制成一个新对话。在你发送之前,不会发出任何请求,也不会执行任何东西。
插入工具调用
工具调用 子菜单列出本对话已启用的文件和 Shell 工具,选好后打开一张空表单,用来填写参数和 返回值。
- ✓ 保存:记下这次调用和你填的返回值,什么都不执行,例如你自己跑过的一条
bash命令。 - ▶ 执行并添加:立即执行,按本对话安全级别的审批规则走,再连同真实结果一起插入。
编辑与删除
大多数卡片都有自己的编辑(铅笔)和删除(垃圾桶)按钮。编辑就在卡片里进行;文字类卡片按 ⌘Enter(Windows 上是 CtrlEnter)保存,Esc 取消。模型运行期间什么都不能改。
- 模型回复生成完之后才能编辑。加密的思考只能删除。
- 工具调用可以改参数和返回值。✓ 保存 不执行任何东西。▶ 重新执行 仅限 ls、grep、find、read 和 lsp,用改过的参数再跑一次并记下新结果。预览卡片和子代理卡片不能编辑。
- 模型分不出改过的卡片和它自己产生的卡片。
删除立即生效,可以撤回。想在删除前确认,打开 设置 → 偏好 → 外观 → 输入 → 删除消息前确认(默认关闭)。
撤回与框选
点一下时间线的空白处让它获得焦点,然后按 ⌘Z(Windows 上是 CtrlZ)撤回,按 ⌘X(Windows 上是 CtrlX)重做。在文本框里,这些按键保持原来的作用。
- 撤回只回退那一次修改,之后模型新加的回复会保留。撤回一次工具执行只会移除卡片,命令已经造成的改动不会撤销。
- 总共 64 步,所有对话共用。退出 Mewrk 就清空;分叉和交接出来的对话从零开始。
框选。 按住 ⌘(Windows 上是 Ctrl)在时间线上拖动,起点不能在文本框里。在选区上右键选 删除,一次撤回就能全部恢复。
分支与分叉
两者都会新建一个对话,沿用原对话的设置(包括安全级别),原对话不受影响。
| 从此消息分支 | 分叉会话 | |
|---|---|---|
| 入口 | 用户消息下方的分支按钮 | 右键菜单 |
| 复制 | 这条消息之前的全部内容 | 插入线以上的全部内容 |
| 之后 | 把整条消息连同图片和文件放进输入框,可以修改后发送 | 打开副本,不运行任何东西 |
| 侧边栏 | 一个新任务,挂在原对话下面 | <标题>-fork-<n>,挂在原对话所属的顶层对话下面 |
副本给模型的上下文,和原对话在这个位置时完全一样,包括 Mewrk 的通知、计划模式引导和交接文档。
从时间线继续
在输入框为空时发送:模型按时间线当前的样子运行,不会新增用户消息。编辑之后就这样继续。
上下文环
输入框右下角的小环显示上下文窗口用了多少,点开可以看到按卡片种类拆分的用量。数字前带 ~ 表示其中含有 Mewrk 的估算。如果模型的属性里没有填 上下文窗口,就只显示已用量。
自动压缩与交接
自动压缩有两种方式,每个对话用其中一种,两种都在一个新对话里接着做。交接让模型写好交接文档,新对话从这些文档开始。原生压缩只在支持它的模型上提供,由提供商压缩上下文,新对话从压缩结果开始。
在上下文环里设置:自动压缩 子菜单最上面是 启用自动压缩(默认开启),下面左侧的 交接 和 原生压缩 两个按钮就是这个对话的方式,按下哪个就显示哪种方式的设置页。两种方式各有各的阈值,范围相同:交接阈值(20–97%,默认 80%)和 原生压缩阈值(20–97%,默认 90%)。新对话的模型支持原生压缩时默认选原生压缩,否则选交接;原生压缩出现之前的对话保持交接。开关和阈值是全局设置,对正在运行的对话也生效。模型做不了对话选的那种方式时,改用另一种。自动压缩需要模型填了 上下文窗口,子代理和工作流步骤从不自动压缩。
交接需要开启 中途追加工具。
- 达到阈值时,Mewrk 请模型交接,只请一次。
- 模型写好文档后调用 handoff;后台子代理或工作流还在运行时,
handoff会被拒绝。 - 一个名为
<标题>-handover-<n>的新对话出现在原对话在侧边栏的位置,并立即开始运行。它沿用同样的设置和工具,带着原对话的系统提示词卡片和交接文档,但没有历史,也不继承原对话的提示词缓存。
原对话保持原样,停在 handoff 卡片上。想改交接请求或新对话开场消息的措辞,在提示词档案里设置 handoff.armed_notice 或 handoff.start_message。
原生压缩
模型的属性里开着 原生压缩 时——经 OpenAI Responses、OpenAI Codex 或 Azure OpenAI 使用的 OpenAI GPT 模型——提供商可以自己压缩上下文,做法与 Codex 相同。在 自动压缩 里按下 原生压缩,设置 原生压缩阈值,以及 保留最近的 N token 用户消息(0–128,000,默认 64,000,按设置的值生效)。
- 达到阈值时,Mewrk 在两次请求之间,把本来要发的那次请求——同样的系统提示词、工具和全部历史——末尾加上压缩触发项发出去。提供商返回一个加密的压缩项,承载整段对话。
- 一个名为
<标题>-handover-<n>的新对话出现在原对话在侧边栏的位置,并立即接着做。它和交接的新对话一样沿用原对话的设置(连同提示词缓存的状态)、系统提示词卡片、已注册的工具和拼接的系统提示词,区别只在开头:不是交接文档,而是一张原生压缩卡片。 - 卡片从最新往前保留你的消息,总量不超过设置的 token 数,保留的最早一条可能被从中间截断;对话中途的系统提示词和中途追加的工具也原样保留。新对话发给同一提供商的请求从这张卡片开始:先是保留的消息,再是压缩项,然后是之后的内容。系统提示词、工具和提示词缓存键都和原对话相同,所以缓存照样命中。
卡片只显示一行:由哪个模型压缩,压缩前后各多少 token;历史记录里也是这一行,都不能展开。卡片上的这些信息只给你看,不会发给模型。换到别的提供商,或换成不支持原生压缩的模型,只会发送卡片保留的消息。原对话保持原样。
想现在就压缩,在 原生压缩 页按 立即压缩:不看阈值,也不看自动压缩开没开。新对话会打开但不运行,等你发下一条消息。对话正在运行,或者上次压缩之后模型还没有回复过时,这个按钮不可用;后台子代理或工作流还在运行时也不会压缩。
历史记录
历史记录面板记下实际发给模型的内容和模型返回的内容,所以即使你改了时间线,这里仍然是模型当时看到的样子。从对话标题栏打开:更多选项(⋮)→ 历史记录。其中的 tool 行记的是经过钩子和审批之后实际执行的输入。
附件
用输入框的 + → 上传文件 添加,也可以粘贴,或拖到输入框、正在编辑的用户消息上。
| 类型 | 上限 | 模型收到什么 |
|---|---|---|
| 图片:PNG、JPEG、GIF、WebP | 32 MB | 缩放到 2000 × 2000 像素以内的图片,并在你的文字里附上 [Image #N] 编号 |
| 20 MB,需有文字层且无密码 | 模型支持视觉时,10 页以内的 PDF 发送原件,xAI、AWS Bedrock 和 OpenAI Compatible 除外;否则,或请求会过大时,发送其中的文字 | |
| UTF-8 文本:代码、Markdown、CSV、JSON、SVG、notebook 等 | 256 KB | 放在你消息前面的文字。超过 25,000 token 只发前 2,000 行 |
一条消息的全部附件合计最多 32 MB。PDF 的附件预览会说明模型收到的是原件还是文字。粘贴超过 800 个字符的文字会折叠成一个 粘贴文本 标签,发送时换回完整文字。
对话里只要有图片,包括工具截图,就不能发给没有开启 视觉输入 的模型,输入框会提示这一点。换成支持视觉的模型,或从时间线上删掉这些图片。