图像与文件引用
Zuno 接受本地图像作为类型化的提示词内容,接受有界的 UTF-8 文件作为显式文本上下文。TUI、子会话编辑区、持久 inbox、重放、无界面 run 命令和 provider 请求路径共用同一套富内容模型;客户端不会自建一套仅处理图像的私有 Agent 循环。
在 TUI 中粘贴图像
把一个已存在的图像路径作为完整的粘贴内容粘进来。Zuno 会校验该文件,并把可见的路径替换为一个草稿句柄:
[Image #1]这个句柄是展示状态。提示词发送时,图像文件名、探测出的 MIME 类型和 base64 字节会作为一个类型化图像块单独传输。在提交之前删除该句柄会把那张图像从草稿中移除。手动键入的路径只是普通文本;只有当一次粘贴事件解析到一个受支持的本地图像时,才会自动附加。
被接受的路径形式包括普通平台路径、成对引号包裹的路径、file:// URL、~/...,以及带转义空格的 POSIX 路径。原生 Windows 盘符路径和 UNC 路径由 Windows 解析。在 WSL 下,像 C:\\Users\\me\\image.png 这样的已存在路径可能通过 /mnt/c/... 解析。
当终端剪贴板后端直接提供图像字节时,粘贴剪贴板图像会创建同样的 [Image #N] 草稿附件。剪贴板 MIME 与探测到的文件内容必须一致。
Zuno 通过 magic bytes 而不是文件扩展名来探测内容。支持的格式为:
- PNG(
image/png); - JPEG(
image/jpeg); - GIF(
image/gif); - WebP(
image/webp)。
每张解码后的图像上限为 20 MiB。直接粘贴的图像不会写入提示词召回历史,因为仅凭显示句柄无法重建那些字节;提交之后,真实的富输入会存放在持久会话 part 中,并在重放与子会话续跑中存活。
引用项目文件
在 TUI 中输入 @ 并选择一个项目文件,或者输入一个项目相对的 token,例如:
Review @src/main.rs and compare it with @docs/architecture.png引用在规范化之后于当前项目根之下解析。绝对路径、不存在的文件、目录,以及逃出项目范围的路径都会被拒绝。一条提示词最多可以引用 16 个不同的文件。
- 受支持的图像会成为一个类型化图像块,并使用 20 MiB 的图像上限。
- 任何其他引用必须是 UTF-8 文本,不超过 51,200 字节与 2,000 行。它的有界内容会带显式的起止标记插入。
- 不受支持的二进制文件,包括 PDF,不会被静默转换或上传。
一次图像路径粘贴和一个或多个 @file 引用可以出现在同一条提示词中。排队与引导提交保留同样的类型化内容。
在无界面模式下附加文件
zuno run -f/--file 可重复使用:
zuno run "Explain the evidence" \
--file ./screenshot.png \
--file ./notes.txt2
3
图像使用与 TUI 相同的格式探测和 20 MiB 上限。其他文件必须是有界的 UTF-8 文本,小于 51,200 字节与 2,000 行。必须是普通文件。--command 与 --file 不能同时使用,因为自定义命令展开目前还不携带类型化附件;Zuno 会显式失败,而不是把它们丢掉。
持久化与 provider 行为
在模型请求之前,每张图像都会连同它的文件名、MIME 类型、data URL 和 base64 载荷,作为一个持久文件 part 落盘。重新打开会话会重建同样的类型化图像块。子会话接受与根会话相同的富提示词形态。
压缩绝不会把历史图像字节发给压缩模型。它会把摘要输入中的每张图像替换为一个标签,例如 [Attached diagram.png (image/png)];原始的持久会话记录保持不变。
所选模型路由必须公布图像输入模态。仅有一个通用的附件标志、却没有图像输入是不够的。纯文本模型会在发出兼容的传输调用之前,以一个带类型的永久 unsupported_capability 错误失败,而不是静默省略图像或重试同一个无效请求。
本地附件路径由客户端进程以运行 Zuno 的操作系统账户读取。粘贴进来的 http:// 或 https:// URL 是文本,不是一次下载请求。