当首遍图片描述不够用时,按当前问题重新调用 VLM 看图。向 planner 暴露 inspect_image 工具。
MaiBot 默认会先把图片转成一段文字描述再给文本模型用。描述一旦漏掉关键细节(数量、文字、颜色、位置),后面就补不回来——就像下面这张梗图:
本插件让 planner 在需要时带着具体问题再看原图,而不是只靠第一次摘要。
声明兼容 MaiBot 1.0.0 ~ 1.99.99(SDK 2.5.1 ~ 2.99.99),覆盖整个 1.x 主版本线。
需要已配置可用的 [model_task_config.vlm](visual = true 的多模态模型)。
- Tool:
inspect_imagequestion:要对图片问的具体问题(必填)image_index:从最近往前第几张图,默认1msg_id:可选,优先看某条消息里的图
- 消息里只有 hash、没有内嵌字节时,会从
data/images/<hash>.*/ Images 表补读原图 - 工具默认
visibility=visible,便于 planner 直接看见
- 把本仓库放到 MaiBot 的
plugins/目录,例如:plugins/github_kumburovicbranko682-boop_image-relook/ - 或在 WebUI 插件中心 / 官方插件仓库安装(收录后)
- 重启 MaiBot,日志出现:
图片重看插件已加载
运行时由 Runner 根据 config_model 生成 config.toml。常用项:
[plugin]
enabled = true
config_version = "1.0.3"
[relook]
lookback_hours = 24.0
recent_message_limit = 40
max_images = 10
llm_task = "vlm"
temperature = 0.2
max_tokens = 1024| 配置 | 默认 | 说明 |
|---|---|---|
relook.lookback_hours |
24 |
向前找图的小时数 |
relook.llm_task |
vlm |
识图任务名 |
relook.temperature |
0.2 |
重看温度 |
一般不用手打命令。用户发图并追问细节时,planner 应调用 inspect_image。
示例:
- 用户发一张手掌图:「看得见吗」
- 用户追问:「掌纹有几条」
- planner 调用
inspect_image(question="这张手掌图上有几条掌纹?") - 工具带问题重跑 VLM,把观察结果交回 planner / replyer
message.get_recentllm.generatedatabase.get
| 现象 | 可能原因 |
|---|---|
| 工具返回找不到图片 | 会话 ID 不对;图超出 lookback;图片文件已被清理 |
| 识图失败 | VLM 未配置 / 模型 visual=false / 上游报错 |
| planner 不调用工具 | 确认插件已加载;工具描述是否可见;是否被 tool_search 延迟发现(本插件已设 visible) |
MIT
