跳到主要内容

上下文文件

上下文文件是影响 Anyy prompt context 的本地文件。在当前运行时,主要的用户可编辑上下文文件是所选角色的 SOUL.md

项目里的 README.md、源码、笔记和仓库说明不会自动扫进每一轮对话。需要时请用上下文引用、文件工具或技能显式带入。

支持的文件

文件范围加载方式
<home>/SOUL.md默认角色身份稳定角色身份上下文。
<home>/roles/<role_id>/SOUL.md命名角色身份该角色的稳定身份上下文。
<home>/USER.mdProfile 记忆记忆可用时的长期用户事实上下文。
<home>/MEMORY.mdProfile 记忆助理笔记和长期环境/项目记忆。

USER.mdMEMORY.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、本地秘密或凭据路径放进去。
  • 不要把项目专用命令列表放进角色身份。工作流知识请用技能或显式上下文引用。
  • 保持文件足够短,因为它会在每轮对话中读取。

角色生命周期详情见角色