AtomCode v5.0.9 新子系统深度分析 — Vision 侧车机制:图片旁路与视觉能力覆盖
基于
strings结构体元数据 + 提示注入串 + 模块路径的还原分析 2026-09-09 前置报告:05-version-diff-v4.25.5-to-v5.0.9.md姊妹报告:DEEP_ANALYSIS_31_Subagent、04-视觉预处理(旧版 Vision 管线)、38_Providers_Login(provider 能力字段)
1. 涉及模块(v5.0.9 全新路径)
crates/atomcode-coding/src/vision.rs ← 编码侧 vision 决策
crates/atomcode-cli/src/vision.rs ← CLI 侧 vision 工具面
crates/atomcode-capabilities/src/ ← ImageSidecar / ImageSidecarProviderInfo→ vision.rs 从单点预处理升级为双模块(coding 决策 + CLI 工具面)+ ImageSidecar 侧车结构。
2. Vision Sidecar 机制(核心证据)
2.1 结构体
struct ImageSidecar
struct ImageSidecarProviderInfo
fields: ImageSidecarProviderInfo / supports_vision_override /
has_api_key / requires_login / ephemeral ToolCallInfo / displayTunnel...→ 图形侧车 ProviderInfo:supports_vision_override(可覆盖视觉能力)、 has_api_key、requires_login、ephemeral 等能力标记 —— provider 声明 ImageSidecar 作为图像处理旁路。
2.2 provider 能力字段扩展
system_prompt / supports_vision / user_agent / context_window / max_tokens
clear_supports_vision / clear_api_key / clear_base_url / set_default_provider→ provider 配置新增 supports_vision 字段;/provider 管理支持 clear_supports_vision / set_default 等操作(可覆写视觉能力)。
3. 视觉输入门禁(编码侧 vision.rs)
<model> does not support image input and no vision_preprocessor_provider is
configured. Use /model to switch to a vision-capable model, or set vision_...
<model> does not support image input; the configured vision_preprocessor_provider
... (Fix the name, or use /model to switch to a vision-capable model)
[image(s) attached below for the vision model]→ 两态门禁:模型不支持图片 且 无前置 provider → 提示切换 / 配置; 有 provider 但名字错 → Fix the name。图片附加给 vision model——侧车接管。
3.3 配置节
vision_preprocessor_provider ← config 顶层字段
coding / vision_preprocessor_provider / ui / keep_interrupted_context / ...→ vision_preprocessor_provider 并入 coding 配置段(挨着 auto_commit/loop_config/ui)。
4. 与旧 Vision 管线的关系
| 项 | 旧版(DEEP_ANALYSIS 视觉预处理) | v5.0.9(侧车机制) |
|---|---|---|
| 处理层 | 单一预处理管线(图片→文本) | provider ImageSidecar 旁路 |
| 能力探测 | 固定 supports_vision | 可覆写 override + has_api_key/requires_login |
| 失败语义 | 降级文本 | 明确提示 /model 切换 / Fix name |
| 模块 | vision.rs 单文件 | coding/vision.rs + cli/vision.rs 双模块 |
5. 与既有系统的关系
| 系统 | 关系 |
|---|---|
| DEEP_ANALYSIS_38 Providers | supports_vision / has_api_key / requires_login / ephemeral 是 provider 能力字段家族 |
| 04-vision-preprocessor | 旧预处理管线 → 新增侧车旁路(多 provider 视觉能力) |
| DEEP_ANALYSIS_34 Config | vision_preprocessor_provider 进入 coding 配置段 |
| DEEP_ANALYSIS_46 tools | ImageAttachment 与侧车联动(图片路由给 vision provider) |
6. 逆向方法论备注
struct ImageSidecarProviderInfo+supports_vision_override= 视觉能力可覆写硬证据[image(s) attached below for the vision model]还原侧车提示注入格式<model> does not support image input ... use /model to switch给出门禁两态clear_supports_vision / clear_api_key / set_default_provider暴露 provider 配置操作面coding/vision.rs + cli/vision.rs双模块 = 决策层 + 工具层分离
本报告由持续分析循环生成 — v5.0.9 Vision 侧车机制:图片旁路与视觉能力覆盖深度分析