AGENTS.md@src/host/prompts · git:20261017.3538eb1 · 2026-10-17 · sha256 db8914f71aa864a8

AGENTS.md@src/host/prompts git:20261017.3538eb1A

Immutable. This exact content never changes and is served at /api/v1/blob/db8914f71aa864a8.

# Prompts Module Rules

## 范围与职责

适用于 `src/host/prompts/`。

**所有提示词正文集中在 `texts/`**:一个注入场景 = 一个文件 = 一段从上到下的完整正文。
本目录的其它 `.ts` 只做「事实 → 模板变量 → 渲染一次」,不存放正文片段,也不做跨文件拼装。

**语言变体**:同一场景的中英文各一份完整正文,分别放在 `texts/` 与 `texts/en/`;构建器按本次
运行语言整体选择模板,不做逐句拼接。

维护入口与变量语法见同目录 `README.md`(需要修改提示词时按需阅读)。

## 维护方式

- **改提示词 = 直接改 `texts/` 下对应文件的正文**;不要再把正文拆成小段、用常量互相引用拼装。
- **允许不同场景的正文重复**:原「共享措辞与锚点单一源、变体之间不复制模板」约束已废除——
  它是组装化的成因,维护成本高于重复成本。
- 变量用 `{{name}}` 标出;可选段用 `{{#if name}}…{{/if}}`(支持嵌套);列表类内容由调用方先渲染成一段文本再传入。
- 模板文件头必须写明:适用场景、注入位置(system prompt / 用户消息 / 工具返回 / 消息投递)、变量表。
- 父代理三模式(纯编排 / 编排+自执行 / 纯执行)各一份独立文件,不用条件分支互相套用。

## 组装与依赖

- 构建器是纯计算:入参即全部输入,同入参必同输出;渲染结果不得残留 `{{`(渲染器会抛错)。
- 本模块处于依赖链末端,不反向依赖运行时模块。

## 测试

- **正文与文案常量不做测试断言**:提示词会频繁修改,断言文案会让维护成本反噬。
- 只测机制与结构:渲染器行为(变量、可选块、残留检测)、数据是否进入输出、模式与通道差异、渲染幂等。
- 禁止为了通过测试而把正文片段抄进断言。

## 核心原则

1. 正文集中在 `texts/`,一场景一文件;打开文件即见完整全貌。
2. 组装退化为一次渲染,不拼小段。
3. 允许重复,换取可读与可维护。
4. 纯函数:无时钟、无随机、无 IO、无隐式全局状态。
5. 正文不进断言。