技能详情(站内镜像,无评论)
许可证:MIT-0
MIT-0 ·免费使用、修改和重新分发。无需归因。
版本:v0.0.2
统计:⭐ 1 · 117 · 0 current installs · 0 all-time installs
⭐ 1
安装量(当前) 0
🛡 VirusTotal :良性 · OpenClaw :良性
Package:arthgrab/hiarthur
安全扫描(ClawHub)
- VirusTotal :良性
- OpenClaw :良性
OpenClaw 评估
The skill's declared purpose (searching Amazon-sourced products and performing deep analysis) matches the instructions (POST requests to hiarthur.com APIs) and it requests no extra credentials or installs — the behavior is internally consistent.
目的
The SKILL.md documents two HTTP endpoints on hiarthur.com for search and product analysis, which directly implement the described functionality (product discovery, CV + LLM analysis, review synthesis). There are no unrelated environment variables, binaries, or install steps requested that would be out of scope for a remote-analysis service.
说明范围
All runtime instructions are to POST JSON to hiarthur.com endpoints and to follow GUI links hosted on hiarthur.com; the skill does not instruct the agent to read local files, system credentials, or other environment variables. Note: using the GUI/conversation URLs means query text and returned analysis will be handled and potentially displayed by the external service — consider privacy implications.
安装机制
No install spec or code files are provided (instruction-only). That minimizes local persistence and disk writes; all processing is performed by the external API service.
证书
The skill declares no required environment variables, credentials, or config paths, which is proportional to an instruction-only wrapper that delegates work to a remote API. There are no unexplained secret requests.
持久
always is false and the skill does not request special persistent privileges. Model invocation is allowed (the platform default) and appropriate for a skill that performs remote API calls.
综合结论
This skill is an instruction-only wrapper that sends your search queries and product-location values to hiarthur.com and displays results. Before installing or using it: (1) recognize that all query text and returned analysis will be handled by the remote service (avoid sending PII, account numbers, private images, or other sensitive data); (2) verify you trust the third-party domain (hiarthur.com) and prefer services with a visible homepage/p…
安装(复制给龙虾 AI)
将下方整段复制到龙虾中文库对话中,由龙虾按 SKILL.md 完成安装。
请把本段交给龙虾中文库(龙虾 AI)执行:为本机安装 OpenClaw 技能「HiArthur Product Search and Understanding」。简介:Search Amazon products and analyze materials, design, and reviews to uncover tr…。
请 fetch 以下地址读取 SKILL.md 并按文档完成安装:https://raw.githubusercontent.com/openclaw/skills/refs/heads/main/skills/arthgrab/hiarthur/SKILL.md
(来源:yingzhi8.cn 技能库)
SKILL.md
---
name: hiarthur
description: Search Amazon products and analyze materials, design, and reviews to uncover trade-offs and likely disappointments. See results in an interactive GUI.
---
# HiArthur Product Search and Understanding
## Overview
Two-endpoint API for intelligent product search and deep product analysis. Products are sourced from Amazon, but results go far beyond what Amazon returns directly — every product is analyzed through a multi-stage pipeline combining computer vision, LLMs, and symbolic reasoning to evaluate how well each product actually matches what the user is looking for and where it's likely to disappoint.
- `POST https://hiarthur.com/api/agents/search` — find products matching a query. Each result is graded for fit against the user's requirements using vision + language models, not just keyword matching.
- `POST https://hiarthur.com/api/agents/product` — deep-dive one product for failure-mode analysis (FMEA), feature summary, and review synthesis. Uses LLM reasoning over product details and images to surface likely disappointments.
Base URL: `https://hiarthur.com/api`
Results can optionally be handed off to a GUI (e.g. https://hiarthur.com/c/<conversation_id> or https://hiarthur.com/product/f7e2a9c1b3d4) where users can browse results visually and continue the conversation interactively.
---
## When to Use This Skill
Use this skill when you need to:
- Find products that match detailed user requirements
- Evaluate trade-offs between competing products
- Identify likely durability or design problems
- Understand why a product might disappoint buyers
- Compare products beyond simple ratings or keywords
## Quick-Start: End-to-End Flow
### Step 1 — Start a new search
```json
POST /api/agents/search
{
"type": "new",
"search_query": "noise cancelling headphones for travel",
"search_top_brands": true
}
```
Response:
```json
{
"conversation_id": "a1b2c3d4-...",
"logical_search_id": "ls_abc123",
"products": [
{
"product": {
"description": "Sony WH-1000XM5 Wireless Noise Canceling Headphones",
"brand": "Sony",
"location": "product/f7e2a9c1b3d4",
"price": 328.0,
"rating": 4.6,
"reviews_count": 12450
},
"explainer": "Strong noise canceling with long battery life, well suited for travel.",
"match_grade": "Excellent"
}
],
"can_fetch_more": true
}
```
### Step 2 — Fetch more results (pagination)
Reuse `conversation_id` and `logical_search_id` exactly as returned.
```json
POST /api/agents/search
{
"type": "continue",
"conversation_id": "a1b2c3d4-...",
"logical_search_id": "ls_abc123"
}
```
Repeat while `can_fetch_more` is `true`. A continue response with `products: []` is valid (more may come on the next continue). Stop when `can_fetch_more` is `false`.
### Step 3 — Deep-dive a product
Use a `product.location` value exactly as returned by search.
```json
POST /api/agents/product
{
"location": "product/f7e2a9c1b3d4"
}
```
Response:
```json
{
"fmea": {
"unmitigated_failure_modes": [
{
"failure_name": "Headband cushion flattens over time",
"likelihood": {
"level": "medium",
"reasoning": "Foam compression builds with daily wear, so most regular users will notice reduced comfort within months."
},
"impact": "annoying",
"timeline": "within_a_year",
"summary": "The headband padding can compress with regular use, making the headphones less comfortable for long listening sessions.",
"evidence": [
"Foam headband cushion visible in images",
"No mention of memory foam or replaceable pads"
]
}
],
"mitigated_failure_modes": [
{
"failure_name": "Poor noise canceling on wind",
"ownership_experience": "Multipoint wind-noise reduction",
"reasoning": "Multiple microphones and adaptive ANC algorithms reduce wind interference compared to single-mic designs.",
"evidence": [
"Adaptive ANC with multiple external microphones",
"Wind noise reduction mode listed in features"
]
}
],
"quality_summary": "These headphones prioritize audio quality and noise canceling performance. Most disappointment comes from comfort degradation over time rather than core functionality."
},
"features_summary": "Paragraph summarizing key product features based on listing data.",
"reviews_summary": "Paragraph synthesizing themes and patterns from customer reviews."
}
```
---
## Search Endpoint — Full Field Reference
### New Search (`type: "new"`)
Full example with all optional fields:
```json
{
"type": "new",
"search_query": "noise cancelling headphones for travel",
"search_top_brands": true,
"trim_query": "Over-ear wireless headphones with active noise canceling and long battery life for airplane use",
"brands": ["Sony", "Bose"],
"search_filters": {
"price_min": 100,
"price_max": 400,
"rating_min": 4.0,
"reviews_min": 500
},
"search_sort": "relevance"
}
```
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| `type` | `"new"` | yes | — | Discriminator. |
| `search_query` | string | yes | — | Broad retrieval query sent to the product catalog. Should be precise, user-intent-aligned, and include all key attributes (color, size, material, use case, gender). |
| `search_top_brands` | boolean | yes | — | When `true`, restricts results to recognized top brands in the category. Default to `true` for electronics, appliances, clothing, tools, beauty, home/kitchen. Default to `false` for books, media. |
| `trim_query` | string | no | same as `search_query` | Similarity-trimming query. After retrieval, products with low similarity to this string are removed. Should be a fluent, attribute-rich, natural-language description optimized for matching product titles and images. More descriptive than `search_query`. See examples below. |
| `conversation_id` | UUID string | no | server-generated | Omit to let the server create a new conversation. Supply to attach this search to an existing conversation. |
| `brands` | string[] | no | `[]` | Explicit brand-name constraints. Only populate when the user names specific brands. Use canonical names with proper capitalization (e.g., `["Nike", "Adidas"]`). |
| `search_filters` | object | no | `null` | All sub-fields optional and nullable: `price_min` (number), `price_max` (number), `rating_min` (number), `reviews_min` (integer). No extra keys allowed. |
| `search_sort` | enum string | no | `null` | `"relevance"`, `"price_low"`, `"price_high"`, or `"best_sellers"`. |
#### `search_query` vs `trim_query`
`search_query` drives broad catalog retrieval. `trim_query` is applied after retrieval as a similarity filter — products with low similarity to it are removed.
`trim_query` should read like a grounded, attribute-rich product description:
- "A men's sleeveless hooded vest made of shiny metallic fabric with a full zipper front."
- "A 12-pack of chocolate-flavored protein shakes, each bottle containing 20 grams of protein."
- "A thick purple yoga mat made of dense non-slip foam, measuring one inch in thickness."
- "A 10-inch nonstick frying pan with a ceramic coating and induction-compatible base."
- "Wireless Bluetooth 5.3 earbuds with noise-canceling features and at least 40 hours of battery life."
When omitted, `trim_query` defaults to `search_query`. Only set it when you have a more descriptive version.
### Continue Search (`type: "continue"`)
| Field | Type | Required | Description |
|---|---|---|---|
| `type` | `"continue"` | yes | Discriminator. |
| `conversation_id` | UUID string | yes | Exact value from the prior search response. |
| `logical_search_id` | string | yes | Exact value from the prior search response. |
### Search Response
```json
{
"conversation_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"logical_search_id": "ls_abc123",
"products": [
{
"product": {
"description": "Sony WH-1000XM5 Wireless Noise Canceling Headphones",
"brand": "Sony",
"location": "product/f7e2a9c1b3d4",
"price": 328.0,
"rating": 4.6,
"reviews_count": 12450
},
"explainer": "Strong noise canceling with long battery life, well suited for travel.",
"match_grade": "Excellent"
}
],
"can_fetch_more": true
}
```
| Field | Type | Description |
|---|---|---|
| `conversation_id` | string | Stable conversation identifier. Reuse for continue requests and frontend handoff. |
| `logical_search_id` | string | Identifies this search session for pagination. Reuse for continue requests. |
| `products` | array | `ProductWithExplainer` objects. May be empty (valid on continue). |
| `can_fetch_more` | boolean | The only pagination signal. `true` = more results available via continue. |
Each `products[]` entry:
| Field | Type | Description |
|---|---|---|
| `product.description` | string | Product title/description. |
| `product.brand` | string or null | Brand name if known. |
| `product.location` | string | Opaque product identifier (format: `product/<cache_key>`). Preserve exactly for `/agents/product` calls and frontend handoff. |
| `product.price` | number or null | Price in dollars. |
| `product.rating` | number or null | Star rating (e.g., 4.6). |
| `product.reviews_count` | integer or null | Number of customer reviews. |
| `explainer` | string | Human-readable rationale for the fit grade. May be empty. |
| `match_grade` | string | Canonical fit label. One of: `"Excellent"`, `"Good"`, `"Partial"`, `"Low"`. |
### Match Grade Semantics
| Grade | Meaning |
|---|---|
| **Excellent** | All user requirements confirmed by evidence. All numeric constraints pass. |
| **Good** | All critical requirements confirmed, none contraindicated. Constraints pass or pass within tolerance. |
| **Partial** | At least one critical requirement is unconfirmed, missing, or contraindicated, OR some numeric constraints fail. |
| **Low** | Any requirement is contraindicated, OR no requirements could be evaluated. |
---
## Product Endpoint — Deep Analysis
### Request
```json
{ "location": "product/<cache_key>" }
```
Use only a `location` value returned by `/api/agents/search`. Never invent locations. Request model uses `extra = "forbid"`.
### Response
| Field | Type | Description |
|---|---|---|
| `fmea` | object | Failure Mode and Effects Analysis. See structure below. |
| `features_summary` | string | Paragraph summarizing key product features. |
| `reviews_summary` | string | Paragraph synthesizing themes from customer reviews. |
### FMEA Structure
The `fmea` object describes how a product is likely to disappoint a buyer over time, framed as failure modes rather than feature ratings.
**`unmitigated_failure_modes`** — array, typically 3 entries, ordered by expected regret impact (likelihood x impact x immediacy):
| Field | Type | Possible Values |
|---|---|---|
| `failure_name` | string | Concise description of what goes wrong. |
| `likelihood.level` | string | `"low"`, `"medium"`, `"high"` |
| `likelihood.reasoning` | string | Product-specific probability rationale with expected incidence. |
| `impact` | string | `"cosmetic"`, `"annoying"`, `"performance_loss"`, `"unusable"` |
| `timeline` | string | `"immediate"`, `"within_a_year"`, `"over_a_year"` |
| `summary` | string | 1–2 sentences on real-use customer impact. |
| `evidence` | string[] | Concrete cues from listing, specs, or images. |
**`mitigated_failure_modes`** — array, 0–3 entries: common category failures that the product's design intentionally addresses.
| Field | Type | Description |
|---|---|---|
| `failure_name` | string | The common failure that is unlikely here. |
| `ownership_experience` | string | Short positive reframe (max ~6 words, e.g., "Long cord with easy rewind"). |
| `reasoning` | string | What design choices reduce this risk. |
| `evidence` | string[] | Concrete cues from listing. |
**`quality_summary`** — string: A calm, informed paragraph synthesizing dominant risks, design priorities, disappointment timeline, fixability, and who the product is likely to satisfy vs. frustrate.
---
## Error Handling
| Status | Endpoint | Cause | Suggested Action |
|---|---|---|---|
| `400` | `/agents/product` | Invalid location format (empty, malformed, or contains path separators). | Verify the location was copied verbatim from a search result. |
| `404` | `/agents/search` (continue) | `logical_search_id` not found or expired from cache. | Start a new search with `type: "new"`. |
| `404` | `/agents/product` | Product cache key or destination not found. May have expired. | Re-run search to get a fresh location. |
| `422` | Both | Schema validation failure: missing required field, wrong type, or extra key present. | Fix request body. All request models use `extra = "forbid"`. |
| `500` | Both | Unhandled internal error. | Retry once with backoff. If persistent, report as a service issue. |
| `502` | `/agents/search` | Search backend did not return a final result, or returned an invalid payload. | Retry once. If persistent, the upstream search service may be degraded. |
---
## Safety Rules
1. Send JSON request bodies only.
2. Never include extra fields — all request models use `extra = "forbid"` and will reject unknown keys with `422`.
3. Never invent product locations. Only use `location` values returned by `/api/agents/search`.
4. Preserve `conversation_id`, `logical_search_id`, and `product.location` exactly as returned. Do not trim, modify, or regenerate.
5. For `type: "new"`, omit `conversation_id` to let the server generate one.
6. All endpoints use the base URL `https://hiarthur.com/api`.
---
## Frontend Handoff
- Open `c/<conversation_id>` in a browser to resume that conversation within a GUI.
- Open a returned product location in a browser to open the product information and see product images in a GUI.
- Keep all backend-derived IDs and locations unchanged during handoff URL construction.
## Recommended Agent Usage Pattern
1. Call `/agents/search` with `type: "new"`.
2. Inspect the returned `products`.
3. If more candidates are needed, call `/agents/search` with `type: "continue"`.
4. When a specific product requires deeper analysis, call `/agents/product`.