Skip to content
AstrBot
Main Navigation 主页博客路线图HTTP API

简体中文

English

简体中文

English

切换日光/暗黑模式

简介和部署接入消息平台接入 AI使用开发
Sidebar Navigation

简介

关于 AstrBot

社区

常见问题

部署

脚本部署

雨云一键云部署

桌面客户端部署

启动器一键部署

Docker 部署

Kubernetes 部署

宝塔面板部署

1Panel 部署

源码部署

其他部署方式

CasaOS 部署

优云智算 GPU 部署

社区提供的部署方式

支持我们

接入消息平台

快速接入指南

QQ 官方机器人

Websockets 方式(推荐)

Webhook 方式

OneBot v11

企微应用

企微智能机器人

微信公众号

个人微信

飞书

钉钉

Telegram

LINE

Slack

Mattermost

Misskey

Discord

KOOK

Satori

接入 Satori

使用 server-satori

社区提供

Matrix

VoceChat

接入 AI

✨ 接入模型服务

MiraRouter

NewAPI

胜算云

AIHubMix

PPIO 派欧云

硅基流动

小马算力

302.AI

Ollama

LMStudio

⚙️ Agent 执行器

内置 Agent 执行器

Dify

扣子 Coze

阿里云百炼应用

DeerFlow

使用

WebUI

AstrBot CLI

内置指令

插件

插件

MCP

技能 Skills

AstrBot 内置 AI

Agent 沙盒环境

SubAgent 编排

主动型能力

网页搜索

SerpApi

DeepSeek Search API

知识库

上下文压缩

自定义规则

Agent 执行方式

统一 Webhook 模式

开发

插件开发

🌠 从这里开始

最小实例

接收消息事件

发送消息

插件配置

插件可视化视图

插件国际化

调用 AI

存储

文转图

会话控制器

杂项

发布插件

插件指南(旧)

插件市场规范

版本列表

2026-06-27

接入平台适配器

AstrBot HTTP API

API Scope 与接口对照

AstrBot 配置文件

其他

异常诊断

自部署文转图

插件下载不了?试试自建 GitHub 加速服务

社区活动

开源之夏 2025

桐谷霁屿 x AstrBot 插件奖励活动

目录

图片处理 ​

build_main_agent 在图片描述和 Agent 初始化前处理初始图片,包括普通附件、引用图片及插件 ProviderRequest 中的图片,直接调用构建函数也适用。请求 Hook 执行后,流水线只检查新增的图片引用;已有引用复用处理结果,不再次检查文件。

大小限制与格式 ​

  • 原始图片文件超过 64 MiB 时,在读取内容和解码像素前跳过;原因与保留的原图路径会保存到历史。另向模型提供临时建议:使用可用的文件读取工具,或请用户重发较小的图片,这段建议不保存到历史。小于等于 64 MiB 的图片正常处理。
  • 模型使用的单张图片文件严格小于 512 KiB(524,288 字节)。限制针对 Base64 编码前的图片文件,不是整个请求体。
  • 在管理面板的配置文件页面搜索输入图片最大边长,对应 provider_settings.image_compress_options.max_size,默认 1280 像素。初始图片保持宽高比,小图不会放大;为满足文件体积限制,必要时会进一步缩小。Hook 新增图片同样按配置限制最长边、处理格式和动图,并应用 64 MiB 输入上限和严格小于 512 KiB 的输出限制。
  • 方向正常、像素尺寸及文件体积均合规的 JPEG/PNG 保留原始字节。其余静图修正方向后编码为 JPEG;含透明度的图片输出 PNG,即使需要进一步缩小也保留透明通道。
  • GIF、动画 WebP、APNG 等动图均匀选取最多 9 帧,包含首尾动画帧,生成白底 3×3 拼图。不足 9 帧的格子留白,APNG 的独立封面不参与采样。
  • 重新编码时移除不必要的元数据;与输出色彩空间兼容、且不影响体积达标的色彩配置保留。

CUA 会话中的用户输入图片也遵守这些限制;截图及其他工具返回的图片继续使用各自的处理逻辑。

配置项变化 ​

原配置项现在的行为
启用图片压缩(image_compress_enabled)已移除,当前输入图片始终处理。
压缩质量(image_compress_options.quality)已移除,自动控制输出体积。
最大边长(image_compress_options.max_size)更名为“输入图片最大边长”,同时遵守严格小于 512 KiB 的文件体积限制。

旧配置文件中遗留的启用开关和 JPEG 质量值不再影响图片处理。

原图路径与文件清理 ​

图片处理阶段统一生成普通的 Image N 文本说明,包含原图路径,并标明是否来自引用消息。序号按 Hook 和过滤之后的图片顺序生成:额外图片内容块在前,image_urls 在后。请求实体和消息模型不新增附件元数据。引用来源和成功生成描述的图片由对应处理步骤直接传递,不解析提示文本推断状态;Hook 后只更新本次流程自己生成的提示对象,保留插件传入的文本。跳过的图片只保留原因和原图路径,不占图片序号;动图会标明已转换为九宫格。交给图片描述模型处理的图片标为已转文字描述,不占主请求的图片序号。

image_urls 及图片内容块直接复用合规的本地 JPEG/PNG 文件,不创建工作副本;需要转换的图片才使用处理后的预览文件。提供给模型、供工具读取文件的附件说明仍然指向原始图片路径,不会替换为预览路径。原始文件和事件中的图片组件均不被覆盖。

模型预览文件归当前事件所有,事件完成、失败或取消后清理,不再保留跨请求图片转换缓存。同一请求中重复出现的图片引用复用同一份预览,请求 Hook 前后的准备过程也会去重。

成功本地化的附件原图,包括引用图片,不随事件结束删除。临时目录中的原图仍受 temp_dir_max_size 容量清理约束,不属于永久存储。请求收集失败时,尚未成功接管的源文件仍按事件临时文件清理。

对话历史会在预览文件删除前保存模型使用的图片内容,采用 Base64 data URI;旧历史不会重新处理。无法读取的图片会跳过,不影响其他文字和正常图片;取消、资源耗尽及程序错误不会被当作坏图忽略。

第三方 Agent 后端、绕过主 Agent 构建函数直接调用 provider,以及工具返回的图片,不属于本次输入图片处理范围。

发现文档有问题?在 GitHub 上编辑此页

Last updated:

Pager
下一篇关于 AstrBot

Deployed on Rainyun Logo