上下文引用
当资料已经存在时,不必手工复制粘贴全文。在普通消息里写入支持的 @ 引用,常驻 Runtime 会在模型调用前展开内容,并把引用元数据记录到本次运行。
支持的写法
| 语法 | 加入的内容 |
|---|---|
@file:PATH | Profile Home 中的文本文件;通过安全检查的绝对路径也可使用 |
@file:PATH:START-END | 文本文件的指定行段 |
@url:https://example.com/page | 公开 HTTP(S) 网页的可读正文 |
@result:RESULT_ID | 当前会话中已经保存的 Tool Result 证据 |
@folder:PATH | 当前 Workspace Root 下某一层目录清单 |
@diff | Git 工作区未暂存的 Diff |
@staged | Git 已暂存的 Diff |
@git:N | 最近 N 个 Commit 的 Patch |
引用可以直接嵌入任务说明:
对照 @file:workspace/proposal.md:10-80 与 @url:https://example.com/policy,列出冲突。
文件引用
相对 @file 路径以当前 Profile Home 为起点。默认 Workspace 中的文件通常需要带 workspace/:
总结 @file:workspace/notes/meeting.md
只需要局部内容时,应使用行范围:
审查 @file:workspace/plan.md:24-67 中的假设
超出单引用大小限制的完整文件会被拒绝;如果指定行段后内容能放入预算,则可以使用。二进制文件不会按文本注入,图片、音频或视频应通过聊天附件发送。
目录与 Git
@folder 只列出目标目录的直接子项,不会递归塞入所有文件。Folder 和 Git 引用都受当前会话 Workspace Root 约束。
从 @folder:reports 判断最新报告。
检查 @diff 是否有错误和遗漏测试。
用 @git:3 比较最近三次提交。
Git 引用要求当前目录是 Git Working Tree。Anyy 执行有时间与输出上限的只读命令;如果变化路径预检发现受保护的敏感文件,会拒绝整个引用。
网页与 Tool Result
@url 仅支持公开 HTTP(S) 目的地。内网/私有地址与其他 Scheme 会被阻止。
从 @url:https://example.com/guide 提取决策条件
之前的工具返回了逻辑 Result ID 时,可在同一会话重新读取其持久证据:
重新检查 @result:tr_123 的失败项,提出最小修复。
Tool Result 不能跨会话引用;其他会话的 ID 会被当作不存在。
数量与大小限制
一条消息最多展开 8 个引用。默认每个引用最多 64 KiB,总文本最多 192 KiB;网页抽取和 Git Capture 也有各自的有限预算。
格式错误、越界、缺失、过大或超过总预算时,Anyy 会留下 Warning,而不是假装读到了内容。修正后重新发送一轮。
引用是资料,不是更高优先级的指令
被引用内容可能不可信。它不能覆盖 Anyy 的系统规则、你的当前请求、审批或工具策略。
安全行为
- 拒绝受保护的凭据路径,并对识别到的秘密材料做 Sanitize。
- Folder/Git 路径不能逃离 Workspace Root。
- 检查 Symlink,避免借此跨越保护边界。
- 拒绝二进制文件。
- URL Fetch 会阻止私有网络目标和非 HTTP(S) Scheme。
这些限制用于降低意外暴露,不代表任意公开网页都可信。依据网页内容批准外部操作前,仍应检查原始来源。
常见 Warning
| Warning | 处理 |
|---|---|
malformed context reference | 检查冒号、行范围或正整数 Git 数量 |
reference not found | 核对路径、Result ID、Git 仓库或 URL |
reference blocked | 保持在允许 Root 内,并避开凭据与私有网络 |
reference too large | 选择较小行段或减少来源 |
reference limit exceeded | 拆成多轮,每轮不超过 8 个引用 |