中山大学岭南学院 · 金融 AI 智能体设计与应用 · 学员实操页第 6 次课 · 10 月 21 日
第 6 次课 · 学员实操页

让它记得资料,再让它自己动

下午练习一:30 家银行年报的 RAG。自己建一个硅基流动的 key,比一比按字找和按意思找,再看检索答不了什么。
下午练习二:用 Claude Code 搭一个个人知识库。资料进收件箱,整理交给它,关掉再问它还答得上。
晚上练习一:给 Claude Code 挂一个 hook,干完、等你批准的时候,右下角弹一条通知。
晚上练习二:任务计划程序每 10 分钟巡查一次知识库的收件箱,有新东西才叫它整理,整理完来叫你。
第 6 次课 · 材料包练习1_RAG(30 家银行年报、算好的向量库、检索脚本)、练习2_知识库(个人知识库的骨架、十份课程网页快照,技能已装好)、练习一_提醒(完成提醒的 hook 脚本)、练习二_巡查(巡查收件箱的两个脚本和两份测试资料)。解压后先看根目录的 00_先看这里.md 下载 ⬇

下午练习一 · 30 家银行年报的 RAG

材料包里的 练习1_RAG\ 是一个现成的 RAG 小系统,30 家 A 股上市银行 2025 年年报的文字部分已经切成 7638 段、换成了向量。你用自己的 key 问几道题,看按字找和按意思找差在哪,再看检索答不了什么。

课前 · 建一个硅基流动的 key

  1. 打开 cloud.siliconflow.cn 注册,做个人实名认证(认证后才能用全部免费模型)
  2. 在 API 密钥页新建密钥,复制 sk- 开头的那一串
  3. 解压材料包,把 练习1_RAG\硅基流动key.txt 里的提示整行换成你的 key,保存
key 只放这一个文件 不进截图,不发群,不贴进对话。交作业或拷给别人之前,删掉那一行。
没有 key 怎么办 能做前四步,第五步要 key。脚本会改用预先算好的向量,按意思检索只能问 问题清单.md 里的原话。

VS Code 打开 练习1_RAG 文件夹,在终端里输 claude 启动。五步都发给它,命令由它来跑,结果让它写进回复。

第一步 · 几个词两两比一比

单独跑这一条,命令照抄,不加 cd,不换成 python3:
python 相似度.py 净息差 净利息收益率 净利差 不良贷款率 拨备覆盖率 降息
把余弦表原样贴进回复,再说除了对角线,哪一对最近。

回复里有一张 6 × 6 的余弦表,越接近 1 越近。想看一对是怎么算出来的,让它在命令末尾加 --细节 再跑一次。

记在这里 · 第一步
净息差 与 净利息收益率
净息差 与 净利差
表里最近的一对

第二步 · 按字找,按意思找

用 检索.py 查 问题清单.md 里的第一问、第二问,问题原话照抄。每问跑三次:加 --按字;不加参数;加 --按字 --公司 题里那家银行。
一条一条单独跑,不加 cd。每跑完一次列一张表:排名、出处(银行、第几页)、这段里有没有这一问要的那个数。只看打印出来的段落,不打开 资料库/。

第一问 农业银行 2025 年的净息差是多少?
第二问 招商银行 2025 年末信用卡贷款不良率是多少?

回复里有六张表。对着表,记下这一问要的那个数排在第几段。

记在这里 · 第二步 · 排第几
按字按意思按字 + 公司
第一问 · 农行那段
第二问 · 招行那段
前五段里没有就填「无」。你的排名可能和同学略有出入,照实记。记在这页上的只存在这台电脑的浏览器里。

第三步 · 让 Claude Code 只凭检索结果答

输入 /clear 开一个新会话,免得它直接拿上一步的表来答。提示词自己写,写清四件事:只凭 检索.py 的结果回答,不打开、不搜索 资料库/ 里的文件,每个数写出处(哪家银行、原报告第几页),没有就说没找到。问题就是第一问和第二问。

盯着它干活。屏幕上冒出 Read 或 Search 开头、路径里带 资料库 的一行,就是它绕开检索、直接翻原文了。按 Esc 停下,提醒它只用 检索.py,让它重答。

答完自己回原文核。打开 资料库/农业银行2025年报.md,按 Ctrl+F 找它写的那一页,看数对不对得上;招行那个数同样核。

第四步 · 检索答不了的一问

第三问 30 家银行里,2025 年末不良贷款率最低的是哪家?

