Skip to content
← Action API
POST /v1/answer-from-my-decisions 100 tokens base

answer-from-my-decisions

A cited answer from the caller's own decisions — or an honest refusal.

Base price 100 tokens (tariff v0), before complexity weighting. This is the action where `outcome: "refusal"` is a FEATURE: an ungrounded answer is worse than no answer, so the system declines rather than guess, and the caller is not charged.

AI processing disclosure

Content you submit through this action is processed using AI models to generate responses.

What this action guarantees

This is the decision-only answer path. It tells an agent what its owner has actually decided — and refuses to invent the rest. Memories can inform; only decisions can authorize, so this action reads decision records and nothing else.

Two outcomes, no third: a grounded, cited answer drawn from this tenant’s decision records — or a free refusal. Nothing is charged on a refusal. The matching is deliberately conservative and cannot invent coverage; at every boundary it refuses, free.

How decisions get here

This action reads atoms with atom_type "decision", and the only way to write one is record-decision. That is the whole loop, and both halves are reachable with the same key: record a ruling or commitment, then ask a question it governs and get it back as a citation. remember is a different lane — it writes atom_type "dialogue", which this action deliberately does not read. A memory is not a decision.

Request contract

AnswerRequest

Content type: application/json. A body is required.

question string
question_class string

The caller-declared class of the question. `operational` is the only class that can be answered: it is limited to routine internal operations and must still survive the keyword deny layer. `money`, `legal`, `irreversible`, and `outward-facing` are categorically refused. Missing or unknown values are also refused. This declaration can only move a request toward `GENUINELY-YOURS`; it can never authorize an expensive answer.

one of: operational, money, legal, irreversible, outward-facing

tier string

Request-declared retrieval scope tier. Omitted means `default` and uses the base cause. `multi-hop-over-40` is the explicit, bounded multi-hop scope and selects the versioned Tender cause `action:answer-from-my-decisions:tier:multi-hop-over-40`, whose published integer rate is 150 credits. Unknown values are refused before admission; the tier is never inferred from retrieved decisions.

one of: default, multi-hop-over-40

Boundary inputs

Headers and query

Idempotency-Key header · optional

Caller-chosen key, unique per logical action. Replaying it with the same body returns the original response and does NOT debit a second time.

tenant_id query · optional

An attempted target tenant. The platform always derives ownership from the authenticated identity; a trial request naming another tenant is refused before work.

Response contract

200 ActionResponse

The action was admitted and reached a verdict. `outcome` says which verdict: `answer` (charged) or `refusal` (not charged). Never a 5xx, never silent.

400 Error

Pre-admission refusal — the request was never admissible, so nothing ran and nothing was charged. Includes `input_cap_exceeded`, which is decided BEFORE any model spend (brief W2.3).

401 Error

Missing, malformed, rotated, revoked or expired key. Never charged.

402 Error

The wallet cannot cover this action's price. Nothing ran, nothing was charged, and the balance is NEVER driven negative (brief W2.7).

403 Error

Trial policy refusal. The request was not admitted, no engine work ran, and no credits were charged. Trial ownership is read from the authenticated identity, never from the attempted tenant query value.

409 Error

The same `Idempotency-Key` was reused with a different request body.

429 Error

Per-key or per-tenant limit tripped, or an abuse threshold was crossed. Nothing ran and nothing was charged; `Retry-After` is set where a retry is meaningful.

503 Error

We broke, or an upstream we depend on did. Nothing is charged for a 5xx — the caller never pays for our outage.

No published example

No real API action cassette or fixture entry was available for this action in the reviewed platform/assay corpus. The response shape above is contract-derived; no response payload has been invented.