通过企业名称模糊匹配查询企业统一社会信用代码,支持多结果选择和错误提示,适用于工商信息核验和尽调。
### 名称
`query_enterprise_credit_code`
### 描述
通过企业名称查询企业的统一社会信用代码。内部使用两步查询法:先调用 `search_ent_simple.py` 获取企业ID,再调用 `ent_uniform_code.py` 根据企业ID获取统一信用代码。支持模糊匹配时的多结果选择。适用于招商、尽调、工商信息核对等场景。
### 适用场景
- 政府招商人员快速核实目标企业工商信息
- 企业尽调前的基础信息收集
- 批量企业信用代码整理
### 输入参数
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `enterprise_name` | string | 是 | 待查询的企业名称(支持部分名称模糊匹配) |
### 输出格式
成功时返回:
```json
{
"enterprise_name": "企业全称(从系统返回的官方名称)",
"uniform_credit_code": "统一社会信用代码(18位)",
"enterprise_id": "内部企业ID"
}
```
失败时返回:
```json
{
"error": "错误描述",
"suggestion": "建议操作(如:请输入更完整的企业名称)"
}
```
### 执行流程(内部步骤)
1. **接收输入**:获取用户提供的企业名称 `enterprise_name`。
2. **第一步:搜索企业获取企业ID**
- 调用脚本:`search_ent_simple.py`
- 命令示例:`python search_ent_simple.py --name "边界智控(深圳)"`
- 脚本返回:企业列表,每个元素包含 `id`(企业ID)和 `full_name`(企业全称)。
- 处理逻辑:
- 如果返回 **0 个结果**:返回错误“未找到匹配的企业,请检查名称或尝试更完整的企业名称”。
- 如果返回 **1 个结果**:自动选择该企业,记录 `enterprise_id` 和 `full_name`。
- 如果返回 **多个结果**(例如名称包含“科技”等通用词):以列表形式展示所有匹配的企业(企业ID + 全称),并要求用户选择。等待用户输入序号后继续。为了支持非交互式调用,可以增加参数 `--auto-select-first` 或由调用方决定。
3. **第二步:根据企业ID获取统一信用代码**
- 调用脚本:`ent_uniform_code.py`
- 命令示例:`python ent_uniform_code.py --id 123456`
- 脚本返回:企业统一信用代码(字符串)及其他可能信息(如法定代表人、注册地址等,按需取用)。
- 处理逻辑:
- 如果成功返回信用代码,则组装最终结果。
- 如果返回空或错误,则返回“无法获取该企业的统一信用代码,请检查企业ID是否正确”。
4. **输出结果**:返回企业全称、统一信用代码、企业ID。
### 脚本依赖与环境要求
- **脚本路径**:假设 `search_ent_simple.py` 和 `ent_uniform_code.py` 位于系统 `PATH` 环境变量中,或指定完整路径(例如 `/opt/scripts/`)。可在 Skill 配置中设置 `scripts_dir` 变量。
- **运行环境**:Python 3.6+,并安装必要的依赖(如 requests、pandas 等,依据实际脚本要求)。
- **输出格式**:两个脚本的输出均要求为可解析的 JSON 格式,例如:
- `search_ent_simple.py` 输出:
```json
[
{"id": "1001", "full_name": "边界智控(深圳)科技有限公司"},
{"id": "1002", "full_name": "边界智控(北京)科技有限公司"}
]
```
- `ent_uniform_code.py` 输出:
```json
{
"uniform_credit_code": "91440300MA5F8N0Q2X",
"legal_representative": "潘亮",
"registered_capital": "5000万元"
}
```
### 使用示例
**场景一:精确匹配唯一企业**
```
用户: 查询统一信用代码,企业名称:边界智控(深圳)科技有限公司
Agent: 正在查询...
找到1家企业:
- 企业ID: 1001,全称:边界智控(深圳)科技有限公司
正在获取统一信用代码...
查询结果:
企业全称:边界智控(深圳)科技有限公司
统一信用代码:91440300MA5F8N0Q2X
企业ID:1001
```
**场景二:模糊匹配多结果**
```
用户: 查一下 边界智控
Agent: 找到3家匹配的企业:
1. 边界智控(深圳)科技有限公司 (ID:1001)
2. 边界智控(北京)科技有限公司 (ID:1002)
3. 深圳边界智控技术有限公司 (ID:1003)
请回复序号选择(1-3):
用户: 1
Agent: 已选择:边界智控(深圳)科技有限公司
正在获取统一信用代码...
统一信用代码:91440300MA5F8N0Q2X
```
**场景三:未找到企业**
```
用户: 查询 不存在的企业有限公司
Agent: 未找到匹配的企业,请检查名称或尝试更完整的企业名称。
```
### 错误处理与重试策略
| 错误类型 | 处理方式 |
|---------|----------|
| 脚本调用超时(>10秒) | 重试一次,仍失败则返回“服务超时,请稍后再试” |
| 脚本返回非JSON格式 | 记录原始输出,返回“数据格式异常,请联系管理员” |
| 网络错误(如需联网) | 提示“查询服务不可用,请检查网络或稍后重试” |
### 扩展建议
- 支持批量查询:输入多个企业名称(用逗号分隔),输出表格。
- 缓存机制:对近期查询过的企业(5分钟内)保存结果,避免重复调用。
- 权限校验:如需内网数据库访问,可在调用前检查当前用户身份。
### 使用方式(openclaw)
在 openclaw 中安装此 Skill 后,用户可以直接提问:
```
“帮我查一下 腾讯科技(深圳)有限公司 的统一信用代码”
“查询企业代码:华为技术有限公司”
```
Agent 会自动匹配该 Skill 并执行。
---
**Skill 版本**: 1.0
**最后更新**: 2026年5月20日
**兼容性**: openclaw 任意版本,依赖 Python 脚本环境don't have the plugin yet? install it then click "run inline in claude" again.