Image Understanding Skill
When the user sends an image attachment, first consume the current-turn
【图片文字提取】 block produced by the attachment service. It is trusted
current-attachment evidence and is grouped by filename. If that block is empty
or absent, follow the current-turn attachment policy and actually try the
read-only local file tools on the attachment path before concluding anything;
do not call this skill repeatedly to try to make the same image visible.
If extraction is partial, answer from the fields that are actually present and
ask one minimal confirmation only for the specific number or label that matters
to the user's decision. Never replace the whole answer with a generic tool,
OCR, or research failure.
Nothing about this pipeline is user-facing. The reply must not mention this
skill, 【图片文字提取】, the runner, local paths, the image's file type, or
why extraction failed. When an image genuinely cannot be read, say only that
this picture did not come through clearly and name the one value you need
("看不清持仓那一栏,成本价是多少?") — never ask the user to re-send it in a
different format.
Supported Scenarios
1. Identify Portfolio Screenshots
- Extract the ticker, company name, share count, cost basis, and similar details from the image
- Keep the filename boundary when several screenshots overlap
- Only offer
portfolio(action="add") after summarizing the extracted values
and receiving confirmation; image analysis itself is read-only
2. Analyze Market Charts
- Recognize candlestick trends and technical indicators such as moving averages, MACD, and RSI
- Combine the chart with real-time news from
web_search for a broader judgment
Tool Guide
| Tool call |
Purpose |
portfolio(action="add", ...) |
Record the extracted holdings |
web_search(query="...") |
Search for news around the chart's time frame |
data_fetch(data_type="quote", symbol="...") |
Get live market data for comparison |
Notes
- If the message contains multiple image attachments, analyze them one by one
- For unclear numbers, always ask the user to confirm instead of guessing
- After identifying a portfolio screenshot, summarize the extracted result and let the user confirm before writing it into
portfolio
- Use other current-turn evidence such as
portfolio(action="view"),
data_fetch, or web_search when it helps answer the question; a missing
image field is a narrow evidence gap, not authority to refuse the task
1---2name: image-understanding3description: Analyze images sent by the user, such as portfolio screenshots or candlestick charts, and combine the result with tools for a fuller assessment4---56## Image Understanding Skill78When the user sends an image attachment, first consume the current-turn9`【图片文字提取】` block produced by the attachment service. It is trusted10current-attachment evidence and is grouped by filename. If that block is empty11or absent, follow the current-turn attachment policy and actually try the12read-only local file tools on the attachment path before concluding anything;13do not call this skill repeatedly to try to make the same image visible.1415If extraction is partial, answer from the fields that are actually present and16ask one minimal confirmation only for the specific number or label that matters17to the user's decision. Never replace the whole answer with a generic tool,18OCR, or research failure.1920Nothing about this pipeline is user-facing. The reply must not mention this21skill, `【图片文字提取】`, the runner, local paths, the image's file type, or22why extraction failed. When an image genuinely cannot be read, say only that23this picture did not come through clearly and name the one value you need24("看不清持仓那一栏,成本价是多少?") — never ask the user to re-send it in a25different format.2627### Supported Scenarios2829#### 1. Identify Portfolio Screenshots3031- Extract the ticker, company name, share count, cost basis, and similar details from the image32- Keep the filename boundary when several screenshots overlap33- Only offer `portfolio(action="add")` after summarizing the extracted values34 and receiving confirmation; image analysis itself is read-only3536#### 2. Analyze Market Charts3738- Recognize candlestick trends and technical indicators such as moving averages, MACD, and RSI39- Combine the chart with real-time news from `web_search` for a broader judgment4041### Tool Guide4243| Tool call | Purpose |44|---------|------|45| `portfolio(action="add", ...)` | Record the extracted holdings |46| `web_search(query="...")` | Search for news around the chart's time frame |47| `data_fetch(data_type="quote", symbol="...")` | Get live market data for comparison |4849### Notes5051- If the message contains multiple image attachments, analyze them one by one52- For unclear numbers, **always ask the user to confirm** instead of guessing53- After identifying a portfolio screenshot, summarize the extracted result and let the user confirm before writing it into `portfolio`54- Use other current-turn evidence such as `portfolio(action="view")`,55 `data_fetch`, or `web_search` when it helps answer the question; a missing56 image field is a narrow evidence gap, not authority to refuse the task