@amaster.ai/pi-attachments (英语)

截取用户输入的 Pi 扩展 @- 参考本地资源,并在模型看到前将其内容注入提示.
钩上 input 事件 @earendil-works/pi-coding-agent当用户信息中出现识别的提及时,原提及被剥去并被结构化上下文所取代(技能块、附件列表或 <system-reminder>) (中文(简体) ). 图像附件作为多模式传递 ImageContent。 。 。 .
公认提及
| 语法 | 决定 |
|---|---|
@path/to/file.ts | 文件内容(文本/doc)或 Base64 图像 |
@"/path with spaces/file.pdf" | 和上面一样,支持路径中的空白 |
@path/to/file.ts#L10-20 | 参考文献中保留了行距语法(下行范围) |
@path/to/dir | 目录列表( 文件 + 子目录, 忽略) .git编号 :node_modules/建立产出) |
@skill:<name> | 装入 SKILL.md 注册技能 |
@http(s)://... 实值 没有 作为文件参考。 未知的命名空间( 例如 ). @app:erp-prod——既不能作为技能解决,也不能作为文件解决.
技能分辨率
@skill:<name> 按此顺序搜索, 首先击出胜负 :
<cwd>/.pi/skills/<name>/SKILL.md项目一级的技能<agentDir>/skills/<name>/SKILL.md——用户级技能(通过@amaster.ai/pi-shared是因为resolveAgentDir(),以PI_AGENT_HOME(中文(简体) )
顺序匹配 loadSkillsFromAllLocations 在 pi-coding- agent SDK 中,所以一个工程技能可以覆盖一个用户安装的. 前题被剥去,尸体被包裹 <skill name="..." location="...">…</skill> 并准备用于用户消息.
输出组件
当至少提到一个解决时,输入会按此顺序重写为三个可选部分:
<skill name="..." location="...">…</skill> ← skill blocks (if any)
<original user text with mentions stripped>
<system-reminder>
## file.ts: /abs/path/file.ts
```text
…contents…
```
没有可解析引用的纯文本输入不受影响( 处理器返回) undefined) (中文(简体) ).
配置
| 新闻 var | 默认 | 含义 |
|---|---|---|
PI_ATTACHMENT_MAX_TEXT_CHARS | 128000 | 共享文件/指令区块每个输入的文本预算 |
PI_AGENT_HOME | (从平分) | 覆盖用户级技能搜索根 |
限制
文本文件被读取为被绑定的UTF-8前缀,而不是装入完整的文件. 文件和目录块共享 PI_ATTACHMENT_MAX_TEXT_CHARS (默认值128 000);预算用完后省略后的内容,保留其参考文献。 无效或非正环境值使用默认值. renderAttachmentContext(attachments, options) 呼叫者通过 options.maxTextChars; 零预算只发出引用和省略说明.
图像附件共享每个输入的20 MiB生字节预算,包括拖放上传和文件引用. 愿景预算外的图像保留有可见的调整大小/裁剪提示的源路径;拖曳上传在单独的128 MiB存储预算内每输入一次被递增地坚持. 超过存储预算的上传需要文件引用或更小的图像. 接受视觉图像和Markdown引用保留匹配顺序.
- 目录列表: 上限为每个目录200个条目;其余部分概述为
[Listing truncated: showing 200 of N entries]。 。 。 . - 被忽略的目录条目数字 :
.git, (中文(简体) ),node_modules, (中文(简体) ),.DS_Store, (中文(简体) ),.next, (中文(简体) ),.turbo, (中文(简体) ),dist, (中文(简体) ),build, (中文(简体) ),.cache。 。 。 . - 提及命令: 技能在文件前匹配, 所以解析
mentions[]组合,而不是保留文字顺序。 下游消费者不得依赖文字顺序.
诊断失败
缺少或无法读取的引用文件作为每个附件的明显故障通知列入。 其他可读附件仍然可用,并告知该模型哪些来源没有检查.