接着同一个会话,自己写提示词,让它先只用 检索.py 查一次、告诉你能不能答,再换办法去 资料库/ 里查,每家的数写出处。它要自己翻 30 份文件,会慢一些。挑两家回原文看一眼。

记在这里 · 第四步
检索为什么答不了这一问(一句话)

第五步 · 往库里追加一份新资料

单独跑 python 向量化.py --加 招商银行2026半年报节选.md,命令照抄,把它打出的最后一行原样贴给我。
再用 检索.py 查「招商银行 2026 年上半年的净息差是多少?」,列前 5 段的排名和出处。

最后一行写着这次用了几秒、几个 token。再看出处写着 招商银行2026半年报节选 的段排不排得上来。

记在这里 · 第五步 · 算一笔账
秒数token
追加半年报节选,你这次
30 家全量建库,7638 段335(教师机)约 250 万

下午练习二 · 用 Claude Code 搭一个个人知识库

材料包里的 练习2_知识库\ 是搭好骨架的知识库,personal-wiki 技能已装好。收件箱里放着第 1 到 5 次课的十份课程网页快照。你让 Claude Code 把它们整理成条目,问几题,再放进一份新资料,看它改不改得动、关掉再问还答不答得上。全程不联网。

回原文核 它的回答自己翻快照和 待入库/ 里的课堂安排核一遍,说得越笃定越要核。

把 练习2_知识库\ 整个拷到一个固定的位置(文件夹名不要改,以后一直用,晚上的闹钟也认这个位置),用 VS Code 打开,在终端里输 claude 启动,按 Shift+Tab 切到 accept edits。

第一步 · 整理收件箱(它动起来再去休息)

提示词自己写,写清五件事:这是课堂练习,只用这个文件夹里的文件、不联网;先确认 personal-wiki 在技能列表里,再读 规则.md;用它整理收件箱,课程资料挪进 原始资料/学习/AI学习/金融硕士智能体课/,条目分四页写进 学习/AI学习/金融硕士智能体课/;链接.txt 和 待入库/ 这次不动;中途不要停下来问你,写完汇报建了哪几页。看它开始读文件了,再去休息。

回来看四处:收件箱只剩 链接.txt 和 不收/;四页条目每句有出处;索引多了四行;日志记了一笔。

第二步 · 新开会话,问三题

第 6 次课讲什么?第 8 次课做什么?小组项目里查资料的 AI 模块,按什么来选?每条答案写出处,知识库里没有的就说没有。

第三题知识库里还没有,看它说不说没有。第 8 次课它怎么答、出处是哪份,记下来,第五步还要再问。

第三步 · 新资料进收件箱

接着上一个会话,让它把 待入库/第6次课_课堂安排.md 复制一份到收件箱,再整理收件箱,链接.txt 还不动。打开课程安排那一页,看第 8 次课改了没有,旧说法进了变更记录没有,再看日志最后一笔。

第四步 · 记一下

用你自己的话,让它记一条今天的心得:RAG 和 Wiki 两种知识库,各适合什么情况(一两句就行)。它该把你的原话存成原件,再补进相关条目,带出处,日志记一笔。

第五步 · 关掉再问

新开会话,自己写提示词,问四题:第 8 次课做什么、以前是怎么说的、哪份资料改的;查资料模块按什么选;我记的 RAG 和 Wiki 各适合什么情况。每条要出处。

四题都该答得上。出处对一对:第 8 次课现在怎么上、查资料模块怎么选,出自 第6次课_课堂安排.md;以前的说法出自 第1次课_课件.md;最后一题出自你记的那份。

晚上练习一 · 干完了它来叫你

给 Claude Code 挂一个 hook,它每答完一轮、要你批准的时候,右下角各弹一条通知。材料包 练习一_提醒/notify.py 是弹通知的脚本,拷脚本、改设置都交给 Claude Code,你只发一段话。改的是用户级设置,以后在哪个文件夹用 Claude Code 都会响,练习二里闹钟叫醒它,跑完也是它来叫你。要弄清的是 hook 的三样东西:挂在哪个节点、节点到了跑什么、脚本收到什么。

第一步 · 一段话让它装

用 VS Code 打开材料包里的 练习一_提醒 文件夹,在 Claude Code 面板里发这段话。

照这个文件夹里的 notify.py,给我装一个完成提醒。
1. 脚本放进 ~/.claude/hooks/
2. 在 ~/.claude/settings.json 加两个 hook:Stop,和 matcher 为 permission_prompt 的 Notification,命令都是 python "$HOME/.claude/hooks/notify.py"(Mac 用 python3)
3. 只加 hooks 这一段,原有内容一个字不动,已有 hooks 就合并;回话别贴整份设置
4. 装好跑一次脚本,弹一条测试通知

