# Pydantic AI 图片工具结果：工具返回图像内容，让 Agent 根据真实图例继续回答

已构造真实ToolReturn与BinaryContent并核对原创PNG字节；未运行Agent多模态工具会话或视觉推理。

## 运行

在本目录使用独立虚拟环境并安装requirements.txt；脚本结果写入results。

```sh
python reference/audit.py
python reference/run_sdk.py
```

fixtures是原创输入与故意失败样本；作者真值、离线合成provider和实际SDK记录各自标明，不是模型正确率。需要真实模型/账号/GPU的步骤按正文另行授权运行。

## 1. 看清原始六区温度图

temperature-chart.png由regions.json真实数值绘制，A到F共六区；图例颜色与区域值都保留。最高区域E=34是作者真值，不是模型识别结果。

## 2. 区分业务返回值和图片内容

ToolReturn的return_value放artifact标识，content放BinaryContent。negative-text-only.json只有return_value，没有向模型提供任何可见图片。

## 3. 读取实际PNG字节

run_sdk.py从练习包读取PNG而不是拼一个不存在的URL，media_type明确为image/png；图像字节与图例原文件一起打包。

## 4. 构建真实ToolReturn对象

运行run_sdk.py核对BinaryContent类型、PNG头和字节长度。该步骤只验证SDK多模态工具返回对象，不调用Agent或假装模型已读图。

## 5. 在真实Agent工具中返回对象

授权环境把对象从只读get_temperature_chart工具返回；保持用户问题里没有直接附图，这样才能检验工具返回图像路径，而不是用户图片输入路径。

## 6. 保存第二轮实际模型消息

仅当provider支持工具多模态结果时继续问“最高区域是哪一块”。保存实际返回消息和图像引用；若协议丢图，保留失败，不改用暗填答案。

## 7. 把答案与图例逐项对照

按原图核对E、34和颜色说明，再问“蓝色区域多少度”作为第二条验收。包内只有作者真值与SDK对象证据，没有真实视觉模型正确率。

## 官方依据

- Pydantic AI 官方文档或源码：https://raw.githubusercontent.com/pydantic/pydantic-ai/main/docs/tools-advanced.md
