← 返回教程列表

视觉Agent设计模式

当Agent拥有了"眼睛",世界就变成了一张待解析的图片。七大视觉Agent设计模式,让你的Agent不仅能读文字,还能看世界。

目录

  1. 视觉Agent的时代
  2. 模式1:视觉问答(VQA)
  3. 模式2:OCR智能提取
  4. 模式3:目标检测Agent
  5. 模式4:场景理解
  6. 模式5:图文协同推理
  7. 模式6:视觉操作(Computer Use)
  8. 模式7:实时视觉监控
  9. 模式对比选择
  10. 总结

视觉Agent的时代

世界上有一种局限叫"我只能理解文字"。在过去,AI Agent是"瞎子"——你给它一篇文章它能分析得头头是道,但给它一张图它就沉默了。视觉模型(GPT-4V、Claude Vision、Gemini)的出现打破了这种局限,Agent终于有了"眼睛"。

但有了眼睛不等于会看。如何让Agent系统性地利用视觉能力?这就是设计模式的用武之地。

模式1:视觉问答(VQA)

最基础的视觉Agent模式:看图说话、看图回答问题。

// OpenClaw VQA Skill
server.tool('visual_qa', '基于图片回答问题', {
  image_url: { type: 'string', description: '图片URL或base64' },
  question: { type: 'string', description: '要问的问题' },
  detail: { type: 'string', enum: ['low', 'high', 'auto'], default: 'auto' }
}, async ({ image_url, question, detail }) => {
  const result = await openclaw.chat({
    model: 'gpt-4o',
    messages: [{
      role: 'user',
      content: [
        { type: 'text', text: question },
        { type: 'image_url', image_url: { url: image_url, detail } }
      ]
    }]
  });
  return { content: [{ type: 'text', text: result }] };
});

适用场景

模式2:OCR智能提取

从图片中提取结构化文字信息,不只是OCR,而是"理解性提取"。

// OCR智能提取模式
async function intelligentOCR(imageUrl) {
  const result = await openclaw.chat({
    model: 'gpt-4o',
    messages: [{
      role: 'user',
      content: [
        { type: 'text', text: `请从图片中提取所有文字信息,并以JSON格式返回。
自动识别以下信息类型:
- 日期/时间
- 金额/数字
- 人名/组织名
- 地址
- 联系方式
- 表格数据

返回格式:
{
  "raw_text": "原始文字",
  "entities": { "dates": [], "amounts": [], ... },
  "tables": [{ "headers": [], "rows": [] }]
}` },
        { type: 'image_url', image_url: { url: imageUrl } }
      ]
    }]
  });
  return JSON.parse(result);
}

适用场景

模式3:目标检测Agent

在图片中定位和识别特定物体,返回边界框和标签。

// 目标检测工作流
async function detectObjects(imageUrl, targets) {
  // 1. 请求模型检测特定目标
  const result = await openclaw.chat({
    model: 'claude-3.5-sonnet',
    messages: [{
      role: 'user',
      content: [
        { type: 'text', text: `在这张图中找到以下物体:${targets.join('、')}
对每个找到的物体,返回:
1. 物体名称
2. 位置描述(如"左上角"、"中间偏右")
3. 相对大小
4. 置信度(高/中/低)

如果有多个相同物体,分别列出。` },
        { type: 'image_url', image_url: { url: imageUrl } }
      ]
    }]
  });
  return result;
}

适用场景

模式4:场景理解

不仅识别物体,还理解物体之间的关系、场景的氛围和上下文。

// 场景理解模式
async function understandScene(imageUrl) {
  const result = await openclaw.chat({
    model: 'gpt-4o',
    messages: [{
      role: 'user',
      content: [
        { type: 'text', text: `请深入分析这张图片:

1. **场景描述**: 一段详细的场景描述
2. **物体清单**: 图中可见的所有物体
3. **空间关系**: 物体之间的位置关系
4. **氛围判断**: 场景的情绪/氛围
5. **活动推断**: 图中的人/物体在做什么
6. **异常检测**: 是否有异常或不协调的元素
7. **时间推断**: 大概是什么时间/季节
8. **背景信息**: 可能的地点和文化背景` },
        { type: 'image_url', image_url: { url: imageUrl } }
      ]
    }]
  });
  return result;
}

模式5:图文协同推理

结合文本和图像进行复杂推理——这是最强大的视觉Agent模式。

