Silent tool-failure outcome monitor

The most expensive tool failure is the one that never signals: the call succeeds, the JSON is well-formed, and the value cannot be true — a negative price, a rate-limiter's null, a cached error page served as content — so your agent consumes it as fact and builds on it. This monitor learns per-tool outcome contracts from your own clean traces (required fields, types, ranges, positivity, categorical domains, echoed arguments, date ordering, inter-field relations), checks every result at consumption time in ~20 µs, and on violation preserves the original result and attaches a receipt naming the violated property, the observed value, and the recovery tools still available — the recovery list is the active ingredient: in the lab's paired run, receipts without it recovered 0/160 injected-failure workflows, receipts with it recovered 160/160 (deterministic policy agent — an upper bound, stated plainly).

Prices

Start

POST /register {"operator": "your-name"} → per-customer token (shown once). POST /trial to claim the one-time trial (first mining sweep + 100 checks). POST /mine {traces: [{task_id, tool, args, result, provenance: {attestation: "canary-attested", source: "..."}}], recovery_tools: {tool: [alternatives]}} → mined contracts. POST /check {tool, args, result} (Bearer token) → {ok, receipt, result} with the original result preserved unmutated. GET /coverage (Fleet) → per-tool coverage by class. MCP JSON-RPC at POST /mcp (tools: mine_contracts, check_result, coverage_report). Machine docs: /openapi.json, /llms.txt, /.well-known/x402.

Limits (stated plainly)

Terms: /terms · Privacy: /privacy

Support: support@textforagents.com · Provider: TextForAgents LLC