数据查询

在平台的全部数据集里找数据、看口径、取数据、按键连接、汇总和统计。能处理区县和城市的级别不同、旧代码、北交所新旧代码、按行政区划取地图位置。

官方技能第 1 版 · 2026/11/14 发布这是旧版本
  • 官方技能,由智元数据编写和维护
  • 只调用智元数据的 REST 接口
  • 1 个取数脚本,只用 Python 3 自带的库
  • API Key 从环境变量 WI_API_KEY 读取
依赖的数据集
5
一次对话
—
安装次数
8
近 7 天调用
154

01怎么用

三步,让你的 Agent 用上这些数据

安装和设置只做一次。以后直接向你的 Agent 提问就行。

  1. 01

    发安装语句

    复制页头的安装语句,发给 你的 Agent。它会下载技能,装进自己的技能目录。可以在页头切换你用的 Agent。

  2. 02

    设置 API Key

    在终端里运行下面的命令,再启动 你的 Agent。

    export WI_API_KEY=你的 API Key

    创建 API Key
  3. 03

    直接提问

02依赖的数据集

这些数据集都要有授权

技能用到的数据集都要有授权才能查询。缺授权时,Agent 会告诉你缺哪一个。

  • 区域底数

    全国行政区划代码

    admin-division

    一行是一个行政区划(省、地级市或县区)。包含 6 位区划代码、名称、上级代码、级别和从省到县的完整名称。覆盖全国的省、市、县三级,是医保系统使用的区划。用来把别的数据集里的区划代码换成名称,或者按省市汇总。这是医保系统用的区划,和民政部的不同:多 1146 个代码(开发区、市本级等医保统筹区 1074 个,已撤销的 72 个),少民政部 2025 年的 61 个。查民政部的代码用 region-code-by-year。

    4,299 行 · 5 个字段登录后查看授权
  • 区域底数

    县级行政区划边界

    county-boundary

    一行是一个县级行政区的边界,包含区划代码、名称、所在城市和省、面积、中心点和外框。共 2850 行,覆盖全国的县级行政区。香港、澳门、台湾各是一行,没有分到县。边界取自公开的 2023 年初县级行政区划矢量图层,不是官方发布的边界,没有审图号,不能用来确定权属和界线。用来在地图上画出一个县的范围,按县汇总点和线,或者把县级统计数据画成分级的地图。

    2,850 行 · 16 个字段登录后查看授权
  • 区域底数

    行政区划新旧代码对照

    region-code-crosswalk

    一行是一个历史区划代码(一段使用时间)对应的一个现行代码,包含对应方式、主要去向、把握和变更路径。覆盖 1981 年以来用过的全部 6826 段代码,共 7388 行。一对多的没有面积或人口的权重。用来把按旧区县代码记录的数据连到今天的区县,再按现行区划汇总。

    7,388 行 · 14 个字段登录后查看授权
  • 企业主体

    沪深京上市证券

    listed-security-master

    一行是沪深京交易所的一个证券代码。每行有带交易所后缀的代码、简称、全称、板块、上市和退市日期、状态、地域、行业、实际控制人类型、注册资本、统一社会信用代码和换过的旧代码。共 6057 个代码:上交所 2529、深交所 3167、北交所 361,其中上市 5665、退市 372、代码已变更 5、分配了代码未上市 15,B 股 115 个。用来把别的数据集里的 6 位股票代码规范成 600519.SH 这样的写法,并认出已退市和换了代码的公司。

    6,057 行 · 31 个字段登录后查看授权
  • 企业主体

    北交所新旧证券代码对照

    bse-code-crosswalk

    一行是北交所的一只股票从旧代码到 920 开头的新代码的对应,包含新旧代码、简称、北交所上市日期。共 248 只股票,旧代码是 43、83、87 开头的 6 位代码。用来把 2024 年以前的数据里北交所股票的旧代码换成现在的代码。

    248 行 · 7 个字段登录后查看授权

