Skill: juanpin/yutori-web-research (version 1.0.1)

--- name: yutori-web-research description: Use Yutori’s Research API and Browsing API (cloud browser) to research topics, collect sources, and extract structured facts from the web. Use when the user asks to “research X”, “monitor/find papers”, or “navigate to a site and extract info” and you have access to YUTORI dev/prod endpoints via YUTORI_API_BASE and an API key in env (YUTORI_API_KEY or ~/.openclaw/openclaw.json env.YUTORI_API_KEY). --- # 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-[REDACTED_SECRET]" \ --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.


Security scan verdicts — ClawScan: clean | static analysis: suspicious | VirusTotal: suspicious | SkillSpector: suspicious (MEDIUM)