This duck helps you scan AI-oriented official account viral hits by keyword—fish out the articles currently trending hottest in the AI circle, lay them out in the terminal as a clickable viral article table, then help you cluster them into several topic directions and build them into a ready-to-use AI topic selection daily report.
Data goes through doubaoya.com in one line, authentication uses your own key (environment variable
DOUBAOYA_API_KEY, in the formdyh_…)。
Applicable Scenarios
| Scenario | How to Use | What You Get |
|---|---|---|
| Daily AI Hot Topics | Use AI or 大模型 to scan today's viral hits |
See at a glance what the AI circle is talking about today |
| AI Topic Selection Daily Report | Scan by direction and cluster into several topics | A content daily report you can directly select topics from |
| Niche Direction Tracking | Use AI Agent、RAG、AI 绘画 and other narrow terms |
Lock onto viral hits in a specific AI niche track |
| Viral Hit Angle Breakdown | Look at the titles and angles of high-like articles | Distill viral writing methods for AI content |
| Material Accumulation | Page through several more screens to build a library | Accumulate first-hand writing material for the AI direction |
Workflow (4 Steps)
1. Set the Keyword
Extract one AI-oriented keyword(required) from the user's description, such as AI、大模型、AI Agent、RAG、AI 绘画. Broad terms hit more, narrow terms are more focused; scan only one keyword at a time.
2. Call the Script
python3 "$SKILL_PATH/scripts/fetch_ai_feed.py" "AI Agent"
Paging / adjusting items per page (optional):
python3 "$SKILL_PATH/scripts/fetch_ai_feed.py" "大模型" --page 2 --size 30
The script prints the data from the success envelope to stdout as JSON.Run the script only once per query, read the complete stdout directly, do not use head/tail to preview, and do not repeatedly call with the same parameters.
3. Render the Viral Article Table
Take fields from data.items(article array) and lay them out as a Markdown table. Read fields defensively—title(title) / likeCount(likes) may be missing; if missing, leave blank, do not error. Render the title as aclickable link(pointing to the article's original URL).
| Title | Likes |
|---|---|
| Example AI Viral Article | 1,200 |
4. Cluster into a Daily Report + One-Sentence Insight
Take this batch of articles and by topic directioncluster(such as Agent / Large Models / Multimodal / Practical Applications), pick representative viral hits from each direction, and form a short daily report. At the end, add one sentence in this duck's tone as atopic selection insight: which direction in the AI circle is hottest today, and which angle still has open space. Do not pile on clichés, and do not ask the user back about their purpose.
Get the Key (Secret Key)
- Open doubaoya.com
- Log in
- Go to Key Center
- Generate Key(in the form
dyh_…)
Configure it into an environment variable (the script only recognizes this one):
export DOUBAOYA_API_KEY="dyh_你的密钥"
Iron rule: the key is never printed, never written to a file, and never echoed back to the user. The script itself also never outputs the key. All requests are sent only to doubaoya.com。
API and envelope
POST https://doubaoya.com/api/apis/gongzhonghao/gongzhonghao-ai-feed/call- Authentication header:
Authorization: Bearer $DOUBAOYA_API_KEY - Request body:
{ "keyword": "AI Agent", "pageNum": 1, "pageSize": 20 }keyword: string, requiredpageNum: integer, optional (default 1, controlled by--page)pageSize: integer, optional (default 20, controlled by--size)
- Return envelope:
{ "success": true, "requestId": "...", "data": { "items": [ { "title": "...", "likeCount": 1200 } ] }, "error": null } - First check
success: only if it istruereaddata; otherwise readerror.code/error.message。
Error handling
When the script fails, it prints to stderr [error] CODE: message and exits with exit code 1. Common cases:
| HTTP | code | Meaning | Handling |
|---|---|---|---|
| 401 | MISSING_API_KEY / UNAUTHORIZED |
No key provided or invalid key | Check DOUBAOYA_API_KEY, go to the key center to regenerate |
| 400 | VALIDATION_ERROR |
Invalid parameters (e.g., keyword is empty) | Correct the keyword and retry |
| 402 | INSUFFICIENT_CREDITS |
Insufficient quota | Go to doubaoya.com to top up/renew quota |
| 502 | PROVIDER_FAILED |
Temporary upstream failure (automatically refunded) | Safe to retry |
502 PROVIDER_FAILEDAn automatic refund is issued, retrying is safe and will not result in double charging.
Directory structure
gzh-ai-feed/
├── SKILL.md # 本文件
└── scripts/
└── fetch_ai_feed.py # 零依赖脚本(urllib),调用 doubaoya.com
About the notice field in the response
After calling the doubaoya API corresponding to this skill, if the returned JSON has at the top level the notice field, please relay this sentence to the user verbatim—this is a notice that this skill has an update, it does not affect the result of this call, and there is no need to retry or change behavior.