# Tyc Equity Graph

> 股权关系图谱深挖（TYC 独有），股权树/最短路径/关系图谱/控股穿透/总公司一站式分析

- Skill: `tyc-tech/tyc-equity-graph` (Agent Skill)
- Install (CLI): `npx skillmds@latest add tyc-tech/tyc-equity-graph`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tyc-tech/tyc-equity-graph/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tyc-tech (https://skillmd.com/u/tyc-tech)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/tyc-tech/tyc-equity-graph

---


# 股权关系图谱深挖（TYC 独有扩展）

## 触发条件

复杂股权架构梳理、两家企业关联关系研判、隐性关联交易挖掘、上市辅导前股权重组。

关键词：股权图谱、关系网络、最短路径、控股穿透、复杂架构

## 输入要求

本技能需要 **两个企业实体**，**Step 0 会对每个企业分别做形态分流锚定**，不要把任何一方的原话直接当 `searchKey` 喂给后续步骤：

| 字段 | 必填 | 说明 |
|---|---|---|
| `searchKey` | ✅ | 主企业：完整企业名 / USCC / 简称 / 曾用名 / 品牌名 |
| `searchKey2` | ❌（可选） | 第二端企业：完整企业名 / USCC / 简称 / 曾用名 / 品牌名 |

每个输入的三种形态分流（与单 company 同）：

| 输入形式 | 示例 | 是否需要 L0 |
|---|---|---|
| **完整企业名**（含组织形式后缀） | `北京字节跳动科技有限公司` | ❌ 跳过 L0 |
| **USCC** 18 位 | `91110108551385082Q` | ❌ 跳过 L0 |
| **简称 / 曾用名 / 品牌名** | `字节` / `阿里` | ✅ **必须先走 L0** |

> Step 0 对两端**独立锚定**。任意一端是简称都需各自走一次 L0。

## 执行流程

### Step 0: 双端实体锚定（条件性 · L0 工具：`search_companies`）

**目的**：本技能涉及两个企业实体，**Step 0 对 `searchKey` 与 `searchKey2` 各自独立分流**，避免任一端是错主体污染下游分析。

**判定与分流（对每个企业输入分别执行）**：

1. **匹配 USCC 正则** `^[0-9A-Z]{18}$` → 跳过 L0
2. **含组织形式后缀**（`有限公司` / `股份` / `集团` 等）且长度 ≥ 6 → 跳过 L0
3. **否则**（简称 / 曾用名 / 品牌名）→ **走 L0**：

   - 调用 `search_companies` (`searchKey: userInput`)
   - 候选 = 1 → 自动锚定为该端的 `creditCode`
   - 候选 ≥ 2 → 暂停并向用户列候选清单请求确认（**明确告知用户在锚定哪一端**：主企业 / 第二端）
   - 候选 = 0 → 终止流程，提示"未找到匹配的{端口角色}企业"

> 最后两端都得到精确 `creditCode` 才能进入 Step 1。任一端候选不唯一就先消歧。

### Step 1: 总体股权结构
- `get_company_registration_info`
- `get_actual_controller` — 实控人
- `get_equity_ratio` — 控制结构 + 控股路径

### Step 2: 向上 / 向下穿透
- `get_parent_company` — 总公司（向上看）
- `get_controlled_companies` — 控股企业（向下穿透）
- `get_equity_tree` — 对外投资关系树（多层）

### Step 3: 关系图谱
- `get_relation_graph` (`searchKey`) — 一键图谱（节点 + 边）
- `get_shareholder_change` — 股权变更历史

### Step 4: 双企业最短路径（若提供 searchKey2）
- `get_relation_path` (`searchKey`, `searchKey2`) — 最短关联路径

## 输出格式

```markdown
# 股权关系图谱 — {searchKey}

## 一、总体架构
- 实控人: {actualController}
- 总持股: {totalRatio}
- 控制层级: {n} 层
- 总公司（如有）: {parentCompany}

## 二、向下控股穿透
| 层级 | 企业 | 持股比例 | 投资链 |
|------|------|---------|--------|
| 1 | 直接控股 | ... | ... |
| 2 | 间接控股 | ... | ... |
| 3+ | 深层控股 | ... | ... |

控制企业总数: {n} 家（含间接）

## 三、对外投资关系树
（树状结构，含直接 + 间接投资）

## 四、关系图谱（节点/边）
- 节点总数（人 + 企业）: {n}
- 边总数（关系）: {n}
- 关键节点: ...

## 五、股权变更历史
| 时间 | 变更项 | 变更前 | 变更后 |
|------|-------|--------|--------|

## 六、双企业最短路径分析（若提供 searchKey2）
- 起点: {searchKey}
- 终点: {searchKey2}
- 最短路径: A → 法人 → B → 投资 → C
- 关系强度: 强关联 / 弱关联 / 无关联

## 七、风险与建议
- 复杂架构风险: ...
- 隐性关联交易嫌疑点: ...
- 上市股权重组建议: ...
```

## 错误处理

- 若 Step 0 候选 = 0 → 终止流程，提示"未找到匹配企业，请提供更完整的名称或 USCC"，不要带着错主体往下跑
- 若 Step 0 候选 ≥ 2 而用户在合理时间内未回复 → 暂存上下文，**不要自行选择**第一条作为锚定（错锚定的代价远大于等待）

## 示例

输入: `searchKey = "腾讯控股有限公司"`, `searchKey2 = "美团（北京三快在线科技有限公司）"`

---

**新输入形态参考**（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。

