SKILL.md 20 KB

--- name: tihao

description: Upload/read a client brief and produce a business-ready blogger/creator recommendation list for Tihao AI. Use when the user asks for 提号、找博主、选号、达人名单、商务可用名单、根据 brief 推荐账号,or to run the Tihao SOP with sample/live JustOne-backed data.

Tihao Creator Sourcing

When To Use

Use this skill when the user wants to:

  • 上传或读取客户 Brief,并输出对应博主/达人名单。
  • 按提号 SOP 做“需求解析 -> 候选检索 -> 评分排序 -> 商务名单”。
  • 给商务一版可直接复核或发客户预览的达人/博主推荐名单。
  • 用 sample 模式演示流程,或用 live 模式调用公司 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.

First Report Standard

The first report a user receives must be a strong, business-ready 高质量首版名单, not a sample demo:

  • Default the first round to 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.
  • When reference links/accounts exist, also enable reference enrichment on the first round (enableVocSocialReferenceEnrichment=true plus a vocSocialToken) so resultFirstMode fully activates and homepage/video evidence is real instead of 待补.
  • Use 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.
  • If the live Parse sessionToken is missing or invalid, return the friendly 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.
  • Hold the first live list to the 强推荐 evidence bar in Core Workflow step 9 (≥2 brief hit conditions, ≥1 style/tone or reference hit, no hard-constraint or implicit-rule violation, no recent-data authenticity risk, and refined homepage evidence for higher-priced accounts).

User Experience

Keep user input natural. The user can say:

  • “读取这个 brief,给我一版可直接发客户的高质量博主名单。”(默认走 live + resultFirstMode 高质量首版)
  • “用 live 小规模检索,找小红书敏感肌博主。”
  • “先用 sample 跑通提号 SOP。”(仅当用户明确要演示/无消耗时才用 sample)
  • “客户说不要硬广,偏素人感,记到下次。”
  • “Brief 里只写精致生活/时尚穿搭,我再补一段产品介绍和客户聊天记录,帮我拆方向提号。”

Do not force the user to know collectionMode, sessionToken, keywordLimit, company, or output paths. Infer safe defaults:

  • Normal brief-to-list requests, including “读取 brief 出博主名单 / 提号 / 找博主 / 选号 / 商务可用名单 / 高质量名单 / 可直接发客户的名单”: treat as the 高质量首版 — 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.
  • Phrases like “用 live 小规模检索出博主名单”, “真实跑”, “真实数据”, “调用接口”, “JustOne-backed”, or “小规模检索” must be treated as live mode.
  • Use collectionMode=sample only when the user explicitly asks for sample, 演示, 无消耗, 不用真实数据, or “先跑通 SOP”.
  • If live credentials are missing, return the friendly token/open/recharge state; do not silently fall back to sample unless the user explicitly asks for sample or sets allowSampleFallback=true.
  • If a brief file path is given, pass it as brief.
  • If the user provides product intro, product description, customer chat records, or conversation snippets, pass them as productIntro / productContext and chatRecords / customerChat; do not ask the user to merge them into the Brief manually.
  • If feedback is given after a list, call tihao_preference_update.
  • If the brief includes reference video links and a valid Parse sessionToken is available, enable VOC social reference enrichment before Doubao analysis so the workflow can fetch title, author, cover, video URL, subtitle, and frame resources instead of treating links as unresolved.

Core Workflow

  1. Read the brief file or brief text.
  2. Extract client/brand, category, platforms, target count, fan range, budget, style preferences, reference blogger links/accounts, exclusions, region, delivery requirements, product context, and customer-chat hidden requirements.
  3. Split requirements into three layers before sourcing:
    • Hard quantitative constraints: platform, fan range, region/city, budget, CPE/CP1/CPM, gender/fan ratio, interaction level, category, target count, exclusions.
    • Product/audience implicit rules: product use scenario, likely user gender/age/life stage, unsuitable creator types, compliance risks, and common-sense category rules such as beauty device -> female beauty/lifestyle context.
    • Tone/style evidence: reference accounts, desired content form, homepage visual quality, recent-note category consistency, persona, scene, commercial intensity, and broad-category subtype such as 港风/成熟风, 护肤/妆教/测评.
  4. For reference links/accounts:
    • Decide whether each reference can be used as a type anchor, tone anchor, both, or neither. If multiple references conflict in style, do not force a single tone standard; mark the conflict and ask a calibration question.
    • Extract the human-review dimensions used by business teams: recent 10-20 notes, cover consistency, content category, scene, persona, visual quality, title/body signals, recent update/average likes/repeated-comment risks, and video evidence when needed.
    • Classify every link as video, image_text, account_home, or unknown.
    • When a reference video exists and a Parse sessionToken is available, request VOC social reference enrichment:
      • Base URL: https://server.fmode.cn/api/voc-social
      • Auth: Authorization: Bearer <Parse sessionToken>
      • Xiaohongshu video detail path: xiaohongshu/app_v2/get_video_note_detail
      • Input can be note_id or a share link; short links may be resolved first.
    • Pass returned videoUrl, coverUrl, title, authorInfo, subtitle URLs, and frame URLs into Doubao video analysis.
    • If these resources are not available, keep 待补口播证据 / 待补帧图证据 instead of claiming ASR or frame analysis.
  5. If sample mode (only when explicitly requested), run the safe built-in sample data. Otherwise the first round is live + resultFirstMode per the First Report Standard.
  6. If live mode, call the company proxy:
    • Base URL: https://server.fmode.cn/api/voc-e-commerce
    • Auth: Authorization: Bearer <Parse sessionToken>
    • Proxy route shape: /api/voc-e-commerce/{upstreamPath}
    • Xiaohongshu creator path: xiaohongshu-pgy/api/solar/cooperator/blogger/v2/v1
    • Douyin creator path: douyin-xingtu/gw/api/gsearch/search_for_author_square/v1
  7. Prefer platform-specific sourcing paths:
    • Xiaohongshu/Pugongying: use reference-account similarity and related-account expansion when available, then re-check type and tone.
    • Douyin/Xingtu: treat Xingtu labels as a candidate entry point, not proof of fit; if recall is weak, use platform keyword search or recruitment-style replenishment guidance.
  8. Score candidates by fan fit, price fit, content/style fit, reference-style signals, recent homepage evidence, region, cooperation readiness, implicit-rule fit, and risk/exclusion hits.
  9. For strong recommendations, require evidence beyond raw platform tags:
    • At least two brief hit conditions.
    • At least one style/tone or reference hit point.
    • No hard constraint violation.
    • No obvious implicit-rule violation, such as male generic creators for a female beauty-device brief.
    • No recent-data authenticity risk such as 近30天无更新、百赞以下、重复评论/刷评.
    • For accounts priced above roughly 300 RMB, homepage cover/visual evidence should be clear, unified, and refined enough to support the quote.
  10. Review provider status fields:
    • referenceEvidenceStatus.providerStatus
    • evidenceStatus.providerStatus
    • Treat non-ok provider states as补证未完成, not as sourcing failure.
  11. Return the report body in chat. Also save Markdown, JSON, and CSV files.
  12. Ask the report's calibrationQuestions before producing a second-round list.
  13. Accept business/client feedback and update preference memory.

