Skip to content

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 Providerssupports_vision / has_api_key / requires_login / ephemeral 是 provider 能力字段家族
04-vision-preprocessor旧预处理管线 → 新增侧车旁路(多 provider 视觉能力)
DEEP_ANALYSIS_34 Configvision_preprocessor_provider 进入 coding 配置段
DEEP_ANALYSIS_46 toolsImageAttachment 与侧车联动(图片路由给 vision provider)

6. 逆向方法论备注 ​

  1. struct ImageSidecarProviderInfo + supports_vision_override = 视觉能力可覆写硬证据
  2. [image(s) attached below for the vision model] 还原侧车提示注入格式
  3. <model> does not support image input ... use /model to switch 给出门禁两态
  4. clear_supports_vision / clear_api_key / set_default_provider 暴露 provider 配置操作面
  5. coding/vision.rs + cli/vision.rs 双模块 = 决策层 + 工具层分离

本报告由持续分析循环生成 — v5.0.9 Vision 侧车机制:图片旁路与视觉能力覆盖深度分析

基于 VitePress 构建 · AtomCode v5.2.3 逆向工程分析文档