跳到主要内容

上下文 (Context)

“上下文”是 Clawdbot 在一次运行中发送给模型的所有内容。它受模型的 上下文窗口(令牌/Token 限制)约束。

初学者心智模型:

  • 系统提示词(Clawdbot 构建):规则、工具、技能列表、时间/运行时以及注入的工作区文件。
  • 对话历史:您在本会话中的消息 + 助手的消息。
  • 工具调用/结果 + 附件:命令输出、文件读取、图像/音频等。

上下文与“记忆”并不相同:记忆可以存储在磁盘上并在以后重新加载;上下文是模型当前窗口内的内容。

快速入门(检查上下文)

  • /status → 快速查看“我的窗口有多满?”以及会话设置。
  • /context list → 显示注入了什么内容以及大致大小(按文件和总计)。
  • /context detail → 更深入的细分:按文件、按工具模式大小、按技能条目大小以及系统提示词大小。
  • /usage tokens → 在普通回复后附加每次回复的用量统计。
  • /compact → 将旧历史总结为紧凑条目,以释放窗口空间。

另请参见:斜杠命令令牌用量和成本压缩

输出示例

值因模型、提供商、工具策略以及工作区内容而异。

/context list

🧠 上下文细分
工作区: <workspaceDir>
引导文件最大长度: 20,000 字符
沙箱: 模式=non-main 是否已沙箱化=false
系统提示词 (运行): 38,412 字符 (~9,603 tok) (项目上下文 23,901 字符 (~5,976 tok))

注入的工作区文件:
- AGENTS.md: 正常 | 原始 1,742 字符 (~436 tok) | 注入 1,742 字符 (~436 tok)
- SOUL.md: 正常 | 原始 912 字符 (~228 tok) | 注入 912 字符 (~228 tok)
- TOOLS.md: 已截断 | 原始 54,210 字符 (~13,553 tok) | 注入 20,962 字符 (~5,241 tok)
- IDENTITY.md: 正常 | 原始 211 字符 (~53 tok) | 注入 211 字符 (~53 tok)
- USER.md: 正常 | 原始 388 字符 (~97 tok) | 注入 388 字符 (~97 tok)
- HEARTBEAT.md: 缺失 | 原始 0 | 注入 0
- BOOTSTRAP.md: 正常 | 原始 0 字符 (~0 tok) | 注入 0 字符 (~0 tok)

技能列表 (系统提示词文本): 2,184 字符 (~546 tok) (12 个技能)
工具: read, edit, write, exec, process, browser, message, sessions_send, …
工具列表 (系统提示词文本): 1,032 字符 (~258 tok)
工具模式 (JSON): 31,988 字符 (~7,997 tok) (计入上下文;不以文本形式显示)
工具: (同上)

会话令牌 (已缓存): 14,250 总计 / 上下文限制=32,000

/context detail

🧠 上下文细分 (详细)

主要技能 (提示词条目大小):
- frontend-design: 412 字符 (~103 tok)
- oracle: 401 字符 (~101 tok)
… (+10 更多技能)

主要工具 (模式大小):
- browser: 9,812 字符 (~2,453 tok)
- exec: 6,240 字符 (~1,560 tok)
… (+N 更多工具)

哪些内容计入上下文窗口

模型接收的所有内容都计入,包括:

  • 系统提示词(所有章节)。
  • 对话历史。
  • 工具调用 + 工具结果。
  • 附件/转录(图像/音频/文件)。
  • 压缩总结和修剪伪影。
  • 提供商“包装器”或隐藏标头(不可见,但仍计入)。

Clawdbot 如何构建系统提示词

系统提示词由 Clawdbot 拥有,并在每次运行时重新构建。它包括:

  • 工具列表 + 简短描述。
  • 技能列表(仅元数据;见下文)。
  • 工作区位置。
  • 时间(UTC + 转换后的用户时间,如果已配置)。
  • 运行时元数据(主机/操作系统/模型/思考)。
  • 项目上下文 (Project Context) 下注入的工作区引导文件。

完整细分请参见:系统提示词

注入的工作区文件 (项目上下文)

默认情况下,Clawdbot 会注入一组固定的工作区文件(如果存在):

  • AGENTS.md
  • SOUL.md
  • TOOLS.md
  • IDENTITY.md
  • USER.md
  • HEARTBEAT.md
  • BOOTSTRAP.md(仅限首次运行)

大文件会使用 agents.defaults.bootstrapMaxChars(默认 20000 字符)按文件截断。/context 显示 原始 vs 注入 大小以及是否发生了截断。

技能:注入的内容 vs 按需加载的内容

系统提示词包含一个压缩的 技能列表(名称 + 描述 + 位置)。这个列表有实际的开销。

技能说明默认情况下 包含在内。模型应 仅在需要时 read 技能的 SKILL.md

工具:有两种成本

工具以两种方式影响上下文:

  1. 系统提示词中的 工具列表文本(您在“工具 (Tooling)”中看到的)。
  2. 工具模式 (JSON)。这些被发送给模型,以便它可以调用工具。即使您不以纯文本形式看到它们,它们也会计入上下文。

/context detail 细分了最大的工具模式,以便您查看哪些占据了主导地位。

命令、指令和“行内快捷方式”

斜杠命令由网关处理。有几种不同的行为:

  • 独立命令:仅包含 /... 的消息作为命令运行。
  • 指令/think/verbose/reasoning/elevated/model/queue 在模型看到消息之前会被移除。
    • 仅包含指令的消息会持久化会话设置。
    • 普通消息中的行内指令充当单条消息的提示。
  • 行内快捷方式(仅限允许列表中的发送者):普通消息中的某些 /... 令牌可以立即运行(例如:“hey /status”),并在模型看到剩余文本之前被移除。

详情请参见:斜杠命令

会话、压缩和修剪(持久化的内容)

跨消息持久化的内容取决于机制:

  • 普通历史 会持久化在会话记录中,直到被策略压缩/修剪。
  • 压缩 会将总结持久化到记录中,并保持最近的消息完整。
  • 修剪 从一次运行的 内存中 提示词中移除旧的工具结果,但不会重写记录。

文档:会话压缩会话修剪

/context 实际报告的内容

可用时,/context 优先使用最新的 运行构建 (run-built) 系统提示词报告:

  • 系统提示词 (运行) = 从最后一次嵌入式(具备工具能力)运行中捕获并持久化在会话存储中。
  • 系统提示词 (估算) = 当不存在运行报告时(或通过不生成报告的 CLI 后端运行时)实时计算。

无论哪种方式,它都会报告大小和主要贡献项;它 不会 转储完整的系统提示词或工具模式。