03技能内容

装进 Agent 的,全在这里

SKILL.md 可以看预览,也可以看原文。参考文件由平台按当前数据生成,需要时才读。

常驻约 332 token
name 和 description,Agent 一直带着
触发后约 1,970 token
用到这个技能时读入 SKILL.md 正文
按需约 13,788 token
需要时才读参考文件、运行脚本

SKILL.md

75 行 · 约 2,302 token · 触发后读入
---
name: data-query
description: 在智元数据 World Insight 平台的全部数据集里找数据、取数据、连接数据、算数,回答用数据说话的问题。能做:按关键词找数据集,看字段、口径和覆盖年份,按条件取行,按区县、城市、省、股票代码、统一社会信用代码这些键把两个数据集连起来,区县汇总到城市或省,旧的区划代码和北交所旧代码换成现行代码,按行政区划取地图上的形状和中心点(经纬度、面积),要好几步的统计(排名、合计、比值、占比)。用户问"哪些数据集有县级降水""某市 2019 年的户籍人口是多少""把企业和处罚连起来""区县汇总到城市""上市公司的专利""北交所 920 开头的公司""在地图上标出每个县""各省排名",或者问题要用平台的数据但不属于别的专门技能时使用。精算计算用 actuarial-pc、actuarial-life、actuarial-risk、actuarial-ds-pricing。通过 REST 接口取数,需要环境变量 WI_API_KEY。
---

数据查询

用平台的数据回答问题。平台有 600 多个数据集。你的工作是:找对数据集,看清口径,取对行,连对键,用代码算数,再说清楚数据从哪里来、怎么算的。

开始前

  1. 所有命令都在本技能的目录里运行:python3 scripts/wi.py ...。一次一条命令。
  2. 脚本从环境变量 WI_API_KEY 读取 API Key。没有设置时,请用户先设置,不要猜。
  3. datasets、describe、links、plan 不扣点。query、join 扣点,脚本会打印扣了多少。
  4. 查询的写法(过滤、连接、按地区取、地图)见 references/query.md。常用的参照数据集见 references/datasets.md。做过的例子见 references/examples.md。

步骤

  1. 列计划。 把问题拆成几步,写下每一步要什么数据、哪一年、哪一级(区县、城市、省)、什么口径。一次回答最多 24 步,一步一次工具调用。计划先写出来,后面按计划做,不要反复试。
  2. 找数据集。 用 python3 scripts/wi.py datasets --q <关键词> 找。关键词用短词,例如"台风""户籍人口""绿色专利""财产险"。找到几个候选时,看名称和说明里的覆盖年份、级别,选能回答问题的那个。
  3. 看字段和口径。 用 python3 scripts/wi.py describe <数据集> 看字段。特别看这几类字段:
  4. 口径字段:表里常常同时有合计行和明细行。例如"全省合计"和各城市,"集团公司合计"和母公司、子公司,"合计"和分险种。只取一种口径,否则会重复计算。不确定有哪些取值时,先取几行看一看(--limit 20)。
  5. 单位:万元、百万元、亿元,万人、人,百分数。回答里的单位和数据的单位要对上。
  6. 年份和级别:数据覆盖到哪一年,是区县、城市还是省。
  7. 取数据。 用 query 加过滤条件,只取要的字段,加 --save data/<文件名>.json。数据多时加 --limit 1000,还有下一页时按脚本提示加 --cursor。
  8. 连接。 要用两个数据集时,先 plan <左> <右>,再 join。规则见 references/query.md 的"联合查询"。三条要点:
  9. 右边一组键对上多行时,用 --right-agg 先汇总。
  10. 两边的级别不同时,按粗的一级连,回答里说明。
  11. 原来的数据有旧代码时,把参照数据集放在左边连接,不要按新代码直接筛选。
  12. 算。 排序、分组、合计、比值都用 run_python 读保存的文件计算。一次 run_python 里把要算的全算完,打印中间结果(行数、每组的值),方便核对。
  13. 核对。 回答前逐项看:
  14. 行数对吗?例如浙江省应该有 11 个地级市。少了要找原因(名称不同、代码变了、口径不同)。
  15. 有没有重复计算(合计行和明细行一起加了)?
  16. 单位换算对吗?
  17. 回答。 见"怎么回答"。

