作品展示 · 2026
吴昱辰 设计出身的端到端 AI 落地工程师
视觉传达设计科班 × 自学全栈 AI 落地 × 重度 Agent 工程实践。
独立把模糊需求走到"客户能用的线上产品"。
01
民航飞行手册严格 RAG
真实客户 · 已上线验收阶段
02
SKILL·HOT 热度计
自主项目 · 已部署上线
← → 翻页  ·  T 主题
关于我

吴昱辰

20 岁 · 温州商学院 视觉传达设计 本科在读 · 现居温州,可赴外地
我能一个人,把一句模糊的需求,
做成客户真的能用的线上产品。
我怎么学的

全部自学,学完立刻落地

AI、编程、硬件、网络都是自学的。方式是:看到新东西就立刻找一个真实场景用上——做不出来,就说明没学会。

我做过什么

两个真实的企业项目

一个已经上线(今天要讲的民航知识库),一个走完了从需求调研到正式报价的完整客户周期(外贸单据自动化)。

我怎么干活

人做判断,AI 做执行

日常用 Claude Code 当主力生产工具,多个 AI 分工协作。方向、取舍、验收由我定,重复劳动交给它。

关于我的专业

我是设计专业出身,但这不是转行。设计训练的核心是把混乱的信息组织成人能看懂的结构——我现在做的是同一件事,只是换了个介质。

我能做什么

一个人走完整条链路

一般的分工是六个人干六件事。我这两个作品,每一环都是我自己走的
01 · 接需求

把"我们想用个 AI"拆成能做的事

直接面对客户,问出他真正的痛点——通常跟他一开始说的不一样。

02 · 定方案

判断该用什么、不该用什么

以及为什么。取舍比堆技术重要。

03 · 做出来

界面、后台、数据处理都能自己写

不需要等别人配合,一个人能把东西跑起来。

04 · 验证

自己出考题,考自己的系统

用数据证明这一版到底有没有比上一版好,而不是凭感觉。

05 · 上线

让它 7×24 自己跑着

服务器、域名、证书、定时任务、日志、故障恢复。

06 · 接反馈再改

客户说不好用,我能判断问题出在哪一层

这一环最难,也最值钱。今天第二个故事就是讲这个。

底色

视觉传达设计科班(品牌 / 版式 / UI / 交互)。大部分人只占其中一两环,我是整条能走完——这也是我理解的"能直接面对客户的落地工程师"该有的样子。

简历速览 — 两个主作品之外

其他经历,快速过一遍

企业项目 · 二

外贸订单录入自动化

帮一家外贸制造企业把客户订单自动录入系统——原来人工录几十个字段要数小时,目标压到分钟级。
独立走完了完整客户周期:需求调研 → 做 Demo → 正式方案与报价(后因客户内部决策暂缓)。

自主项目 · 工程诚信

A 股量化研究系统

从零搭建,540+ 项自动测试全通过,连续 50 天每天自动运行并发布报告。
最想讲的是这个:早期"预测涨跌"模型被我自己用严格回测证明约等于抛硬币,我主动把它降级标注、公开证伪过程。研究性质,不涉实盘。

设计本行

真实商业交付

宠物食品品牌包装与电商视觉(真实交付)、哈尔滨 / 宁波城市文旅 VI、AI 批量视觉生产系统(配套软著申请材料与研究论文)。
不是课堂作业。

个人网站(自己写的):lumastudio.com.cn

佐证材料 · 都可查证
01 — 客户的真实困境

不是"查得慢",
是"不敢信"

某大型民航货运航司 · A330 货机机队
痛点一 · 人工检索

19 本手册,1.8 万页 PDF

飞行员 / 机务查一个放行条件、一段应急程序,要在几千页扫描件里人工翻页。FCOM、QRH、MEL、CDL、SOP 各成体系。

痛点二 · 不敢用大模型

它会一本正经地编

通用大模型面对手册里没有的内容会编造数值和步骤。在航空安全场景,错一个数字就可能致命——所以宁愿继续人工翻页,也不敢引入。

02 — 我定的第一性原则
每一个论断都必须能追溯到原文引用;做不到,就明确拒答
  • 常规 RAG 追求"尽量多答",覆盖率是它的 KPI
  • 这个系统反过来:允许答不出,绝不允许答错
  • 这条约束不是口号——它是后面每一个技术选择的源头:四道独立防线、对抗性评测、拒答守卫,全都是从这一行推导出来的
