
监管罚单是银行判断监管执法重点的直接依据,银行合规、法务和风险管理团队需要每日跟踪监管机构新增的处罚公示。按单次处理 2 个监管来源、32 条处罚公示记录的工作量估算,人工完成下载、整理、查重和日报起草约需 3 小时;Kimi 托管智能体每日定时触发,将这一过程缩短至 20 分钟。
本案例介绍监管公示下载、处罚记录结构化保存、日报草稿生成和人工审核的实现方式。读者可以将这一流程复用到其他监管来源和存储数据库。
Agent 架构总览

应用由三部分组成:
监管机构网站:本案例以金融监管总局和中国人民银行的行政处罚公示为核心来源。智能体只读取公开页面,不登录、不提交表单。
Kimi 托管智能体:平台托管智能体、会话和每日定时任务。智能体用技能中的下载脚本获取新增内容,按统一字段抽取罚单和案由,调用处罚记录库接口保存记录,再查询当天数据生成日报草稿。
企业自建服务:企业提供一个轻量的处罚记录库,负责校验、查重、保存罚单、查询报告数据集和保存日报草稿。本文只定义记录库的接口和业务规则,企业接入时实现为自定义工具,接已有数据库或业务服务。
一次每日运行的流程如下:
定时启动:Kimi 托管智能体的触发器每天早上创建一个新会话。
读取来源:下载脚本逐一读取来源清单中的网站,找到新增的列表、详情页或公示文件。
结构化抽取:智能体把不同页面形态统一整理为文号、当事人、案由、处罚内容、金额、机关、日期和来源链接。
保存和查重:处罚记录库按来源和文号保存记录,重复文号更新已有记录,保存时完成机构类型、省份和职能领域分类。缺文号的记录用机关、公示日期和当事人拼成查重键,照常保存。
生成日报:智能体查询统计日期范围的数据集,按固定口径生成 Markdown 草稿。
人工审核:合规人员核对来源、数字和异常记录,再决定是否发布。
日报之外,可以另外定义一个触发器按月运行,用同一套来源清单和处罚记录库生成月报;月报直接查询记录库中已保存的历史数据,不拼接每日草稿。
核心设计
各层职责分工
智能体的行为由三处定义:
| 层 | 职责 |
|---|---|
| 技能(监管日报技能) | 来源清单、下载脚本、数据格式约定、报告写作规则 |
| 系统提示词 | 读取、下载、抽取、保存、查数据集、生成草稿的步骤,以及行为边界(不登录、不编造文号、失败如实标记、数字只来自数据集、只存草稿) |
| 首条消息(触发器带入) | 任务指令和配置(日报还是月报、必需来源、统计时区、交付方式) |
共享内容进入技能和提示词,私有要求进触发器首条消息:来源清单和格式约定很少变化,任务配置可能经常调整。
先落库处罚记录,再生成日报
从官方公示到草稿经过四步:
| 步骤 | 数据形态 | 智能体 | 处罚记录库 |
|---|---|---|---|
| 读取公示 | 官方页面和公示文件 | 调用下载脚本并抽取 | 不参与 |
| 保存记录 | 处罚记录(含案由) | 调用保存接口 | 校验、查重、分类 |
| 查询统计 | 统计数据集 | 调用查询接口,按日期范围取数 | 按口径聚合、返回统计 |
| 生成草稿 | 日报草稿 | 按固定模板生成 | 不参与,草稿待人工审核 |
罚单记录是事实,日报是派生产物。先进行事实落库意味着:
同一罚单按文号查重,不会重复统计;
统计口径变化后可以从记录重新计算,不必重读网站;
日报中的每个数字都能回到具体记录和原文链接。
智能体和脚本的分工
脚本负责下载页面和公示文件、校验响应、控制分页。固定来源每天按固定脚本处理,无需依赖模型临时判断,确保行为可复现并便于定位失败原因。
智能体基于下载结果负责语义解析,包括理解行列关系、拆分罚单,以及按统一字段提取处罚内容和案由。
智能体直接读网页是遇到新来源时的探测手段:先让智能体直接读取入口,判断是列表、JSON、DOC 还是 HTML 表格,验证入口有效、格式可解析。探测时智能体可以用沙箱内置的网页读取工具,也可以调用 Kimi API 的 Web Fetch 接口;如果来源封禁平台共享出口(例如返回 403 错误页),按「来源网站封禁共享出口时配置按域代理」一节配置代理,改用在会话内下载的方式探测。验证稳定后,把读取方式固化成脚本和测试,以技能形式挂载,并添加来源进入主流程。
配置选择
模型选 kimi-k3。智能体需要理解不同监管网站的页面结构,抽取处罚字段并遵守固定的数据格式与报告口径。
各项资源的配置如下:
| 资源 | 用途 | 本案例的选择 |
|---|---|---|
| 智能体 | 抽取处罚记录并生成日报草稿 | 单智能体,kimi-k3 |
| 插件 | 当前不需要 | 下载与解析逻辑固化在监管日报技能和自定义工具中 |
| 技能 | 来源清单、下载脚本、数据格式与报告规则 | 监管日报技能 |
| 执行环境 | 运行下载脚本和语义抽取 | 通用云沙箱;来源封禁共享出口时按域配置代理 |
| 文件 | 当前不需要 | 公示由脚本下载,处罚记录写入企业处罚记录库 |
| 凭据库 | 处罚记录库接口和代理认证 | 创建触发器时通过 resources 绑定 |
| 触发器 | 每日定时运行,月报可另建 | cron 30 8 * * *,new_session 模式 |
| 记忆库 | 当前不需要 | 跨天状态由处罚记录库保存,不依赖会话历史 |
运行成本
| 计费项 | 估算用量 | 估算成本 |
|---|---|---|
| 模型输入 | 约 0.5–1.5M tokens | 约 ¥10–30 |
| 模型输出 | 约 5–15K tokens | 约 ¥0.5–1.5 |
| 沙箱 | 约 20 分钟 | 约 ¥0.024 |
| 单次日报合计 | 2 个来源、32 条记录 | 约 ¥11–32 |
| 每月 30 次日报 | 每日运行 1 次 | 约 ¥316–946 |
同样是这批工作量,人工下载、整理、查重和起草约需 3 小时,智能体约需 20 分钟,耗时减少约 89%。以上为估算,实际用量随公示页数、附件篇幅、上下文缓存命中情况和返工轮次变化,以控制台账单为准。处罚记录库、企业代理和日报发布系统由企业自建,其基础设施与运维成本不计入上述费用。
从最小版本开始搭建
1. 准备处罚公示来源清单
处罚公示来源清单当前包含两个核心来源。来源 ID 是自定义的简短标识,用于在配置和报告中引用来源:
| 来源 ID | 来源 | 入口 URL |
|---|---|---|
nfra | 金融监管总局行政处罚 | https://www.nfra.gov.cn/cn/view/pages/ItemList.html?itemId=4113&itemName=%E6%80%BB%E5%B1%80%E6%9C%BA%E5%85%B3&itemPId=923&itemUrl=ItemListRightList.html&itemsubPId=931&itemsubPName=%E8%A1%8C%E6%94%BF%E5%A4%84%E7%BD%9A |
pbc | 中国人民银行行政处罚公示 | https://www.pbc.gov.cn/zhengwugongkai/4081330/4081344/4081407/4081705/index.html |
智能体只按清单读取,不自行增减来源。清单随下载脚本打包进技能,在第 3 节创建智能体时一并挂载。
2. 准备处罚记录库
智能体只需要三个接口:
保存处罚记录
查询报告数据集
保存日报草稿记录库实现四类业务规则:
校验:来源和批次标识必填,缺失整批拒收;文号和当事人同时缺失的单条记录拒收并进入复核;
查重和保存:按来源和文号查重,相同文号更新已有记录;缺文号的记录用回退键照常保存;
分类:保存时按规则填充机构类型、省份和职能领域,判不了归 unknown;个人罚单名称中没有单位的,按同批次机构罚单关联推断;
报告:相同报告不重复生成草稿,日报初始状态始终是草稿。
记录库保存三类内容:
| 数据 | 保存内容 | 用途 |
|---|---|---|
| 处罚记录 | 文号、当事人、处罚内容、金额、机关、日期、来源 | 查重、查询和统计 |
| 读取批次 | 来源、时间范围、成功状态和异常记录 | 判断本次覆盖是否完整 |
| 日报草稿 | 数据集范围、统计 JSON、Markdown 和审核状态 | 人工审核和后续发布 |
企业接入时,把这三个接口实现为自定义工具绑定到智能体,背后接现有数据库或业务服务;操作名和输入输出保持不变,智能体的提示词和调用方式不需要改。
3. 创建监管处罚日报智能体
系统提示词负责定义任务和边界,无需为每个网站硬编码解析规则。示例如下:
你负责每天整理银行监管行政处罚记录并生成日报草稿。
每次运行:
1. 读取处罚公示来源清单中的全部必需来源,只访问处罚公示来源清单中的网站域名。
2. 按技能固化的方式下载固定来源的公示;发现来源结构变化或新来源时,先小样本验证,不直接把新页面纳入统计。
3. 只抽取原文能够确认的字段,缺失字段保留为空。个人罚单必须抽取所在单位;文号缺失照常保存,不编造文号。
4. 按统一结构保存处罚记录和案由;机构类型、省份和职能领域由处罚记录库分类,你不需要分类;不要直接根据网页内容计算跨来源总数。
5. 保存完成后查询本次日期范围的数据集,基于数据集返回的统计结果生成 Markdown 日报草稿;数字只能来自数据集。
6. 日报必须列出网站覆盖情况和失败来源;待复核项以处罚记录库返回的复核队列为准。
7. 日报是监管线索整理,不是法律结论。
行为边界:
- 不使用搜索结果直接扩展正式统计来源。
- 不登录、不提交表单、不修改官方网站。
- 读取失败不能写成网站没有可确认的记录。
- 行政处罚和行政监管措施分开保存、分开统计。
- 日报只保存为草稿,等待人工审核。监管日报技能随官方智能体交付,包含任务流程、数据格式约定、报告写作规则、来源清单和下载脚本。本案例的技能已经上传并挂载到官方智能体,可以直接复用;自建智能体时,按同样方式打包上传,记录技能 ID 和版本,创建时绑定。
数据格式约定:统一字段
不同来源的页面形态不同,但智能体抽取和下载脚本都以同一组字段为目标;这组字段作为数据格式约定写入技能:
{
"source_id": "official_source",
"source_type": "administrative_penalty",
"document_number": "处罚决定书文号",
"party_name": "当事人名称",
"party_type": "institution",
"causes_raw": ["违法违规行为原文"],
"penalty_content_raw": "行政处罚内容原文",
"money_components": [
{
"type": "fine",
"amount_cny": 1000000
}
],
"penalty_authority": "作出决定机关",
"published_at": "2026-09-24",
"decision_date": null,
"source_url": "官方原文 URL",
"extraction_status": "confirmed"
}页面解析方式可以不同,字段结构和保存接口保持一致,新增来源时不需要改动保存逻辑。
创建智能体:
cURL:
CLI:
保存响应中的智能体 ID,创建定时任务时需要引用。企业接入时,再为智能体绑定处罚记录库的三个自定义工具。
4. 创建执行环境
执行环境承载会话、脚本运行和工具调用。创建一个云端执行环境即可:
cURL:
curl --request POST "https://api.moonshot.cn/v1/environments" \
--header "Authorization: Bearer $KIMI_API_KEY" \
--header "kimi-api-version: 2026-09-01-beta" \
--header "Content-Type: application/json" \
--data '{
"name": "监管处罚日报环境",
"description": "运行每日监管处罚读取和日报生成任务",
"config": {"type": "cloud"}
}'CLI:
kha environments create --name "监管处罚日报环境" --description "运行每日监管处罚读取和日报生成任务"保存响应中的执行环境 ID,创建定时任务时需要引用。
来源网站封禁共享出口时配置按域代理
云端执行环境通过平台共享出口 IP 访问公网,个别监管网站会封禁这类 IP。
可在执行环境中按域名配置自有代理(proxy):
准备一个出口 IP 未被该网站封禁的 HTTP(S) 代理。目标网站封的是数据中心 IP,代理出口需要家庭或办公宽带这类普通 IP;
代理有认证时,先把凭据存入凭据库;
在执行环境的网络配置中添加代理,仅将代理应用到被封禁的域名,不要开启全局代理,其他来源继续直连;
保存后新建会话验证,旧会话仍使用旧配置。