往用户目录的 .claude 里放脚本、改 settings.json,它都会先弹确认,开着 accept edits 也一样,看清是这两处再点允许。测试通知弹出来,脚本就是好的;没弹,看「排错」里通知那几行。课上别切换 CC Switch 的供应商。

第二步 · 新开会话测

点面板上的新会话,测三件事:问一句,答完弹「干完了 · 文件夹名」;让它做件要批准的事(如跑 python --version),弹「等你一下」;在终端里跑下面这行,跑完也弹。

claude -p "用一句话介绍你自己"

第三步 · 让它说清三样东西

刚才弹的通知是 hook 弄的。看一下 ~/.claude/settings.json 里的 hooks 和 ~/.claude/hooks/上一次收到的.json,在这个例子里,节点、命令、输入各是什么?每样一句话。

它说完自己也会弹一条。再打开 上一次收到的.json,对一下它说的节点名和最后那句话。

晚上练习二 · 到点了它自己醒

在下午的 练习2_知识库 里做。任务计划程序每 10 分钟叫醒一次 巡查收件箱.ps1:收件箱没有新东西就记一行日志退出,不叫模型;有新东西,才开一个新会话让 Claude Code 整理,整理完由练习一的 hook 弹通知。材料包 练习二_巡查/ 里有 巡查收件箱.ps1、隐藏运行.vbs 和两份测试用的 AI 资料。每次新开会话,上一轮的对话不带过来,要它记住的都在文件里;没新东西就不叫它,不花一分钱。

第一步 · 放三个文件

把材料包 练习二_巡查\ 里的 巡查收件箱.ps1 和 隐藏运行.vbs 拖进 练习2_知识库\ 根目录(有 规则.md 的那一层),别用记事本另存;再把 AI资料1 拖进 收件箱\。用 VS Code 打开 练习2_知识库,新开一个会话。

第二步 · 一段话挂闹钟,先跑一轮

在 Windows 任务计划程序里建一个叫「知识库巡查」的任务:
每 10 分钟用 wscript 运行这个文件夹里的 隐藏运行.vbs,到点不弹窗,笔记本拔着电源也要跑,不用管理员。
这一步要动任务计划程序,是我同意的。收件箱你别动,留给闹钟。
建好让任务计划程序马上跑一次,不用等它跑完。最后告诉我以后怎么删。

它会请你批准命令,看清是在建任务再点允许。中间弹的「等你一下」是批准框,回完话那条是这个会话的。过几分钟再弹一条「干完了」,正文讲它收了 AI资料1,那条才是闹钟这一轮。

第三步 · 问它这个闹钟是怎么转的

这个闹钟是怎么运行的?读一下 巡查收件箱.ps1 和 巡查日志 里今天那份:
到点以后,从任务计划程序到整理完,依次发生了什么?逻辑上怎么做到自动查收收件箱?
哪一步是脚本写死的,什么时候才叫模型?

它该讲清:到点是谁叫醒谁;看收件箱有没有新东西,是脚本写死的一步,不是模型做的;有新东西才开一个新会话整理;整理完怎么记账、怎么叫你。

第四步 · 等它自己醒

把 AI资料2 拖进收件箱,不碰电脑,下一轮到点它整理完,右下角弹通知。过一阵打开 巡查日志\ 里今天那份:几轮叫了它,几轮写着「收件箱没有新东西,没叫它」,有没有被拒的动作。再打开 日志.md,一份是闹钟记的,一份是 Claude Code 记的。

Mac 没有任务计划程序,让 Claude Code 照 巡查收件箱.ps1 改写成 .sh 加一份 launchd 的 plist,先给你看再写。

接着用 · 放进你自己的东西

知识库和闹钟都配好了,往收件箱里放课堂以外的东西:读过的研报、论文、公众号文章,作业二的行业资料。刷到链接,在 练习2_知识库 里对 Claude Code 说「收一下」加链接,它读完存进收件箱;闹钟禁了联网,自己读不了链接。PDF 先转成 Markdown 再放。自己的材料先脱敏,库里的内容整理和提问时都会发给模型。

排错

练习一 · RAG

