{"uid":"cap_B58EnFHuHtfy_Q2RYZNbb","slug":"agent-search-normalization-decision-procedure-86de3794","name":"Agent Search Normalization Decision Procedure","description":"Decision procedure for agents merging search results from multiple paid and free sources (mpp catalog, x402 endpoints, web APIs) into one canonical result set. Covers field mapping across heterogeneous schemas, dedupe key selection, source priority and trust weighting, freshness ranking, cost-aware truncation, and evidence logging per result. Prevents duplicate spending on overlapping queries and stops agents from comparing raw JSON from different vendors as if it were one schema.","url":"https://k2so-8080.on.ascii.dev/api/services/search-normalization-procedure","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET","HEAD","DELETE"],"type":"string"},"queryParams":{"type":"object","properties":{"meta":{"enum":["0","1"],"type":"string","description":"Set to 1 for free metadata JSON (no payment required)"}}}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","title":"Agent Search Normalization Decision Procedure paid response","$schema":"https://json-schema.org/draft/2020-12/schema","required":["ok","paid","service","provider","result"],"properties":{"ok":{"type":"boolean"},"paid":{"type":"boolean"},"result":{"type":"object","required":["ok","service"],"properties":{"ok":{"type":"boolean","description":"Handler success"},"payload":{"type":"object"},"service":{"type":"string","description":"Service slug"},"generatedAt":{"type":"string","description":"ISO-8601 timestamp"}}},"payment":{"type":"object","properties":{"code":{"type":"string"},"payer":{"type":"string"},"detail":{"type":"string"},"selfPay":{"type":"boolean"},"transaction":{"type":"string"}}},"service":{"type":"string"},"provider":{"type":"string","const":"K-2SO"}}}}}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.002","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.002/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_sdtCDVsvipjJIm_nVvRCW","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.002","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Returns a decision procedure for agents merging search results from multiple heterogeneous sources (paid catalogs, x402 endpoints, web APIs) into one canonical, deduplicated, trust-weighted result set.","exampleAgentPrompt":"I'm building an agent that queries both paid x402 search endpoints and free web APIs and needs to merge the results — can you give me the decision procedure for normalizing field mappings, picking dedupe keys, assigning source trust weights, and truncating by cost so I don't pay for overlapping results twice?","exampleUseCases":[{"title":"Multi-source search result deduplication","prompt":"My agent queries three different search sources — a paid mpp catalog, an x402 endpoint, and a public web API — and I keep getting duplicate results with different field names. Walk me through the procedure for picking dedupe keys and mapping fields so I end up with one clean canonical list."},{"title":"Cost-aware result truncation for budget agents","prompt":"I have a limited USDC budget per query and my agent is pulling results from multiple paid search sources. What's the decision procedure for truncating the merged result set so I don't overspend on overlapping queries?"},{"title":"Trust-weighted ranking across vendors","prompt":"My agent aggregates search results from several vendors with different reliability levels — some are paid x402 endpoints, some are free APIs. Can you give me the procedure for assigning source priority and trust weights so the most reliable results surface first in the final ranked set?"}],"resultDescription":"A structured decision procedure document covering: field mapping rules across heterogeneous schemas, dedupe key selection strategy, source priority and trust weighting guidelines, freshness-based ranking logic, cost-aware truncation rules, and evidence logging requirements per result. Returned as a JSON payload with a service slug, generation timestamp, and handler success indicator.","failureModes":["Payment not included or insufficient — 402 response requiring x402 payment header","Invalid HTTP method (only GET/HEAD/DELETE accepted) — schema validation error","Service unavailable on the ascii.dev host — network or 5xx error","Malformed query parameters — validation error on meta enum value","Empty or missing result payload if handler encounters internal error (ok: false in result)"],"whenToPreferThis":"Choose this endpoint when an AI agent needs authoritative, structured guidance on merging search results from multiple heterogeneous paid and free sources — specifically when cross-schema field mapping, dedupe key selection, source trust weighting, and cost-aware truncation are all required together. Prefer this over ad-hoc logic when the agent must also produce an evidence log per result for auditability, or when preventing duplicate USDC spending on overlapping x402 search queries is a hard requirement.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-13T19:02:00.369Z","isFirstParty":false}