记录我用AI工具实际解决的问题,记录尝试的过程,每个案例都是真实经历。
一、开发调试
作为开发人员,日常工作中最多的问题就是排查和解决Bug。AI工具在这方面的帮助超出我的预期。
1.1 解决BUG
案例1:Jar冲突导致Word导出失败
问题描述:执行Word模板填充功能时,使用EasyPoi库导出Word文档失败,抛出 NoSuchMethodError异常。
错误日志:
Exception in thread "main" java.lang.NoSuchMethodError: org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblWidth.getW()Ljava/math/BigInteger;
at cn.afterturn.easypoi.util.PoiWordStyleUtil.copyCellAndSetValue(PoiWordStyleUtil.java:34)
at cn.afterturn.easypoi.word.parse.excel.ExcelMapParse.parseNextRowAndAddRow(ExcelMapParse.java:131)
提示词:程序启动报错 [Copy 10+] , 请修复。
AI分析错误日志,定位是Apache POI版本冲突问题,查看pom.xml中相关依赖版本,锁定 openxmlformats库版本不兼容,排除冲突依赖,统一定义版本
当天发了个朋友圈:
一个jar 冲突 的 bug 自己研究一小时,没解决。
同样的提示词
opencode(GML) 半小时没解决,还反复在哪试错,耗我token。
codex(GPT) 3分钟解决,一次命中。
看了他们的思维链,冷静的可怕。有时候得反思向Agent学习了,真是教会了徒弟饿死了师傅。


1.2 代码审查
案例:Review代码指出问题,推送评论
场景:开发完成代码后,让AI进行代码审查,发现潜在问题。
提示词:review vxlink-bill-server 项目下的 feature-workingday 分支代码
AI进行了详细的代码审查,包括:
- 缓存逻辑Bug(重复查询)
- 日期处理逻辑错误
- 缓存有效期设置不合理
- 缺少异常处理等
配合glab审核代码,推送评论
提示词:/review https://dev-git.vanxlink.com/autodev-app-repo/pn3xeltib3/vxlink-bill-server/-/merge_requests/397
提示词:把问题提交到评论里头

使用 skills: /code-review:code-review 自动评审和提交,但我更倾向于先review,我看过后经过询问跳过不必要的建议,再提交。
提示词:/code-review:code-reviewreview https://dev-git.vanxlink.com/autodev-app-repo/pn3xeltib3/vxlink-bill-server/-/merge_requests/397

