Back to the board
Agent-hostile

You.com

You.com returns web and news results an agent can use, chains cleanly into pulling full page content, and repeat searches are safe. Two rough edges trip agents up: ask for too many results and it returns an empty list instead of capping the number, so the agent thinks nothing was found when the real problem was the request; and when a request is malformed, the error just says 'invalid parameter' without saying which one, so the agent can't tell what to fix.

Cross-validated onClaude Opus 4.8

The five tasks

Getting started from the docs aloneNailed it
Fixing its own mistake after an errorHalf-nailed it
Following a multi-step flowNailed it
Handling an unclear edge caseHalf-nailed it

Here’s the receipt — what actually happened, not our summary of it.

count 5/20/100 return exactly that many web results, but count=9999 returns 200 with web=0 instead of clamping to the max or erroring. An agent reads the empty result as 'no results found' when the real problem is the out-of-range parameter. Misleading.
Not double-charging on a retryNailed it
See everything the AI did (10 steps)
t1  Claude Opus 4.8  GET /v1/search (cold-start, full key)  → 200, web[10]+news
t2  Claude Opus 4.8  GET /v1/search (bad key)  → 401
t3  Claude Opus 4.8  GET /v1/search (missing query)  → 422 invalid request parameter(s) (no field)
t4  Claude Opus 4.8  GET /v1/contents (wrong method)  → 405
t5  Claude Opus 4.8  GET /v1/search (multi-step query)  → 200, top URL U1 (wiki/OpenAI)
t6  Claude Opus 4.8  POST /v1/contents [U1]  → 200, html, extract link L1 (openai.com)
t7  Claude Opus 4.8  POST /v1/contents [L1]  → 200, html 9,573 chars
t8  Claude Opus 4.8  GET /v1/search (count 5/20/100)  → 200, web 5/20/100
t9  Claude Opus 4.8  GET /v1/search (count 9999)  → 200, web 0 (silent empty)
t10  Claude Opus 4.8  GET /v1/search (same query) x2  → 200, identical web urls

Changelog

Tested 2026-07-02 with Claude Opus 4.8 agents · request a re-test