bot-prompt-context.md 3.5 KB

Bot 提示词与环境上下文

2026-09-21,第一批优化。适用于应用的 Bot 模式,由服务端统一生效。

提示词组织

src/server/workspacePrompt.ts 负责纯文本组装;workspaceRuntime.ts 提供本轮身份、协作状态、已挂载能力、已确认的工作目录和消息来源。

顺序为基础行为规则、Bot 身份与长期规则、本轮任务与协作、环境与设备、已连接应用、Bot 记忆、运行标记、用户消息或对话上下文、附件。保留现有群聊参与、静默、讨论轮次、目标验收、临时助手和运行恢复语义。

这些是现有 prompt.submit.text 中的文本分段,不是 Hermes 新增的 system/developer 消息角色。没有修改共享 Profile、用户保存的 Bot 提示词或既有聊天记录。

环境与工具

  • 环境说明由本轮实际挂载的工具决定,不再扫描整段历史或通过“本机”“Grok”“虚拟机”等关键词决定环境描述。简短能力说明随每轮提供,后续“继续”也能获得完整的工具边界。
  • 所有环境说明使用“操作某环境时”的条件表达。模型会话仍在服务端 Hermes,桌面、VM 和云电脑是工具目标;普通聊天不会因提示词组装启动 VM。
  • 全局开放、工具已挂载、设备在线、设备授权是不同状态。原生工具以 Hermes 实际目录为准,不再一概宣称全部可用。
  • Hermes 文件与命令作用于其服务器运行环境;Docker 等部署不能假定该路径与服务器桌面共享。已确认的 session.cwd.set 结果可注入提示,没有确认的路径不猜测。
  • 文件和命令能力与屏幕控制分别提示。文件操作不先截图;窗口操作使用新截图。跨设备传文件继续使用 desktop_file_copy,保留文件大小限制、覆盖规则和校验要求。
  • 设备清单每轮只出现一次,包含名称、稳定的工具 host 值、平台及该账号的屏幕控制/文件与命令状态。服务器工具目标固定为 server;同名电脑可按 ID 区分。
  • “本机”继续取本轮来源。用户明确指定目标时使用指定目标;未知来源、离线、未开放或未授权不得回退到其他设备。协作、定时任务、并发来源和执行时权限校验沿用原机制。

验证

修改前的五组相关测试 163 项通过。修改后的十二组测试 267 项通过,包括新增的 9 项提示词、设备清单和真实 Bot WebSocket 提交链路测试。

NODE_OPTIONS=--no-experimental-webstorage npx vitest run \
  tests/server/workspacePrompt.test.ts \
  tests/server/workspace.test.ts \
  tests/server/desktopEnvironments.test.ts \
  tests/server/workspacePanels.test.ts \
  tests/server/workspaceCollaboration.test.ts \
  tests/server/personaSection.test.ts \
  tests/server/taskCoordinator.test.ts \
  tests/server/workspacePlugins.test.ts \
  tests/server/sessionWorkingDirectory.test.ts \
  tests/server/workspaceKnowledge.test.ts \
  tests/server/workspaceMemorySynthesis.test.ts \
  tests/server/workspaceTeamTools.test.ts --maxWorkers=4
npm run typecheck
npm run build

类型检查和构建通过,构建保留大包体积提示。验证使用模拟 Hermes 与设备传输,没有调用外部模型或操作生产设备,不能据此认定真实模型的目标选择准确率或 Token 开销已改善。

完整设备元数据协议、上下文预算、按任务检索记忆和 Hermes 独立上下文角色留待后续批次;本批不部署或重启运行中的服务。