1.3 生成单元测试
案例:生成单元测试
场景:写完业务代码,需要补充单元测试。或者要改动一个功能,先生成单元测试,然后在让AI改动,改动后运行测试用例,确保功能正常后,在补充新增代码的单元测试。
提示词:com.vxlink.repay.ext.util.IdCardExtractor#extract 帮我生成单元测试。
后续会让AI填充测试数据,运行测试验证。
二、编码辅助
2.1 写SQL
案例:查询缺失数据的资产包
业务需求:查询资产包表,关键字段为空的记录。
提示词:请帮我写SQL,查询资产包表 [Copy 10+ 资产包表的DDL]中,关键字段为空的记录。关键字如下
转让签约日期、债转通知公告日期、成交金额、基准日债权总额、基准日债权本金、债转协议名称、债转协议编号
AI生成了查询SQL,支持查询任意关键字段为空的记录。
案例:统计自动入账流水数量
根据银行流水表和事务项表,统计特定时间范围内特定账号的自动入账数量。
提示词:帮我写一个sql ,按照 amc_bank_no = 9012010510379392 查询,创建日期在 2026-04-17 00:00:00 到 2026-04-20 23:59:59 的银行流水中有多少自动入账的。
AI生成了包含表关联和条件筛选的复杂SQL查询。
案例:改写sql
下面是提示词
SELECT rra.debtor_name AS '债务人姓名', pa.id AS '资产包ID', pa.asset_name AS '资产包名称', rra.repay_total_num AS '还款期数', rra.approval_route AS '预测审批路线', rra.reduce_reason AS '减免原因', rra.attachment_id AS '附件', rra.created_date AS '创建时间', rra.flow_status AS '审批状态', rra.plan_status AS '计划状态' FROM vxlink_restructure.rm_restructure_plan rra INNER JOIN vxlink_asset_server.pm_asset pa ON rra.asset_id = pa.id WHERE pa.is_deleted = 0 AND pa.asset_name IN ( '湖北消金消费贷2025-01号第7期资产包', '中银消金消费贷2025-10号第61期资产包', '建行深圳消费贷2025-13号第3期资产包', '中行河北信用卡2025-01号第3期资产包', '全桔融担2025-01号第1期资产包', '中行宁夏经营贷2026-01号第1期资产包', '邮储河北消费贷2026-01号第1期资产包', '兴业银行信用卡全国2022-01号资产包', '平安银行消费贷2023-12号第160期资产包', '华夏银行信用卡2023-01号第1期资产包', '紫金农商综合类2023-01号第1期资产包', '平安银行消费贷2023-23号第279期资产包', '中信苏州消费贷2024-02号第1期资产包', '建行苏州经营贷2024-02号第2期资产包', '华润信托消费贷2024-01号第1期资产包', '平安银行消费贷2024-08号第69期资产包', '中信重庆消费贷2024-09号第1期资产包', '平安银行2022年第32期个人消费及经营类不良资产包' ) AND rra.flow_status = 'COMPLETED_PASS' AND rra.is_deleted = 0 AND rra.plan_status IN ('SUCCESS', 'ING', 'NOT_START');上面的sql ,根据 下表 的DDL
-- auto-generated definition create table rm_restructure_plan ( id bigint auto_increment comment 'id' primary key, created_by varchar(64) not null comment '创建人', created_date datetime not null comment '创建时间', last_modified_by varchar(64) not null comment '最后更新人', last_modified_date datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '最后更新时> 间', org_by varchar(64) not null comment '当前组织', owned_by varchar(64) not null comment '组织拥有者', tenant_id varchar(64) not null comment '当前租户', is_deleted bigint not null comment '是否删除', flow_status varchar(64) null comment '流程状态', flow_insert_data varchar(64) null comment '是否插入业务数据', apply_user_id varchar(255) not null comment '申请人', control_type varchar(64) null comment '控制类型', repay_num_type varchar(64) null comment '还款次数类型', repay_total_num int not null comment '还款期数', reduce_reason varchar(255) null comment '减免原因', cust_id bigint null comment '债务人', asset_id bigint null comment '资产包', promise_repay_date datetime not null comment '承诺还款时间', delayable_days int default 0 null comment '可延缓天数', repay_total_amt decimal(24, 6) not null comment '还款总金额', reduce_total_amt decimal(24, 6) not null comment '减免总金额', reduce_principal_amt decimal(24, 6) not null comment '减免本金金额', reduce_interest_amt decimal(24, 6) default 0.000000 not null comment '减免利息金额', reduce_govcost_amt decimal(24, 6) null comment '减免官费金额', reduce_fee_amt decimal(24, 6) null comment '减免费用金额', reduce_other_amt decimal(24, 6) default 0.000000 null comment '减免其他金额', repayed_amt decimal(24, 6) default 0.000000 null comment '已还款金额累计', plan_status varchar(64) null comment '计划状态', reduce_total_rate decimal(24, 6) null comment '减免总额比例', reduce_principal_rate decimal(24, 6) null comment '减免本金比例', reduce_govcost_rate decimal(24, 6) null comment '减免官费比例', reduce_interest_fee_rate decimal(24, 6) null comment '减免息费比例', attachment_id varchar(1024) null comment '附件', remark varchar(1024) null comment '备注', apply_flow_id bigint null comment '审批策略', outer_approval_id varchar(255) null comment '外部申请id', has_reduce_principal varchar(64) null comment '本金是否减免', debtor_name varchar(255) null comment '债务人姓名', debtor_cert_no varchar(255) null comment '身份证号', need_next_check varchar(64) null comment '需要下级审批', last_repay_date datetime null comment '上次还款时间', apply_org_by bigint null comment '申请机构', original_pricipal_amt decimal(24, 6) null comment '基准日本金余额', original_interest_fee_amt decimal(24, 6) null comment '基准日息费余额', max_gov_amt decimal(24, 6) null comment '官费合计金额', reduce_interest_fee_amt decimal(24, 6) null comment '减免费息金额', asset_type varchar(64) null comment '资产包业务类型', asset_name varchar(255) null comment '资产包名称', approval_route varchar(255) null comment '审批路线', current_repayed_amt decimal(24, 6) null comment '目前已还款金额', original_total_amt decimal(24, 6) null comment '基准日总额', original_interest_amt decimal(24, 6) null comment '基准日利息', original_fee_amt decimal(24, 6) null comment '基准日费用', original_gov_amt decimal(24, 6) null comment '基准日官费', current_repayed_pricipal_amt decimal(24, 6) null comment '目前已还款本金', current_repayed_interest_fee_amt decimal(24, 6) null comment '目前已还款息费', current_repayed_gov_amt decimal(24, 6) null comment '目前已还款官费', cancel_time datetime null comment '作废时间', cancel_reason varchar(255) null comment '作废原因', agree_time datetime null comment '审批通过时间', source varchar(64) null comment '来源', current_principal_balance decimal(24, 6) null comment '当前剩余本金', current_interest_balance decimal(24, 6) null comment '当前剩余利息', current_gov_balance decimal(24, 6) null comment '当前剩余官费', current_fee_balance decimal(24, 6) null comment '当前剩余费用', current_interest_fee_balance decimal(24, 6) null comment '当前剩余息费', plan_flag_type varchar(64) default 'RESTRUCTURE_ADVICE' null comment '重组标识类型', phone varchar(512) null comment '加密电话' ) comment '重组减免计划表';更新:添加上
减免本金金额
减免利息金额
减免官费金额
减免费用金额
减免本金比例
减免官费比例
减免息费比例基准日本金余额
基准日息费余额
目前已还款官费并且把上面的内容,在额外拼接到一个 字段中,叫减免信息。 并按照总金额、本、官、息、费 、以及减免的比例 的顺序回车换行展示。

