--- name: anakin-research description: Use when answering a question from the web with Anakin rather than fetching a known URL — web search for relevant pages, multi-source deep research producing a structured answer, or checking what AI answer engines say about a brand or topic. Covers search, agentic_search, ai_visibility_search, ai_visibility_sources. Triggers on researching a topic, comparing options across sources, market or competitive intelligence, AI-SEO and brand visibility checks, finding sources for a claim, or gathering data that spans many sites. --- # Anakin: search, research, and AI visibility Three tools with very different cost and latency profiles. Picking the wrong one either wastes minutes or returns something too shallow to use. | Need | Tool | Latency | |---|---|---| | Find URLs relevant to a query | `search` | immediate | | A researched answer synthesized from many sources | `agentic_search` | 1–5 min | | What AI engines *say* about a topic or brand | `ai_visibility_search` | 1–2 min | The third answers a different question from the other two. `search` and `agentic_search` ask *what is true on the web*. `ai_visibility_search` asks *what do AI assistants tell people* — which is a brand/AI-SEO question, not a factual one. Do not substitute one for the other. ## search — find pages Synchronous AI web search. Returns a results array of `url`, `title`, `snippet`, `date`. No polling. - `prompt` — natural-language query. - `limit` (default 5, max 20). This is a *discovery* tool. It returns snippets, not page content. The normal pattern is `search` to find candidates, then `scrape` the ones worth reading (see the `anakin-web-data` skill). Use `search` when you will decide what to read, or when you need citations you can hand back to the user. ## agentic_search — deep research An async pipeline: it searches, scrapes the most relevant citations, and uses an LLM to synthesize a unified structured answer. Typically 1–5 minutes. - `prompt` — the research question. Be specific; the engine infers scope from it. - `schema` — optional JSON Schema for the output shape. **Supply this whenever you know the shape you want** — it is the difference between prose you have to re-parse and typed data you can use directly. Omit it and the engine infers a schema from the prompt. - `useBrowser` — defaults to `true` here, unlike other tools, because cited sources are often JS-heavy. Returns `summary`, `structured_data`, and the `data_schema` actually used. Use it when one URL or a flat list of search hits genuinely cannot answer the question: comparative analysis, multi-jurisdictional research, market intelligence, anything requiring synthesis across sources. ## ai_visibility_search — what AI engines say Asks multiple AI answer engines (ChatGPT, Gemini, Google AI Overview) the same question and compares their answers. Returns one result per engine — status, answer summary, latency, credits, and a consensus/outlier verdict — plus an AI-generated synthesis of where they agree and diverge. Async, typically 1–2 minutes, polls to completion. - `query` (required) — the question to put to every engine. - `sources` — engine slugs to query. Call `ai_visibility_sources` first to see what is available and currently enabled. - `country` — for geo-specific AI answers. - `include_full_content` — **leave this off by default.** Each engine's raw full answer is large; the summaries and synthesis are usually what you need. Billed per source at that Wire action's rate. Failed sources are free. Use it for: brand visibility ("what do AI engines say about X"), tracking how answers differ across engines, and geo-specific answer checks. `ai_visibility_sources` takes no arguments and just lists slugs plus display labels. Call it when you want a subset rather than all engines. ## Choosing well Do **not** reach for `agentic_search` when: - The answer lives on one page you can already name → `scrape` it. - You need a list of links → `search`. - The data is on a specific popular site → check `wire_discover` first (`anakin-wire` skill); a pre-built action is faster and returns clean fields. - The question is what *AI engines say* rather than what the web contains → `ai_visibility_search`. - The user wants to be told when something *changes* → a monitor, not a repeated search (`anakin-monitoring`). Do reach for it when a thorough answer would otherwise mean a dozen `search` + `scrape` round-trips. It is doing exactly that work, better scoped. ## Practical notes - Tell the user before starting an `agentic_search` — minutes of silence otherwise reads as a hang. - Define a `schema` up front for anything feeding a table, report, or downstream code. - Results can be served from cache (`cached` in the response); pass a more specific prompt if you need a genuinely fresh run.