这条原则的代价

系统会拒答一部分"其实能答"的问题。我接受这个代价——在安全关键场景,假阴性可以补,假阳性补不了

03 — 核心架构:四道防幻觉防线

纵深防御,不把宝押在 prompt 上

点击任意一层展开细节 · 四层互相独立,任何一层失效其余仍能兜底
1
Hybrid 检索 召回层
向量召回(bge-m3,1024 维中英跨语) + SQLite FTS5 关键词召回 → 自研 RRF 融合
FTS-only 候选必须通过 core-token gate 才放行;召回失败优雅降级为保守拒答。领域感知分词:jieba + 航空缩写白名单(MEL / QRH / V1 / CAT II 等整 token 保留)。可选 bge-reranker-v2-m3 交叉编码器精排 top30→top8,且置于拒答守卫之后,不干扰拒答决策。
2
复合拒答守卫 不调 LLM · <150ms
off-domain 守卫 + vec_sim 复合阈值 + 历史/事件类 intent 守卫,毫秒级短路
知识库没有该机型主资料 → 直接拒;相似度 <0.50 拒 / ≥0.55 放行 / 灰区走领域缩写门;"上次出过什么事故"这类历史事件问句直接拒。这一层短路的请求完全不消耗 LLM 调用——既是安全设计,也是成本设计。
3
生成约束 + 自拒治理 生成层
严格 system prompt(只准用知识库内容、逐论断标 [n] 引用) + 自拒时干净重采样多路投票
模型自我拒答但证据其实充分时,并行 2 路干净重采样(不带失败历史)投票,全部路径都拒才输出兜底。为什么必须"干净"——见下一页的"拒答锚定效应"。安全阀不放松:确认无关时保持拒答。
4
引用后处理校验 兜底层
引用编号越界或编造 → 整条答案重写为拒答;缺引用的论断追加警告
这一层是"就算前三层全被绕过"的最后闸门。同时精确区分"拒答文案"与"诚实的部分回答"——早期版本用子串匹配,把"未找到完整程序,但资料包含以下步骤 [5]…"这种最有价值的回答整条误杀了,修完这个 bug,对抗评测直接上到 100%。
04 — 数据层:让切分单位 = 语义单位

RAG 拉开差距的地方不在模型,在数据

0%→0
切片页眉噪声占比
0%
库体积下降 278→122 MB
0
父块(完整 DU / 条目 / 程序)
0
子块(≤600 字检索单元)
  • 确定性去噪:34 条"零信息整行"模式,只删版式家具,正文与章节标题零损失
  • 结构感知切分:先做全量锚点扫描(实测而非假设)——96.5% 页面存在可靠锚点。FCOM/QRH 用 DU 识别行、MEL/CDL 用条目号、SOP 用小节号,无锚点文档自动回退滑窗
  • 父子两级索引:小块检索保精度,命中后取完整父块作答——程序步骤、表格、放行条件不再碎片化
  • Contextual Retrieval(Anthropic 2024 方案):为每个子块生成一句定位说明前置到向量文本。安全红线:说明只参与检索,永不进入引用与答案依据链
一个意外收获

被噪声埋掉的真实答案

系统一直答不出"如何修理咖啡机",我原以为知识库里没有。去噪后发现——MEL 第 478 页真有咖啡机的放行条目(厨房电器 C 类修复期限)。

数据质量修复不只消灭伪命中,还释放了被掩埋的真实内容。

05 — 评测方法论:对抗性评测优先
模板题只能证明"检索通了";要证明"不编造",必须用设计来让它出错的题。
10 个攻击维度 × 50 题 · 判分器支持 answer / refuse / answer_or_refuse 三态 + must_not_include 禁词断言
诱导编造
错误前提
off-domain 机型
主观诱导
历史事件
多跳组合
数值精确性
深章节号
模糊短 query
双语混合 + 注入
工程纪律 · 一

每条失败样本人工核对后才下结论

本轮发现 10+ 条"失败"实为判分误伤——否定句纠错、诚实的部分回答等教科书级正确行为,被子串匹配冤枉了。