2.2 变量命名
案例:摆脱命名困难症
痛点:经常为一个变量名纠结半天,真正做到了见名知意。
解决: AI 生成的代码命名非常规范。像xxxPO再也没有了(非驼峰命名,idea下划线提示,但这玩意也不能在团队间规约,因为很多人这么写)
再也不用忍受这样的命名了。

三、脚本工具
3.1 启动服务
案例:vxlink-core-web 前端服务启动失败
问题描述:前端启动失败,不知道原因,也不关心原因
提示词:启动服务
案例:docker启动服务
提示词:使用docker启动服务
或者,把启动方式写到 md 文件中,然后 直接 告诉 Agent启动服务
3.2 打开本地应用
案例:一键启动开发环境
场景:每天早上需要打开多个应用(IDE、数据库工具、终端、浏览器)。
解决:让AI帮我写一个打开所有应用的脚本。
#!/bin/bash
# 一键打开常用开发工具
# 使用方法: ./cs-dev-tools.sh
echo "正在打开开发工具..."
# 打开微信
open -a "WeChat"
echo "✓ 微信"
# 打开 IntelliJ IDEA
open -a "IntelliJ IDEA"
echo "✓ IntelliJ IDEA"
# 打开 Chrome
open -a "Google Chrome"
echo "✓ Chrome"
# 打开 VSCode
open -a "Visual Studio Code"
echo "✓ VSCode"
echo ""
echo "所有应用已启动完成!"
然后抽取成commond 或者 skill 。 这样输入 开始搬砖 就会自动找到这个skill 执行对应的脚本。或者直接输入 ‘/cs-dev-tools’ 指令即可
案例:我想听歌
AI帮助编写打开网易云音乐的commond 和 skills
# 打开网易云音乐
直接执行以下命令打开本地网易云音乐:
open /Applications/NetEaseMusic.app
然后抽取成commond 或者 skill 。 这样输入 我想听歌 就会自动找到这个skill 执行对应的脚本。或者直接输入 ‘/cs-music’ 指令即可
3.4 写Shell脚本
案例:写爬虫
修复银行档案下载脚本,从API返回的JSON中提取文件URL并下载文件。
AI修复了脚本中的多个问题:
- 检查API返回码
- 提取下载URL和文件名
- 使用curl下载文件
- 删除导致提前退出的exit语句
3.3 Git批量操作
案例:批量推送项目更新
场景:需要同时更新14个git仓库。需要每一个项目都新建一个分支,都添加一个 Agent.md 文件,然后推送到远程仓库。在发起合并请求的PR。
结果:
- 成功推送:14个项目 ✅
- 已更新:2个项目 ⏭️
- 有冲突:1个项目 ⚠️(需要手动合并)
四、AI辅助生成图表
4.1 生成时序图,画流程图
使用自制的flow skill,支持使用mermaid和ASCII码画流程图。
提示词: /flow com.vxlink.repay.ext.service.logic.impl.BankInvoiceMatchServiceImpl#calculateAndMatch

