--- name: tihao
Use this skill when the user wants to:
voc-e-commerce 代理接口。Do not use WebSearch as a substitute for installed 提号/电商数据 tools. For real collection, prefer MCP tool tihao_brief_sourcing_run in live mode.
The first report a user receives must be a strong, business-ready 高质量首版名单, not a sample demo:
collectionMode=live with resultFirstMode=true. This is the 高质量 path: it expands reference-aware live recall, batch-analyzes more pre-ranked candidates, re-ranks after evidence, and surfaces both evidence boost and evidence risk.enableVocSocialReferenceEnrichment=true plus a vocSocialToken) so resultFirstMode fully activates and homepage/video evidence is real instead of 待补.collectionMode=sample ONLY when the user explicitly asks for sample, 演示, 无消耗, 不用真实数据, or “先跑通 SOP”. Never run sample just to “展示流程/show the flow”, and never run sample only because a token is missing.needs_token / needs_valid_token state and ask the user for a valid sessionToken. Do not silently fall back to sample unless the user explicitly approves sample or sets allowSampleFallback=true.Keep user input natural. The user can say:
Do not force the user to know collectionMode, sessionToken, keywordLimit, company, or output paths. Infer safe defaults:
collectionMode=live, resultFirstMode=true, and enable reference enrichment when reference links/accounts exist. Only narrow to a minimal keywordLimit=1 / pagesPerKeyword=1 probe when the user explicitly asks for a 小规模/省额度 run.collectionMode=sample only when the user explicitly asks for sample, 演示, 无消耗, 不用真实数据, or “先跑通 SOP”.allowSampleFallback=true.brief.productIntro / productContext and chatRecords / customerChat; do not ask the user to merge them into the Brief manually.tihao_preference_update.video, image_text, account_home, or unknown.https://server.fmode.cn/api/voc-socialAuthorization: Bearer <Parse sessionToken>xiaohongshu/app_v2/get_video_note_detailnote_id or a share link; short links may be resolved first.tihao_api_call):
douyin.fetch_one_video_by_share_url 一步拿到视频完整数据和作者 sec_user_id。douyin.get_sec_user_id 解析出 sec_user_id,再用 douyin.user_profile / douyin.user_posts 补主页资料与近 10-20 条作品证据,douyin.video_comments 查互动真实性。douyin.xingtu.get_xingtu_kolid_by_sec_user_id(或客户只给抖音号时用 get_xingtu_kolid_by_unique_id)把账号换成星图 kolId,再当 oAuthorId 调星图详情接口。videoUrl, coverUrl, title, authorInfo, subtitle URLs, and frame URLs into Doubao video analysis.待补口播证据 / 待补帧图证据 instead of claiming ASR or frame analysis.resultFirstMode per the First Report Standard.https://server.fmode.cn/api/voc-e-commerceAuthorization: Bearer <Parse sessionToken>/api/voc-e-commerce/{upstreamPath}xiaohongshu-pgy/api/solar/cooperator/blogger/v2/v1douyin-xingtu/gw/api/gsearch/search_for_author_square/v1douyin.search_user / douyin.search_video keyword search in the Douyin APP ecosystem), then bridge promising accounts back to Xingtu via kolId conversion for quote/performance data, or fall back to recruitment-style replenishment guidance.referenceEvidenceStatus.providerStatusevidenceStatus.providerStatusok provider states as补证未完成, not as sourcing failure.calibrationQuestions before producing a second-round list.Prefer MCP tools when available:
tihao_brief_sourcing_run: main brief-to-blogger-list workflow.tihao_token_check: check live token availability without echoing secrets.tihao_preference_update: save user feedback as sourcing memory.tihao_api_search: 发现/检索已登记的电商数据接口清单(抖音/小红书 搜索 + 详情),返回 id、proxyPath、必填参数、标签。需要 CPM/CPE、商单数、阅读/互动/播放中位数等媒体详情/绩效数据时,先用它找到对应详情接口。tihao_api_doc: 按 id 或 proxyPath 读取某个接口的完整参数说明与调用模板,调详情接口前用它确认怎么入参。tihao_api_call: 实际调用某个接口(搜索或详情)。用于第二波详情补全:把搜索拿到的达人 id 传给详情接口换取绩效数据;也用于小红书素人/非蒲公英接口(channel=social)。计费优先走 NewAPI(fmode-api)sk- token,鉴权失败自动回退平台 sessionToken。失败时返回可执行状态(needs_token / needs_valid_token / needs_recharge / needs_permission / needs_input / upstream_unstable),不暴露底层鉴权/供应商细节。搜索/列表接口本身不返回绩效数据(CPM/CPE、商单数、阅读/互动/播放中位数、抖音短 id 等)。这些字段要靠「第二波」详情接口按需补全。第二波不写死在主流程里,而是登记在接口清单中,由你(Claude Code)自由编排:
mcp/catalog/voc-e-commerce-endpoints.jsonmcp/catalog/params/douyin.json、mcp/catalog/params/xiaohongshu.json两波工作流:
star_id。userId(及短 id redId)。oAuthorId,取值 = 搜索结果的 star_id。userId,取值 = 搜索结果的 userId。典型用法:先 tihao_api_search(按 platform + 关键词如 cpm/商单/中位数 检索)→ 用 tihao_api_doc 看清入参 → 用 tihao_api_call 传达人 id 取回 CPM/CPE、商单数、中位数等,再合并进名单。所有接口共用同一个 voc-e-commerce 代理与同一个平台 sessionToken,对外只称「电商数据服务/星图·蒲公英」,不暴露任何底层供应商名。
{ "id": "douyin.author_cp_info", "params": { "oAuthorId": "<搜索返回的 star_id>" } }
{ "id": "xiaohongshu.kol_cost_effective", "params": { "userId": "<搜索返回的 userId>" } }
蒲公英(PGY)只覆盖「商单博主」(CPM/CPE/商单等绩效,走电商网关 channel=ecommerce)。要搜素人/非蒲公英的小红书笔记、用户、评论、话题,用 channel=social 的接口——它们走公司 voc-social 全量代理网关(上游全量代理,不存在「电商网关 404」问题),同一套 tihao_api_search / tihao_api_doc / tihao_api_call 流程,tihao_api_call 会按 endpoint 的 channel 自动选 voc-social 网关。
xiaohongshu.search_notes(xiaohongshu/app/search_notes,必填 keyword、page)。xiaohongshu.web_v3.fetch_search_users(必填 keyword)。xiaohongshu.note_detail(note_id)、xiaohongshu.note_comments(note_id)。xiaohongshu.user_info(user_id)、xiaohongshu.user_notes(user_id)。话题笔记:xiaohongshu.topic_notes(page_id、first_load_time)。
{ "id": "xiaohongshu.search_notes", "params": { "keyword": "敏感肌", "page": 1 } }
{ "id": "xiaohongshu.user_notes", "params": { "user_id": "<笔记/搜索返回的 user_id>" } }
素人线以 app 接口为主(已验证);若需要 web 端字段可用 web_v3.* 备用接口,个别 web_v3 接口需按文档补齐 xsec_token 等参数。清单里没有的素人接口,可直接用 tihao_api_call 传 rawPath + channel: "social" 调用。
星图只覆盖「星图入驻达人」(报价/CP/商单,走电商网关 channel=ecommerce)。要在抖音 APP 生态里搜素人/非星图账号与视频、解析参考账号/参考视频链接,用 channel=social 的抖音接口——同走公司 voc-social 全量代理网关,同一套 tihao_api_search / tihao_api_doc / tihao_api_call 流程:
douyin.search_user(必填 keyword,返回 sec_user_id 与抖音号 unique_id)。douyin.search_video(必填 keyword);意图不明时用 douyin.search_general 综合搜索。douyin.get_sec_user_id(主页链接→sec_user_id)、douyin.fetch_one_video_by_share_url(视频分享链接→视频数据+作者)。douyin.user_profile、douyin.user_posts、douyin.video_detail、douyin.video_comments(sec_user_id / aweme_id)。桥接星图详情线:douyin.xingtu.get_xingtu_kolid_by_sec_user_id、douyin.xingtu.get_xingtu_kolid_by_unique_id(账号→星图 kolId→当 oAuthorId 查报价/CP/商单)。
{ "id": "douyin.search_user", "params": { "keyword": "港风穿搭" } }
{ "id": "douyin.fetch_one_video_by_share_url", "params": { "share_url": "https://v.douyin.com/xxxxxxx/" } }
注意:抖音搜索接口是 POST body 传参(工具会按清单自动组装);清单里没有的抖音素人接口,同样可用 tihao_api_call 传 rawPath + channel: "social" 调用。
Default first report (live + result-first 高质量首版). Use this shape for normal brief-to-list requests:
{
"collectionMode": "live",
"brief": "E:\\workspace\\tihao-ai\\dha_brief.xlsx",
"resultFirstMode": true,
"enableVocSocialReferenceEnrichment": true,
"vocSocialToken": "<Parse sessionToken>",
"videoAnalysisBaseUrl": "https://api.fmode.cn",
"videoAnalysisModel": "doubao-seed-2-0-pro-260215",
"videoAnalysisToken": "<runtime model token>"
}
Sample (explicit demo only — only when the user asks for 演示/无消耗/不用真实数据/先跑通 SOP):
{
"collectionMode": "sample",
"brief": "E:\\workspace\\tihao-ai\\docs\\示例Brief-新锐护肤品牌种草合作.md"
}
Live small run (省额度探针,仅当用户明确要小规模时):
{
"collectionMode": "live",
"brief": "E:\\workspace\\tihao-ai\\dha_brief.xlsx",
"keywordLimit": 1,
"pagesPerKeyword": 1
}
Multi-input Brief with product and customer chat:
{
"collectionMode": "live",
"briefText": "找精致生活/时尚穿搭类账号,小红书 4 人,预算 300-3000。",
"productIntro": "港风通勤女装,偏成熟风、轻熟高级感。",
"chatRecords": [
"客户说不要纯自拍,要看最近一个月有更新。",
"如果多篇都是同一个人评论,怀疑刷评,先不要强推。"
],
"keywordLimit": 1,
"pagesPerKeyword": 1
}
Reference baseline cache:
{
"collectionMode": "sample",
"brief": "E:\\workspace\\tihao-ai\\dha_brief.xlsx",
"referenceBaselinePath": "E:\\workspace\\tihao-ai\\output\\dha-tihao-poc\\reference_baseline.json"
}
社媒分析服务参考账号补证(reference enrichment):
{
"collectionMode": "sample",
"brief": "E:\\workspace\\tihao-ai\\dha_brief.xlsx",
"socialAnalysisBaseUrl": "https://server.fmode.cn/api/voc-social",
"socialAnalysisToken": "<Parse sessionToken>"
}
默认情况下,社媒分析(参考账号主页、近作、互动中位数补证)复用平台 sessionToken,无需客户单独配置;只有在客户要走自有数据通道时才需要显式传 socialAnalysisBaseUrl。若社媒分析服务未开通或余额不足,工具会返回 needs_recharge 状态并附带「社媒分析服务充值」链接,对外只称「社媒分析服务」,不暴露任何底层供应商名。
VOC social reference video enrichment with Parse sessionToken:
{
"collectionMode": "sample",
"brief": "E:\\workspace\\tihao-ai\\dha_brief.xlsx",
"referenceLinks": [
{
"url": "http://xhslink.com/o/2fg3MzG2Iau",
"platform": "xiaohongshu",
"contentType": "video"
}
],
"vocSocialToken": "<Parse sessionToken>",
"enableVocSocialReferenceEnrichment": true,
"videoAnalysisBaseUrl": "https://api.fmode.cn",
"videoAnalysisModel": "doubao-seed-2-0-pro-260215",
"videoAnalysisToken": "<runtime model token>"
}
当用户问参考视频详情(视频 URL、字幕、封面)能否补出时走这条路径。统一通过公司「社媒分析服务」补出,对外只称「社媒分析服务」,不要对客户暴露任何底层供应商名称。
Result-first live run:
{
"collectionMode": "live",
"brief": "E:\\workspace\\tihao-ai\\dha_brief.xlsx",
"vocSocialToken": "<Parse sessionToken>",
"enableVocSocialReferenceEnrichment": true,
"resultFirstMode": true,
"videoAnalysisBaseUrl": "https://api.fmode.cn",
"videoAnalysisModel": "doubao-seed-2-0-pro-260215",
"videoAnalysisToken": "<runtime model token>"
}
Use resultFirstMode only when the user explicitly prioritizes final list quality over cost. It expands reference-aware live recall, analyzes more pre-ranked candidates in batches, re-ranks after evidence, and surfaces both video evidence boost and evidence risk penalty.
Multimodal evidence cards:
{
"collectionMode": "sample",
"brief": "E:\\workspace\\tihao-ai\\dha_brief.xlsx",
"multimodalEvidenceBaseUrl": "https://<evidence-card-provider>",
"evidenceProviderToken": "<optional token>"
}
视频/视觉分析(默认即用,无需客户配置):
真实视频分析默认走公司豆包模型,客户无需自填任何 baseUrl/Token:
https://api.fmode.cn + /v1/chat/completions + 模型 doubao-seed-2-0-pro-260215(OpenAI 兼容)发起视频/视觉分析,并复用平台 sessionToken。仅当客户要走自有视频分析通道时,才显式覆盖默认:
{
"collectionMode": "live",
"brief": "E:\\workspace\\tihao-ai\\dha_brief.xlsx",
"videoAnalysisBaseUrl": "https://<custom-video-analysis-url>",
"videoAnalysisModel": "doubao-seed-2-0-pro-260215",
"videoAnalysisToken": "<optional token>"
}
默认模型 ID 为 doubao-seed-2-0-pro-260215。Never hardcode the token from chat or screenshots; read it from runtime input or environment variables.
当 baseUrl 为 https://api.fmode.cn 时按 OpenAI 兼容 chat completions(/v1/chat/completions)调用;其它自定义 provider URL 默认走 evidence-card 合同接口,除非传 videoAnalysisMode: "openai_chat"。可用 TIHAO_DISABLE_DEFAULT_VIDEO_ANALYSIS=true 关闭默认视频分析。
Preference memory:
{
"message": "客户更喜欢素人感和真实体验,不要硬广和泛美妆号"
}
计费已迁移到 NewAPI(fmode-api)。调用任何代理接口时优先用 NewAPI 的 sk- token 发 Authorization: Bearer <sk- token>;当 sk- token 鉴权失败(401,例如服务端尚未迁移 / 该号未入仓 / token 未被接受)时,自动回退用平台 sessionToken 重试一次。两者都没有才返回 needs_token。
NewAPI(fmode-api)sk- token 来源(优先):
newapiToken(或 fmodeApiKey)NEWAPI_TOKEN / FMODE_API_KEY(含当前工作区 .env.local)~/.claude/voc-credentials.json / ~/.claude/tihao-credentials.json 里的 fmodeApiKey~/.fmode/config.json 的 newapiToken / fmodeApiKey~/.claude/settings.json 的 env.ANTHROPIC_AUTH_TOKEN(Claude Code 用户默认就配在这里:sk- 开头、且 ANTHROPIC_BASE_URL 指向 api.fmode.cn 时自动采纳;装完技能通常无需再手动配置)平台 sessionToken 来源(回退 + 充值页 userId 解析):
tihaoTokensessionTokenvocToken.env.local in the current workspaceTIHAO_SESSION_TOKENVOC_ECOMMERCE_TOKENVOC_TOKEN~/.claude/tihao-credentials.json~/.claude/voc-credentials.jsonNever echo tokens in chat, report files, logs, or errors.
Provider token sources may include evidenceProviderToken, multimodalEvidenceToken, doubaoVisionToken, videoAnalysisToken, TIHAO_EVIDENCE_TOKEN, MULTIMODAL_EVIDENCE_TOKEN, DOUBAO_VISION_TOKEN, VIDEO_ANALYSIS_TOKEN, or ANTHROPIC_AUTH_TOKEN. Treat all of them as secrets.
社媒分析服务(参考账号补证)可用 socialAnalysisToken、vocSocialToken 或 VOC_SOCIAL_TOKEN,默认也复用平台 sessionToken;这些都是 Parse sessionToken,绝不能回显。对外只称「社媒分析服务」。
Friendly states(按 HTTP 状态码区分):
needs_token。先自救:读取 ~/.claude/settings.json 的 env.ANTHROPIC_AUTH_TOKEN(sk- 开头)并用 FMODE_API_KEY=sk-… / 入参 newapiToken 重试;仍读不到才回退 r: 平台 sessionToken,充值只作最后兜底(仅真 402)。keep errors=[].needs_valid_token, ask for a valid NewAPI sk- token 或平台 sessionToken, keep errors=[].needs_recharge, 展示 fmode-api 余额充值链接 https://app.fmode.cn/dev/studio/?balance=fmodeapi(携带 ?balance=fmodeapi 会自动打开余额充值弹窗),keep errors=[].needs_permission, 提示联系服务方确认账号状态或权限,不引导充值, keep errors=[].ok.⚠️ 不要把 403/401 一律说成「余额不足」。只有 402 才是真的没钱要充值;403 是权限、401 是 token 问题。完整对照表、真实报文样例与处理纪律见
references/error-codes.md。
社媒分析服务(参考账号补证)那条线仍沿用其原有的「社媒分析服务充值」提示。
The chat answer should include:
下一轮校准问题 and structured nextActions.Do not return only a file path. 商务 must be able to read the list in chat.
When using reference or multimodal providers, inspect structured status fields instead of relying only on warnings:
ok: provider data was loaded.not_requested: no provider URL/token was requested.missing_base_url: user requested enrichment but no provider URL is configured.network_error: provider could not be reached.unauthorized_or_quota: token, permission, or quota problem.http_error: provider returned a non-OK HTTP status.empty_result: provider responded but returned no usable baselines/cards.parse_error: provider response could not be parsed.If provider status is not ok, keep the base sourcing list usable, but phrase the result as “待补证/待复核”.
Do not claim 社媒分析服务, ffmpeg, ASR, or Vision has completed unless the corresponding provider gate passed.
needs_recharge: 社媒分析服务未开通或余额不足,应展示「社媒分析服务充值」链接,保持 errors=[]。Use preference memory for:
Treat explicit client negatives as hard constraints. If the user says “不要某账号 / 避开某账号 / 拉黑某账号 / 不要硬广”, update preference memory and keep matching creators out of the business-ready list unless the user later changes that preference.
First-round outputs are候选假设, not final投放名单. Use feedback to calibrate the next round.
Use calibrationQuestions to drive the next round. Good follow-up questions should be concrete: whether to补量, whether to prioritize 社媒分析服务 参考账号补证, whether to add evidence cards, and whether to keep or update saved exclusions.
When the user gives business experience feedback or optimization suggestions, classify the feedback before saving it:
Do not promote a personal preference into a team-wide hard rule unless repeated feedback supports it. A good response should state what was recognized, what will change in the next run, whether it is saved as personal/client memory, and what metric will verify improvement.
references/error-codes.md — 错误码速查(401/402/403 对照、真实报文、处理纪律;区分 403≠余额不足)references/user-workflow.mdreferences/live-mode.mdreferences/output-format.md../../docs/reference-evidence-roadmap.md../../docs/live-provider-integration-runbook.md../../docs/tihao-experience-optimization-plan.md