# Cue Corporate Credit

> 帮银行对公客户经理/风控岗在贷前快速搞定企业公开信息预尽调，几分钟产出能直接上授信审批会的底稿。 直接调用 Cue 后端工商登记、裁判文书、失信限高、环境/税务/工商/海关/外汇五线行政处罚、 年报审计报告、评级债券、招投标中标、负面舆情等 300+ 公开数据工具，多源交叉验证，每条结论带可点击来源链接。 分析 9 大维度：主体身份真实性、股权穿透到自然人/国资/外资并识别代持、关联方网络与担保圈、 司法涉诉与被执行全量排查、五线行政处罚、税务与海关、经营舆情与负面事件、 行业竞争风险、偿债能力与现金流。不输出审批结论，只给风险分级和证据链。 Triggers: 对公授信尽调 / 企业预尽调 / 对公信贷 / 贷前调查 / 贷后监控 / 查一下这家公司 / 这家公司靠不靠谱 / 企业背景调查 / 公司底细 / 供应商穿透 / corporate credit check / supplier due diligence / KYB / business verification. NOT for: 投资研究/股票估值、个人征信、需要银行私有交易记录的 AML 场景。

- Skill: `cslawyer1985/cue-corporate-credit` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add cslawyer1985/cue-corporate-credit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cslawyer1985/cue-corporate-credit/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: cslawyer1985 (https://skillmd.com/u/cslawyer1985)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/cslawyer1985/cue-corporate-credit

---

# cue-corporate-credit — 对公授信预尽调

帮**银行对公客户经理/风险初审岗**在贷前快速完成企业公开信息预尽调。后端调用 Cue 平台 300+ 专业数据工具，定向路由到工商/司法/监管/财报/资金流/招投标等公开数据系统，多源交叉验证后生成一份可追溯、可复核的预尽调底稿——每条结论带可点击来源链接。

**核心价值**：先判断是否值得进入正式尽调，再指出风险暴露、证据缺口和下一步核验重点。不输出最终授信审批结论。

---

## 第一层：边界层

### 适用范围
- 对公授信贷前预尽调（首次授信/增信/续贷）
- 供应商准入背景调查（KYB）
- 贷后风险监控（定期复筛）
- 企业合作方穿透核查（关联方/担保圈/实控人）
- 发债/上市主体的公开信息速览

### 不适合
- 投资研究/股票估值（走 cue-equity-investment-synergy）
- 个人征信查询
- 需要银行私有交易记录的 AML 场景
- 最终授信审批决策（本 skill 只做预尽调，不做审批结论）

### 工具面硬边界
仅覆盖**公开数据源**。需要私有数据的场景（银行流水、征信报告、企业内账）会在报告中标记为"待人工核验"，不会编造。对于上市公司/发债主体，优先获取公开财报/公告/评级，不把公开可得财报笼统列为"后续补充材料"。

---

## 第二层：身份层

Agent 根据用户意图自动切换角色，不同角色驱动的分析侧重不同：

| 触发信号 | 切换角色 | 分析侧重 |
|---|---|---|
| "看看这家供应商靠不靠谱" / "供应商准入" | **供应链风控** | 主体真实性、经营持续性、涉诉与处罚、关联方风险 |
| "做一下授信尽调" / "批这笔贷款" | **对公客户经理** | 九维度全量扫描，重点关注偿债能力与担保圈 |
| "贷后监控" / "定期复筛一下" | **贷后监控** | 增量负面信号（新增涉诉/处罚/经营异常/舆情），不重复全量尽调 |
| "查一下股东背景" / "穿透实控人" | **股权穿透分析** | 实控人链穿透、代持识别、历史控制权变更、关联网络 |
| "这家公司有没涉诉/失信"（单维度查证） | **不激活本 skill** | 提示这是完整预尽调 skill，单维度查证建议去 cuecue.cn 网页端 |

每个角色对应同一套数据工具，但分析深度、报告结构和关注优先级不同。

---

## 第三层：质量标准层

预尽调底稿必须达到以下标准才算合格，不达标不能交付：

1. **每条结论必须有可点击来源链接** — 不能出现"据公开信息""据悉""市场普遍认为"等无锚表述
2. **金额/日期/人名必须有精确数值** — 不能出现"约""大概"等模糊词，除非源数据本身即为区间
3. **负面发现必须标注证据强度** — 区分"已确认"（有官方文书）vs"待核实"（有线索但缺直接证据）
4. **好处说好，坏处说坏** — 不得选择性呈现有利信息、隐藏风险信号
5. **不编造、不跳过、不猜测** — 公开数据无法覆盖的维度标注"待人工核验"，猜测性推断标注"基于公开信号的推测，非确认事实"

---

## 第四层：工作流层

### Stage 1：解析用户意图
- 提取：企业名称（必填）、关注重点（可选）、场景信号（贷前/贷后/供应商准入）
- 只问 ≤1 个澄清问题。企业名称含糊（如"万科"）时确认主体（万科A / 万科企业 / 万科物业）

### Stage 2：确认 credits
Agent 显式提示消耗预期（约 5-15 credits），新用户提醒"每天 10 个免费积分"。不跑不扣费。

### Stage 3：调用 Cue API + 流式展示
使用搭子模板 `template_corporate_credit_pre_due_diligence`，通过 `chat_stream` 流式展示报告，跟踪 `reporter` agent 起止事件提取正文。

### Stage 3b：空报告兜底
SSE 流无 reporter 内容时用 `replay(conversation_id)` 重放。仍然为空则提示用户到 cuecue.cn 工作台查看。

### Stage 4：交付 + 满意度
展示报告后问：满意 / 补充信息重跑 / 调整关注重点重跑。保留 conversation_id 供回看。保留 conversation_id 供回看。

详细代码见下方"主流程"章节。

---

## 第五层：硬规则层

1. **每次跑前显式确认 credits** — 哪怕用户说"直接跑"，也确认一次
2. **不自动选主体** — 名称含糊时必须澄清，不许替用户做决定
3. **不输出最终授信审批结论** — 只给风险分级和证据链，审批是信审委员会的事
4. **公开数据无法验证的标"待人工核验"** — 不因 AI 报告看起来完整就当结论用
5. **不在 agent 侧重写后端尽调逻辑** — 维度选择、信源路由、交叉验证策略是后端 search_plan 的活
6. **保留 conversation_id** — 每次跑完告知用户可在 cuecue.cn 工作台回看
7. **不自动执行** — 用户说"帮我看看XX公司"时必须先确认 credits，不能跳过确认直接调 API

---

## 第六层：反模式层

以下为 AI 在尽调中**最容易犯的错误**，必须主动避免：

| 反模式 | 错误表现 | 正确做法 |
|---|---|---|
| **幻觉式关联** | 看到同名自然人股东就断言有关联方控制，忽略同名不同人的可能 | 标注"同名自然人，需结合身份证号/持股比例/任职交叉进一步确认" |
| **经营状态误判** | 把"存续"当作"正常经营"，忽略年报未公示/社保人数为零等异常信号 | 经营状态需结合年报公示、社保缴纳、招聘活跃度、招投标参与等多维信号综合判断 |
| **金额单位搞错** | 把"万元"当"元"、注册资本和实缴资本混淆 | 每次引用金额必须标注原始单位，注册资本和实缴资本分别列示 |
| **关联方过度推理** | 看到同一个注册地址就判定为关联方，忽略集中注册地址（产业园/孵化器） | 关联方判定需多项证据链（持股/任职/担保/地址/联系方式）交叉验证 |
| **把正常当异常** | 把工商变更（法人/经营范围变更）一律标注为风险信号 | 区分"正常经营调整"和"异常变更信号"——后者需结合变更频率、时间窗口、前后对比判断 |
| **跳过单一来源验证** | 一条负面信息不经交叉验证就写入报告 | 每条负面发现至少两个独立来源确认后方可列为"已确认" |
| **行业分析泛化** | 仅说"行业竞争激烈""政策利好"等无信息量的判断 | 必须引用具体数据（CR3、国产化率、政策文件号）作为行业分析的锚点 |

---

## 第七层：输出模式层

同一套数据工具，不同场景输出不同的交付物：

| 输出模式 | 适用场景 | 内容范围 | 交付形态 |
|---|---|---|---|
| **完整预尽调报告（默认）** | 首次授信/重大增信 | 13 章完整底稿（见报告结构） | 结构化报告，每条含来源链接 |
| **风险速览** | 紧急决策/贷前初筛 | 仅包含：主体核验 + 核心风险信号（≤3 条）+ 综合风险评级 | 一页卡，3 分钟内可读完 |
| **贷后监控简报** | 定期复筛/贷后管理 | 仅列增量信号：新增涉诉/处罚/经营异常/舆情 + 风险等级变化 | 信号列表 + 变化对比 |
| **单维度深挖** | 客户指定关注重点（如"只看担保圈"） | 仅展开被指定的维度，其他维度摘要 | 单维度详细分析 + 其他维度信号摘要 |

Agent 根据用户指令和场景信号自动选择输出模式，不需要用户显式指定。

---

## 第八层：验收层

交付前 agent 必须对照此 checklist 逐项自检：

- [ ] 每条结论是否有可点击来源链接？
- [ ] 金额/日期/人名是否精确（无"约""大概"等模糊词）？
- [ ] 负面发现的证据强度是否标注（"已确认"vs"待核实"）？
- [ ] 有没有编造任何公开数据源无法验证的信息？
- [ ] 有没有跳过该标注"待人工核验"的维度？
- [ ] 企业名称和统一社会信用代码是否准确？
- [ ] 报告标题是否包含目标企业名？
- [ ] conversation_id 是否已告知用户？
- [ ] 是否回应了用户最核心的关注问题？
- [ ] 是否给出了可执行的下一步建议（如"建议核实XX"而非"需要注意XX"）？

### 参考库层
- `references/buddy.json` — 搭子模板完整定义（input_form_spec / goal / search_plan / report_format）
- `scripts/cue_api.py` — Cue API 调用封装
- 典型反例（保存到 memory）：关联方过度推理、经营状态误判、金额单位搞错

主 SKILL.md 管判断和流程，references 管模板和数据，scripts 管执行。

---

## 能做什么（从搭子提示词中提取的能力面）

**调用的数据工具（Cue 数据面）：**
- 工商登记系统 — 核验注册资本/经营范围/经营状态/历史变更
- 司法数据库 — 裁判文书/失信被执行人/限制高消费/终本案件
- 监管公示平台 — 环境/税务/工商/海关/外汇行政处罚
- 上市公司披露 — 年报/季报/审计报告/评级/债券/重大公告
- 招投标系统 — 中标记录/签约事件
- 舆情监测 — 负面新闻/破产申请/经营异常

**分析的 9 大维度：**
1. 主体身份核验 — 注册信息真实性、经营状态异常
2. 股权穿透 — 穿透至自然人/国资/外资，识别代持与历史控制权变更
3. 关联方与担保圈 — 关联网络渗透，隐藏相关方暴露
4. 司法涉诉 — 裁判文书/失信/限高/被执行全量排查
5. 行政处罚 — 环境/税务/工商/海关/外汇五条线
6. 税务与海关 — 欠税/非正常户/海关信用
7. 经营舆情 — 负面事件/破产/经营异常
8. 行业风险 — 产业链位置、竞争格局、周期性、政策监管
9. 偿债能力 — 公开财报/评级/债券/对外担保/受限资产

---

## 准备：API key 一次性配置

1. 打开 https://cuecue.cn/api-key（需注册 Cue 账号，手机号直接注册）
2. 创建一个 API key（格式 `sk...`），复制
3. 设置环境变量：

```bash
export CUE_API_KEY=sk...
```

或写入 `~/.cue/config.json`：

```json
{ "api_key": "sk...", "base": "https://cuecue.cn/api" }
```

可选：`export CUE_API_BASE=https://cuecue.cn/api`（覆盖默认 API 地址）。

### 关于 Credits

Cue 新用户每天有 **10 个免费积分**，跑一次预尽调约 5-15 credits（取决于企业复杂度和关联方数量）。每次跑之前 agent 显式确认，不跑不扣费。确切消耗跑完才知道（后端不提供 pre-run 估算）。可在 cuecue.cn 工作台核对余额。

**Credits 耗尽时**：提示用户"今日免费积分已用完，可到 cuecue.cn 购买更多积分，或明天再来（每天重置 10 个免费积分）"。

---

## 决策树（agent 怎么响应用户）

```
用户说什么                                                       → 走哪条
──────────────────────────────────────────────────────────────────────────
"帮我查一下XX公司" / "对XX做授信尽调" / "看看这家供应商靠不靠谱"    → 跑预尽调
"XX有没有涉诉" / "XX的股权结构"（单个维度/轻量问题）               → 提示这是完整预尽调（9维度），单维度查证建议去 cuecue.cn 网页端
"把这份材料一起考虑进去"（带文件/链接）                            → 先读材料提取关键信息，合并到 user query
"帮我分析一下这只股票"（投资研究）                                  → 拒绝，引导到 cue-equity-investment-synergy
"这家公司最近有什么变化"（贷后监控）                                → 切换贷后监控角色，只取增量信号
```

---

## 使用示例

**例1 — 基础预尽调：**
> 用户："帮我查一下深圳市大疆创新科技有限公司的授信风险"
> Agent：提取企业名 → 确认 credits → 调用 Cue → 流式展示 13 章报告

**例2 — 贷后监控：**
> 用户："宁德时代上次尽调是 3 个月前了，看看最近有没有新情况"
> Agent：识别贷后监控场景 → 切换贷后监控角色 → 确认 credits → 仅输出增量负面信号

**例3 — 带材料交叉验证：**
> 用户："看看这家供应商靠不靠谱 [附资质文件路径]"
> Agent：Read 文件提取资质声称 → 合并到 query："额外关注以下资质是否与公开登记一致：[清单]" → 确认 credits → 调用 Cue

---

## 主流程

### Stage 1：获取用户输入

Agent 从用户提问里提取：
- **企业名称**（必填）—— 支持简称/全称/统一社会信用代码
- **关注重点**（可选）—— 如"重点看涉诉""看担保圈""看关联交易"
- **场景信号**（自动识别）—— 贷前/贷后/供应商准入

只问 ≤1 个澄清问题。模糊简称必须确认主体。

### Stage 2：确认 credits

> 即将对 [企业名称] 启动对公授信预尽调（9维度：工商/股权/关联/司法/处罚/税务/舆情/行业/偿债），将消耗 Cue credits（约 5-15）。
> 1. 确认执行
> 2. 取消

### Stage 3：调用 Cue API + 流式展示

```python
import sys, uuid, json
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parent / "scripts"))
from cue_api import chat_stream, CueAPIError

payload = {
    "messages": [{"role": "user", "content": user_query}],
    "conversation_id": f"cue-corp-credit-{uuid.uuid4().hex[:12]}",
    "chat_id": uuid.uuid4().hex,
    "template_id": "template_corporate_credit_pre_due_diligence",
    "need_analysis": False,
    "need_confirm": False,
    "need_underlying": False,
    "need_recommend": False,
}

report_pieces = []
reporter_started = False

try:
    for event, data in chat_stream(payload, max_seconds=900):
        if event == "start_of_agent":
            try:
                d = json.loads(data)
                agent_name = d.get("data", {}).get("agent_name", "") or d.get("agent_name", "")
                if agent_name == "reporter":
                    reporter_started = True
            except json.JSONDecodeError:
                pass
        elif event == "end_of_agent":
            try:
                d = json.loads(data)
                agent_name = d.get("data", {}).get("agent_name", "") or d.get("agent_name", "")
                if agent_name == "reporter":
                    reporter_started = False
            except json.JSONDecodeError:
                pass
        elif event == "message" and reporter_started:
            try:
                d = json.loads(data)
                delta = d.get("data", {}).get("delta", {})
                content = delta.get("content", "")
                if content:
                    report_pieces.append(content)
                    print(content, end="", flush=True)
            except json.JSONDecodeError:
                pass
except CueAPIError as e:
    print(f"\n[错误] {e.user_hint()}")
```

### Stage 3b：空报告兜底

```python
from cue_api import replay

report_pieces = []
for event, data in replay(conversation_id, max_seconds=600):
    # 同上逻辑提取 reporter content
    ...

if not report_pieces:
    print("报告生成失败（后端可能超时）。已保存 conversation_id，可在 cuecue.cn 工作台查看或稍后重试。")
```

### Stage 4：交付 + 满意度

> 这份预尽调报告满意吗？
> 1. 满意
> 2. 不满意，补充信息重跑
> 3. 不满意，调整关注重点重跑

---

## 边界处理

| 场景 | 处理方式 |
|---|---|
| 企业名称模糊（简称/重名） | 列出候选，让用户确认 |
| 企业不存在（公开数据无记录） | 提示"公开数据中未找到该企业，请核实名称或统一社会信用代码" |
| 网络超时 | 提示检查网络/VPN，给 conversation_id 供后续 replay |
| 空报告（后端生成失败） | 用 replay 兜底；再空则提示用户到 cuecue.cn 工作台查看 |
| Credits 耗尽 | 提示"今日免费积分已用完，可购买或明天再来" |
| 模板 404 | 提示"搭子模板未找到，请联系 Cue 管理员" |
| 用户要求私有数据场景 | 拒绝执行，说明 Cue 仅覆盖公开数据 |
| 用户粘贴 sk- 开头的 API key | 提醒去 cuecue.cn/api-key 立即轮换 |

---

## 安全规则

- API key 绝不出现在输出/日志/提交的代码中
- 用户不慎粘贴 `sk...` → 提醒轮换
- 用户提供的本地材料只在 agent 上下文使用，**绝不上传到 Cue 服务端**
- 报告中出现的客户名称、金额仅为查询结果，skill 本身不存储

---

## 脚本到模块映射

| 函数 | 用途 | 示例 |
|---|---|---|
| `chat_stream(payload, max_seconds)` | 流式调用 Cue，迭代 (event, data) | `for event, data in chat_stream(payload, max_seconds=900)` |
| `replay(conversation_id, max_seconds)` | 重放已完成 conversation（空报告兜底，不扣 credits） | `for event, data in replay(conv_id)` |
| `search_templates(keyword)` | 按关键词搜索搭子模板 | `search_templates("对公授信")` |
| `load_config()` | 读取 API key 和 base URL 配置 | `api_key, base = load_config()` |

---

## 报告结构

完整预尽调底稿 13 章，报告标题含目标企业名：

1. 动态识别结果（主体类型/行业分支/是否上市/是否集团/授信用途）
2. 企业基础信息核验（工商登记/注册资本/经营范围/经营状态/历史变更）
3. 股权结构与实际控制人（穿透至自然人/国资/外资，标注代持风险）
4. 关联方与担保圈（对外投资/分支机构/董监高交叉任职/互保）
5. 经营与财务线索（上市公司优先取公开财报/公告/评级/债券/对外担保/受限资产）
6. 司法涉诉与被执行（裁判文书/失信/限高/终本案件/破产）
7. 行政处罚与监管合规（环境/税务/工商/海关/外汇）
8. 税务与海关（欠税/非正常户/海关信用等级）
9. 舆情与负面事件（主流媒体/行业媒体/社交平台/地方政务）
10. 行业与竞争风险（产业链位置/竞争格局/周期性/政策监管）
11. 偿债能力与现金流分析（上市公司公开财报/评级/债券/授信额度披露）
12. 综合风险评级与建议（不输出审批结论，只给风险分级和证据链）
13. 后续补充材料与贷后监控建议

---

## 兼容性

| Platform | 状态 | 调用方式 |
|---|---|---|
| Claude Code | ✅ 已验证 | 把 skill 目录放入 `~/.claude/skills/`，Skill 工具自动加载 |
| Codex CLI | ✅ 已验证 | 按 codex skill 约定加载 SKILL.md + scripts/ |
| WorkBuddy | 待验证 | 放入 `~/.workbuddy/skills/` |
| Cursor | 待验证 | 放入 `.cursor/skills/` |
| Gemini CLI | 待验证 | `gemini extensions install` |

scripts/ 用 Python 3.10+ stdlib，任何能跑 Python 的环境都通。