五、源码阅读
5.1 理解代码
通过AI理解复杂代码逻辑:
- 分析代码功能
- 解释业务逻辑
- 生成流程图
> 提示词:com.vxlink.registration.ext.service.caseInfo.impl.TcCaseInfoExtServiceImpl#updateCreditSubmitStatus
这段代码在干什么?
这段代码的业务逻辑是什么?
这段代码的业务逻辑使用mermaid画成流程图
> 提示词:/flow com.vxlink.registration.ext.service.caseInfo.impl.TcCaseInfoExtServiceImpl#updateCreditSubmitStatus
5.2 定位代码
案例:定位实时逾期天数计算逻辑
提示词:帮我找一下逾期天数计算逻辑
AI成功定位到逾期天数计算逻辑的具体位置和实现方式。
六、从零开发应用
案例 : 彩蛋功能
通过多轮对话,从零开发了一个完整的应用。

七、创意娱乐
7.1 生成音乐
工作之余,想用AI生成一些背景音乐。
案例:生成舒缓的背景音乐
使用的工具:豆包、Gemini
过程:描述想要的风格(轻音乐、钢琴曲、缓解压力),AI生成音乐。
7.2 生成歌曲
八、团队规范制定
参考 Ai Coding Rules 规约,帮助制定团队编码规范。
九、PPT制作
先给AI一个话题,然后在慢慢描述,最后产出一个PPT。

十、常规搜索
使用AI进行常规的信息搜索和查询。
十一、TDD开发
案例:测试驱动开发流程
- 补全单元测试
- 写代码
- 补单新增场景单元测试
- 审测试用例(基本没人看)
- 运行单测,写代码直到单测全部通过
提示词 com.vxlink.repay.ext.util.IdCardExtractor#extract
针对特殊字符的场景补充测试用例
提示词 com.vxlink.repay.ext.util.IdCardExtractorTest#testExtractWithMixedSpecialChars
这个单测没有通过,为什么。修复一下,但是不要影响其他场景
中文翻译
将 ~/.claude/usage-data/report.html 翻译成中文,写到 ~/.claude/usage-data/report-zh.html 中


图片识别
- 豆包
- 终端
文章处理
- 章节处理
- 错别字
- 标点符号
辅助需求分析
- 产品写的相对详细的。问:有什么需要完善,右前后矛盾的么,技术实现思路是什么

帮我分析一下这个需求文档。输出
- 前后不一致的
- 需要二次向产品澄清的
- 已经明确的业务逻辑
解决问题

提示词:hexo 生成的代码框,在代码文本内容太长的时候,展示找过了文章内容区域,最好做成滚动条横向滑动展示的效果
