name: bestblogs-profile
description: Use this skill when the user wants to set up, inspect, or update their BestBlogs interest profile and onboarding state (cold start). Triggers include "帮我做 BestBlogs 冷启动 / 设置兴趣标签 / 看我现在的画像 / bestblogs 的 onboarding", "set up my BestBlogs profile", "what topics have I chosen on BestBlogs". Invokes the bestblogs CLI.
bestblogs-profile — BestBlogs Intake(冷启动 / 画像)
何时使用
- 用户第一次使用 BestBlogs,希望建立兴趣画像。
- 用户想查看自己当前选了哪些兴趣标签、语言偏好、onboarding 是否完成。
- 用户想重新设置一遍兴趣(作为漂移干预或重置)。
原语
| 原语 | CLI | 说明 |
|---|---|---|
bestblogs.profile.setup |
bestblogs intake setup |
交互或非交互地完成 onboarding |
bestblogs.profile.get |
bestblogs intake show --json |
获取当前画像 + onboarding 状态 |
前置检查
bestblogs auth status --json
若输出 loggedIn: false 或报 AUTH_REQUIRED,先提示用户运行 bestblogs auth login,获取 API Key 来自 https://bestblogs.dev/settings/api-keys。
动作
非交互建档
bestblogs intake setup --non-interactive \
--tags "tag_ai,tag_coding,tag_product" \
--lang both \
--source-limit 10 \
--json
输出示例:
{
"success": true,
"data": {
"onboardingCompleted": true,
"interestTagCount": 3,
"followedSources": 10,
"languagePreference": "both"
}
}
交互建档(推荐真人场景)
bestblogs intake setup
(CLI 会用 prompts 弹出多选,Skill 在支持 shell 的 agent 里 fork 子进程执行即可。)
查画像
bestblogs intake show --json
关心的字段(parse 时按需取):
data.interests.explicitInterests[]— 显式兴趣(含 tagName, weight)data.interests.implicitInterests[]— 隐式兴趣data.interests.recentActiveTopics[]— 近 7 天活跃主题data.onboarding— onboarding 状态data.interests.driftDetected— 是否有漂移
错误处理
error.code=AUTH_REQUIRED→ 提示运行bestblogs auth login,中断流程error.httpStatus=403→ 某些子能力需要 Pro,提示用户升级error.code=RATE_LIMITED→ CLI 已自动退避重试一次;如仍失败告知用户稍后重试
输出契约
Skill 的 caller 应拿到结构化结果,例如:
{
"onboardingCompleted": true,
"explicitInterestCount": 6,
"languagePreference": "both",
"driftDetected": false,
"recentActiveTopics": ["AI Coding", "Dev Tools"]
}
组合建议
- 冷启动完成后,立即调用
bestblogs-discover展示 "today" 列表,给用户第一次价值点击。 - 定期(每周或 drift 触发时)调用
profile.get,根据driftDetected=true建议用户打开bestblogs-profile setup重新调整。