ワンクリックで
agent-buzz
Curated AI-agent tweets, clustered into narratives with insight summaries
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Curated AI-agent tweets, clustered into narratives with insight summaries
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Summary of the [REPLACE: CHANNEL_PLATFORM] channel [REPLACE: CHANNEL_NAME] — top [REPLACE: TOP_N_THREADS] threads + open questions
Price and volume tracker for [REPLACE: TOKEN_SYMBOL] with anomaly alerts above [REPLACE: ALERT_THRESHOLD_PCT]% movement
Watch Vercel deploys for [REPLACE: VERCEL_PROJECT] — alert on [REPLACE: ALERT_ON] in the last [REPLACE: LOOKBACK_HOURS] hours
Digest of the most interesting new posts on [REPLACE: TOPIC] from RSS feeds and the open web
Mention/keyword sweep on social platforms for [REPLACE: KEYWORDS] — trends, sentiment, top posts
5 concrete real-life actions, leverage-scored against open loops with specificity and anti-fluff gates
| name | Agent Buzz |
| description | Curated AI-agent tweets, clustered into narratives with insight summaries |
| var | |
| tags | ["social"] |
| requires | ["XAI_API_KEY"] |
${var} — Specific project or topic to prioritize (e.g. "MCP protocol", "browser-use"). If empty, searches AI agents broadly.
Read memory/MEMORY.md for context.
Read the last 3 days of memory/logs/ — extract every https://x.com/.../status/<id> URL already posted by this skill and treat those IDs as a dedup set.
Publish a curated, narrative-aware read on what the AI-agent scene on X talked about in the last 24h. Curation, not aggregation. Better to ship 6 high-signal tweets in 2 clusters than 10 tweets of mixed noise.
FROM_DATE=$(date -u -d "1 day ago" +%Y-%m-%d 2>/dev/null || date -u -v-1d +%Y-%m-%d)
TO_DATE=$(date -u +%Y-%m-%d)
Issue one primary x_search call. The response for each tweet must include explicit engagement counts (likes, retweets, replies) and follower count if visible — without these numbers the signal scoring in step 3 cannot run.
curl -s -X POST "https://api.x.ai/v1/responses" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $XAI_API_KEY" \
-d '{
"model": "grok-4-1-fast",
"input": [{"role": "user", "content": "Search X from '"$FROM_DATE"' to '"$TO_DATE"' for tweets in the AI-agents conversation: autonomous agents, agent frameworks, MCP / agent protocols, agent products, agent benchmarks, agent research papers. Return up to 40 candidates. For EACH candidate you MUST return: @handle, follower_count (integer or null), role_guess (builder|founder|researcher|investor|commentator|anon), one-line claim (what they actually said — not a paraphrase, the thesis), likes (int), retweets (int), replies (int), posted_at (ISO), direct_link (https://x.com/username/status/ID). Prefer builders/founders/researchers. Skip obvious engagement-farming threads (\"RT if you agree\", reply-guy pileons, giveaways)."}],
"tools": [{"type": "x_search", "from_date": "'"$FROM_DATE"'", "to_date": "'"$TO_DATE"'"}]
}'
If ${var} is set, also issue a second call constrained to that topic with the same return schema; merge results.
Fallback chain (fire in order, stop at first success):
"AI agents twitter today ${today}" — discard anything >48h old, expect degraded metadata.Record which source succeeded — you will print it in the output footer.
Drop any candidate that matches ANY of:
status/<id> already in the 3-day dedup set from step 0.posted_at older than 30h.Compute signal = likes + 2*retweets + replies, then apply modifiers:
Group surviving candidates into 2–4 narrative clusters. A cluster is a shared thesis, not a shared keyword — e.g. "MCP vendor lock-in debate" not "MCP". Name each cluster in ≤5 words. If one cluster would hold >60% of tweets, split it. If a tweet fits no cluster, drop it unless its signal is exceptional (top 3 overall).
Target output: 2–4 clusters, 2–3 tweets each, 6–9 total tweets (strictly ≤10).
For each selected tweet, write a one-line insight (≤20 words). An insight:
Anti-hype lint — if your insight contains any of these, rewrite it:
game-changing, revolutionary, mind-blowing, wild, huge, massive, unreal, insane, vague "AI agents are evolving", "the future of X".
Write one opening sentence (≤25 words) that names what the conversation was actually about today. Examples of shape:
If you cannot characterize the shape in one honest sentence, the clustering is wrong — redo step 4.
Send via ./notify (under 4000 chars):
*Agent Buzz — ${today}*
_<conversation-shape one-liner>_
**<Cluster 1 name>**
• @handle — <insight>
<link>
• @handle — <insight>
<link>
**<Cluster 2 name>**
• @handle — <insight>
<link>
<!-- _src: xai|webfetch|websearch · candidates: N → kept: M_ -->
Keep the footer on the message — it's a single line, and it's how future self-audits debug empty days.
Append to memory/logs/${today}.md under ### agent-buzz:
https://x.com/.../status/<id> URL on its own line (for tomorrow's dedup)Status codes (log exactly one):
AGENT_BUZZ_OK — notification sent with ≥1 cluster.AGENT_BUZZ_EMPTY — fetch succeeded but nothing survived skip-gates. Send a short notify: Agent Buzz — ${today}: quiet day, no survivors. Do not fabricate.AGENT_BUZZ_ERROR — all three sources in the fallback chain failed. Notify: Agent Buzz — ${today}: all sources failed (${error summary}). Log the specific failure per source.Never pad the output to hit 10 tweets. 6 good > 10 mid.
The sandbox may block outbound curl. Use WebFetch as a fallback for any URL fetch. For auth-required APIs, use the pre-fetch/post-process pattern (see CLAUDE.md). The three-step fallback chain in step 1 is the applied version of this.
XAI_API_KEY — X.AI API key for Grok x_search. If unset, the chain starts at step 2 (WebSearch).