wigolo agent
Natural-language data gathering with optional JSON Schema output. Local-first: every fetched page lands in the cache for later reuse.
Quick Reference
// Natural language data gathering
{ "prompt": "Find pricing tiers for the top 5 headless CMS platforms" }
// With structured output schema
{
"prompt": "Find pricing for Contentful, Sanity, and Strapi",
"schema": { "type": "object", "properties": { "name": { "type": "string" }, "free_tier": { "type": "string" }, "pro_price": { "type": "string" }, "enterprise": { "type": "string" } } }
}
// With starting URLs
{
"prompt": "Compare features across these CMS platforms",
"urls": ["https://contentful.com/pricing", "https://sanity.io/pricing"],
"max_pages": 6
}
Parameters
| Parameter | Type | Default | When to use |
|---|---|---|---|
prompt |
string | required | Natural-language task description |
urls |
string[] | none | Seed URLs to include |
schema |
object | none | JSON Schema for structured extraction per page |
max_pages |
number | 10 | Hard cap on pages fetched (max 100) |
max_time_ms |
number | 60000 | Time budget in ms (max 600000) |
stream |
boolean | false | Emit progress notifications per step |
max_tokens_out |
number | none | Token-budget cap (cl100k-base) |
include_full_markdown |
boolean | false | Pages return evidence excerpts by default |
citation_format |
string | "numbered" | "numbered" / "json" / "anthropic_tags" |
How It Works
- Plans — interprets prompt, generates search queries and URLs.
- Executes — searches and fetches in parallel within budget.
- Extracts — if schema provided, extracts fields from each page and merges.
- Synthesizes — produces natural-language result or structured data.
- Reports —
stepsarray shows every action with timings.
Synthesis follows a fallback ladder: host sampling → optional local language model → deterministic extraction.
Output Transparency
Every response includes a steps array:
[
{ "action": "plan", "detail": "Generated 3 search queries", "time_ms": 200 },
{ "action": "search", "detail": "Found 8 results", "time_ms": 5000 },
{ "action": "fetch", "detail": "Fetched 5 pages", "time_ms": 8000 },
{ "action": "extract", "detail": "Extracted schema from 5 sources", "time_ms": 3000 }
]
Use steps to debug weak results — if extraction is poor, check which pages were fetched.
Anti-Patterns
- DON'T use for reports/analysis — use
researchinstead. - DON'T use for single-page extraction — use
extractinstead. - DON'T set
max_pageshigh without time budget — setmax_time_mstoo.
When NOT to use wigolo-agent
- Per-page interactive flow needed (login, multi-step wizard, click-through pagination) — handle authentication or interaction externally, then chain with wigolo's
extract.
See Also
- wigolo-extract — for single-page extraction
- wigolo-research — for reports and analysis (not data gathering)