---
name: echo-oracle
description: Use when an agent needs an x402-paid Echo Oracle preflight decision before posting, spending funds, deploying, contacting users/partners, touching production, or taking reputation-impacting actions. Supports quick decision packets, deep hosted MiroShark reports, payment handling, and decision-policy enforcement.
---

# Echo Oracle

Echo Oracle is an x402-paid preflight decision API for autonomous agents. Use it before actions that spend money, affect reputation, publish externally, touch production, contact users/partners, or need social/market reaction simulation.

## Core Workflow

1. Classify the proposed action and blast radius.
2. Choose mode:
   - `quick` for fast policy-style preflight.
   - `deep` for a hosted MiroShark report when latency/cost is justified.
3. Call `POST /api/ask` with `action`, optional `context`, `audience`, `risk_tolerance`, and `mode`.
4. If the API returns `402`, pay via x402 and retry the same request.
5. Enforce `decision.answer`.
6. Save the decision packet with the agent action log or receipt.

## Endpoints

Production Bankr x402 endpoint:

```text
https://x402.bankr.bot/0x2a16625fad3b0d840ac02c7c59edea3781e340ae/echo-oracle
```

Review/API base:

```text
http://46.202.177.190:8793
```

Discovery:

```text
GET /agent.json
GET /api/pricing
```

Main request:

```text
POST /api/ask
```

## Request Shape

```json
{
  "action": "Should my agent publish this launch announcement?",
  "context": "Optional facts, draft text, constraints, risk notes, or execution context.",
  "audience": "Base builders and autonomous agent developers",
  "risk_tolerance": "medium",
  "mode": "quick"
}
```

Limits:

- `action`: required, max 500 chars.
- `context`: optional, max 2,000 chars.
- `audience`: optional, max 160 chars.
- `risk_tolerance`: `low`, `medium`, or `high`.
- `mode`: `quick` or `deep`.

## Decision Policy

- `yes`: allow, subject to the caller's own permissions and budget limits.
- `reframe`: revise using `suggested_revision` / `best_next_action`, then resubmit or continue only if the revised action is inside policy.
- `maybe`: pause. Gather more context or wait for `deep_run.wait_url` if deep mode was used.
- `no`: deny by default.
- `dont_do_it`: hard no / hard deny. Do not execute as written.

Never treat MiroShark scenario output as factual proof. Treat it as simulated reaction signal.

Escalate to a human or configured policy owner before acting if the packet involves:

- treasury, wallet, or credential movement
- production data or irreversible operations
- regulated, financial, legal, or medical claims
- public user/customer communications
- partner/investor-facing claims where accuracy matters

## Mode Selection

Use `quick` by default for:

- draft/public-post checks
- reversible tool actions
- partner outreach framing
- lightweight launch or docs decisions
- routine paid calls where the caller mainly needs a policy checkpoint

Use `deep` for:

- major public narratives
- partner/investor-facing positioning
- market or social reaction simulations
- actions where a report is worth higher cost and longer latency

Deep mode queues the hosted MiroShark x402 run and returns `deep_run.wait_url`. Do not execute the original action until the final report has been reviewed or summarized.

## Payment

Production uses x402. If the first request returns `402 Payment Required`, read the payment challenge, pay, then retry the same request with the x402 payment header (`PAYMENT-SIGNATURE` for v2 clients; some legacy clients use `X-PAYMENT`).

Ask for confirmation before spending real funds unless the user has already authorized the paid call, the budget, and the endpoint.

Review deployments may accept:

```text
X-ECHO-REVIEW-TOKEN: <token>
```

Local/test deployments may accept:

```text
X-PAYMENT: dev:test
```

Do not depend on test payment headers for production use.

## Output Requirements

When reporting results to a user or calling agent, include:

- decision answer
- confidence and risk
- recommendation
- best next action
- top objections or risk signals
- payment status/receipt when available
- deep report URL/status when applicable

## Detailed Reference

For full schemas, examples, and error handling, read:

```text
references/api.md
```