不做这一步,就会照着假的失败样本去"修"一个没坏的系统。

工程纪律 · 二

同题同模型公平对比

库变化会让评测抽题漂移,模型更换会整体移动分数。所有版本对比必须锁定同一份题 + 同一个模型

这条原则让我避免过一次错误结论。

06 — 评测驱动迭代:单日完成 V1 → V4

数字,以及数字的构成

对抗评测(10 维度 50 题)96% → 0%
综合评测(120 题)90% → 0%
结构专项(程序完整性 / 数值 / 深条目)70% → 0%
灰线 = 升级前基线 · 同题同模型公平对比 · 2026-07-07 单日完成四代
我自己踩出来的一个发现

拒答锚定效应

最初把"首次拒答"作为对话历史传回去重试——模型被自己的拒答锚定(一致性偏差),双路全拒。

改为干净重采样(不带失败历史)后:单路成功率实测约 50%,双路联合把残余自拒率压到 平方级

剩余差距的诚实拆解

~2–4% 生成层残余抖动(多采样已压到平方级但非零)
~3 分 属评测工具产生的怪题,非系统缺陷
个别 KB 真实缺失(如襟翼构型速度表需表格结构化)

07 — 真实客户反馈闭环

一条差评,改的是架构不是 prompt

客户原话:"问『如何使用 MEL』,答成了章节目录。"
修复前
系统返回 MEL 的章节目录

检索命中的是目录行——因为条目的标题和正文被 800 字滑窗切到了不同片段里。
根因定位 → 重构切分层
答出实操流程
失效 → 记录 → 修理或保留 → 仅适用于飞行前。

改的不是 prompt,是让切分单位对齐手册的天然语义单元。
同一次重构带来的质变

MEL 32-42-09 条目

软拒答 → 直达完整条目:按压电门、修复期限、放行数量,页码精确到 785-788

白名单补全

VMO / MMO 数值

确定性误拒 → "VMO 330 kt / MMO M 0.86 [1]" 一步到位

安全关键步骤

ENG FIRE 完整处置

原缺失"切断发动机主电门" → V4 后完整有序:收光油门 → ENG MASTER OFF → FIRE 按钮 PUSH → 灭火剂 DISCH,全带引用

08 — 工程纪律与诚实边界

怎么保证上线不出事

  • 多 agent 上线裁决:13 条失败样本 × 3 个独立核查视角(编造查证 / 判分口径 / 回归归因)= 40 个 agent 实际查库取证,产出 go / no-go 裁决与修复清单
  • 两个"疑似回归"被差分实测证伪——不做这一步,就会错误回滚一个其实没问题的版本
  • 全程可回滚:部署前三件套备份(库 / 代码 / 配置),新库并行构建、评测达标才原子切换,任意版本 2 分钟可回滚
  • 线上事故处置:模型服务商余额耗尽导致问答中断 → 零代码改动 10 分钟内切换备用兼容端点恢复服务
诚实边界 · 我主动讲的部分

状态:真实客户对接、系统已上线,但处于测试 / 验收阶段,未进入全量生产,暂无客户方审计过的 ROI 数字。

客户名:按保密要求统一表述为"某大型民航货运航司"。

已知遗留:LLM 生成层偶发自拒率约 4–8%(检索正常但模型保守),已进入监控清单。

安全免责(写进产品里的)

系统仅用于辅助查询。在航空等安全关键领域,严禁将输出直接用于实际运行决策,所有回答以原始受控文件为准。

09 — 技术栈与线上验证

技术选型

LLMDeepSeek(温度 0.1,可换任何 OpenAI 兼容端点)
EmbeddingBAAI/bge-m3(1024 维,中英跨语)
Rerankerbge-reranker-v2-m3 交叉编码器(可选)
向量库sqlite-vec 虚表(零部署依赖)
关键词SQLite FTS5 + jieba + 领域缩写白名单
后端Python 3.11 / FastAPI / SSE 流式
前端Vite + React 18 + TS + Tailwind + shadcn/ui
文档解析PyMuPDF + python-docx + 页眉确定性去噪
87 用例测试基线首 token < 3s 混合检索 100–200ms私有化部署 · 数据不出内网
可当场演示