现象多半是怎么办
报 401,说接口拒绝了这个 keykey 不对,或者没抄全重新复制,在 硅基流动key.txt 里整行替换,保存再跑。还不行就新建一个 key
打出「接口忙(429),几秒后重试」请求太密,接口在限速不用管,脚本会自己等一会儿再试
报没有找到 API keykey 没粘进 硅基流动key.txt,或者没保存确认里面是 sk- 开头的一整串,保存后重跑
报没有设 API key,预先算好的里也没有没有 key,又问了清单以外的话换成 问题清单.md 里的原话
它说找不到 python,或者弹出微软商店Python 没装,或者 VS Code 认不出来从开始菜单打开 Anaconda Prompt,cd 到 练习1_RAG,在那里输 claude 启动
每跑一条命令都要你点允许它加了 cd、换成 python3,或者把几条连成一条,和放行的写法对不上点允许也能接着做;嫌烦就提醒它命令照抄、一条一条单独跑
报还没有向量库向量库\ 不在 练习1_RAG\ 里了从材料包重新解压放回原处。追加过的半年报要重新 --加 一次
第三步它直接打开了 资料库\ 里的文件没照 CLAUDE.md 的规矩来提醒它这一问只凭 检索.py 打印的段落答

练习二 · 知识库

现象多半是怎么办
它说技能列表里没有 personal-wikiClaude Code 不是在 练习2_知识库\ 里启动的/exit,用 VS Code 打开这个文件夹,在它的终端里重开 claude
每写一个文件都要你点允许权限模式还是默认的按 Shift+Tab 切到 accept edits
整理太慢,休息快结束了还没完十份快照要逐份读,再编四页条目让它跑着,休息回来再看
它说记住了,知识库里却找不到可能记进了 Claude Code 自己的记忆再说一遍:用 personal-wiki 记进这个知识库,原话存成原件,再补进条目

晚上 · 提醒与巡查

现象多半是怎么办
hook 挂上了,答完没弹通知改完设置没新开会话;或者 settings.json 写坏了新开一个会话再试;看 用户目录\.claude\hooks\上一次收到的.json 有没有更新,没更新就让它检查 settings.json
上一次收到的.json 更新了,还是没弹开着勿扰,或者通知设置里关了 Windows PowerShell按 Win+N 在通知中心里找;设置 › 系统 › 通知 里把 Windows PowerShell 打开
切了 CC Switch 的供应商之后,通知不响了切换时整份重写了 settings.json,hooks 被抹掉把第一步那段话再发一次
它说建计划任务超出这个文件夹,不肯做知识库 CLAUDE.md 里写了不碰文件夹以外的东西再说一句:这是我要的,建计划任务不算读写文件夹外的文件
它回完话弹了一条,之后再没动静闹钟那一轮还在整理,或者没跑起来再等几分钟;还没有,就让它看任务的上次运行结果和 巡查日志 里今天那份
巡查日志里写「找不到 claude 命令」闹钟跑起来时找不到 claude 装在哪让 Claude Code 查到 claude 的完整路径,换进 巡查收件箱.ps1 里那行,保持原来的编码
巡查日志里有「被拒的动作」它在命令前加了 cd、用了组合命令,或者想删文件看清是哪条。删除和联网是故意禁的;组合命令它通常会换成单条再试
巡查日志里只有「没跑成」模型接口没连上,或者 CC Switch 没开看「原样输出」那一段报的错;手动跑一次 claude -p 试试
到点了没跑没设成拔电源也跑,或者合盖睡眠、关机、没登录让它删掉重建,并说清拔电源也要跑;任务计划程序里看「上次运行结果」
建任务时报「拒绝访问」学校或公司管控的电脑不让建计划任务换自己的电脑

课后

时点做什么
今晚睡前「知识库巡查」每 10 分钟一次太勤。让 Claude Code 删掉,或者改成每天两次
本周内小组项目里要查资料的那个 AI 模块,按下午的三问选 RAG、Wiki 还是目录,选了哪种、为什么,写进项目说明
交作业、拷给别人之前打开 练习1_RAG\硅基流动key.txt,删掉 key 那一行
写作业二的这一周行业资料丢进收件箱,让闹钟替你编进知识库;写报告时先问知识库,数字回原文核
10 月 28 日 18:00 前个人作业二交平台:报告和交互记录。想上台的在平台报名
11 月 10 日 23:59 前终期材料交平台:报告 PDF、展示页 zip、会话记录 zip
课程结束或不再用了让 Claude Code 把「知识库巡查」删掉;不想要通知了,让 Claude Code 把 settings.json 里 hooks 那一段删掉
知识库接着用 练习2_知识库\ 别删,也别再挪。真要挪,挪完让 Claude Code 把「知识库巡查」删了重建,不然闹钟找不到脚本。以后都在那里启动 Claude Code,资料丢进 收件箱\,闹钟替你整理。

延伸阅读