// 图文协同推理:多步骤分析
async function multimodalReasoning(imageUrl, context) {
  // 步骤1:视觉理解
  const visualAnalysis = await analyzeImage(imageUrl);
  
  // 步骤2:结合上下文推理
  const reasoning = await openclaw.chat({
    model: 'gpt-4o',
    messages: [{
      role: 'system',
      content: '你是一个多模态推理Agent,擅长结合视觉和文本信息进行深度分析。'
    }, {
      role: 'user',
      content: [
        { type: 'text', text: `结合以下信息进行推理:

**背景信息**:
${context}

**图片分析**:
${JSON.stringify(visualAnalysis)}

**推理任务**:
1. 图片和背景信息之间有什么关联?
2. 从图片中可以得出什么额外的结论?
3. 有没有矛盾或需要进一步验证的地方?
4. 基于所有信息,给出你的判断和建议。` },
        { type: 'image_url', image_url: { url: imageUrl } }
      ]
    }]
  });
  
  return reasoning;
}

适用场景

模式6:视觉操作(Computer Use)

Agent不仅能看,还能操作——点击、输入、导航。

// Computer Use Agent架构
// OpenClaw通过浏览器自动化实现

async function computerUse(task) {
  // 1. 启动浏览器
  const browser = await launchBrowser();
  const page = await browser.newPage();
  
  // 2. Agent循环
  let maxSteps = 20;
  while (maxSteps-- > 0) {
    // 截图并分析
    const screenshot = await page.screenshot({ fullPage: false });
    const accessibilityTree = await page.accessibility.snapshot();
    
    // 请求Agent决定下一步操作
    const action = await openclaw.chat({
      model: 'claude-3.5-sonnet',
      messages: [{
        role: 'user',
        content: [
          { type: 'text', text: `任务: ${task}\n\n无障碍树:\n${JSON.stringify(accessibilityTree)}\n\n下一步操作是什么?` },
          { type: 'image', source: { type: 'base64', media_type: 'image/png', data: screenshot.toString('base64') } }
        ]
      }]
    });
    
    // 执行操作
    const parsedAction = JSON.parse(action);
    if (parsedAction.done) break;
    
    await executeAction(page, parsedAction);
    await sleep(1000);
  }
  
  await browser.close();
}

模式7:实时视觉监控

持续监控视频流或摄像头画面,检测特定事件。

// 实时视觉监控Agent
class VisionMonitor {
  constructor(config) {
    this.targets = config.targets;
    this.interval = config.interval || 5000; // 5秒一次
    this.alertCallback = config.onAlert;
  }
  
  async start(videoSource) {
    this.running = true;
    
    while (this.running) {
      const frame = await captureFrame(videoSource);
      const analysis = await this.analyzeFrame(frame);
      
      if (analysis.hasAlert) {
        await this.alertCallback({
          timestamp: new Date().toISOString(),
          detection: analysis.detections,
          frame: frame.toString('base64')
        });
      }
      
      await sleep(this.interval);
    }
  }
  
  async analyzeFrame(frame) {
    const result = await openclaw.chat({
      model: 'gpt-4o-mini', // 使用快速模型降低延迟
      messages: [{
        role: 'user',
        content: [
          { type: 'text', text: `监控目标:${JSON.stringify(this.targets)}\n\n检测到以下目标了吗?仅回答YES/NO和目标名称。` },
          { type: 'image', source: { type: 'base64', media_type: 'image/jpeg', data: frame.toString('base64') } }
        ]
      }]
    });
    
    return {
      hasAlert: result.includes('YES'),
      detections: this.parseDetections(result)
    };
  }
}

模式对比选择

模式复杂度延迟成本典型场景
VQA1-3s快速问答
OCR提取2-4s文档数字化
目标检测3-5s物体识别
场景理解5-10s复杂分析
图文推理10-30s深度分析
Computer Use实时自动化操作
实时监控<1s持续安防监控

总结

视觉Agent设计模式的价值在于提供了一套系统性的方法来组织视觉能力。从简单的"看图说话"到复杂的"图文协同推理",从单次分析到实时监控,每种模式都有明确的适用场景和实现路径。选择正确的设计模式,是构建有效视觉Agent的第一步。

世界上有一种能力叫"看一眼就知道发生了什么",视觉Agent正在让AI拥有这种能力。

最后更新:2026-05-16 | 妙趣AI - AI工具导航与教程平台