<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>软件工程 on 鬼哥的空间</title><link>https://luoli523.github.io/tags/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B/</link><description>Recent content in 软件工程 on 鬼哥的空间</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Sun, 16 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://luoli523.github.io/tags/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B/index.xml" rel="self" type="application/rss+xml"/><item><title>持续学习 - 读吴恩达老师的 AI Engineering Skills Map</title><link>https://luoli523.github.io/p/you-are-your-ai/</link><pubDate>Sun, 16 Aug 2026 00:00:00 +0000</pubDate><guid>https://luoli523.github.io/p/you-are-your-ai/</guid><description>&lt;img src="https://luoli523.github.io/" alt="Featured image of post 持续学习 - 读吴恩达老师的 AI Engineering Skills Map" /&gt;&lt;p&gt;Andrew Ng 最近发布了 &lt;em&gt;The AI Engineering Skills Map&lt;/em&gt;。&lt;/p&gt;
&lt;p&gt;我原以为，它大概又会列出一串要学的新名词：模型、Agent、RAG、MCP、评估……毕竟这两年 AI 圈最不缺的，就是下一批必须学会的工具。&lt;/p&gt;
&lt;p&gt;但读完后，真正让我停下来的不是某个工具，而是其中一项能力：&lt;strong&gt;Shaping the build。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;当 AI 越来越擅长“按规格把东西做出来”，工程师更重要的工作，反而变成了决定：&lt;strong&gt;究竟什么值得被做出来。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="Andrew Ng 的 AI 工程能力地图：四项核心能力与持续学习底座" class="gallery-image" data-flex-basis="135px" data-flex-grow="56" height="1672" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://luoli523.github.io/p/you-are-your-ai/cover.webp" srcset="https://luoli523.github.io/p/you-are-your-ai/cover_hu_56590c7e91e889d.webp 800w, https://luoli523.github.io/p/you-are-your-ai/cover.webp 941w" width="941"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="我们太擅长围观模型太少真正走进现场"&gt;我们太擅长围观模型，太少真正走进现场
&lt;/h2&gt;&lt;p&gt;这两年，AI 圈最不缺的，是围绕模型的热闹。&lt;/p&gt;
&lt;p&gt;又一家机构发布了新模型，参数多大，跑分涨了多少，在哪个 benchmark 超过了谁。我们很容易花半天时间讨论它的能力边界，仿佛坐在路边摊上，也能把国际局势分析得头头是道。&lt;/p&gt;
&lt;p&gt;信息当然重要。模型进步也确实会改变工程方案。我自己也在关注、在试用、在学习各种 AI Coding 工具、harness 和 Skill。&lt;/p&gt;
&lt;p&gt;但读完 Andrew 的文章，我开始反问：这些信息最后有多少变成了我真正做过的东西？我有没有拿一个真实问题去试过、撞过墙、做过评估、承担过一次“它答错了怎么办”的后果？&lt;/p&gt;
&lt;p&gt;鬼哥一直有个很朴素的判断：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;上过一天战场的普通士兵，强过训练过一年、却从未见过敌人眼中杀气的特种部队。&lt;/strong&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;放到 AI 开发上，这不是鼓吹粗糙上线，而是说：一次真实实践里遇到的脏数据、用户误解、预算约束、模型幻觉和责任边界，比十篇模型评测更能逼着人长出工程判断。&lt;/p&gt;
&lt;p&gt;&lt;img alt="左边是围观模型跑分和工具榜单的人群，右边是开发者在用户现场观察真实问题的对照画面" class="gallery-image" data-flex-basis="135px" data-flex-grow="56" height="1672" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://luoli523.github.io/p/you-are-your-ai/watching-models-vs-building.webp" srcset="https://luoli523.github.io/p/you-are-your-ai/watching-models-vs-building_hu_9d89ed466a048d48.webp 800w, https://luoli523.github.io/p/you-are-your-ai/watching-models-vs-building.webp 941w" width="941"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="一句做个-ai-客服其实还没有开始定义问题"&gt;一句“做个 AI 客服”，其实还没有开始定义问题
&lt;/h2&gt;&lt;p&gt;假设有人对你说：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;“我们做一个 AI 客服，提高客服效率吧。”&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;这句话看起来已经足够清楚。于是很自然的下一步是：选一个模型，接知识库，做一个聊天窗口，必要时再加个 RAG 和转人工按钮。&lt;/p&gt;
&lt;p&gt;这些都没错。但这其实是把一个&lt;strong&gt;尚未被理解的问题&lt;/strong&gt;，过早翻译成了一个技术方案。&lt;/p&gt;
&lt;p&gt;更值得先问的是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;“效率”到底是谁的效率？是用户更快得到答案，还是客服少处理一些重复问题？&lt;/li&gt;
&lt;li&gt;用户来找客服时，真的只需要一个事实答案吗？还是需要确认、安抚、解释，甚至需要一个愿意负责的人？&lt;/li&gt;
&lt;li&gt;如果它答错了一次，错的是退款金额、物流状态，还是医疗、金融、账户安全这类高风险问题？&lt;/li&gt;
&lt;li&gt;哪些问题可以自动处理，哪些必须立刻转给人？&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些问题会直接改变知识库怎么建、工具权限开多大、评估集怎么选、何时升级人工、界面如何表达不确定性，以及为了可靠性愿意付出多少成本。&lt;/p&gt;
&lt;p&gt;所谓“理解用户”“理解人性”，不是产品课上的漂亮话。它会一行一行地进入你的系统设计。&lt;/p&gt;
&lt;p&gt;&lt;img alt="AI 客服需求从一句模糊目标分叉成用户意图、风险等级、人工接管、知识来源和评估标准的决策图" class="gallery-image" data-flex-basis="135px" data-flex-grow="56" height="1672" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://luoli523.github.io/p/you-are-your-ai/ai-support-question-map.webp" srcset="https://luoli523.github.io/p/you-are-your-ai/ai-support-question-map_hu_d137a8fdf67f9ca5.webp 800w, https://luoli523.github.io/p/you-are-your-ai/ai-support-question-map.webp 941w" width="941"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="andrew-的四项能力恰好解释了差别从哪里开始"&gt;Andrew 的四项能力，恰好解释了差别从哪里开始
&lt;/h2&gt;&lt;p&gt;Andrew 的团队基于 10,000 多条招聘信息、专家与招聘方访谈、问卷及其他在线数据，归纳出四项最重要的 AI Engineering 能力。对我来说，它们不是一张“待学名词表”，而是一张让那句 AI 客服需求显影的地图。&lt;/p&gt;
&lt;h3 id="1-构建与部署-ai-应用把不确定当作系统属性"&gt;1. 构建与部署 AI 应用：把“不确定”当作系统属性
&lt;/h3&gt;&lt;p&gt;传统软件大多是确定性的：同样的输入，通常得到同样的输出。AI 应用不是。你给 LLM 一段上下文，不会完全知道它下一次会怎么回答；你训练一个模型，也无法保证它面对新样本时的判断。&lt;/p&gt;
&lt;p&gt;所以 AI 客服的关键从来不是“它能不能回答”，而是：&lt;strong&gt;它会怎样答错，我们如何发现、衡量并纠正它。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这就是为什么 Andrew 特别强调 disciplined evals 和 error analysis loops。没有评估和错误分析，所谓优化常常只是换一个 Prompt、换一个模型，然后凭感觉说“似乎好一些”。&lt;/p&gt;
&lt;h3 id="2-软件工程基础ai-不会替你做取舍"&gt;2. 软件工程基础：AI 不会替你做取舍
&lt;/h3&gt;&lt;p&gt;一个客服系统不仅有模型，还有并发、延迟、缓存、数据权限、审计、成本、可用性和隐私。&lt;/p&gt;
&lt;p&gt;如果客户上传的订单截图被送进第三方模型，数据如何处理？如果一个工具调用错了退款接口，如何避免不可逆操作？如果高峰期响应慢了 3 秒，用户会等待还是转人工？&lt;/p&gt;
&lt;p&gt;这些没有标准答案，只有取舍。&lt;strong&gt;工程基础的价值，不是让人比 Agent 多写几行代码，而是让人看见 Agent 看不见、也不会主动替你承担的代价。&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="3-使用-coding-agent不是让它替你思考而是让它进入闭环"&gt;3. 使用 Coding Agent：不是让它替你思考，而是让它进入闭环
&lt;/h3&gt;&lt;p&gt;Coding Agent 能很快搭出客服界面、接好 API、补齐测试的表面结构。它也可能在没有足够上下文时，做出一个看起来合理、实则危险的默认选择。&lt;/p&gt;
&lt;p&gt;会用 Agent，远不止会写一段 Prompt。它意味着你知道该给什么上下文，什么时候先规划，什么时候直接执行；更意味着你能给它清晰的 verifier：哪些回答算正确，哪些调用绝不能发生，哪些失败必须自动暴露。&lt;/p&gt;
&lt;p&gt;Agent 是执行的杠杆。&lt;strong&gt;没有规格、边界和验证，它放大的往往只是含糊。&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="4-shaping-the-build最难的工作在代码之前"&gt;4. Shaping the build：最难的工作在代码之前
&lt;/h3&gt;&lt;p&gt;前三项能力让系统能被可靠地做出来；第四项追问的是：它该不该这样被做出来？&lt;/p&gt;
&lt;p&gt;当 Agent 越来越擅长交付一份明确的 spec，工程师的价值正从“把 spec 写成代码”，逐渐前移到“参与决定 spec 应该写什么”。&lt;/p&gt;
&lt;p&gt;回到 AI 客服：也许真正的问题不是客服打字太慢，而是退款规则本身让用户反复追问；也许用户要的不是一个更会说话的机器人，而是一个能告诉他“这件事已经由谁、在什么时候处理”的确定性。&lt;/p&gt;
&lt;p&gt;如果没有走到用户面前，没有理解业务目标和人的感受，再强的模型也只会把错误的问题实现得更快。&lt;/p&gt;
&lt;p&gt;&lt;img alt="四项 AI 工程能力围绕同一个 AI 客服需求形成闭环：理解问题、构建、验证、取舍、迭代" class="gallery-image" data-flex-basis="135px" data-flex-grow="56" height="1672" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://luoli523.github.io/p/you-are-your-ai/ai-engineering-skills-loop.webp" srcset="https://luoli523.github.io/p/you-are-your-ai/ai-engineering-skills-loop_hu_1da69d2fa5d6ad84.webp 800w, https://luoli523.github.io/p/you-are-your-ai/ai-engineering-skills-loop.webp 941w" width="941"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="持续学习不是追完每一条模型新闻"&gt;持续学习，不是追完每一条模型新闻
&lt;/h2&gt;&lt;p&gt;Andrew 在最后还提到了一项贯穿所有能力的底层心态：&lt;strong&gt;Continuous Learning。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这句话看起来最不“技术”，却可能是最难的一项。&lt;/p&gt;
&lt;p&gt;因为 AI 变化太快了。模型在变，Coding Agent 的能力边界在变，工具的最佳实践也在变。两个月前还需要手工拆解的步骤，今天可能已经可以交给 Agent；今天看起来可靠的工作流，下一次模型升级后又可能需要重新设计。&lt;/p&gt;
&lt;p&gt;所以，持续学习当然包括关注新模型、试用新工具、阅读好文章。但如果它只停在这些地方，我们又会回到开头那种“围观模型”的热闹里。&lt;/p&gt;
&lt;p&gt;我更愿意把它理解成一种&lt;strong&gt;把真实反馈不断写回自己脑中的能力&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用一个真实问题做出最小可用的尝试；&lt;/li&gt;
&lt;li&gt;看它在真实用户、真实数据和真实约束下怎样失败；&lt;/li&gt;
&lt;li&gt;分析失败到底来自模型、上下文、流程、工程设计，还是自己一开始就理解错了需求；&lt;/li&gt;
&lt;li&gt;把得到的判断更新进下一次的规格、提示、评估和系统边界；&lt;/li&gt;
&lt;li&gt;再去尝试新的模型和工具，而不是把“新”本身当成收获。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这才是一种会越用越强的学习循环。&lt;/p&gt;
&lt;p&gt;比如 AI 客服上线后，发现用户不断追问“我的退款到底什么时候到账”。这未必说明模型不够聪明。它也许暴露的是：系统没有接到订单状态、退款流程对用户不透明、客服话术没有说清责任人，或者我们一开始就把“效率”误解成了“少回复几句”。&lt;/p&gt;
&lt;p&gt;一次这样的失败，往往比知道某个新模型多了几个 benchmark 分数更有价值。前者会改变你下一次怎么理解问题；后者未必会。&lt;/p&gt;
&lt;p&gt;持续学习因此不是把知识库存得越来越满，而是让自己的判断在一次次真实交付中变得更准。&lt;strong&gt;它让工具进步不只发生在屏幕上，也发生在使用工具的人身上。&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="ai-提高了效率但没有取消人的认知边界"&gt;AI 提高了效率，但没有取消人的认知边界
&lt;/h2&gt;&lt;p&gt;这也是我从这张技能地图里读到的、更私人一点的理解。&lt;/p&gt;
&lt;p&gt;AI 确实让我们以前所未有的速度做出页面、功能、原型，甚至一个像模像样的产品。它降低了表达想法的成本，也放大了动手实践的机会。&lt;/p&gt;
&lt;p&gt;但它没有自动给我们产品判断，没有自动补齐软件工程的基本功，也不会替我们理解需求背后那个焦虑、愤怒、着急或无助的人。&lt;/p&gt;
&lt;p&gt;你给 AI 的不只是 Prompt。你给它的还有：你对用户的理解、你识别风险的能力、你知道哪些地方该慢下来、以及你愿意对什么结果负责。&lt;/p&gt;
&lt;p&gt;当然，反过来也成立：你没有看见的约束、没有问出的需求、没有验证的假设，也都会被它更快地编码进产品。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;你是什么，你的 AI 就是什么。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="一个人的经验、用户洞察、工程知识和责任意识汇入 AI 系统，输出为最终产品体验的概念图" class="gallery-image" data-flex-basis="135px" data-flex-grow="56" height="1672" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://luoli523.github.io/p/you-are-your-ai/you-are-your-ai.webp" srcset="https://luoli523.github.io/p/you-are-your-ai/you-are-your-ai_hu_497fcdf370109ec7.webp 800w, https://luoli523.github.io/p/you-are-your-ai/you-are-your-ai.webp 941w" width="941"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="每次让-ai-开工前先问自己五个问题"&gt;每次让 AI 开工前，先问自己五个问题
&lt;/h2&gt;&lt;p&gt;如果这篇文章只留下一件可以立刻执行的事，我希望是下面这五问：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用户说出的需求，背后真正想解决的是什么？&lt;/li&gt;
&lt;li&gt;AI 答错或做错一次，谁承担什么后果？&lt;/li&gt;
&lt;li&gt;我用什么真实样本和标准，判断它真的有用？&lt;/li&gt;
&lt;li&gt;哪些决策可以交给 AI，哪些必须由人负责？&lt;/li&gt;
&lt;li&gt;我现在给 AI 的上下文，是否已经暴露了自己的认知盲区？&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;AI Coding 最好的时代，或许不是每个人都能更快地生成代码的时代。&lt;/p&gt;
&lt;p&gt;而是每个愿意走进真实问题、持续校准自己判断的人，都能把自己的能力更大规模地交付给世界的时代。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="参考资料"&gt;参考资料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Andrew Ng, &lt;em&gt;The AI Engineering Skills Map&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>