| name | tyc-supply-chain-brief |
| description | 供应链周报 / 高管仪表板 — 核心供应商风险摘要 + KPI + 变化信号,采购 / 运营 / 供应链 VP 每周必读 |
| category | supply |
| version | 1 |
供应链周报(高管仪表板)
触发条件
采购总监 / 供应链 VP / COO 每周例会、月度经营汇报、年度供应链风控检视时触发。
关键词:供应链周报、高管仪表板、供应商周报、采购周报、KPI、风险预警
输入要求
用户输入的采购方企业标识可能是以下三种形式之一,Step 0 会按形式分流,不要急着把用户原话当成 buyer 喂给后续步骤:
| 输入形式 | 示例 | 是否需要 L0 实体锚定 |
|---|
完整企业名(含组织形式后缀:有限公司 / 股份有限公司 / 集团 / 合伙企业 / 个体工商户 / 事务所 / 中心 等) | 北京字节跳动科技有限公司 / 腾讯科技(深圳)有限公司 | ❌ 跳过 L0,直接当 buyer |
| 统一社会信用代码(USCC) 18 位大写字母+数字 | 91110108551385082Q | ❌ 跳过 L0,直接当 buyer |
| 企业简称 / 曾用名 / 品牌名 / 模糊指代 | 字节 / 抖音 / 今日头条 / 乐视 / 阿里 | ✅ 必须先走 L0,由用户在候选中确认唯一企业,再拿 creditCode 作为 buyer |
经过 Step 0 锚定后,下文 Step 1+ 的 buyer 都指精确企业名或 USCC,调用方式不变。
执行流程
Step 0: 实体锚定(条件性 · L0 工具:search_companies)
目的:用户给的常常是简称、曾用名、模糊指代,下游所有步骤都依赖精确企业;先用 L0 把它消歧成唯一 creditCode,避免后续步骤在错主体上反复烧 token。
判定与分流:
-
若 userInput 匹配 USCC 正则 ^[0-9A-Z]{18}$ → 跳过 L0,searchKey = userInput
-
若 userInput 含组织形式后缀(有限公司 / 股份 / 集团 / 合伙企业 / 事务所 / 个体工商户 / 分公司 等)且长度 ≥ 6 → 跳过 L0,searchKey = userInput
-
否则(简称 / 曾用名 / 品牌名 / 任何看起来不完整的字符串)→ 必须走 L0:
- 调用
search_companies (searchKey: userInput)
- 在返回
items[] 中默认按 regStatus ∈ {存续, 在业, 在营, 开业} 过滤,按 regCapital 倒序取 Top 5 作为候选展示
- 候选 = 1 → 自动锚定,
searchKey = items[0].creditCode
- 候选 ≥ 2 → 暂停执行,向用户输出候选清单(
name / creditCode / regStatus / regLocation / legalPersonName)请求确认,待回复后取选定企业的 creditCode 作为 searchKey
- 候选 = 0 → 终止流程,提示"未找到匹配企业,请提供更完整的名称或换关键词"
对用户的话术(候选 ≥ 2 时):
你说的「{userInput}」匹配到 N 家企业,请确认是哪一家:
| # | 企业名称 | USCC | 状态 | 法定代表人 | 注册地 |
|---|
| 1 | … | … | 存续 | … | … |
| 2 | … | … | 存续 | … | … |
回复编号(1-N)以继续,或回复"都不是"重新输入。
Step 1: 供应商全景
get_suppliers_and_customers <buyer> — 上游供应商清单
- 合并用户指定的
vendors 名单,得到最终供应商池
Step 2: 供应商风险(并发)
对每个供应商:
get_risk_overview <vendor> — 风险总览(18 类)
get_news_sentiment <vendor> — 舆情
get_business_exception <vendor> — 经营异常
Step 3: 供应商健康度变化信号
get_historical_dishonest <vendor> — 历史失信对比近期
get_court_notice <vendor> — 近期开庭公告(在途风险)
get_case_filing_info <vendor> — 近期立案
Step 4: KPI 计算
- 本方中标记录:
get_bidding_info <buyer>
- 本方舆情:
get_news_sentiment <buyer>
输出格式
# 供应链周报 — {buyer}
> 周期: {period} · 出具: {ISO8601} · 覆盖供应商: {n} 家
## 一、供应商健康度总览
| 健康度 | 数量 | 占比 | 变化 |
|-------|------|------|------|
| 🟢 健康 | {n} | {ratio} | ↑/↓/→ |
| 🟡 关注 | {n} | {ratio} | ↑/↓/→ |
| 🔴 风险 | {n} | {ratio} | ↑/↓/→ |
## 二、本周新增风险信号(TOP 5)
| 供应商 | 信号类型 | 严重度 | 发生时间 | 建议动作 |
|--------|---------|-------|---------|---------|
| ... | 失信新增 / 开庭公告 / 经营异常 | 🔴 | YYYY-MM-DD | 暂停下单 / 加紧合同履约 |
## 三、重点供应商在途事件
| 供应商 | 案件 / 事件 | 金额 | 阶段 | 预计影响 |
|--------|-----------|------|------|---------|
| ... | 开庭 / 诉讼 / 处罚 | ... | 一审 / 二审 / 执行 | ... |
## 四、采购 KPI
| 指标 | 本周 | 上周 | 趋势 |
|-----|------|------|------|
| 供应商总数 | ... | ... | ↑/↓/→ |
| 健康占比 | ... | ... | ↑/↓/→ |
| 风险供应商数 | ... | ... | ↑/↓/→ |
| 本方中标记录 | ... | ... | ↑/↓/→ |
| 本方舆情热度 | ... | ... | ↑/↓/→ |
## 五、本周行动建议
- 🚨 立即: {供应商 X 需暂停 / 沟通}
- ⚠️ 本周: {供应商 Y 需实地访谈 / 补充合同}
- 🔵 观察: {供应商 Z 指标下行需关注}
## 六、数据覆盖说明
- 数据来源: 天眼查 OpenAPI
- 覆盖供应商: {n} 家 / 指定总数 {m} 家
- 本周期未覆盖: {n} 家(原因: 无法识别 / 非公开 / 其他)
错误处理
- 若 Step 0 候选 = 0 → 终止流程,提示"未找到匹配企业,请提供更完整的名称或 USCC",不要带着错主体往下跑
- 若 Step 0 候选 ≥ 2 而用户在合理时间内未回复 → 暂存上下文,不要自行选择第一条作为锚定(错锚定的代价远大于等待)
suppliers-and-customers 无数据 → 仅基于用户指定 vendors 输出
- 单供应商数据缺失 → 该供应商标注"[!] 数据不足",仍列入
- 全部
_empty → 输出"未采集到本期风险信号",不产出虚假结论
示例
输入: buyer = "某大型制造企业", period = "近 7 天"
新输入形态参考(Step 0 引入后的三种典型):
例 1(USCC 直通,跳过 L0):
输入: userInput = "91110108551385082Q" → Step 0 判定 USCC,searchKey = userInput,直接进 Step 1。
例 2(完整企业名直通,跳过 L0):
输入: userInput = "北京字节跳动科技有限公司" → Step 0 判定含 有限公司 后缀且长度 ≥ 6,searchKey = userInput,直接进 Step 1。
例 3(简称,必走 L0):
输入: userInput = "字节" → Step 0 调 search_companies (searchKey: "字节"),过滤存续后取 Top 5,向用户列出候选请求确认;用户回复"1"(北京字节跳动科技有限公司)→ searchKey = items[0].creditCode,再进 Step 1。
与其他 Skill 的关系
- 单供应商深度评估 →
/tyc-vendor (vendor-assessment / supply)
- 全景风险扫描 →
/tyc-supply-risk (supply,18 类长链)
- 采购支出分析 →
/tyc-spend-analysis
- 新供应商准入 →
/tyc-new-supplier