常见的情况

情况怎么做
区县的数据要汇总到城市或省区县代码的前 4 位是城市,前 2 位是省。直辖市的区县直接归到省。用 run_python 按前 4 位分组相加。区县名称有重名,按代码分组,不按名称
一边是区县,一边是城市join ... --on region:city,平台按城市连接。或者分别取,在 run_python 里按城市代码对上
只有名称没有代码县级用 county-boundary 查代码(county、city、province 都能过滤)。admin-division 是医保系统的区划,多了开发区、市本级等统筹区,数的时候要排除它们。重名时带上省、市再查
旧的区划代码连接时平台自动换成现行代码。自己对代码时用 region-code-crosswalk
北交所的公司现在的代码是 920 开头。很多数据集里还是 43、83、87 开头的旧代码。用 listed-security-master(exchange = BSE)放在左边连接,或者用 bse-code-crosswalk 对照
地图上标出一个地区的县、河流、站点空间数据集加 --region <地区> --geometry point,返回中心点经纬度 _lng、_lat。县的名称、面积(area_km2)、中心点、外框在 county-boundary,例如 query county-boundary --region 宁波市 --fields region_code,county,area_km2,center_lng,center_lat
计划单列市(大连、青岛、宁波、厦门、深圳)很多金融、保险的统计把它们单列,不算在所在省里。用户要"全省"时,看口径字段,把计划单列市加回去,并在回答里写明
一个数据集没有要的年份找别的数据集,或者用最近的一年,并在回答里写明用了哪一年

怎么回答

  1. 结论:先回答用户的问题,数字带单位。排名用表格。
  2. 数据:用了哪些数据集(名称和标识)、哪一年、什么口径(例如"全省合计,含计划单列市")。
  3. 怎么算的:取了哪些行,怎么连接、汇总,一两句话。连接时把 join 输出的"连接方式"里的说明写进来。
  4. 限制:对不上的行、缺的年份、近似的地方。
  5. 最后写明这次一共扣了多少点。

不要做

  1. 不要心算。排序、合计、比值都来自代码的输出。
  2. 不要编造数据。查不到、没有授权、数据集没有这一年时,直接说明。
  3. 不要把合计行和明细行加在一起。
  4. 不要按名称连接区县。名称有重名,按代码连接。
  5. 不要把演示数据(数据集说明里写着"演示数据")当成真实数据。

出错时

错误码怎么办
NO_GRANT告诉用户缺哪个数据集的授权,给出脚本提示里的申请地址
BAD_REQUEST按错误信息改字段标识或过滤值,再试一次
BAD_REGION地区重名或认不出。按信息里的候选改写代码,或者带上省、市
NO_SHARED_KEY两个数据集没有共同的键。换一个键,或者分别取再在 run_python 里对上
NOT_UNIQUE右边按键不唯一。改用 --right-agg
TIMEOUT查询太大。加过滤条件,减少行数

04版本

发布后不修改,旧版本保留

数据或说明有变化时,平台发布新版本。旧版本仍然可以查看和下载。

  1. 版本 第 3 版2026/11/14 发布

    简介改短,页头两行以内 · 全部文件约 16,370 token

  2. 版本 第 2 版2026/11/14 发布

    历史版本查看下载

    读文件的固定写法,一次回答最多 6 次 run_python,过滤条件一个写一个。 · 全部文件约 16,370 token

  3. 版本 第 1 版2026/11/14 发布

    历史版本下载

    精算方法库第 1 批收尾:按领域整理的技能。 · 全部文件约 16,090 token