上下文文件
上下文文件是影响 Anyy prompt context 的本地文件。在当前运行时,主要的用户可编辑上下文文件是所选角色的 SOUL.md。
项目里的 README.md、源码、笔记和仓库说明不会自动扫进每一轮对话。需要时请用上下文引用、文件工具或技能显式带入。
支持的文件
| 文件 | 范围 | 加载方式 |
|---|---|---|
<home>/SOUL.md | 默认角色身份 | 稳定角色身份上下文。 |
<home>/roles/<role_id>/SOUL.md | 命名角色身份 | 该角色的稳定身份上下文。 |
<home>/USER.md | Profile 记忆 | 记忆可用时的长期用户事实上下文。 |
<home>/MEMORY.md | Profile 记忆 | 助理笔记和长期环境/项目记忆。 |
USER.md 和 MEMORY.md 见长期记忆。本页重点说明身份和显式上下文文件行为。
SOUL.md
SOUL.md 定义 Anyy 的角色人格、语气、边界和协作方式。它不是 provider 身份文件,也不会授予工具权限。
默认角色:
<home>/SOUL.md
命名角色:
<home>/roles/<role_id>/SOUL.md
新 profile 会创建一个空的 SOUL.md sentinel,并选择 default 角色。命名角色保存在 roles/<role_id>/SOUL.md。
如果命名角色没有可用的 SOUL.md,prompt assembly 会回退到默认角色的 SOUL.md。默认角色不会使用 roles/default/SOUL.md。
加载规则
每一轮对话都会从稳定来源和单轮来源构建 prompt。角色身份属于稳定 prompt,在运行时能力、技能、记忆和最近 transcript 之前组装。
Anyy 按下面规则加载角色身份:
| 规则 | 行为 |
|---|---|
| 所选会话角色 | 已有会话保留创建时的角色。修改 profile 默认角色不会重写旧会话。 |
| 新本地会话 | 使用 profile 的 default_role 指针;没有设置时回退到 default。 |
| 命名角色文件缺失 | 回退到默认角色身份。 |
| 空文件 | 该文件不添加自定义人格文本。 |
| 大文件 | 截断到角色身份字符上限,并加入截断标记。 |
角色文件按本地 profile 文件读取。符号链接或敏感角色路径会被拒绝,并通过回退避免泄露目标文件。
不会自动加载的内容
Anyy 当前不会把仓库里的每个指令文件都自动加载到常驻会话里。不要因为下面这些文件存在于项目中,就假设它们已经在模型上下文里:
| 文件 | 当前行为 |
|---|---|
AGENTS.md | 当前 build 中不是常驻运行时自动加载来源。需要时请显式引用。 |
CLAUDE.md | 不作为 Anyy 身份来源使用。 |
.cursorrules | 不是内置 Anyy 上下文来源。 |
项目 SOUL.md | 不会从工作目录探测。只使用 profile home 下的角色身份路径。 |
当一轮对话需要项目本地说明时,请使用 @file:AGENTS.md、@folder:docs、文件工具或技能。
安全
角色身份文本被视为用户控制的本地内容。Anyy 在纳入 prompt 前会做基础安全检查:
| 检查 | 效果 |
|---|---|
| 敏感路径检查 | 拒绝 .env、SSH keys、token/credential 风格路径和类似敏感位置。 |
| 符号链接检查 | 拒绝符号链接角色身份文件。 |
| Prompt 注入标记 | 丢弃包含明显指令覆盖或秘密外传标记的角色文本。 |
| Unicode 清理 | 转换无效 UTF-8,并拒绝 prompt 攻击常用的不可见控制标记。 |
SOUL.md 可以设置语气和偏好,但不能覆盖用户指令、工具治理、审批、ChangePlan、审计,也不能覆盖助理必须识别为 Anyy 的要求。
编辑
使用角色 CLI 可以获得可重复的编辑流程:
anyy role update default --soul-file ./SOUL.md
anyy role create research --display-name "Research"
anyy role update research --soul-file ./research.SOUL.md
anyy role use research
Dashboard 的 Roles 页面也可以创建角色、选择当前角色并编辑角色的 SOUL.md。
最佳实践
- 让
SOUL.md聚焦身份、语气、边界和协作方式。 - 不要把 API keys、本地秘密或凭据路径放进去。
- 不要把项目专用命令列表放进角色身份。工作流知识请用技能或显式上下文引用。
- 保持文件足够短,因为它会在每轮对话中读取。
角色生命周期详情见角色。