当Agent拥有了"眼睛",世界就变成了一张待解析的图片。七大视觉Agent设计模式,让你的Agent不仅能读文字,还能看世界。
世界上有一种局限叫"我只能理解文字"。在过去,AI Agent是"瞎子"——你给它一篇文章它能分析得头头是道,但给它一张图它就沉默了。视觉模型(GPT-4V、Claude Vision、Gemini)的出现打破了这种局限,Agent终于有了"眼睛"。
但有了眼睛不等于会看。如何让Agent系统性地利用视觉能力?这就是设计模式的用武之地。
最基础的视觉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 }] };
});
从图片中提取结构化文字信息,不只是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);
}
在图片中定位和识别特定物体,返回边界框和标签。
// 目标检测工作流
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;
}
不仅识别物体,还理解物体之间的关系、场景的氛围和上下文。
// 场景理解模式
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;
}
结合文本和图像进行复杂推理——这是最强大的视觉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;
}
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();
}
持续监控视频流或摄像头画面,检测特定事件。
// 实时视觉监控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)
};
}
}
| 模式 | 复杂度 | 延迟 | 成本 | 典型场景 |
|---|---|---|---|---|
| VQA | 低 | 1-3s | 低 | 快速问答 |
| OCR提取 | 低 | 2-4s | 低 | 文档数字化 |
| 目标检测 | 中 | 3-5s | 中 | 物体识别 |
| 场景理解 | 中 | 5-10s | 中 | 复杂分析 |
| 图文推理 | 高 | 10-30s | 高 | 深度分析 |
| Computer Use | 高 | 实时 | 高 | 自动化操作 |
| 实时监控 | 高 | <1s | 持续 | 安防监控 |
视觉Agent设计模式的价值在于提供了一套系统性的方法来组织视觉能力。从简单的"看图说话"到复杂的"图文协同推理",从单次分析到实时监控,每种模式都有明确的适用场景和实现路径。选择正确的设计模式,是构建有效视觉Agent的第一步。
世界上有一种能力叫"看一眼就知道发生了什么",视觉Agent正在让AI拥有这种能力。
最后更新:2026-05-16 | 妙趣AI - AI工具导航与教程平台