随笔
Agent 连续成功十次,我为什么还是不敢让它自动执行:给 AI 写一套真正的测试
RAG 接进 Agent 后,我准备了一段很顺的演示:问项目里哪个方案用了 Redis,Agent 搜索笔记、取出预算表达式、调用计算器,最后给出带来源的答案。连续跑十次都成功,我一度觉得这套东西已经能用了。 第二天我把问题改成“缓存那套计…
模型明明会说话,为什么读不懂我的资料:我从零搭了一个 RAG
6 月写完第一个工具型 Agent 后,我马上给它加了一个“搜索笔记”函数。三条假数据时效果很好,换成几十篇真实笔记就开始露馅:关键词写得不一样搜不到,整篇塞给模型又太长,搜到的片段缺少上下文时还会把结论拼错。 我原以为问题只是搜索函数太简…
给 GPT 装上手和记忆:我写了一个会查资料、算表达式的最小 Agent
2 月刚用上 ChatGPT 时,我把它当成一个很强的聊天框。3 月 API 开放后,我写了个命令行程序,把用户输入发给模型,再把回答打印出来。效果和网页聊天差不多,只是界面更寒酸。 真正让我觉得事情变了,是我让模型回答“项目笔记里哪个方案…
53端口的妙用,成功绕过校园网认证
大家都知道53端口是用来DNS解析的,DNS解析(域名到IP的转换)是上网的基础操作,因为我们学校用的设备是锐捷的设备,绑定了移动营业厅的账号,所以每次连上校园网都会自动强制跳转到锐捷的认证登录页面,大部分流量(尤其是HTTP 80端口)会…
不用写 free 真爽,但 Go 的 GC 到底在背后干了什么
从 C 转到 Go,最直接的解放是:再也不用写 了。上一篇里那些让我半夜 debug 的 use-after-free、内存泄漏,好像一夜之间都不存在了。 爽过之后,恐惧接踵而至:我不 ,那垃圾是谁清的?这个"谁"在什么时候、用什么方式,把…
GPT 只是在猜下一个词,为什么却像会思考:我把 ChatGPT 拆到了 Transformer
2 月 9 日晚上,我终于注册上了 ChatGPT,在“灵感”里只写了两句话:太不容易了,好用是好用,就是太贵了。 接下来的几天,我把能想到的问题都丢给它。让它解释指针,它能换一个比老师课件更顺的比喻;让它改一段 C 代码,它不只指出数组越…
0.1 + 0.2 为什么不等于 0.3:把浮点数拆到 IEEE 754 的每一位
大一某个晚上,我在 C 里写了一行本以为最没悬念的代码: 我等着看 ,屏幕却给我吐出: 0.1 加 0.2,不等于 0.3。末尾冒出一个不知从哪来的 4。我第一反应是编译器坏了,换了台机器,一样;用 Python 试, 还是 。 这不是某个…
-1 为什么是一串全 1:补码的减法魔术,与整数溢出那些不讲道理的坑
大一学 C,有天我用调试器盯着一个 变量看它的二进制,存 的时候,32 位全是 1: 。 我当时的第一反应是:这不对吧? 不就是"1 前面加个负号"吗,怎么会是一堆 1?符号跑哪去了? 顺着这个疑问往下挖,我才发现,负数在内存里的样子,和我…
指针、段错误,和操作系统凭什么管着我的内存
大一写 C,最让我头皮发麻的不是编译报错,而是程序跑起来之后蹦出的那行冷冰冰的英文:Segmentation fault (core dumped)。 它不告诉你哪一行错了,不告诉你为什么,就一句话,然后程序死了。 那阵子我心里堵着三个问题…
为什么大学都从 C 语言教起?我把一行加法追到了门电路
大一的课上,老师让我们背一条链:预处理、编译、汇编、链接。我背下来了,考试也答对了。 但有个问题一直卡在心里,没人回答:最后那堆机器码,到底是怎么让一块硅片"算出" 1 + 1 = 2 的? 这篇文章就是我当时想要、却没找到的那份答案。我用…