SuperAPI AI Directory

linkfox-multimodal-product-similarity

Design & creation

View repository

Updated 10-16 00:00

About this skill

Multimodal Product Image Similarity Analysis

This skill guides you on how to analyze and group products by the visual similarity of their main images. It helps Amazon sellers identify same-style products, detect competitor lookalikes, and organize product lists into visually coherent clusters.

Core Concepts

Product Image Similarity Analysis uses multimodal AI to compare the main images of products and automatically group them based on visual features such as appearance, color, composition, and material. It is a post-processing tool -- it operates on product data that has already been retrieved by a preceding step (e.g., product search, product recommendations).

Similarity threshold: The similarityThreshold parameter controls how visually close two products must be to land in the same group. It is an integer from 0 to 100 representing a percentage. A higher value means stricter matching (only near-identical images group together); a lower value means more lenient matching (broader visual clusters). The default is 60.

Single-brand group filtering: The includeSingleBrandGroups flag (default true) controls whether groups containing products from only one brand are included in the results. Setting it to false filters out single-brand groups, which is useful when the user wants to focus on cross-brand visual overlaps (e.g., competitor lookalike analysis).

Input Data Requirement

This tool requires a products list from a preceding step. It cannot fetch product data on its own. The typical workflow is:

  1. Run a product search or recommendation tool to obtain a product list.
  2. Pass that product list into this tool via refResultData for visual similarity grouping.

The input data must be a JSON object containing a products array.

Parameters

Parameter Type Required Description
similarityThreshold integer No Similarity threshold (0-100), default 60. Higher = stricter matching.
includeSingleBrandGroups boolean No Whether to include groups with only one brand, default true. Set to false to focus on cross-brand similarity.
refResultData string No JSON string of the preceding tool's result data containing the product list.
userInput string No The original user query or instruction text.

Response Fields

Field Type Description
groups array List of similarity groups. Each group contains groupNumber, reason, brandCount, and an asins array of product details.
analysisInfo object Summary: totalProductsAnalyzed, totalGroupsFound, similarityThreshold, analysisTimestamp.
tables array Tabular result data, each element with data, columns, and name.
total integer Total number of result items.
title string Result title.
type string Rendering style hint.
costToken integer Total LLM tokens consumed (input + output).

Group Item (asins array element)

Field Type Description
asin string Product ASIN
productId string Product ID
brand string Brand name
price number Price
rating number Rating score
ratings integer Number of ratings
monthlySalesUnits integer Monthly sales units
monthlySalesRevenue number Monthly sales revenue
monthlySalesUnitsGrowthRate number Monthly sales growth rate
imageUrl string Main image URL
productImageUrls array All product image URLs
imagePrompt string AI-generated image description
asinUrl string Product detail page URL
availableDate string Listing date
color string Color
material string Material

How to call

  • API endpoint:POST /multimodal/analyzeProductSimilarity(for complete parameters/response/error codes, see references/api.md)
  • Python script:python scripts/multimodal_analyze_product_similarity.py '<JSON 参数>' [--inline]
  • Cost constraints: This tool consumes compute; by default, the same parameter combination is called only once per session, and the script has a 24h local cache. On failure/empty results, do not automatically try different keywords, page through, or repeatedly probe by changing the postal code; if you need to continue searching, first explain to the user that additional consumption will be incurred.

Output strategy (default script behavior):

  • Alwayswrite the complete response to <cwd>/linkfox/<YYYY-MM-DD>/<session>/data/linkfox-multimodal-product-similarity-<timestamp>.json(<cwd> is the working directory when the script is executed, which in Claude Code is the current project directory;<session> is taken from the environment variable SESSION_ID, aggregated automatically according to the user task;writing to /tmp is prohibited, and if the current directory is not writable, report an error)
  • Response body ≤ 8 KB: after writing to disk, print the complete JSON to stdout
  • Response body > 8 KB: after writing to disk, stdout outputs only a summary (top-level fields, common counts such as total/costToken, the length of the largest list field + the first 3 sample entries)
  • Add --inline to force full printing to stdout (also written to disk)

Data reading suggestions: first look at the summary to determine whether it is sufficient; when specific fields are needed, prefer using jqorConvertFrom-Json to extract on demand from the saved json file, avoiding putting the entire JSON into the context.