kb.lumastudio.com.cn

建议请面试官提两类问题:

  • 它应该能答的:如"复飞的完整程序" → 看它给出带页码引用的答案
  • 它应该拒答的:如问别的机型、或"A330 上次出过什么事故" → 亲眼看到它拒答

第二类比第一类更有说服力——所有 RAG 都能答对第一类。

脱敏开源版

github.com/betzaydarobie-source/strict-rag · MIT
方法论可复用于医疗设备手册、铁路规章、船舶操作手册等任何"必须带原文引用"的场景

为什么是 SQLite 全家桶

单文件即整库(SQL + 向量 + 全文索引):备份 = cp,回滚 = 换文件。2 万切片规模单次混合检索 100–200ms——对私有化知识库,比引入独立向量数据库的运维成本合算得多。

作品二 — SKILL·HOT

Agent Skills 每日热度计

同一套方法论换个场景复用 —— 用它证明第一个项目不是运气
skillhot.dawnform.top 已上线 · 服务器每天 07:30 自动跑管线
0
skill 全量 AI 评分(成功率 99.9%)
0
GitHub 仓库
0
精选池(P85 分位校准 · 16.4%)
0
核心功能从调研到成品
它解决什么

Agent Skills 生态没有"信息集散地"

GitHub 上每天新增 30–40 个含 SKILL.md 的仓库,散落在各处。我做一个自动发现 + 质量评分 + 排行 + 日报的聚合站,并开放 API / RSS 给别人接。

前半天做了什么

两个并行调研 agent 实测拆解

拆解对标站整站结构(OpenAPI 全量端点、38 个主题页、RSS 结构、防盗采机制),并验证 Agent Skills 生态的全部可用信源(GitHub 四个 topic 的量级、SkillsMP、ClawHub feed…),综合成可直接开工的设计蓝图。

11 — 数据管线(每日自动)

7 步流水线

01
discover
GitHub 4 topic + 近 N 天新库
02
skillsmp
目录站 JSON 补发现
03
fetch
解析 SKILL.md
04
clawhub
多源收录标记
05
score
AI 评分 + 代码算权重
06
snapshot
star 日快照
07
daily
上新报(纯代码拼装)
设计取舍 · 一

多源交叉但不合并

ClawHub 那一步只给已收录 skill 打"多源收录"标记,不合并数据——不同源数据质量不一,合并会污染。只当信号用。

设计取舍 · 二

防合集刷屏

单仓库最多取 40 个 SKILL.md,避免一个"技能合集"仓库淹没整个榜单。raw 拉取不计 API 配额。

设计取舍 · 三

能用代码算的绝不调模型

日报按北京自然日切片,纯代码拼装零 LLM 调用。省钱、稳定、可复现。

12 — 关键工程判断
知道 LLM 在哪不可靠,就用确定性手段兜住那一块
问题 · LLM 给分通胀

固定阈值时 88% 都"精选"

让模型给 5090 个 skill 打质量分,实测中位数 78 分——按固定阈值切,精选池占 88%,精选就失去意义了。

常规做法:调 prompt 让模型严格点。
问题是 prompt 调完还会漂移,换个模型又得重调。

我的做法:不跟模型较劲 —— 改用全库 P85 分位数动态校准精选线。不管模型整体偏高偏低,精选池永远稳定在头部约 15%(线上实测 837 / 5090 = 16.4%)。

分工 · AI 只做它擅长的

权重由代码算,不由模型算

AI 负责 语义理解 · 分类标签 · 中文推荐理由 · 风险提示
代码负责 utility 40% + quality 28% + universality 12% + star 20%
三个榜单 · 全部代码计算
  • 热点榜:快照差值算 star 日增速;仅一天快照时新库用平均日增星近似;每仓库只出最高分 skill
  • 总榜:AI 分 45% + log-star 35% + 维护活跃度 20%
  • 上新榜:firstSeenAt 倒序 + 仓库级全量去重
13 — 对抗性审查 · 设计系统
同一套方法论 · 迁移过来

3 镜头 finder + opus 怀疑者验证

三个不同视角的 finder agent 找问题,再用一个 opus 怀疑者 agent 逐条验证真伪。

5 个发现 → 4 个存活 → 全部修复并回归验证

