27届实习生转正答辩
1、个人概述
大家好,我是李承雨,预计 2027 年毕业于福建师范大学软件工程专业。自 5 月 20 日入职商业化技术部电商营销前端组以来,我的目标岗位是 AI Agent 全栈开发工程师。
实习期间,我主要负责磁力金牛与磁力小牛平台的前端及全栈需求、Node 服务调度和 AI 能力建设,累计参与 10+ 项业务与技术需求。其中,我作为核心研发参与了 Node 定时任务调度服务、AI 触点与运营看板建设,并从 0 到 1 主导、闭环了两个核心项目:磁力小牛 Agent 客服架构重构和规格驱动的 D2S(设计即交付)工作流建设。
这段实习中,我的成长主线是从“完成需求”转向“闭环解决问题”:不仅关注功能实现,也开始从业务目标、架构设计、跨团队推进、上线验证和长期复用等维度思考工作价值。
2、工作成果
核心成果概述
| 项目名称 | 项目角色 | 项目时间 | 我的关键成果 |
|---|---|---|---|
| 定时任务调度 Node 服务 📄 金牛定时任务服务使用手册 | 主R:贺金圣 主S:李承雨 | 6月-7月 |
|
| 磁力金牛 AI 触点+运营看板 📘 商业化产品需求:小牛-平台触点+AI素材一键修复 | 核心开发 主R:李承雨;高樊 主S:贺金圣 | 5月-7月 |
|
| 磁力小牛 Agent 客服重构 📘 商业化产品需求:磁力金牛AI底层能力建设 第三期 | 主R:李承雨;高樊;罗晓红 主S:吕明睿;要宵萤;姜春宇 | 7月-9月 |
|
| D2S(设计即交付)工作流 📄 磁力小牛 D2S:设计即交付 | 独立 Owner(主 R):李承雨 协作方:王聪;张晓钰 | 7月-9月 |
|
核心项目一:磁力小牛 Agent 客服架构重构
1. 背景
- 业务背景:磁力小牛作为磁力金牛面向广告主的 AI 智能助手,承载问答、主动触达、诊断、数据解读和营销等多元能力。
- 技术痛点:旧版框架(ad-im-esp 1.0)经历 60 余次迭代后暴露出严重的系统性架构债务:
- 首屏资源爆表:所有卡片全量打包进主 Bundle,首屏体积超过 25MB+ 且持续劣化,流水线多次因产物过大构建失败;引入第三方新组件只能走微前端,开发成本极高。
- 开发体验极其脆弱:缺乏热重载(HMR),每次改动需要完整构建 2~3 分钟,构建过程脆弱易崩,频繁被打断开发节奏。
- 宿主通信协议不透明:
CanalRuntimeContext上下文无约束直接透传,混杂数据、getter、宿主对象和反向注册,沟通成本极高。 - 新功能扩展上限受限:历史会话、图片输入等能力缺乏独立的 Store 与状态管理,在旧架构上无法干净扩展。
- 项目目标:从 0 到 1 建设一个跨端(PC/Mobile)、可扩展、可复用的 Agent 运行与交付底座,实现运行时与业务卡片解耦。
2. 难点
我作为项目独立 Owner(主 R),负责从 0 到 1 的架构设计、全栈协议定义、核心模块实现、跨团队(产品/设计/后端/PC/Mobile 研发)协作以及平滑迁移与效果复盘。核心难点包括:
| 序号 | 难点 | 难点阐述 |
|---|---|---|
| 1 | 架构分包与单向依赖解耦 | 单体客服代码中 IM 核心、会话状态、卡片 UI 与 PC/Mobile 宿主深度交织,如何划清职责边界并保证单向依赖? |
| 2 | 通信协议与状态管理标准化 | 宿主与小牛间无约束透传,如何设计统一、类型安全的通信协议?多会话隔离与流式响应如何进行状态解耦? |
| 3 | 开发效能(DX)与资源性能(UX)治理 | 首屏 25MB+ 产物与 2~3min 构建等待严重影响 DX/UX,如何在不改动生产发布流程的前提下实现本地 HMR 与按需加载? |
| 4 | 大规模重构的平滑切流与风险闭环 | 在高频迭代业务中全量重构核心客服系统,如何控制切流与回归风险,保障 0 线上事故? |
3. 我的解法
针对难点一:搭建 7 层单向依赖架构与分包解耦
- 将单体仓库拆分为 7 个高内聚 npm 包:
@ad/esp-robot-core:IM SDK 集成、标准化 IM 模型;@ad/esp-robot-runtime:实例生命周期、宿主上下文、会话、请求与流式客户端;@ad/esp-robot-ui:L1/L2/L3 UI 组件库与设计 Token;@ad/esp-robot-chat-content:消息解码与注册、会话渲染、输入区与欢迎页;@ad/esp-robot-platform:PC/Mobile 宿主装配;@ad/esp-robot-devtools:调试工具链、Chrome 扩展;@ad/esp-robot-ecom-card-adapter:电商场景卡片适配层与独立 CDN 产物。
- 制定严格的单向依赖规则:
platform → runtime/chat-content/robot-ui → runtime → im-core → IM SDK,禁止反向引用。 - 改动定位收敛:业务卡片改动限定在
robot-ui/chat-content,输入框与消息列表看chat-content,容器宿主看platform,连接与底层通信才进入im-core。
针对难点二:标准化 Bridge 协议与 SessionStore 状态治理
- Bridge 4 类通道重构:将混杂的
CanalRuntimeContext拆解为四条明确通道:Context:宿主拥有、Robot 消费的状态快照(账号、路由、功能开关);Command:宿主驱动 Robot 动作(open/close/sendMessage/showBubble);Request:Robot 请求宿主响应(navigate/feedback/updateAiCreate);Event:Robot 告知宿主已发生事实(containerClosed/entryClicked/runtimeError)。
- 状态层解耦:拆分
GlobalStore(配置与容器形态)、ChatStore / SessionStore(历史会话列表与当前会话切换)、RuntimeStore,通过 EventBus 解耦通信。历史消息统一归一化为NormalizedMessage复用现有渲染管道。
针对难点三:双构建链路 HMR 提效与卡片按需治理
- 开发效能(DX):引入 Vite Dev Server 构建
pnpm dev本地开发链路,支持 React Fast Refresh / HMR,代码改动到浏览器反馈从 2~3 分钟缩短至 < 1s;生产构建保持pnpm build不变,并支持环境变量一键回退。 - 资源性能(UX):
- 卡片按需加载:创建
CardRegistry卡片注册表配合React.lazy异步加载卡片; - 图标 CDN 化:60+ SVG/PNG 图标迁移至 CDN,不再打包进 JS Bundle;
- 图表按需引入:大型图表库(mchart)仅在含图表卡片中动态加载,首屏包体积由 24.5MB 降至 11MB(-55%),LCP 由 7.1s 优化至 5.8s(-18%)。
- 卡片按需加载:创建
针对难点四:新旧隔离与白名单灰度切流
- 建立物理隔离的新项目承接重构,在宿主侧通过 Kswitch 白名单进行新旧子应用灰度切流,做到物理隔离、秒级回滚。
- 按照“核心聊天流程 → 流式输出 → 各类卡片 → 主动触达 → 宿主联动”按优先级平滑迁移,每个模块独立自测回归。
4. 结果
- 业务价值:支撑 3 个高优需求快速迭代上线,对外输出标准化卡片包,单个需求研发提效约 20%+。
- 技术沉淀:建立 L1-L3 Robot UI 组件体系(20+ 原子组件、15+ 分子组件、65+ 业务卡片),定义 Bridge 规范与全埋点分级注入方案。
- 效能与体验:本地热重载响应 < 1s,首屏包体积下降 55%(11MB),LCP 缩短 18%(5.8s)。
- 稳定性:通过白名单灰度切流与高覆盖率单测/众测,重构全程 0 线上故障/0 线上反馈。
核心项目二:D2S(Design to Ship,设计即交付)工作流
1. 背景
- 业务背景:磁力小牛需要持续交付主动推送、会话、诊断、成长任务等大量业务卡片。
- 传统痛点:传统模式下设计师交付静态 Figma 稿,研发凭截图翻译成 React 代码。存在三大痛点:
- 设计与研发概念断层:设计师按区域/页面划分组件,研发按状态管理/数据逻辑划分组件,概念不一致导致理解偏差。
- 重复人力消耗与频繁返工:样式还原占用大量研发工时,且提测后的视觉走查通常需要 2~3 轮打回修改。
- 硬编码与缺乏规范:研发为赶进度未使用 Token 和标准原子组件,散落临时硬编码变量,后续可维护性极差。
- 项目目标:重新定义设计交付物——设计交付的不是生产组件,而是受设计系统约束、可在浏览器运行和验收的代码原型(可运行的 Figma)。自研规格驱动(OpenSpec/SDD)的 D2S 交付流程,把视觉走查前移至设计自验阶段,研发聚焦工程化拆分与业务逻辑接入。
2. 难点
作为 D2S 工作流独立 Owner(主 R),负责流程定义、Agent 编排(OpenSpec)、Design Lab 工具链搭建、组件约束与跨团队(设计/研发/产品)推进。核心难点包括:
| 序号 | 难点 | 难点阐述 |
|---|---|---|
| 1 | 认知与边界纠偏 | 早期期望设计直接产出可合并的生产 L3 组件,但设计与研发对“组件”理解不同,如何合理重新划定交付边界? |
| 2 | 规格驱动与三维 AI 上下文约束 | 仅依靠截图或自然语言,AI 容易盲猜样式与组件,如何将组件库、Token、图标和状态转换为结构化规格约束? |
| 3 | 工程化翻译与隔离开发环境(Design Lab) | 设计修改生产代码易引入接口/环境报错,如何建设隔离的预览自验环境(Design Lab)并支撑研发高效工程化接入? |
3. 我的解法
针对难点一:重新定义交付边界——“设计交付代码原型,研发负责生产化”
- 纠偏交付目标:明确 设计对最终可见结果与状态负责,研发对生产组件拆分与逻辑接入负责。设计师使用自然语言/Agent 产出可以在浏览器运行的场景代码原型(
Scenario.tsx),替代静态 Figma。 - 任务分流机制(Triage):
patch:改颜色/间距/局部样式,小范围变更;prototype:新卡片/新模块/新页面,进入 Design Lab 独立场景画布;translate:根据截图/Figma 还原受约束的代码原型。
针对难点二:OpenSpec 规格生成与三维 AI 上下文约束
- 结构化 OpenSpec 规格产出:
brief.md:收敛需求背景与场景范围;spec.md:整合state.md(正常/空态/加载/异常状态)、design.md(Token/颜色/间距决策)、domain.md(可复用的 L1/L2/图标资产);impl-plan.md:生成逐任务执行计划。
- 注入 Prompt 上下文:把
@ad/esp-robot-ui的原子组件、场景 Token、图标和 Demo 作为 Agent 提示词上下文,限制生成边界,确保 100% 优先复用既有 Token 和原子组件。
针对难点三:建设 Design Lab 隔离实验区与 Gate 校验机制
- Design Lab 隔离区:在仓库中增加
design-lab/目录,设计直接在独立的场景画布(Scenario.tsx+fixtures.ts模拟数据)中进行样式绘制与自验,不依赖真实接口;配合 DevTools 支持存量组件线上代理调试。 - 单门控自验与 Handoff 交接:设置唯一正式门控 Gate 3(设计验收),设计师在浏览器查看真实效果,满意后执行
/d2s handoff归档。研发接手代码原型,进行工程化翻译、拆分与数据逻辑接入。
4. 结果
- 交付效能:D2S 适用需求 P50 交付周期缩短 20%,整体人力投入减少 30% PD;单次 SDD 实践耗时约 25 分钟,代码采纳率高达 95%。
- 资产与交付占比:设计侧直接交付 68% 原子组件 与 40% 分子组件,消除 Figma 重新还原的二次翻译摩擦。
- 协作与质量:视觉走查节点前移至设计本地自验,彻底解决提测后 2~3 轮打回痛点;视觉决策与 Token 取值 100% 结构化追溯。
- 系统联动:与小牛重构相互支撑,重构提供的 L1-L3 组件库和 Token 成为 D2S 的土壤,D2S 则极大提升了组件资产的复用率。
3、个人贡献及影响力
业务贡献
- 参与磁力金牛与磁力小牛 10+ 项业务及技术需求,覆盖广告创编、AI 触点、Agent 客服和运营分析等场景。
- 落地 10+ 个 AI 触点,并打通从曝光、点击、唤起到问答反馈的分析链路,使 AI 入口具备配置、观测和复盘能力。
- 主 R 磁力小牛 Agent 重构和 D2S 工作流,完成从问题识别、方案设计、跨团队协作到结果度量的闭环。
技术贡献
- 建设可跨端复用的 Agent Runtime、会话、流式消息与宿主通信能力,为新增 Agent 场景提供统一底座。
- 建设 L1-L3 Robot UI 组件、Token、图标与 Demo 资产,并通过卡片懒加载和资源治理改善性能。
- 参与 Node 定时任务服务建设,将 LLM 数据解析等任务接入统一调度体系,补充后端服务实践。
流程与沉淀
- 建设 D2S 规格驱动交付流程,推动设计、研发和 AI 从“静态稿—人工还原”转向“规格—可运行原型—工程化接入”。
- 沉淀磁力小牛重构技术方案、D2S 流程规范和组件复用规则,使一次项目经验可以被团队后续需求复用。
- 逐步建立以业务目标、过程指标和结果指标组织汇报与复盘的工作方式。
4、个人工作不足与反思
1. 技术深度与工程掌控力(从“借助工具”到“掌控全局”)
- 短板反思:在面对历史重度堆叠的存量系统时,前期对 AI 辅助生成工具存在一定程度的惯性依赖,对部分深层上下游副作用及边缘隐患代码(如老的全局变量透传、流式阻断)审查深度不足。
- 认知改进:建立了“先梳理架构依赖与边界,再借助 AI 辅助拆解与模块生成,最后严格通过类型断言、Diff 深度审查与单元/链路测试进行拦截验证”的工程闭环范式,确保对自己出的每一行代码 100% 掌控。
2. 业务全局观与北极星视角(从“交付功能”到“追踪业务价值”)
- 短板反思:早期容易陷入“技术需求按期上线即代表终点”的工程师思维,对功能上线后的北极星业务指标(如触点的实际转化率、广告主提问采纳率、客服人力分流率)追问与持续闭环不够。
- 认知改进:深刻理解“技术终将服务于业务”。在后续需求中主动使用“背景—目标—行动—结果—复盘(STAR+R)”框架,上线后主动关注埋点看板,用数据证明技术改动的业务增量价值。
3. 大型项目主 R 与跨团队推进力(从“单点执行”到“领航闭环”)
- 短板反思:主 R 跨团队大型项目(如小牛重构、D2S 工作流)时,前期在多方(产品/设计/后端/测试)的依赖识别、优先级切分与风险对齐上仍有提升空间。
- 认知改进:总结出“先跑通 MVP 最小可验证链路,再按模块解耦迭代,阶段性透明化风险,上线后建立监控与指标复盘”的复杂项目推进方法论,大幅提升跨团队沟通效率。
5、后续发展规划
短期(6个月内):深耕 Agent 全栈架构与业务监控
- 业务沉淀:深入广告创编、客户经营与小牛智能客服业务,建立曝光、点击、唤起、问题发送、回答采纳与客服排障等全链路指标的精准归因体系。
- 技术进阶:继续深化 Agent Runtime 架构,打通前端流式渲染到后端服务编排,在工具调用(Tool-use)、长短期记忆(Memory)、上下文压缩与流式 SSE 协议上沉淀通用底座。
中期(1年内):推进 D2S/SDD 工作流平台化与提效
- 规模化落地:推动 D2S(设计即交付)工作流在商业化技术部更多项目/仓库落地,将设计直接交付率进一步提升。
- 工程基础设施:完善 Agent 上下文知识库、代码评测集(Benchmarking)与自动化 CI 回归卡口,打造可审查、可复用、可持续迭代的 AI 驱动开发基础设施。
长期(2年内):从“需求交付者”成长为“技术与业务突破的领航者”
- 跨团队领航:提升架构设计、团队技术影响力与主 R 领航能力,能够独立承接高复杂度、跨领域的 AI Agent 核心架构项目。
- 业务赋能:主动从技术和业务交汇点发现痛点,通过技术创新驱动商业化电商营销产品的体验与效率突破。