Agentic AI Product × Engineering Workflows

罗文杰

罗文杰

Wenjie Luo

NUS 土木硕 · AI Product Builder
可靠 Agent:LLM 编排 × 确定性工具 × HITL × 评测

一页 PDF · 预计 2027.01 毕业 · 新加坡 · 六赛道中英文简历

关于我

我是罗文杰,NUS 土木工程硕士(运输与城市交通),预计 2027 年 1 月毕业。做 Agentic AI 产品:复杂工程流程里,LLM 只编排,硬数字走工具,高风险要人点头,对不对能复跑。

现在在新加坡远东幕墙做项目工程师15 种幕墙材料的清单和到场计划、5 家供应商送样检测、运输与现场进度。 开源侧 Civil Buddy 是主产品:66 岗工作台,装箱引擎在仓内算坐标和柜数,成箱要人确认,影子评测可复跑。 不是已经上线的业务。

奇瑞做过竞品战胜 / 战败和 VOC;彩讯写过带验收的 PRD。现场这几个月让我更清楚:Agent 要敢给人用,先把门禁写进产品。

📍新加坡
🎓NUS MSc · 2027.01
🏗️远东 · 项目工程师
🧩Agent · HITL · 评测

我怎么判断

从项目里抽出的四条判断。

教育

2025.08 – 2027.01 在读

新加坡国立大学 | NUS

土木工程硕士 · 运输与城市交通

非计算机班。

成绩单课:CEE5901QA 机器学习基础、CEE5901QB 高级 AI 方法;另有交通规划、智能交通与仿真。

CEE5901QA · ML Foundations CEE5901QB · Advanced AI for CEE 交通流与控制 智能交通与仿真 交通规划
2021.09 – 2025.06

长安大学 | 211 · 卓越工程师班

交通运输学士

GPA 3.16 / 5.0 · 专业排名约前 15%

相关课程:高等数学I(一)93、大学计算机 90、Python程序设计。班级团支部书记 2024.09–2025.06。

经历

材料清单、供应商检测、运输和现场进度。重复劳动做成脚本。

2026.06 – 至今 项目工程师 新加坡 · 在岗

新加坡远东幕墙(Far East Facade) | 项目工程师

半导体厂房幕墙项目 · 同期服务 LTA 大楼

  • 材料看板:梳理 15 种幕墙材料清单与到场计划,看板跟踪状态和节点。
  • 供应商协同:对接 5 家供应商,统筹送样与第三方检测,材料按期到场。
  • 现场进度:跟进幕墙安装进度与质量,参与项目周会、月报及分包商协调。
  • 邮件工具:用 Python 拉取供应商发运 / 检测邮件,抽出到货和检测字段,替代手抄台账。
材料看板供应商协同Python 项目周会

实习

2026.05 – 2026.06 产品

奇瑞国际 | 产品实习生

  • 竞品与用户洞察:竞品战胜 / 战败、造型对比与抱怨挖掘;构建 15 个用户画像、输出 5 份 VOC,支撑产品定义与改款。
  • 区域销量:按车长 / 价格 / 注册量做气泡图,跟踪目标市场销量趋势。
  • KD 地产化:甘特图跟踪生产、物流、合规节点与关键路径。
2025.06.02 – 2025.08.01 产品

彩讯科技 | 产品实习生

  • 需求与文档:主导撰写 3 份 PRD,覆盖功能定义、交互逻辑与验收标准。
  • 原型与协同:Axure 完成 5 个核心页面,方案进入开发;协同前后端 / 测试推进。
2024.12 – 2025.04 供应链

Expeditors | 供应链助理

  • 多方协同:对接船公司、客户、报关行,开具和审核报关单。现场用英文。
  • 流程优化:优化现有 Excel 单证核对流程,处理效率提升约 30%。

项目

开源仓可克隆复跑。课程项目单独标明。

2026.09 开源 · 推理性能诊断

vllm-sm75-throughput · 10× 吞吐塌陷归因到一条 GEMM 断崖

GTX 1650 (sm_75) · T4 受控反证 · fp16 GEMM