5. 配置每日定时任务
使用 Kimi 托管智能体的触发器每天创建一个新会话,避免不同日期的任务上下文互相干扰。下面的示例每天 08:30 运行:
cURL:
CLI:
触发器除了指定智能体和执行环境,还要在 resources 中绑定凭据库,供智能体访问处罚记录库。必需来源、统计时区和交付方式等任务参数写入 initial_events 的任务指令,不作为独立的资源类型挂载。技能决定可读取的来源,任务配置规定本次必须覆盖的来源。处罚记录库无法读取智能体挂载的技能,只能根据配置中声明的必需来源核对实际收到的记录;缺少来源时,标记为覆盖不完整。
日常运行使用新会话;跨天状态由处罚记录库保存,不依赖会话历史。触发器负责按时间启动任务,不负责读取网页、查重或审核报告。
需要月报时,再创建一个触发器,把 cron 表达式改为按月运行(例如每月 1 日 09:30),并在任务指令中把统计范围设为上一个完整自然月。月报和日报共用智能体、技能和处罚记录库,只有触发时间和统计范围不同。
6. 手动运行并检查结果
定时任务创建后,先手动运行一次:
cURL:
curl --request POST "https://api.moonshot.cn/v1/triggers/$TRIGGER_ID/run" \
--header "Authorization: Bearer $KIMI_API_KEY" \
--header "kimi-api-version: 2026-09-01-beta" \
--header "Content-Type: application/json" \
--data '{
"payload": "运行一次测试:读取最近一次公示,保存记录并生成日报草稿。"
}'CLI:
kha triggers run "$TRIGGER_ID" --payload "运行一次测试:读取最近一次公示,保存记录并生成日报草稿。"检查以下结果:
两个必需来源是否都被读取;
每条记录是否保留原文链接;
重复文号是否没有新增第二条记录;
缺文号的记录是否用回退键保存,并在报告脚注按机关和公示日期指代;
无法确定所在单位的个人罚单是否进入复核队列;
报告是否从已保存的数据集生成;
报告状态是否仍为草稿;
网站读取失败时,报告是否明确标记覆盖不完整。
7. 审核日报草稿
日报草稿包含:
本次统计日期范围;
网站覆盖情况;
新增处罚记录;
处罚金额和处罚动作汇总;
大额处罚记录;
待复核项;
每条重点记录的原文链接。
合规人员确认来源、数字和文字表述后,再由企业应用发送到飞书、邮件或内部合规系统。智能体不直接发布未经审核的日报。
接入企业系统
三个接口以自定义工具的形式绑定到智能体,底层实现可以替换为 SQLite、PostgreSQL、MongoDB 或企业已有数据平台。
主流程来源的下载脚本随技能维护;来源必须经过企业网关、代理或专用解析服务时,把下载封装为自定义工具。新来源先由智能体探测,验证稳定后再固化脚本,不需要为每个网站提前开发程序。