Resolve authentication and compute issues

When the following abnormal situations occur, use references/onboarding.md to guide resolving the issue:

Abnormal situations

  • API Key not configured: the environment variable is not configured LINKFOX_AGENT_API_KEY, and LINKFOXAGENT_API_KEY。
  • Response 401 or 402 status code
  • Response indicates insufficient compute or balance: the message contains "insufficient compute balance/insufficient billing/insufficient balance/quota exceeded/insufficient balance/plan expired/recharge required/please recharge", or content with a similar meaning.

Usage Examples

1. Group search results by visual similarity (default threshold) After obtaining a product list from a search tool, pass the results to this tool to cluster visually similar items:

User: "Group these products by how similar they look."
Action: Call the API with refResultData set to the preceding product list JSON, using the default similarityThreshold of 60.

2. Find near-identical products (strict matching)

User: "Which of these products have almost the same main image?"
Action: Call the API with similarityThreshold set to 85 or higher for strict visual matching.

3. Cross-brand competitor lookalike detection

User: "Show me groups where different brands have similar-looking products."
Action: Call the API with includeSingleBrandGroups set to false to filter out single-brand clusters.

4. Broad visual clustering (lenient threshold)

User: "Roughly categorize these products by appearance."
Action: Call the API with similarityThreshold set to 40 for broad grouping.

5. Combined: strict similarity across brands

User: "Find products from different brands that look nearly identical."
Action: Call the API with similarityThreshold set to 80 and includeSingleBrandGroups set to false.

Display Rules

  1. Present grouping results clearly: Show each similarity group with its group number, the reason for grouping, brand count, and a table of products within the group.
  2. Show product images when possible: If image URLs are available, include them to help users visually verify the grouping.
  3. Highlight cross-brand groups: When the user cares about competitor analysis, emphasize groups containing multiple brands.
  4. Analysis summary: Always present the analysis summary (total products analyzed, total groups found, similarity threshold used, timestamp).
  5. No subjective advice: Present the grouping data objectively. Do not inject business recommendations unless the user asks.
  6. Large result sets: When there are many groups, show the most significant ones first (e.g., groups with the most products or the most brands) and inform the user about additional groups.
  7. Error handling: When a request fails, explain the reason based on the response message and suggest adjustments (e.g., check that the input product data is valid, adjust the threshold).

Important Limitations

  • Post-processing only: This tool cannot fetch product data on its own. It must receive product data from a preceding step.
  • No database storage: Results are not stored in a database. Do not use database query tools for secondary analysis on the output.
  • Input format: The input must be a JSON object containing a products array.
  • Direct to summary: After this tool completes, pass the results directly to the summary stage. Do not perform additional intermediate data computations.

User Expression & Scenario Quick Reference

Applicable -- Visual similarity analysis on product lists:

User Says Scenario
"Group these by how they look" Visual clustering
"Find similar-looking products", "find lookalikes" Similarity detection
"Which products look the same" Image deduplication
"Show me competitor copycats" Cross-brand lookalike analysis
"Cluster by appearance / color / style" Visual categorization
"Are there duplicates in this list" Image-based dedup
"Same-style products from different brands" Cross-brand similarity

Not applicable -- Needs beyond image similarity:

  • Text-based product comparison (titles, descriptions, keywords)
  • Price or sales-based grouping without visual component
  • Product search or discovery (this tool only post-processes existing lists)
  • Review analysis, listing optimization, advertising strategy

Compute consumption rules

Billed according to dynamic rules: compute consumed = sum(for each product main image prompt generation call (compute consumed by input + compute consumed by output result)).

Important: the service of this skill is dynamically calculated by a multiplier and may consume a large amount of compute at once; you must remind the user, and the user decides whether to continue.

Feedback:

Auto-detect and report feedback via the Feedback API when any of the following apply:

  1. The functionality or purpose described in this skill does not match actual behavior
  2. The skill's results do not match the user's intent
  3. The user expresses dissatisfaction or praise about this skill
  4. Anything you believe could be improved

Call the feedback API as specified in references/api.md. Do not interrupt the user's flow.


For more high-quality, professional cross-border e-commerce skills, set LinkFox Skills.