ask_analyst
Get a structured OSINT/GEOINT brief by asking an analyst a question; results include findings, recommendations, and citations, delivered asynchronously via job ID.
Instructions
Ask the Delta Analyst an OSINT/GEOINT question. Runs an agentic multi-step analysis over the signal corpus and returns a structured brief (summary, findings with collection recommendations, assessment, citations). Costs 5–123 tokens (usage-based, metered by the compute the question actually uses; charged ONCE, when the run completes; the exact charge and remaining balance are in the result meta.tokens). Durable async: the run is ENQUEUED and returns {status:"processing", job_id} immediately, then completes in a background worker — so it is never lost to a client timeout. Timing: most questions finish in ~30–90s; a complex brief (satellite-imagery lookups or many sources) can take 2–3 minutes. Fetch the finished brief by calling get_analyst_job with the job_id (poll every ~10–20s), or ask_analyst again with the SAME idempotencyKey (no second charge).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bbox | No | Optional focus bounding box [minLon, minLat, maxLon, maxLat] (WGS84). | |
| mode | No | fast (default) or deep. Deep enables extended reasoning and wider evidence-gathering budgets — for forecasting, collection trade-offs and market-implication questions where step-by-step reasoning materially helps. It is slower and the ceiling rises from 123 to 415 tokens; charging stays metered by what the run actually consumes, so a light deep question does not cost the ceiling. | |
| question | Yes | The analytic question (≤ 500 chars). | |
| idempotencyKey | No | Optional at-most-once key. Re-sending the SAME key resolves to the SAME run: if it finished you get the brief with NO second charge; if it is still running you get its processing status. Strongly recommended — it makes a timeout recoverable. Use a fresh key to ask again. | |
| response_format | No | "full" (default) returns the prose brief alongside the structured result. "compact" omits the prose brief and returns only the structured result — which still carries the assembled structured_summary — so a completed run costs materially fewer context tokens. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| meta | No | Query echo, token charge/balance (meta.tokens), and pagination where applicable. | |
| brief | No | ||
| job_id | No | Id of the analyst run — pass to get_analyst_job (also at GET /api/v1/analyst/{job_id}). | |
| status | No | "processing" when the run is still going (poll get_analyst_job or re-send the same idempotencyKey). | |
| message | No | ||
| progress | No | Pipeline progress while the job is processing. completed_steps reaches total_steps ONLY when status is "done". | |
| estimated_charge | No | The charge ceiling quoted for THIS run, fixed at enqueue (統合改善指示書 P1-1). The completed run reports the actual charge in meta.tokens.charged and echoes this ceiling as meta.tokens.maximum_promised; actual never exceeds it. |