从今天开始,我切换一下视角,用实际从业者的口吻来写这篇Day 69的记录。我是一名在职前端Leader,带过一个中型前端团队,做了六年多工程化、组件库、性能优化、安全防护这些事。今天是我系统学习并尝试转行AI Agent方向的第69天,这个节点刚好卡在一个很微妙的位置:基础概念已经不再陌生,主流架构也啃过一轮,但真正能落地的工程经验才刚刚开始积累。这篇文章不写流水账,我把第69天这个时点的思考、踩坑、认知升级,以及前端背景怎么往Agent方向迁移,完整复盘一遍。
1. 为什么我把第69天当成转型分水岭
1.1 前68天我到底在做什么
先说学习路线,不然很多人会误以为69天都在看概念。我拆成了三个阶段:前两周是“消除陌生感”,把AI Agent相关的热搜词全部过了一遍,包括AI Agent搭建、AI Agent主流架构、AI Agent token是什么意思、部署方式、主流框架等。中间三周是“动手仿写”,拿一些成熟的开源项目反复改造,比如Open WebUI、Dify这类带前后端界面的Agent平台,前端的底子让我在UI层几乎没有成本,真正花时间的是搞明白后端服务、数据库、消息队列为什么存在。最近三周进入“工程化验证”,开始把团队内部的小工具往Agent形态迁移,也在这段时间把阿里云AI Agent白皮书、主流LangChain和Rust生态里的Agent项目都拿来对照,直接对比不同实现思路的取舍。
1.2 第69天的核心认知:Agent不是“更强的聊天框”,而是“倒过来的前端工程”
这句话是我在Day 69想明白的。过去我们做前端,关注的是UI层、交互层、请求层、状态管理、权限控制、极端状态处理;Agent产品把这些东西全都保留了,但重心完全翻转了。前端工程里最核心的“用户怎么操作”,变成了“模型怎么决策”;请求参数校验变成了工具参数校验;组件复用在Agent里对应的是Skill和提示模板的复用。如果你从纯前端视角看Agent,会觉得它就是个API调用加上一个聊天窗口,但真正上手做才知道,Agent系统的复杂度不在看得见的UI,而在看不见的“决策循环、工具调度、上下文管理、安全边界”这些层。
提示:对前端出身的人来说,最大的优势不是会写界面,而是你天然理解“系统分层、模块边界、状态机”这套工程方法论,这些能力移到Agent工程里几乎无缝衔接。
2. 前端Leader转AI Agent,到底转什么:核心能力迁移对照
2.1 组件库到Skill与提示模板
前端Leader最熟的东西之一是组件库维护。控件怎么抽离、怎么保证接口稳定、怎么做版本兼容、怎么让团队其他人愿意用,这套方法论直接对应AI Agent里的Skill机制。所谓Skill,可以理解为给模型准备的一系列“可复用能力包”,比如一个“日报生成Skill”、一个“代码审查Skill”、一个“SQL查询Skill”,每个Skill都包含提示词模板、输入输出约定、调用条件、错误处理方式。
我在团队内部做过一次分享,直接把组件库和Skill做了对比:组件有props,Skill有输入Schema;组件有默认插槽,Skill有默认回退策略;组件有版本迭代,Skill有提示词版本管理;组件写得好能让业务方快速拼页面,Skill写得好能让Agent在不同场景下稳定复用你封装好的能力。所以如果你带过组件库团队,你其实已经具备了做Agent“能力层”的管理心智,只需要把“按钮、表单、弹窗”的颗粒度换成“工具调用、提示词模板、数据校验规则”。
2.2 请求封装到MCP工具层
前端Leader每天面对的网络请求层,在Agent工程里的对应物就是工具层。我们现在用大模型做复杂任务,模型本身不直接操作外部系统,它需要通过工具层去查询数据库、调用内部API、读取文档、操作浏览器。这里有一个很热的概念叫MCP(Model Context Protocol),简单理解就是给大模型一套统一的“USB接口”,一端插各种数据源和工具,一端插模型框架。
我在Day 69之前一直在纠结一个问题:为什么不能像前端写fetch一样直接让模型调接口?后来明白了,模型生成的是“意图”,不是“请求”,它需要框架帮它把意图翻译成真实的工具调用,然后再把结果塞回上下文,让模型决定下一步动作。这个“翻译-调用-回填-再决策”的过程,本质上就是你写过的拦截器、统一请求层、错误重试机制,只是状态机更复杂,决策链条更长而已。
2.3 状态管理到上下文编排
前端的状态管理解决的是“数据流在界面各组件之间怎么同步”,Agent的上下文编排解决的是“信息在模型、工具、记忆之间怎么流转”。这两件事在抽象层面是极其相似的。我们团队曾经为了让一个复杂表单跨步骤保存草稿,设计了很严格的reducer;到了Agent场景,你需要为一次任务维护“任务上下文”,比如多轮交互记录、工具返回结果、用户目标、中间产出物等。这些东西放在一个上下文窗口里,让模型一次性读入,还是分层存储、按需召回,直接决定了Agent的稳定性和成本。
我在实测一个自动化测试Agent时发现,如果上下文里塞入太多历史记录,模型会被无关信息干扰,反而容易出错。后来照着前端状态管理的思路做了“上下文瘦身”:核心信息存短期记忆,汇总信息存长期记忆,只有必要时才通过检索把历史拉回主流程。这个思路治好了我很多焦虑,原来前端Leader讲的“最小状态原则”,在Agent上下文设计里竟然是同一个原理。
2.4 前端安全思维到Agent安全边界
这是我最想强调的部分。前端Leader普遍对XSS、CSRF、内容安全策略、防爬虫、防页面源码泄露、加密传输这些安全措施有丰富经验,这些看似和Agent毫无关系,但在Agent系统里反而成为稀缺能力。Agent的安全威胁比传统Web应用更复杂:提示注入攻击(用户故意在输入里塞恶意指令,诱导模型越权执行)、上下文中毒(外部数据夹带恶意示例,污染模型判断)、工具权限绕过(模型被诱导调用不应调用的内部API)、数据泄露(私有数据被拼进上下文后输出给第三方)等。
我用前端安全那套“最小权限、输入校验、输出转义”的原则做Agent安全设计:用户消息要过滤危险指令模式,工具调用前做权限校验,工具返回内容做无害化处理,敏感字段脱敏后再进入上下文。目前看下来是有效的,说明安全思维是可以跨域迁移的,而且在这个圈子还很稀缺。
2.5 前端发布灰度到Agent评估观测
前端Leader做发布时一定会做灰度、监控、回滚,这些思路在Agent系统里有对应玩法:把一次Agent改造当成一次“算法发布”,不要直接替换线上逻辑,而是先让Agent在测试集上跑一遍,对比输出质量;上线后用日志追踪每一次工具调用链路,出现异常可以随时关停或回退到规则版本。Day 69我在内部做了简单的观测看板:记录每轮任务的Token消耗、工具调用次数、成功率和用户反馈,用这些数据反向优化提示词。这套东西就是前端可观测性体系在Agent工程里的翻版,思维完全是通的。
3. 主流Agent架构拆解:给前端口味定制的理解版
3.1 单Agent与多Agent选型
刚开始学习时会看到各种架构图,有人推荐用单个Agent解决所有任务,有人强调必须上多Agent协作,到底谁对?我的理解是看“领域边界”。单Agent适合任务链条清晰、不需要太多专业领域切换的场景,比如“把一段口语描述整理成规范日报”;多Agent适合复杂任务,比如“从需求文档生成前端页面代码”,这种任务涉及解析、设计、编码、自测等多个环节,每一步都有不同的技能要求,让一个Agent从头跑到尾,上下文会越来越乱,工具权也难以收敛。
我个人的选型原则是:能用单Agent就坚决不上多Agent,多Agent会带来消息传递成本、状态同步成本、错误定位难度上升。真正需要多Agent时,可以采用“主管-员工”模式,由一个主Agent负责拆解任务,把子任务分给专门Agent,再收集结果统一输出。这种架构和前端“容器组件-业务组件-基础组件”的划分逻辑是一模一样的。
3.2 三层架构:规划层、工具层、记忆层
我把目前主流的Agent架构简化成三层来看,这样前端同事也能秒懂。最上层是规划层,负责思考“现在该做什么”,对应前端的路由与页面编排;中间是工具层,负责提供“能做什么”,对应前端的业务API层;底层是记忆层,负责记住“之前做了什么”,对应前端的本地存储与全局状态。
规划层最常见的实现是ReAct模式,也就是让模型交替执行“思考-行动-观察”的循环;工具层现在越来越标准化,MCP协议就是在解决“工具接进来太麻烦”的问题;记忆层则分为短期工作记忆和长期知识库,跟前端SessionStorage和IndexedDB的定位很像。做Agent,本质上就是把这层的深度做扎实。你有前端多任务路由和状态同步的经验,理解这个架构会非常顺。
3.3 让“Rust写Agent”和“Token成本”这两个热搜词落地
热搜词里有一个是“基于Rust语言AI Agent”,还有一个是“ai agent token是什么意思”。这两个我都认真钻研过。Rust在Agent生态里属于“性能敏感的基础设施”方向:因为Agent运行时涉及大量并发工具调用、流式输出、内存安全边界,Rust非常适合做运行时底座,很多框架的底层组件就是用Rust写的。但对我来说,前端Leader去学Rust的投入产出比不高,我更倾向于“看懂架构、能调接口、知道哪一层用Rust是合理优化”,把主要精力放在应用层编排。
关于Token,你一定要把它当成“预算”而不是“概念”。Token是大模型处理文本的最小单位,中文一个字大概对应1到2个Token,上下文窗口再大也是有限的。在实际工程里,Token消耗直接决定成本,很多Agent方案跑不动就是因为每一步都想塞很多信息,Token预算快速被打满。我常用生活类比来给团队解释:Token就像外卖配送费的起送金额,你点得越多越贵,但只点一两个菜又可能不够吃;好的Agent设计就是让每次“点单”刚刚好满足需求,不浪费也不缺失。
4. 第69天我实际落地的Agent工程:从后端服务到前端入口
4.1 复用“若依前后端分离”的既有思维
热搜词里有人问“若依前后端分离前端代码在哪里”,这是一个典型的前端工程问题。若依是Java系后台管理框架,前后端分离后,前端代码通常独立放在一个目录仓里,通过接口联调打通。这个场景给了我一个特别大的启发:做Agent系统和做前后端分离后台,在“系统边界”上非常像。后端负责数据持久化和业务逻辑,前端负责交互展示;在Agent系统里,模型服务相当于新的“后端”,只是它不产生稳定结果,而是产生动态决策,前端依然负责把人机交互做顺。
我在实际落地一个“用户反馈自动分类Agent”时,就刻意采用了这种前后端分离思维:前端是一个极简的管理后台,负责上传反馈、展示分类结果、人工纠错;后端是Agent运行时,负责调用模型、解析结果、写数据库。两条链路的连接点只有一套明确的数据结构。这种设计让我这个前端Leader没有迷失在Agent的“黑魔法”里,一切都还是我熟悉的工程边界。
4.2 Open WebUI的后端依赖教训:纯前端部署的边界
热搜词里有一条提到“open webui 需要后端服务,仅运行前端服务是不支持的”,这条直接把很多前端同事的希望打碎了:明明界面都出来了,为什么不能纯前端部署?我在学习中也踩过这个坑。原因很简单,Open WebUI这类产品不只是“显示聊天记录”,它要做用户体系、会话持久化、API密钥管理、多模型路由、RAG知识库检索,这些功能在没有后端的情况下无法安全实现。浏览器环境里你无法安全保存密钥,也无法直接跨域访问内部数据源,更无法做审计。
这个教训很重要:做Agent产品,纯前端部署注定只是演示级方案。前端Leader学Agent时最容易犯的错就是想用纯前端把所有事情搞定,实际生产环境必须有一个后端服务来做凭证存储、调度中心、安全审计。这也是我Day 69之后心态转变的分水岭:不再纠结“能不能前端全包”,而是接受“前端负责体验层,Agent后端负责决策层”的明确分工。
4.3 完整的工程链路:服务注册表、工具定义、运行时、UI外壳
我在Day 69前后沉淀了一套可复用的Agent工程落地清单,包括四层。第一层是服务注册表,把团队内部所有可被Agent调用的能力统一登记,包括数据库查询接口、内部文档、监控平台、工单系统;第二层是工具定义,把每个注册表中的服务包装成带输入Schema和输出格式的工具,并写好明确的描述,让模型知道什么时候该调用哪个工具;第三层是Agent运行时,负责会话管理、模型调用、工具执行、错误处理和重试;第四层是UI外壳,也就是前端同事最擅长的部分,但必须包含调试面板、Token用量展示、工具调用时间线、人工介入按钮。
这套结构我试过,最费时间的不是第四层,而是第二层工具定义。模型完全靠工具描述来判断“什么场景该调什么”,描述写得不清晰,Agent就会频繁调用无关工具,浪费Token还容易出错。我举个例子:团队有一个内部“获取员工信息”的API,最初工具描述写的是“获取员工详情”,模型经常在用户随便聊到某个名字时就去调这个接口,后来我把描述改成“当用户明确询问某员工的组织架构、联系方式或岗位信息时使用,闲聊场景不要调用,调用前必须确认用户身份”,误调率立刻大幅下降。这就是前端的“组件使用文档”思维,迁移到Agent工具层非常好用。
4.4 前端Worker上传大文件带来的启发:Agent长任务并发与重试
热搜词里有一条“前端使用worker上传大文件”,这其实是一个非常实用的前端工程话题,但我发现它和Agent长任务处理有强烈的映射关系。前端用Web Worker解决的是“不让大文件上传阻塞主线程”的问题,把任务扔给后台线程,通过消息机制上报进度,失败时断点续传。Agent在做长任务时也会遇到类似问题:一次任务可能要跑几分钟甚至更久,中途可能模型服务超时、工具调用失败、上下文被撑爆,用户不能干等着,必须有任务队列、实时进度、失败重试、中途打断恢复。
Day 69我review了团队一个大文件转换Agent,最初实现是用户发起任务后同步等待,结果经常超时报错。后来我直接套用前端Worker的成熟方案:把长任务提交到队列,返回任务ID,前端轮询或通过SSE监听进度,Agent后端把任务分成多个子步骤,每完成一步记录状态,失败时只重跑失败子步骤。这个设计让我从前端的“并发与任务拆分”思路里,直接解决了Agent工程的“长时任务可靠性”问题。
5. 团队落地路线:不以裁员为目的,以效率底线换工作空间
5.1 第一步:把Agent当“实习前端”
很多前端Leader学完Agent后会遇到一个尴尬:想往团队里推,同事觉得你搞的新玩意只是在抢饭碗。我的经验是,不要把Agent当“替代者”,要把它当“实习前端”。实习生来了你要给什么?要给非常明确的、有验收标准的任务,比如“把某个JSON字段转换成表格”“把所有弹窗标题前后加固定前缀”“批量替换某类API调用写法”。Agent也是这样,从那些重复度高、容错率高的任务开始,让它跑出结果后由正式员工review。
我团队的第一批Agent任务就是“把接口返回的旧字段名批量映射到新字段名”,以及“根据设计稿生成基础页面结构”。这些任务的共同点是:失败影响小、结果可验证、规则相对清晰。等同事发现Agent能帮他们省掉大量重复劳动,而不是抢工作,推进阻力自然就会变小。
5.2 第二步:让Agent拥有公司内部工具的“SDK”
前端同事都熟悉公司内部的业务SDK,但Agent能不能用这些SDK,是一个关键盲区。我在Day 69前后开始推动的事情是:把团队内部的高频能力快速包装成Agent可调用的工具,相当于给Agent开通一个有限权限的“内部SDK”。比如自动登录测试环境、查询测试数据、创建缺陷单、拉取代码分支等。每一步包装都要明确权限边界和审计日志,避免Agent在无人监督的情况下操作生产数据。
这里的阻力往往不在技术,而在“职责边界不清晰”。建议把Agent工具的权限按照“只读优先、写操作需二次确认”来设计,就像前端里做危险操作前的弹窗确认一样。我自己的体会是,先让Agent做只读类查询是最容易见效的,比如“查一下某个用户今天的反馈记录”“查一下某个接口近期错误率”,这类场景零风险,同事用一次就会留下印象。
5.3 第三步:制定安全红线,哪怕是内部工具
不少团队在接入Agent时会把安全机制放到最后,这其实是最大的错误。我在前端安全领域踩过的坑告诉我,宁可一上来就卡得紧,也不要在事故之后再补救。具体红线包括:Agent调用外部网络接口时必须通过后端白名单代理;所有Agent能接触到的数据必须按权限模型过滤;不允许Agent直接执行数据库写操作,只允许通过受控API执行;每一次工具调用都要留痕并支持审计预览。
你可能觉得这些条条框框拖慢效率,但真实情况是,明确的安全红线反而让同事更愿意尝试,因为他们知道“出了问题有人挡着,有规则可以追溯”。这和我做前端CSP策略是一样的逻辑:先严格后放宽比先宽松后收紧要容易十倍。
5.4 关于学习路线和面试题:DAY69之后的清单
热搜词里有很多前端面试题、前端学习路线,也有人问Agent面试怎么准备。我这里给一个真实的前端Leader视角清单。第一阶段至少熟练掌握:提示词的输入输出设计、工具调用的参数校验、上下文窗口管理、Token成本估算;第二阶段必须动手实现:一个完整的单Agent应用,包含后端服务、前端交互、工具注册、错误处理和日志分析;第三阶段要能回答架构题:为什么用多Agent、消息如何在Agent之间传递、长任务如何做状态持久化、安全边界如何设计。前端本身的底子不能丢,很多Agent场景的最后交互层还是要把你最好的前端功底拿出来用。
6. 常见问题与避坑实录
6.1 提示词写了很久结果却不稳定,是不是要回前端
这类问题我遇到过太多次。最大原因不是提示词写不好,而是缺少“输出约束”。光靠提示词让模型“做得更好”是非常脆弱的,必须搭配结构化输出、校验规则、失败回退。现在我写工具描述时,一定带上枚举允许值、参数格式示例、以及“不确定时不要猜测而是直接说明原因”。前端Leader做表单校验时的习惯,在Agent里是核心竞争力。
6.2 Token烧得太快怎么办
先看上下文管理,再看任务拆解。一边是多轮对话塞满了历史,一边是工具返回结果冗长却没有截断。我的习惯是:工具返回内容先做摘要再进入上下文;多轮对话只保留最近几轮的核心信息,早期内容有需要时再检索;如果任务不需要模型做推理,就不要用大模型处理,直接用规则处理更快更省钱。
6.3 Agent结果不可复现
这是工程化落地的头号杀手。同一个问题,变量没变,模型输出却不一致。解决办法是固定模型版本和温度参数,同时把“模型输出”和“解析逻辑”分离,模型只负责产出标签、JSON结构等中间结果,不要让它直接产出最终展示文案,最终文案由代码模板统一拼接。这就像前端把“接口返回数据”和“组件展示逻辑”分离一样。
6.4 团队同事抗拒使用Agent
不要急着讲大道理,而是找一个具体的、高频的、大家都烦的琐事,用Agent把它解决掉,然后当场展示。我团队最早突破的是一个每周要花一小时整理的跨部门需求同步表,Agent把抓取、去重、格式化的活全干了,同事只需要review。Demo的冲击力永远比理念灌输大。
最后分享一个Day 69我自己的体会:这条转型路线,与其说是从“前端Leader”转行到“AI Agent工程师”,不如说是用前端Leader的工程思维,去接管一个“模型驱动的复杂系统”。你过去处理过的组件边界、状态管理、安全防护、任务调度,在Agent工程里全部都有对应的新形态。69天只是一个中间节点,真正的分水岭是你什么时候能接受“Agent不是前端产品的附属品,而是需要被前端工程化方法严格治理的新物种”。这个心态一旦建立,后续的学习速度会快得超出你自己的预期。