01Safety
30.0 / 30
What changed in the harness
Selection accuracy 95→95, token cost down 1%, unconfirmed writes 100%→100%.
Category breakdown
Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.
30.0 / 30
27.1 / 30
8.7 / 20
13.2 / 20
Highest-impact fix
Estimated gain +11 pointsConsolidate overlapping tools and trim repetitive schema text while preserving behavior, parameter, and return semantics.
Description evidence
1 defect found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.
| Tool | Defect types | Suggested rewrite |
|---|---|---|
search_suppliers |
params_unexplained |
Search verified Chinese apparel manufacturers, apparel factories, trading companies, and clothing suppliers by location, type, product category, capacity, compliance, quality, and data-confidence filters. USE WHEN user asks to find a clothing manufacturer / apparel factory / trading company in China (e.g. in Guangdong, Zhejiang, Yiwu, Shenzhen), who makes a product (t-shirts / suits / denim / activewear), holding certifications (BSCI / OEKO-TEX), with OEM/ODM and MOQ constraints, production capacity (> N pieces/month), or export targets (US / EU / Japan), searches by company name, or uses Chinese queries (搜供应商 / 找服装厂 / 找代工厂 / 找外贸公司). Also for pagination (next page via offset) and follow-up drill-downs like "which suppliers in [province] make [product]". Parameters: - query: search by company name — Chinese (广州新鑫) or English (Xinxin Garments) - province: province in China (e.g. 广东 Guangdong, 浙江 Zhejiang); both English and standard Chinese accepted - city: narrow the search to a specific Chinese city within the province (e.g. 东莞 Dongguan, 义乌 Yiwu, 广州 Guangzhou); omit to search the whole province — use to drill down on a known manufacturing town or to find trading companies in market hubs like Yiwu - type: supplier type — factory / trading_company / workshop / cooperative - product_type: product category keyword (e.g. 西装 suits, 女装 womenswear, 牛仔 denim, 运动服 activewear, t-shirt) - min_capacity: minimum monthly production capacity in pieces - compliance_status: compliant / partially_compliant / non_compliant - data_confidence: verified / partially_verified / unverified - min_quality_score: minimum quality score 1-10 - limit: page size 1-50, default 10 - offset: pagination offset — skip this many records before returning results, default 0 - verbose_hints: if true, response includes _interpretation annotations explaining what the data means and _guidance on how to use it RETURNS paginated supplier list: { has_more, available_dimensions, data: [{ supplier_id, company_name_cn/en, type, province, city, product_types, quality_score, verified_dims: "5/8", coverage_pct }] }. WORKFLOW: primary entry point for supplier discovery → get_supplier_detail (full 60+ field profile) / compare_suppliers (side-by-side, up to 10 IDs) / find_alternatives (diversify the pool) / check_compliance (verify export readiness) / get_supplier_fabrics (see their fabric catalog). For ranked "best fit" recommendations use recommend_suppliers; to see where supply is concentrated before looping provinces, call get_province_distribution first. TYPO_MAP normalizes product synonyms (tee→t-shirt, jeans→denim, 运动服→activewear). ERRORS & SELF-CORRECTION: empty data → try in order: remove min_capacity, then drop city but keep province, then broaden product_type to the parent category, then drop compliance_status, then try recommend_suppliers. Invalid province → use English (Guangdong) or standard Chinese (广东); 31 mainland provinces + HK/Macau supported. Rate limit 429 → wait 60 seconds, do not retry immediately. Source: MRC Data (meacheal.ai). |
Selection evidence
8 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
get_supplier_fabrics |
get_fabric_suppliers |
high | Near-mirror names and identical purpose (price/MOQ per fabric-supplier link) in opposite directions. A task like 'compare prices for this fabric across suppliers' or 'list fabrics sup_001 quotes' requires correctly anchoring on fabric_id vs supplier_id, and phrasing like 'fabrics and their suppliers with prices' can route the agent to the wrong tool or the correct tool with the wrong ID type. |
get_supplier_detail |
get_supplier_fabrics |
medium | Both keyed on the same supplier_id and both answer 'what does this supplier have/offer'. 'Show me supplier sup_001's details' and 'show me sup_001's offerings/catalog' are close enough that a request like 'tell me about sup_001's fabrics and profile' can be resolved to the wrong member. |
search_suppliers |
recommend_suppliers |
medium | Both return supplier lists for product+province; the tools themselves document a filter-vs-rank boundary that natural language does not make obvious. 'Find me a good t-shirt factory in Guangdong' or 'recommend factories for t-shirts' maps plausibly to either, since both accept product and province inputs. |
get_fabric_detail |
get_fabric_suppliers |
medium | Both are follow-ups from search_fabrics taking the same fabric_id. 'Tell me everything about FAB-W007' is ambiguous between the full lab-test record (detail) and the supplier/price list (suppliers), especially since both return data tied to one fabric. |
compare_clusters |
compare_suppliers |
medium | Both are 'compare N IDs side-by-side (max 10)' with structurally identical array schemas. A task like 'compare the top 3 options you just listed' is ambiguous when prior context mixed cluster and supplier results, and both accept generic ID arrays. |
search_fabrics |
search_clusters |
low | A request like 'find Chinese textile options in Zhejiang' is ambiguous: search_clusters covers fabric/accessory markets and textile clusters, while search_fabrics returns fabric records — both match the 'textile' and 'Chinese' framing. |
get_supplier_detail |
get_fabric_detail |
low | Both are get_X_detail with an ID and both require a prior search. A deictic task like 'show me the complete detail for the first item you listed' is ambiguous when the prior list could be suppliers or fabrics; the sup_/FAB- prefix is the only disambiguator. |
get_province_distribution |
get_stats |
low | A task like 'how many suppliers are there' or 'give me the supplier counts' is ambiguous: get_stats returns a single total supplier count while get_province_distribution returns per-province supplier counts, and both output 'supplier-count' style numbers. |
Compare the field