Introduction
# yutori-web-research
Use Yutori’s cloud agents for two things:
1) **Research** (wide/deep web research + citations) via `POST /v1/research/tasks` 2) **Browsing** (web navigation agent on a cloud browser) via `POST /v1/browsing/tasks`
This skill is for **web tasks** where a dedicated web agent is helpful (papers, competitors, product info, extracting lists from a site), and where OpenClaw’s local `web_fetch` or `browser` tool is not ideal.
## Preconditions (auth + endpoint)
- Requires **YUTORI_API_KEY** (preferred: provided by OpenClaw Gateway env; fallback: `~/.openclaw/openclaw.json` at `env.YUTORI_API_KEY`). - Endpoint defaults to **dev** unless overridden: - Set `YUTORI_API_BASE=https://api.dev.yutori.com` (dev) - or `YUTORI_API_BASE=https://api.yutori.com` (prod)
If requests return `403 Forbidden`, the key likely lacks access to the requested API product (Research/Browsing).
## Bundled runner scripts
This skill expects a small Node runner script to exist (or be bundled alongside this skill):
- `yutori-research.mjs` — create + poll a research task; prints **pretty text** output.
Recommended: bundle it under `scripts/yutori-research.mjs` in this skill folder.
## Workflow: Research a topic (brief + reading list)
When the user asks for research (example: “RL papers in the last month”):
1) Write a tight query prompt that requests: - **1-page brief** (themes + trends) - **curated reading list** (10–15 items, each with title, 1–2 sentence summary, why it matters, and link) - Prefer primary sources (arXiv + publisher pages)
2) Run the research task using the runner script (example):
```bash cd /Users/juanpin/.openclaw/workspace node yutori-research.mjs "Research reinforcement learning papers from the last 30 days. Output (1) a concise 1-page brief of themes/trends and (2) a curated list of 12 papers with title, 2-sentence summary, why it matters, and a link. Prefer arXiv + conference links." ```
3) Return results to the user as **clean bullets** (not raw JSON), and include source URLs.
## Workflow: Browse a site and extract info (e.g., employees list)
Use the Browsing API when the user asks: - “Navigate to <site> and list …” - “Fill a form / click through pages / collect items”
Create a browsing task (example curl):
```bash curl --request POST \ --url "$YUTORI_API_BASE/v1/browsing/tasks" \ --header "x-api-key: $YUTORI_API_KEY" \ --header "Content-Type: application/json" \ --data '{ "task": "Give me a list of all employees (names and titles) of Yutori.", "start_url": "https://yutori.com", "max_steps": 60 }' ```
Poll until `succeeded`, then return a deduplicated list.
## Output style
- Prefer **pretty text** + bullets. - Include the key source URLs. - If the agent output contains HTML (e.g., `<pre>...</pre>`), strip it and return plain text.
## Troubleshooting
- `401 Missing API key header`: ensure you are sending the correct header. Yutori uses `x-api-key` for most APIs. - `403 Forbidden`: key doesn’t have access to that product in that environment. - Long-running tasks: share the `view_url` and optionally poll longer.