热点榜截断上新榜窗口 日报时区详情页池过滤

全是"自己随手点几下测不出来"的边界问题——所以才需要专门设计来找茬的审查。

诚实边界

riskFlag 是 AI 提示性标注,不是安全审计结论
热点榜需 ≥2 天 star 快照积累才有真实增速数据。
线上暂未接访问统计与 uptime 监控。

设计科班的部分

8 参考站 × 4 调研 agent × 37 模式 → 一份设计规范

UI 没有直接开画,先做模式调研并收敛成规范,再实现。

HOT WIRE 热线终端(暗色 · 初版)
冷调四级曲面 + 橙色收窄为信号色 · 胶囊温度计 + count-up · 批注式推荐理由 · Bento 分类网格
HOT PRESS 热报纸面(亮色 · 定版)
暖纸四级曲面 + hairline · 信号橙加深保对比 · 噪点改 multiply 纸纹 · 发光改极淡暖晕

token 同名换值,组件零改动 —— 整站换肤只改一层变量。

这是设计背景在工程上的兑现:不是"会画好看的图",是"知道怎么把设计系统化成可维护的代码结构"。

14 — 从"本地能跑"到"线上能用"

补上我承认过的那块短板

我之前所有项目都卡在同一层:本地能跑,但给不了别人一个能独立运行的东西。这次走完了。
生产环境栈 · 不只是"传上服务器"
进程PM2 守护 + systemd 开机自启
反代nginx,限流 60r/m(burst 40),SEO 爬虫 UA 403
HTTPSLet's Encrypt + certbot 自动续期,HTTP 301 跳转
定时crontab 每天北京 07:30 自动跑全管线
日志logrotate 周轮转保留 4 份 + pm2 logs
发布本地构建 Next standalone → 只传精简产物(目标机磁盘紧张)

一个运维细节:服务器上的数据库每天实时更新,所以部署命令特意排除了它——否则每次发版都会覆盖掉当天采集的数据。

踩坑记录 · 真做过才知道的
  • Next standalone 不读 .env 文件 → 环境变量必须走 PM2 ecosystem 注入
  • Prisma 需 binaryTargets = ["native","debian-openssl-3.0.x"] 才能在 Linux 跑本机构建的产物
  • DATABASE_URL 必须绝对路径——相对路径在 standalone 下解析位置不可控
  • 服务器复用 standalone 里已生成的 Prisma client(symlink),避免重复装几百 MB
  • 本机 DNS 被代理污染,验证域名解析要走 DoH
诚实边界 · 我知道但还没做的

未开 Cloudflare 代理(现在 DNS only),源站 IP 暴露。要抗 DDoS 把 DNS 切 Proxied + SSL 选 Full (strict) 即可,证书已就位。
磁盘 4.9G 用了 69%;GitHub token 目前是 OAuth 而非专用 PAT。

收束 — 两个作品的共同内核
先承认大模型不可靠
再用工程手段把它兜住
01 / 方法论
金标准 + 对抗性评测 + 多 agent 裁决。
把"答得好不好"的主观感受,拆成可检验、可回归的维度。

RAG:四道独立防线 + 10 维度对抗题
SkillHot:P85 分位校准 + 权重全代码计算
02 / 交付
交付的不是 demo,是端到端。
需求调研 → 架构 → 实现 → 评测 → 上线 → 运维,一个人走完整条。

两个项目现在都跑在线上:一个真实客户在验收,一个每天 07:30 自动更新数据。包括处置线上事故、包括把一条差评追到架构层。
03 / 底色
视觉传达科班。
设计不是我的加分项,是我理解产品的底层方式——从信息架构到设计 token,一路都是同一种"结构化"直觉。

五层贯通:硬件算力 → 部署运维 → AI 应用工程 → 设计与生图 → 获客交付。
最后一句

这两个项目的局限,我刚才都主动讲了。我更愿意讲清楚系统在哪不行——知道边界在哪,才知道下一步往哪走。

谢谢

两个作品
都在线上跑着

线上 · 随便提问

kb.lumastudio.com.cn

严格 RAG 问答系统 · 记得也让它拒答一次

线上 · 每天自动更新

skillhot.dawnform.top

SKILL·HOT · 5090 skill / 837 精选

1 / 20