vLLMcuBLASTensor Core归因实验
  • 问题 vLLM 在 GTX 1650 上吞吐塌陷约 10×。表面上什么都可能是原因。
  • 归因 fp16 GEMM 从 M=1 到 M=2 带宽 99.5 → 4.3 GiB/s(0.04×):sm_75 去掉 Tensor Core 后 cuBLAS 小 M 路径病态。
  • 反证实验 同为 sm_75、同为 Turing、只多了 Tensor Core 的 T4 上重跑同一脚本:106.7 → 88.1 GiB/s(0.83×),三组形状一致。单变量、比值差 20 倍——归因成立。
  • 上报 根因报到 PyTorch(issue #195716),部署陷阱与告警建议报到 vLLM(issue #54950:--dtype half 在无 Tensor Core 的 Turing 卡上是性能陷阱),两条均已开出。
2026.09 开源 · 流程问答

EDA Copilot · OpenROAD 流程问答,口径不清就停下来问人

自己跑通 RTL→GDSII · 1215 块语料出处到行 · 停问消融

OpenROAD / ORFSRAG停问护栏QoR
  • 语料 用官方镜像跑通 nangate45/gcd 完整后端流程,把 46 个报告 / 日志 / 逐阶段指标与 31 个脚本文档切成 1215 块,出处精确到行。
  • 停问护栏 7 类结构化原因码(双口径歧义、setup/hold 未指明、库外主题…):12/12 该停的停住、原因码全对;关掉护栏后 12/12 强行作答且都带出处——带出处的错答更危险。
  • 让评测定去留 修复零相关候选参与融合的问题后,23 道检索题中 BM25 与混合检索 Hit@5 均为 22/23(0.957);保留各版本评测记录,并为错工艺、错运行及无关问题补上拒答回归。从自己的报告里读出:TNS −7.18 / WNS −0.16,修时序 buffer 占标准单元面积 18.7% 而 WNS 未收敛。
  • 边界 示例设计规模、开源 45nm 库、默认参数;读的是数字后端 QoR 报告,不是 fab 良率数据。
2026.09 TechJam Track 2 · 自主 ML Agent

RecAgent · 自己跑 MLE 循环的 Agent

KuaiRand-Pure · 官方协议计分 · 未入围

LightGBMAutoML排序0 次人工改代码
  • 问题 赛题要的不是我调出一个高分模型,而是一个能自己跑 inspect → feature → train → eval → reflect 的 agent。
  • 结果 官方协议下 test 0.6015 vs FM 基线 0.5946,主指标 +0.0069;23 轮计分迭代(上限 50)、CPU-only、约 3.5 小时(上限 6 h)。
  • 我更看重那个 0 全程 0 次人工改代码。预算只用一半、没改过一行模型代码(只下过 5 条目标级指令),才说明这是 agent 而不是我在调参。
2026.09 TechJam Track 3 · GPU kernel

Transformer 前向 GPU kernel 优化

13/13 可评形状 PASS · 免费云 GPU · 未入围

SDPA 融合注意力torch.compile数值等价
  • 问题 最狠的一档 seq_len=100000,基线光注意力分数矩阵就要约 20.5 TB 显存——不是快慢问题,是压根跑不起来。
  • 做什么 用 SDPA 融合注意力(memory-efficient 后端)把 O(S²) 换成 O(S) 融合核,再对 100k 那档做批分块写进预分配张量;保留全部基线子模块与参数名,只重写前向,保证权重严格拷贝可比。
  • 结果 13/13 可评形状 PASS,最差绝对误差 9.5e-6(门限 2e-3);中位加速 2.83×(T4,逐形状三次独立跑的中位,区间 1.57×–5.22×)/ 2.07×(P100);100k 那档在 14.2 GB 内跑完(T4 上 184 s)。
  • 真正的加速 自写 fp16x3 线性层:操作数拆成 fp16 hi + lo 一对,送一次 K 三倍的 cuBLAS 张量核 GEMM——在 fp16 张量核上拿到 fp32 级精度,GEMM 受限那一档 1.09× → 1.57×,中位 2.30× → 2.83×。不是拿精度换速度。
  • 取舍 fp16 存储 autocast 能到 4.01×,但最差绝对误差 2.04e-3 已越过 atol=0.002——默认关闭。少一半加速,换一个不踩线的数。
  • 自审 对自己的说法做了对抗审计,撤回 5 条——包括「用了 FlashAttention」(后端探针证明 P100 和 T4 都跑不了它,探针入库作证),以及自己的扫描脚本从第 5 个形状起静默丢了 torch.compile、少报三个形状。三个手写核家族全部实测,只上了一个:fp16x3 上线,融合 add+LayerNorm 打平 Inductor 但没打赢、拆操作数的注意力核精度到 fp32 级却输速度,两个都默认关。
2026.09 TechJam Track 4 · 对话式搜索

ByteSize · 问够了才推荐

五万件目录 · 0 token / $0 · 未入围

信息价值停止后融合排序离线
  • 问题 多轮购物对话里,agent 最容易犯的错是候选池一小就急着推荐。但池子小不等于信息够——可能只是被猜窄了。
  • 做什么 每轮显式判断证据够不够:够就推荐,不够再问一轮。控制器只看场景、已披露槽位和池子大小,从不偷看剩余轮次预算,也不改排序函数。
  • 结果 800 条 ID 隔离会话上多拿 +60 个 rank-1 且 Hit-rate 零损失,8/8 分片全部改善;公开标注集 Hit@10 1.000。全程 0 token、$0。
  • 边界 holdout 与 800 条为自切的 ID 隔离切分,不是官方榜。
2026.09 WebMCP Challenge · 开源

Counterask · 回答等于猜的时候,工具反问一句

9,901 件真实男装(Amazon Reviews 2023)· 单页无服务器 · 0 token

WebMCP句子解析期望存活数停问类目树追问
  • 做什么 男装店面,search_products 在「答了也是猜」时返回一个问题而不是半张排行榜;answer_question 只在有问题挂着时注册、答完即注销;结账是声明式表单,agent 能填,下单键只有人能按。整店一页、无服务器、无模型调用。在开了 WebMCP 旗标的 Chrome 152 上直接驱动 document.modelContext 验证过:11 个命令式工具加结账表单全部出现在 getTools(),answer_question 原生进出工具列表,checkout 填好停在下单键前、什么都没提交。
  • 听懂整句 agent 转述的是「要一条皮带,别带按扣,不超过 50 美元」,不是搜索框里的两个词:预算、否定、已说明的属性、「随便都行」按固定顺序解析,读过的词不再二读。800 句由真实商品记录生成的句子:关键词匹配 Hit@10 0.793 → 句子解析 0.999(现行索引 0.993,换一套没调过的措辞 0.991),否定被反转成要求 100% → 0,预算被突破 31% → 0。61 条手写用例加 4,000 句模糊测试进 npm test。
  • 何时该问 不用熵——多值属性下份额不是概率分布——按「期望清掉多少候选」定问不问;缺数据不算不匹配,覆盖率低于 45% 的属性不问;清不掉 10 个就不值一轮。「领先者够清楚就停」建了两次删了两次,一步前瞻建了、测了、关着:都是量出来说不。
  • 边界与协作 模拟顾客秒答且只说真话,两套基准都测不出人的耐心和缺失属性的代价;属性覆盖是天花板,索引重建后材质 56% → 69%、版型仍只有 9%。队友 Cui Zixuan 另写了一版独立实现(counterask 仓 cuizi-rewrite 分支),其中 5 个想法回收进本仓。
2026.08 – 2026.09 开源 · 图像取证

RepostGuard · 在转发后的图上判 AI 生成,而不是在原图上

冻结 CLIP + DINOv2 + 28 维取证特征 · 纯 CPU 约 110M · 15 种变换全评

图像取证鲁棒性评测自助置信区间泄漏对照
  • 为什么这么定题 平台上流转的从来不是原图,是被 JPEG 压过、缩略过、加过噪的转发版。多数检测器报的是干净图上的分数,一到转发链路就掉。所以评测直接在转发后的图上打分。
  • 结果 在 SID-Set 的 1,400 张 held-out 切片上评测全部 15 种真实转发变换,带自助置信区间:干净 AUC 0.981、14 种变换均值 0.977、最差一档(0.25× 缩略)0.968;跨源未见过的生成器族(WildFake)干净 0.966。
  • 最想讲的一条 取证分支既是跨源泛化的全部来源(只用 CLIP 的探针在未见过生成器的缩略图上只有 0.54,随机是 0.50;加上取证分支到 0.79),又是噪声下崩掉的原因(σ=0.10 时 0.925 → 0.810)。单独看任一项都会得出错误结论——必须配一个噪声训练视图才安全:两者单独只值 −0.006 和 +0.004,合起来 +0.014。
  • 证明不是在作弊 把两类图用同样方式重编码,每个头的 AUC 变化都 ≤ +0.0009;单独一个块效应标量只能把两类分到 0.586——说明它不是在读 JPEG 压缩历史。多裁剪 TTA 实现了、测了 15 个条件均值 −0.0039,没上,单独出 A/B 报告。
  • 边界 照 TikTok TechJam Track 5 的赛题自己做的项目,没有提交 Devpost,不是参赛作品、不主张任何名次。只在 SID-Set 上训练,未知商用生成器仍会偏移;15 个受测族里 crop 是唯一还没进训练视图的。一台没有 GPU 的笔记本上约 4 天做完。
2026.09 开源 · 运筹优化

LP / MIP 从零实现 · 建模比换求解器重要

两阶段单纯形 + 分支定界 + 真 Gomory 割 · 逐实例与 HiGHS 交叉验证 · 29 测试

线性规划整数规划单纯形割平面
  • 主力结论 同一个「给定时刻表求最少车辆数」问题:指派型写法的约束矩阵全幺模,线性松弛天然整数,分支定界只用 1 个节点;big-M 写法答案一模一样,但松弛界从 3.0 塌到 1.0、要探 21–31 个节点代价差一个数量级,差在建模不在求解器。
  • big-M 是可测的决定 固定成本生产计划里把 M 从 10000 收紧到「该变量自己的产能上限」:松弛界 1086.54 → 970.51、节点数 19 → 5,最优值 953 一动不动。
  • 教科书警告是真的 Beale 1955 的退化例子上,Dantzig 主元规则循环、203 步仍未终止;Bland 规则 9 步收敛。默认配置做成「Dantzig + 迭代上限,撞上限自动重启 Bland」,并用测试锁住这个行为。Klee–Minty 立方体上 Dantzig 的迭代数正好是 2ⁿ−1(n=3..7 为 7 / 15 / 31 / 63 / 127),一步不差。
  • 两个负结果才是重点 一,割平面不是免费的:三个背包节点数 17/27/35 → 1,但 n=12 是反例——界确实抬高(163.44 → 160.33),节点数反而 29 → 31。二,割的有效性不靠读代码,靠枚举全部 5,376 个 0/1 点断言没有可行整数解被切掉,第一版那个假割在这条测试上当场失败。
  • 边界 2026-09-08 当天新写的项目,不对应任何过往经历。最大实例只到 80×120 稠密 LP、14 个 0/1 变量、8 班次 MDVSP,稠密表格单纯形,规模一大就吃力;列生成没实现(查资料时读过,那才是解大规模的主流路线,读过不等于做过)。「比 HiGHS 慢」在小实例上是假的,到 80×120 才有 32 倍。
2026.09 开源 · 分时路由

校园班车分时路由 · 把一句无法证伪的话拿去单独测

23 节点 / 58 有向边动态图 · 四求解器 600 组交叉验证 · 37 测试

分时最短路交叉验证尾延迟地图匹配
  • 正确性不靠单个求解器 二叉堆 Dijkstra、A*、标签修正、穷举枚举四条路跑 600 组交叉验证,答案全一致;A* 少展开 42.48%、上界剪枝再省 20.41%,600/600 无损最优。穷举是唯一独立真值——另两个求解器共享同一假设,在构造的非 FIFO 网上一起错了 38 分钟
  • 隔离变量再下结论 「二叉堆把复杂度优化到 O(|E|+|V|log|V|)」这句话在 23 节点上根本无法证伪(总共才展开十来个节点)。所以把「堆」这一个变量隔离到确定性生成的网格路网上单独测:加速比随规模从 1.56×(100 节点)长到 17.03×(4,900 节点),A* 的收益同步 20.0% → 38.3%。小图上那句话没有支撑,万级节点才成立。
  • 「< 50 ms」必须连测法一起讲 同一份代码:复用连接时 p99 是 0.44 ms(并发 1)与 17.7 ms(并发 16),每请求新建 TCP 时 p99 变成 515 ms——差 29 倍,差别全在连接建立,求解本身 p99 只有 0.035 ms。而且 p50 会骗人:新建连接那行 p50 反而更好看,尾部已到秒级。
  • 车队规模不是连续量 它是天花板函数 ceil((环线运行时间+折返)/发车间隔),一级一级掉:早高峰环线 26.81 min、间隔 4 min、折返 3 min → 8 辆,少一辆需要周期时间降 6.75%,降 6% 一辆不少。「行程时间降 x%」和「少几辆车」是两件事。
  • 边界 这是 2026 年 9 月重建的实现,不是 2024 年那次课程实践的原件;原始北斗轨迹与代码没留档,本仓刻意不复现当年那几个数字。路网与速度历史都是合成的,不是真实观测。重建的是方法与可核验性:被追问「98.7% 的分母是什么」「50 ms 怎么测的」,答案在仓里。
2026 NUS · CE5203 小组

AYE 交织瓶颈:计数、仿真、匝道控制

Group 12 · 仓库可复现

AYE 交织段仿真与匝道控制
YOLOv11SUMO
  • 情境:AYE 西向 Exit 9→11 交织段高峰堵。任务:用实测标定仿真,比较限速、匝道控制和组合。
  • 行动:高峰 43 分钟、平峰 60 分钟视频计数,4 个测点;SUMO 7 节点 6 边;12 组实验。交织段经验通行能力约 5,060 veh/h。
  • 原课程报告:匝道控制使高峰网络总时间损失降 22.7%、交织段平均延误降 7.7%。公开仓现已补回控制入口和 12 场重跑记录;本轮 SUMO 结果与历史指标分别列示。
2026 NUS · CE5212 课程

交通协调:模型只做批 / 不批

课程项目 · 决策层与接地层开源可查

三层 LLM 交通协调示意
LLMSUMO
  • 情境:让模型直接改路网会出现状态幻觉。任务:规则先提议,模型只做批 / 不批。
  • 行动:SUMO 路网 1.4 km²,2,874 条实测车速标定;645 名通勤者全流程(时间敏感 35% / 价格敏感 40% / 信息不对称 25%)。
  • 结果:180 个协调 tick 里 137 个(76%)无候选、不触发模型;触发的 43 次模型全部通过、0 否决——这版数据里模型没挡下过任何动作,所以只能说「四分之三的决策不需要它」。模型直接发明决策会幻觉;同步调用会拖慢仿真,Bus 95 全程延误平均增加 2.2 分钟——课程实验,不是生产 KPI。

课程里还做过 SAP2000 框架分析和 ABAQUS 渗流,属于土木训练,不是这里的主线。

技能

产品

PRD / 验收 Axure VOC / 画像 门禁与评测

Agent

工具算数 / 人确认 Grok Build · Claude DeepSeek API 白名单 SQL 口径 / 表级血缘

现场与供应链

材料看板 / 供应商协同 Outlook 抽附件 报关协同 Rhino 外观对齐

工程背景

SUMO / TraCI Python CEE5901 ML

校园

🏛️

班级团支部书记

2024.09 – 2025.06

组织主题团日和志愿服务,帮同学对接就业资源。获校优秀团员。本科其余学生工作从略。

联系

📧
📞
电话 +65 8084 8140
📍
地点 新加坡

做法是一贯的:程序算数、人确认、评测能复跑。
欢迎就 Agent、评测与工程流程的话题交流。
NUS 2027.01 毕业 · 现居新加坡