给个人站加一个 AI 助手:把知识库和 17 个工具接进对话里
2 tok/s 的本地模型跑不动自主 Agent,所以做成工具路由器:模型只选工具,确定性计算交给代码。这篇记录 17 个工具、SSE 流式、五个坑(哈希被编造、工具名混淆、重复调用、嵌套 JSON、nginx 60 秒掐断)和线上实测。
技术随笔、折腾记录与读书笔记。成体系的教程在 知识库,这里只放单篇的东西。
2 tok/s 的本地模型跑不动自主 Agent,所以做成工具路由器:模型只选工具,确定性计算交给代码。这篇记录 17 个工具、SSE 流式、五个坑(哈希被编造、工具名混淆、重复调用、嵌套 JSON、nginx 60 秒掐断)和线上实测。
不追求大而全,追求「出事五分钟内定位范围」:日志先定字段再谈采集、指标只留能触发动作的、trace_id 关键路径必采、告警必须对应一个动作,外加从零落地的六步顺序。
502 是后端不可达、504 是后端太慢,先看 error.log 关键行,再把 upstream_response_time 加进日志;附「现象↔原因↔一条命令验证」对照表。
拆分不是价值观问题而是成本问题。这篇写我实际的顺序:先按数据所有权划边界 → 再定接口 → 再动数据(双写/回填/切读/停写)→ 最后才拆进程,以及一个「共享数据库的分布式单体」反例。
换掉上次那个「导出 Excel」的玩具例子:这次用「给 IM 加群聊未读数与已读回执」走完整条流程——一页规格(含那条最重要的「不做」)、两种数据模型的写放大对比、四步可回滚迁移、逐文件实现与提示词、位点幂等的边界用例、上线开关与告警指标,以及 AI 帮到我三件事、坑我三件事。
connection refused 的五种可能(bind、protected-mode、maxclients、maxmemory、实例重启)与连接池打满的排查(connected_clients、blocked_clients、SLOWLOG、大 key)。
AI 在压测里最值钱的用法是帮你把口径问清楚、写脚本骨架、把可疑指标列全;最不值钱的是让它告诉你结果。这篇记录了阶梯加压找拐点、压测机自己成瓶颈、以及报告里必须补的三节。
测试全绿但功能是坏的——AI 生成的测试有三种典型假象:断言恒真、把实现抄进断言、为了让测试通过而改测试。这篇给识别方法与三道检查,也说明 AI 在测试上真正强的地方。
一次证书过期故障的完整复盘:四种常见续期失败原因(换过 IP、80 被 301、webroot 路径、续期成功但没 reload),以及提前 30 天告警与 dry-run 进监控的预防措施。
把散落的输入(提交记录、聊天要点、随手笔记)统一成一份模板,让 AI 出初稿,我只做收口。这条流水线跑了半年,周报从 40 分钟压到 10 分钟,而且不再是「这周做了些啥」式的流水账。