MCP Tools

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.

Typical Tool Calls

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:

  • 在 live 模式下,未显式配置任何 evidence/视频 provider 时,工具会自动以 https://api.fmode.cn + /v1/chat/completions + 模型 doubao-seed-2-0-pro-260215(OpenAI 兼容)发起视频/视觉分析,并复用平台 sessionToken。
  • sample/演示模式保持无消耗,不发起真实视频分析请求。
  • 因此「人设/语气/画面/口播/帧图」证据默认就是真实补出的,不再是「待补证」。
  • 若视频分析未授权或额度不足,工具返回友好的「社媒分析服务充值」提示+链接,不暴露底层 403/鉴权细节。

仅当客户要走自有视频分析通道时,才显式覆盖默认:

{
  "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": "客户更喜欢素人感和真实体验,不要硬广和泛美妆号"
}

Token And Recharge Handling

Live mode may use any of these token sources:

  • request field tihaoToken
  • request field sessionToken
  • request field vocToken
  • .env.local in the current workspace
  • TIHAO_SESSION_TOKEN
  • VOC_ECOMMERCE_TOKEN
  • VOC_TOKEN
  • ~/.claude/tihao-credentials.json
  • ~/.claude/voc-credentials.json

Never 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:

  • No token: return needs_token, show the open/recharge link, keep errors=[].
  • 403 or quota issue: return needs_recharge, show the 「社媒分析服务充值」 open/recharge link, keep errors=[]. 对外只说「社媒分析服务」,不暴露底层供应商名。
  • 401 or invalid token: return needs_valid_token, ask for a valid sessionToken, keep errors=[].
  • Normal run: return ok.

Output Standard

The chat answer should include:

  • Extracted brief summary.
  • Candidate counts: total, 强推荐, 备选, 需复核, 已剔除.
  • A business-ready list with platform, account name, fans, quote, reason, risk, and link.
  • Reference/evidence provider status; if补证 failed or was skipped, say it clearly without implying the provider was live.
  • Excluded items only for internal review; do not include them in the business-ready list.
  • Clear review advice.
  • 下一轮校准问题 and structured nextActions.
  • File paths for Markdown/JSON/CSV outputs.

Do not return only a file path. 商务 must be able to read the list in chat.

Provider Status

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=[]。

Memory

Use preference memory for:

  • Preferred styles: 素人感, 真实体验, 成分党, 通勤生活.
  • Blocked styles: 硬广, 泛美妆, 医美, 虚假宣传.
  • Client-specific pricing notes.
  • Blocked creators or competitors.
  • Preferred reference accounts or accounts that should be avoided.
  • Business-user personal preferences: a user's preferred tone, homepage quality threshold, risk tolerance, and review habits.
  • Client/brand preferences: recurring client dislikes, accepted creator types, reference-account standards, and hidden category rules.
  • Feedback labels from manual review tables: 可直接发客户, 商务复核, 跑偏, 硬性规则违规, 调性不符, 参考账号不像, 主页质感不符, 可投但需补证.

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:

  • Account-level: specific creator should be kept, downgraded, reviewed, or blocked.
  • Brief-level: the current brief was misunderstood or needs more constraints.
  • Personal-level: this business user prefers a style or review standard.
  • Client/brand-level: this client repeatedly accepts or rejects a pattern.
  • Team-rule-level: repeated evidence suggests a general category rule.

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

  • references/user-workflow.md
  • references/live-mode.md
  • references/output-format.md
  • ../../docs/reference-evidence-roadmap.md
  • ../../docs/live-provider-integration-runbook.md
  • ../../docs/tihao-experience-optimization-plan.md