Watch Vercel deploys for [REPLACE: VERCEL_PROJECT] — alert on [REPLACE: ALERT_ON] in the last [REPLACE: LOOKBACK_HOURS] hours
日本語の概要は準備中です。原文の説明を表示しています。
Web search using You.com Search API with high-quality, cited results — runs keyless out of the box; YDC_API_KEY unlocks higher limits and real-time web crawling
インストールする前に、エージェントに与えられる指示の中身を確認できます。
${var} — Search query or topic. When empty, uses a general search for current notable developments across tracked areas.
Today is ${today}. Perform web search using You.com's Search API to find current, high-quality information on ${var}.
This skill provides web search functionality via You.com's Search API, offering several advantages over basic WebSearch:
livecrawl=web is enabled (keyed tier)YOUCOM_LIVECRAWL when a full page fetch is useful| Mode | When | Endpoint | Limits |
|---|---|---|---|
keyless | YDC_API_KEY unset | https://api.you.com/v1/agents/search | 100 searches/day per IP, no livecrawl |
keyed | YDC_API_KEY set | https://api.you.com/v1/search | Your plan's limits, livecrawl available |
Check whether the key is set via ${VAR:+x} — a bare $YDC_API_KEY trips the secret-expansion analyzer:
if [ -n "${YDC_API_KEY:+x}" ]; then AUTH_MODE="keyed"; else AUTH_MODE="keyless"; fi
echo "youcom auth_mode=$AUTH_MODE"
A missing key is not an error — the skill runs on the keyless tier.
Both modes call the same REST contract through ./secretcurl. In keyed mode the {YDC_API_KEY} placeholder is substituted inside the helper; in keyless mode no key header is sent at all.
QUERY="${var:-current notable developments in AI, crypto, and technology}"
COUNT="10"
FRESHNESS="${YOUCOM_FRESHNESS:-week}"
LIVECRAWL="${YOUCOM_LIVECRAWL:-}"
PARAMS="query=$(echo "$QUERY" | jq -Rr @uri)&count=$COUNT&safesearch=strict&freshness=$(echo "$FRESHNESS" | jq -Rr @uri)"
if [ "$AUTH_MODE" = "keyed" ]; then
SEARCH_URL="https://api.you.com/v1/search?$PARAMS"
# livecrawl is a keyed-tier feature; the keyless endpoint answers it with 402.
if [ -n "${LIVECRAWL:+x}" ]; then
SEARCH_URL="$SEARCH_URL&livecrawl=$(echo "$LIVECRAWL" | jq -Rr @uri)"
fi
HTTP=$(./secretcurl -s -o /tmp/youcom-search.json -w '%{http_code}' \
--max-time 30 -X GET \
"$SEARCH_URL" \
-H "X-API-Key: {YDC_API_KEY}" \
-H "User-Agent: youdotcom-integration/aeonfun-aeon")
else
SEARCH_URL="https://api.you.com/v1/agents/search?$PARAMS"
[ -n "${LIVECRAWL:+x}" ] && echo "youcom livecrawl=skipped reason=keyless (set YDC_API_KEY to enable)"
HTTP=$(./secretcurl -s -o /tmp/youcom-search.json -w '%{http_code}' \
--max-time 30 -X GET \
"$SEARCH_URL" \
-H "User-Agent: youdotcom-integration/aeonfun-aeon")
fi
echo "youcom http=$HTTP auth_mode=$AUTH_MODE bytes=$(wc -c </tmp/youcom-search.json)"
Never send the key to the keyless endpoint, and never call the keyed endpoint without a key (it answers with a 402 payment challenge rather than results).
On HTTP=200 with non-empty body, parse the response:
if [ "$HTTP" = "200" ] && [ -s /tmp/youcom-search.json ]; then
# Extract web and news results using the documented Search API shape.
if jq -r '
[
(.results.web[]? | ["web", (.title // ""), (.url // ""), ((.snippets // []) | join(" ")), (.page_age // "recent")]),
(.results.news[]? | ["news", (.title // ""), (.url // ""), ((.snippets // []) | join(" ")), (.page_age // "recent")])
] | .[] | @tsv
' /tmp/youcom-search.json > /tmp/youcom-results.txt; then
PARSE_OK=1
else
PARSE_OK=0
: > /tmp/youcom-results.txt
fi
# Count results
RESULT_COUNT=$(wc -l < /tmp/youcom-results.txt)
echo "Extracted $RESULT_COUNT search results"
else
PARSE_OK=1
RESULT_COUNT=0
fi
# Any non-200 (or a 200 with nothing usable) hands the run to the built-in WebSearch.
if [ "$RESULT_COUNT" -eq 0 ]; then
case "$HTTP" in
200) if [ "$PARSE_OK" = "1" ]; then REASON="EMPTY"; else REASON="PARSE"; fi ;;
000) REASON="NETWORK" ;;
*) REASON="HTTP_$HTTP" ;;
esac
SOURCE_PATH="websearch"
echo "youcom fallback=websearch reason=$REASON auth_mode=$AUTH_MODE"
else
SOURCE_PATH="youcom"
fi
When SOURCE_PATH=websearch, don't end the run empty. Run the same query ($QUERY) through the built-in WebSearch tool and continue to Phase 2 with those results. The log line above is the record of why:
youcom fallback=websearch reason=HTTP_401 auth_mode=keyless
Typical triggers are a keyless 401 (see Error Handling), the keyless 429 daily cap (shared GitHub Actions runner IPs can hit it even on light usage), 5xx, a network timeout (reason=NETWORK), an unparseable body (reason=PARSE), or zero results (reason=EMPTY). Only fall back once per run. If WebSearch also returns nothing, report that neither source returned results.
Process the results into a readable format:
For each result from You.com API:
snippets[] into one excerpt highlighting query matchpage_age or recent when unavailableApply basic quality filters:
Structure the output for easy consumption:
*You.com Web Search Results — ${today}*
Query: "${var}"
Source: ${source}
Results: ${result_count} found
1. **[Title](URL)**
Snippet with relevant context...
Published: Date
2. **[Title](URL)**
Snippet...
Published: Date
---
API Status: ${http_status} | Auth: ${auth_mode} | Quality: ${quality_score}/5
${source} is exactly one of You.com Search API (${auth_mode}) or WebSearch (fallback: ${reason}), matching SOURCE_PATH. Never print both.
Send formatted results via ./notify:
keyless or keyed)Log the search for future reference:
Log record - this skill is read-only, so the workflow's read-only guard writes its ### you-web-search log entry from your captured output; a self-written entry would be a duplicate. Don't append to memory/logs/ yourself - put this record in your final output:
### you-web-search
- Query: "${var}"
- Source: ${source}
- Results: N found, M delivered
- Status: HTTP ${code}
- Quality score: X/5 (relevance, freshness, diversity)
Update search memory — Add successful searches to memory/searches.md for pattern tracking
Every failure below ends in the WebSearch fallback, so a run always has results. The notes say what to tell the operator:
keyless mode no key is sent, so a 401 is not a credential problem. Some locations currently get 401 from the keyless endpoint with a body like {"detail":"'ascii' codec can't encode characters ..."}. This is a known server-side issue with non-ASCII region names (e.g. Île-de-France), and country/language parameters don't avoid it. Fall back and log reason=HTTP_401. Setting YDC_API_KEY uses the keyed endpoint, which is unaffectedkeyless mode this is usually the 100/day per-IP cap — suggest setting YDC_API_KEY (get one at https://you.com/platform?utm_source=aeonfun-aeon&utm_medium=oss_integration&utm_campaign=2026-09-oss-integrations&utm_content=error-message). In keyed mode, suggest checking the plan quotaYDC_API_KEYYDC_API_KEYreason=HTTP_<code> (e.g. HTTP_503)reason=NETWORK200 whose body jq can't parse. Fall back and log reason=PARSE200 with zero results. Fall back and log reason=EMPTY. If WebSearch is also empty, suggest query refinement or broader termsRecord failure reasons for debugging:
youcom-api-unavailable — API endpoint unreachableyoucom-rate-limited — Hit plan limits or the keyless daily capyoucom-payment-required — Keyed-tier feature requested without a keyyoucom-auth-invalid — API key rejected (keyed mode)youcom-keyless-401 — Keyless endpoint returned 401 with no key sentyoucom-parse-error — Response format unexpectedBoth modes go through ./secretcurl so one code path covers them: keyed calls carry the {YDC_API_KEY} placeholder (never a bare $YDC_API_KEY on the line); keyless calls carry no placeholder and are passed through unchanged. Every request sends User-Agent: youdotcom-integration/aeonfun-aeon.
YDC_API_KEY (optional) — You.com API key. Unset: the skill runs on the free keyless tier (100 searches/day per IP, no livecrawl). Set: keyed Search API with your plan's limits and livecrawl. Get a key at https://you.com/platform?utm_source=aeonfun-aeon&utm_medium=oss_integration&utm_campaign=2026-09-oss-integrations&utm_content=docs.YOUCOM_FRESHNESS (optional) — Freshness filter (day, week, month, year, or a date range).YOUCOM_LIVECRAWL (optional, keyed only) — Pass through to livecrawl when you want full page content (web, news, or all). Ignored on the keyless tier.youcom fallback=websearch reason=<REASON>This skill complements Aeon's built-in WebSearch, but it is a separate Search API path (keyless by default, keyed when YDC_API_KEY is set):
This skill works well with:
The You.com search results can inform other skills' web research needs while providing a higher-quality alternative to basic web search.
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Watch Vercel deploys for [REPLACE: VERCEL_PROJECT] — alert on [REPLACE: ALERT_ON] in the last [REPLACE: LOOKBACK_HOURS] hours
日本語の概要は準備中です。原文の説明を表示しています。
Price and volume tracker for [REPLACE: TOKEN_SYMBOL] with anomaly alerts above [REPLACE: ALERT_THRESHOLD_PCT]% movement
日本語の概要は準備中です。原文の説明を表示しています。
Mention/keyword sweep on social platforms for [REPLACE: KEYWORDS] — trends, sentiment, top posts
日本語の概要は準備中です。原文の説明を表示しています。
Summary of the [REPLACE: CHANNEL_PLATFORM] channel [REPLACE: CHANNEL_NAME] — top [REPLACE: TOP_N_THREADS] threads + open questions
日本語の概要は準備中です。原文の説明を表示しています。
First-touch review of newly opened PRs on [REPLACE: WATCHED_REPO] — verdict + welcoming comment + label
日本語の概要は準備中です。原文の説明を表示しています。
Digest of the most interesting new posts on [REPLACE: TOPIC] from RSS feeds and the open web
日本語の概要は準備中です。原文の説明を表示しています。