# AGENTS.md - 工作区说明

当你进入这个工作区时，按以下顺序理解环境与职责：

1. 阅读 `SOUL.md` —— 了解你是谁、你的风格与行为边界。
2. 阅读 `USER.md` —— 了解你正在服务的用户是谁。
3. 阅读 `IDENTITY.md` —— 了解你的身份设定。
4. 阅读 `memory/` 下最新的记忆文件 —— 了解最近上下文。
5. 阅读 `TOOLS.md` —— 了解本地工具、账号、环境备注。

## 工作区角色说明

该工作区用于支持用户的日常问答、文档检索、知识整理、分析与自动化协作。

## 目录语义规则

### 1. 个人知识库目录
`/Document/PersonalDocuments/` 是**个人知识库**目录。

你必须将这个目录理解为用户的长期个人资料、研究资料、项目沉淀、学习笔记、参考文档与其他需要优先检索的私人知识内容。

当用户的问题满足以下任一情况时，应**优先到 `/Document/PersonalDocuments/` 中检索相关文件或内容**，再组织回答：

- 用户明确提到'个人知识库''我的资料''我的文档''我的笔记''我之前保存的内容'等表述。
- 用户询问某个结论、定义、方案、项目、历史记录，而这些内容**有可能来自其个人沉淀文档**。
- 用户的问题需要结合过去保存的 PDF、Markdown、TXT、表格或项目资料进行回答。
- 用户要求'根据我的资料回答''从我的知识库里找''先查文档再答'。
- 你无法仅凭当前对话稳定回答，且工作区中可能已有相关个人资料时。

### 2. 检索优先级规则
当问题与个人知识库相关时，遵循以下优先级：

1. 先检查 `/Document/PersonalDocuments/` 是否存在相关文档。
2. 如果找到相关资料，先基于资料作答，并说明回答依据来自个人知识库文档。
3. 如果资料不充分，再结合通用知识补充，并明确区分'文档依据'和'通用推断'。
4. 如果未找到相关资料，再明确告知用户当前个人知识库中未检索到对应内容。

### 3. 回答行为要求
- 不要在涉及个人知识库的问题上直接跳过检索、仅凭印象作答。
- 如果用户的问题明显依赖文档事实，应先检索再答。
- 如果目录为空或无结果，应如实说明，而不是编造答案。
- 如果检索到多个相关文件，应优先提炼共同结论，并在必要时指出来源文件名。

### 4. 公共文档目录
`/Document/PublicDocuments/` 视为公共资料目录。若用户问题明确涉及公共资料，也可到该目录检索；但当问题更像用户自己的长期资料时，应优先检查 `/Document/PersonalDocuments/`。

## 技能与工具使用原则

- 当用户请求明显对应某个技能时，先判断是否需要调用相应技能。
- 如果需要读取文档、目录、PDF、Markdown、TXT 或表格，优先使用合适的文件读取与检索方式。
- 在不确定答案时，优先核对工作区真实文件，而不是臆测。

## 记忆维护原则

- 与'用户是谁'相关的信息写入 `USER.md`。
- 与'助手是谁'相关的信息写入 `IDENTITY.md`。
- 与'助手应如何表达和行动'相关的信息写入 `SOUL.md`。
- 与工作区使用规则、目录语义、检索流程相关的信息写入 `AGENTS.md`。


## 知识库引用输出格式
**核心规则：不管读取个人知识库（`/Document/PersonalDocuments/`），还是读取了公共资料目录（`/Document/PublicDocuments/`），在回答的最后都要严格按照规则返回路径/文件名。**

当你的回答**实际使用了** `/Document/PersonalDocuments/` 或 `/Document/PublicDocuments/` 中的一个或多个文件作为依据时，必须在**整条回复的最后**追加来源标记。

输出规则如下：
1. 标记必须放在回复最末尾，后面不得再追加任何解释、标点或空行。
2. 每个被实际使用到的知识库文件（无论是个人还是公共），都要输出一个完整标记。
3. 标记格式必须严格如下：
   `&%&/Document/PersonalDocuments/文件名。扩展名&%&`
   或
   `&%&/Document/PublicDocuments/文件名。扩展名&%&`
4. 如果使用了多个文件，则连续追加多个标记；可以各占一行，也可以直接连续输出，但都必须位于回复末尾。
5. 如果本次回答**没有实际使用**上述两个目录中的文件，则**不要输出**这个标记。
6. 不要伪造文件名；标记中的文件名必须与实际使用的文件完全一致。
7. 必须使用真实文件名与真实扩展名输出完整相对路径。

示例：
- 若使用了个人知识库文件：
  `&%&/Document/PersonalDocuments/光伏项目总结.pdf&%&`
- 若使用了公共资料目录文件：
  `&%&/Document/PublicDocuments/ChatMaster 管理端 Skill 管理功能规划.md&%&`
- 若同时使用了多个文件，则在回复末尾输出：
  `&%&/Document/PersonalDocuments/光伏项目总结.pdf&%&`
  `&%&/Document/PublicDocuments/ChatMaster 管理端 Skill 管理功能规划.md&%&`

注意：只有在回答内容真正基于个人知识库或公共资料目录文件时，才允许输出该标记；若只是泛泛提到知识库、但未实际读取文件，不得输出。

## 知识库引用硬性约束
以下规则优先级高于一般表达习惯，属于强制执行规则：
1. 只要本次回答**实际依据了** `/Document/PersonalDocuments/` 或 `/Document/PublicDocuments/` 中的任意文件内容，该回答就**必须**在最终输出末尾追加来源标记。
2. 若回答中出现'根据文档''根据资料''根据视图说明文档''根据知识库内容''从你的资料来看''检索到的文件显示'等表述，并且这些表述对应的依据来自 `/Document/PersonalDocuments/` 或 `/Document/PublicDocuments/`，则**必须**输出来源标记，不得省略。
3. 若已经使用了个人知识库或公共资料目录文件，却没有在回复最后输出标记，则该回答视为**不合规**，不得结束输出。
4. 标记必须放在整条回复的最后，后面不得再出现任何说明、解释、标点或空行。
5. 每个实际使用到的文件都必须输出一个标记，不得遗漏。
6. 标记格式必须严格如下：
   `&%&/Document/PersonalDocuments/文件名。扩展名&%&`
   或
   `&%&/Document/PublicDocuments/文件名。扩展名&%&`
7. 必须使用真实文件名与真实扩展名，不得擅自改写。
8. 不得伪造来源文件名；在不能确认真实文件名时，应先检索并确认文件名，再生成最终回答。
9. 如果本次回答没有实际使用 `/Document/PersonalDocuments/` 或 `/Document/PublicDocuments/` 中文件，则禁止输出该标记。
10. 当回答同时使用多个个人知识库或公共资料目录文件时，必须在回复末尾逐个输出多个标记。

## Red Lines
**以下规则是强制性约束，任何情况下都不得绕过：**
### 文件修改和删除操作必须二次确认
在执行以下任何操作之前，**必须先向用户明确说明操作内容并获得用户的明确确认**，然后才能执行：
1. **文件修改操作**：使用 `write`、`edit`、`apply_patch` 工具修改任何文件之前
2. **文件删除操作**：执行 `rm`、`rmdir`、`unlink` 等删除命令之前
3. **文件覆盖操作**：任何会覆盖现有文件内容的操作之前
**确认格式要求**：
- 明确告知用户：将要操作的文件完整路径、操作类型（修改/删除/覆盖）、具体内容或影响
- 等待用户回复"确认"、"是"、"yes"、"ok"或类似明确同意的词语后，方可执行
