学生用 AI 做了个 AI Agent:453 测试全过,求大佬说句真话——它算玩具还是工具?

先说结论:我不确定我做的东西,到底算一个"能用的工具",还是只是一堆"看起来很唬人的垃圾"。

所以我把它完整开源了,想请真正写过生产代码的人帮我看看。如果你愿意花十分钟翻一下代码、再在评论区骂我两句,那就是今天我最大的收获。

我为什么做这个

我是一个学生。最开始只是想搞懂一件事:现在大家都在说"AI Agent",那一个 Agent 到底是怎么被造出来的?不是调一下 ChatGPT 接口那种,而是它真的能"记住你说过的话""自己学着把对话聊得更好""能读你丢给它的文件然后回答问题"。

我让 AI 工具帮我一起写,但尽量逼自己搞懂每一块在干什么------毕竟如果连自己写的都不懂,那就真成玩具了。这个项目,就是从"想看懂"一路堆到"想做出来"的结果。

它能干什么

它已经不是聊天 demo,而是一套有骨架的系统:

  • 强化学习对话闭环:用"这次对话质量怎么样"当奖励信号去训练 Agent,让它越聊越懂你的偏好;还配了个训练仪表盘,能看 loss 曲线、回合奖励、训练历史(历史存数据库,重启不丢)。
  • 向量语义记忆:Agent 记得住你之前说过什么,靠 embedding 召回,不是僵硬的关键词匹配,所以你隔很久再提旧话题它还能接上。
  • RAG 知识库:你上传文档 → 自动分块 → 混合检索(BM25 + 向量,用 RRF 融合)→ 它回答时带着原文引用,点一下角标能跳回原文那一段。
  • 仿真自测:能自动造一堆对话场景让 Agent 自己跑,专门用来抓"它什么时候会开始胡说八道"。
  • 质量护栏:我写了脚本拦三类垃圾------假向量、僵尸依赖、假测试,CI 跑的时候自动挡下来。

技术栈:后端 TypeScript + Express,前端 React,数据库 MongoDB,测试用 Jest。

一个让我自己有点自豪的小细节:文档收发

这块我花了最多时间,也觉得最实用。

收(读进来)

除了常见的 PDF / Word / PPT,它还能读:

  • LibreOffice 全家桶:.odt / .ods / .odp
  • 电子书:.epub
  • 一大票纯文本和标记语言:Markdown、CSV、JSON、YAML、XML、LaTeX、Org、reST、HTML、RTF、vCard、iCalendar、日志、ini、toml......
  • 你用手机拍的文档照片(带 EXIF 方向校正、中文断行重连,还会给个质量评分提醒你"这张太糊了该重拍")

发(导出)

反过来,AI 的任何一段回答,你能一键导出成 10 种格式 ------ md / txt / html / json / csv / xml / tex / org / rst / rtf。

我做这么偏门,想法很简单:你永远不知道用户手里那份文件是什么格式,少支持一种,就是多一次"打不开,算了"。

踩过的坑(这部分可能最值得你喷)

  • 分块差点把进程搞死:当 chunkOverlap 大于等于 chunkSize 时,我的分块循环会同步死循环、直接卡死进程。后来加了收敛和"下标必须前进"的兜底才稳住。
  • 依赖被误删:项目用 npm workspace,有次清理把 backend 的依赖提走,结果 RAG 直接炸穿主流程。现在 guard 会拦这种事。
  • 假测试:早期写过"看起来过了但其实没断言"的测试,所以专门写了护栏去识别并挡掉。

我现在最困惑的三件事

这才是我发这篇文章的真正原因。

第一,这东西对别人有用吗? 我承认它功能很多,但"功能多"不等于"有人需要"。是不是已经有一堆现成产品比我做得好得多?如果是,我就该换个方向,而不是继续往里堆功能。

第二,从工程角度看,最大的短板在哪? 我自己看自己的代码,是看不出问题的。我能想到的可能是:部署太麻烦?鉴权太简陋?代码里 AI 写的痕迹太重、结构乱?测试虽然 453 个全过,但会不会都是"假测试"?哪一个最该先补?

第三,一个学生想继续往下走,下一步该学什么? 是先把一个功能做到生产级,还是继续拓宽技术面?是先学系统设计,还是先把代码质量练出来?

代码在这里

GitHub(主):github.com/51-ai/test-... Gitee(国内镜像):gitee.com/Abc51/test-...

代码里有些地方确实比较乱,很多是 AI 辅助写的,我自己也知道不漂亮。

我接下来想做的

  • 把登录和鉴权做扎实(现在太简陋)
  • 让它真正能一键部署,而不是只在本地跑得起来
  • 把测试从"单元"补到"端到端",覆盖真实用户的操作链路

求拍砖

欢迎拍砖,越具体越好。哪怕只回一句"你这块应该这么写",或者"这个功能根本没人需要",对我来说都是真的有用。

谢谢各位。

相关推荐
_肆云2 小时前
GitHub CI/CD 全流程
ci/cd·github
本地化文档2 小时前
nix-ref-man-l10n
github·gitcode·mdbook·软件包管理器·nix
miofly7 小时前
OpenCode控制台密钥泄露事件:1.4%用户受影响,多方说法现分歧
开源·github
TunerT_TQ7 小时前
iPhone-use 静态工程评测:让 AI Agent 通过 USB 操作真实 iPhone,零依赖 MCP 与视觉坐标容灾架构
github
miofly7 小时前
GitHub 周榜趋势速报 | 2026-10-18
开源·github
miofly8 小时前
GitHub 日榜趋势速报 | 2026-10-18
开源·github
高频因子挖掘机9 小时前
分钟线跨午休后时间轴不连续,是数据错了还是 A 股交易时段本来如此?
后端·github·api
七牛云行业应用9 小时前
GitHub本周热榜(10月17日):REA周增24.9万 Star,Agent工具与创作工作流集体升温
github
y = xⁿ9 小时前
拆解cloud code记忆系统
java·人工智能·python·github