<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>潘锦的空间 &#187; AI 编程</title>
	<atom:link href="https://www.phppan.com/tag/ai-%e7%bc%96%e7%a8%8b/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.phppan.com</link>
	<description>SaaS SaaS架构 团队管理 技术管理 技术架构 PHP 内核 扩展 项目管理</description>
	<lastBuildDate>Sat, 25 Apr 2026 00:56:17 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.9.40</generator>
	<item>
		<title>作为 CTO，应该如何看待 AI 编程</title>
		<link>https://www.phppan.com/2025/08/ai-vibe-coding-cto/</link>
		<comments>https://www.phppan.com/2025/08/ai-vibe-coding-cto/#comments</comments>
		<pubDate>Sun, 10 Aug 2025 01:09:38 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[架构和远方]]></category>
		<category><![CDATA[AI 编程]]></category>
		<category><![CDATA[CTO]]></category>

		<guid isPermaLink="false">https://www.phppan.com/?p=2405</guid>
		<description><![CDATA[前段时间和几个技术圈的朋友吃饭，聊到最近很火的 AI 编程工具（Cursor 估值近百亿），大家的深入程度都各 [&#8230;]]]></description>
				<content:encoded><![CDATA[<section id="nice" style="color: #000000;" data-tool="mdnice编辑器" data-website="https://www.mdnice.com">
<div>
<p>前段时间和几个技术圈的朋友吃饭，聊到最近很火的 AI 编程工具（Cursor 估值近百亿），大家的深入程度都各不相同。有人已经把 Cursor 当成标配，离了它写代码都不太行；有人还在观望，觉得这玩意儿不太靠谱；有人在团队内小范围试点，看一看；有人怕有风险，不敢在团队内推广（不仅仅是安全风险，还有组织内部的一些问题）。</p>
<p>作为技术负责人，面对 AI 编程这个话题，确实挺纠结的。一方面，这东西确实能提效（但不能只盯着提效这个逻辑），另一方面，各种担心也不是空穴来风。今天想聊聊，站在 CTO 的角度，到底该怎么看待和处理这个事。</p>
<p>先说说目前我观察到的几种典型态度。</p>
<h2 data-id="heading-0">四种常见的应对策略</h2>
<p>第一种是<strong>ALL IN 派</strong>。这一派通常有几个特征：要么是连续创业者出身，习惯了快速试错；要么是 AI 的忠实信徒。在性格上，他们会偏向冒险一些，相信「天下武功唯快不破」。</p>
<p>从公司规模来看，这种策略多见于 50-200 人的成长期公司。为什么？因为这个阶段的公司正处在生死时速，既有一定的资源去尝试新东西，又还没有大公司那么多条条框框。CTO 往往直接向 CEO 汇报，有较大的决策权。他们的逻辑很简单：如果 AI 真能让研发效率翻倍，那就是弯道超车的机会。</p>
<p>但这种激进往往源于一种可能被时代抛弃的焦虑。刚经历过移动互联网时代的洗礼，深知错过风口的代价。所以看到 AI 编程工具，第一反应就是不能再错过了。</p>
<p>第二种是<strong>坚决抵制派</strong>。这一派往往技术功底深厚，可能是从程序员一路做上来的。他们可能写过操作系统，造过各种轮子，对代码有种近乎偏执的掌控欲。在他们眼里，让 AI 写代码就像让机器人替你谈恋爱，总觉得少了点什么，没有灵魂。</p>
<p>并且这种策略常见于两类公司：一是金融、医疗等强监管行业的大公司，动辄上千人的技术团队，任何技术决策都如履薄冰；二是某些技术驱动的独角兽，公司文化中有很强的工程师自豪感，「我们的代码都是艺术品」。</p>
<p>换个角度看，这种抵制其实是一种保护。保护什么？保护既得利益，保护现有体系，更重要的是保护自己的价值认同。当你花了二十年时间成为编程高手，突然有人告诉你 AI 十秒钟就能写出差不多的代码，这种冲击是巨大的。抵制，某种程度上是在对抗这种价值崩塌。</p>
<p>第三种是<strong>建立预期后科学推广</strong>。这一派通常是职业经理人出身，可能有 MBA 背景，擅长做 PPT 和汇报。他们的特点是理性、谨慎、程序正义。什么事都要有方法论，有流程，有数据支撑。</p>
<p>这种策略在 500-2000 人规模的成熟公司可能会比较常见。为什么？</p>
<p>因为船大难掉头。这个体量的公司，往往已经有了完整的研发流程、质量体系、安全规范。任何新工具的引入都需要考虑对现有体系的影响。CTO 的 KPI 里，「稳定」的权重往往大于「创新」。</p>
<p>但问题在于，「科学」有时候会变成「科学主义」。制定了详尽的试点方案，设计了完美的评估指标，组织了多轮评审会议，最后发现三个月过去了，还在讨论试点范围。等到真正推广的时候，市场上已经有更新的工具了。这种「理性」背后，其实是一种精致的不作为。</p>
<p>第四种是<strong>躬身入局派</strong>。这一派有个特点：有比较强的好奇心。他们是一些爱折腾的技术。看到新工具，第一反应不是评估风险或收益，而是「让我试试看」。</p>
<p>这种人通常出现在两种场景：一是 20-50 人的初创公司，CTO 还在一线写代码，甚至就是技术合伙人；二是某些特别重视技术文化的中型公司（200-500人），虽然 CTO 不用写生产代码了，但还保持着 hands-on 的习惯。</p>
<p>其实，这一派的逻辑很朴素：<strong>没有调查就没有发言权</strong>。与其听别人说，不如自己试。这种实用主义的背后，往往是对技术的真正热爱和对未知的好奇。他们不会被各种宏大叙事忽悠，也不会因为恐惧而止步不前。</p>
<p>无论采取哪种策略，团队里总有人在用 AI 写代码。就像当年公司禁用 QQ，大家就用网页版；禁用网页版，就用手机。技术的渗透往往是自下而上的，任何自上而下的管控都可能流于形式。</p>
<h2 data-id="heading-1">需要考虑的核心问题</h2>
<p>站在 CTO 的位置，引入 AI 编程工具不是简单的技术选型，而是一个系统性决策。至少要考虑这几个维度：</p>
<p><strong>成本问题</strong>。表面上看，AI 工具能提高编码效率，降低人力成本。但别忘了，工具本身也要钱。Cursor 企业版每人每月 40 美元，且高级模型大概率是不够用的，全公司算下来也是笔不小的开支。更重要的是隐性成本：代码质量下降带来的维护成本、安全漏洞带来的修复成本、团队能力退化带来的长期成本。</p>
<p><strong>安全问题</strong>。这可能是大家说得最多的问题。你的代码会不会被上传到 AI 服务商的服务器？会不会被用来训练模型？竞争对手会不会通过某种方式获取你的核心算法？这些都不是杞人忧天。特别是对于金融、医疗等敏感行业，数据安全是红线，碰不得。虽然类似于 Cursor 有隐私模式，但这个隐私模式真的隐私吗？或者说这里定义的隐私的边界是什么？</p>
<p><strong>稳定性问题</strong>。AI 生成的代码看起来能跑，但真的稳定吗？边界条件考虑了吗？异常处理完善吗？性能优化了吗？很多时候，AI 给出的是「能用」的代码，而不是「好用」的代码。如果团队过度依赖 AI，很可能会埋下大量隐患。</p>
<p><strong>技术债务问题</strong>。这是个更深层的问题。当团队习惯了「不求甚解」的开发模式，技术债务会像滚雪球一样越滚越大。代码结构混乱、命名不规范、<strong>重复代码满天飞</strong>，到最后谁都不敢动，只能推倒重来。</p>
<p>Jim Collins 在《从优秀到卓越》中有句话说得特别好：「<strong>轻率地依赖技术是一种债务，而不是资产。</strong>」只有当技术服务于清晰的概念和目标时，才能成为推动力。否则，就是加速灭亡的工具。</p>
<h2 data-id="heading-2">我的实际使用体验</h2>
<p>说实话，这一年多我自己也在大量使用各种 AI 编程工具。从 Cursor 到 Trae(因为 Cursor 不让我用高级模型了)，从 ChatGPT 到 Claude，基本上市面上的工具都试了个遍。体验下来，确实有种「Vibe Coding」的感觉——写代码变快了，做项目没那么费劲了。</p>
<p>但慢下来思考，内心其实有点恐慌。</p>
<p>为什么恐慌？不是工具不好，而是我发现自己在变懒。遇到问题，第一反应不再是分析问题、设计方案，而是想着「怎么让 AI 帮我写出来」。这种思维模式的改变，其实挺可怕的。</p>
<p>以前写一个 API，我会仔细考虑接口设计、参数校验、异常处理、性能优化。现在呢？一句 prompt，AI 啪一下就给你生成了。代码能跑，功能也对，但总觉得哪里不对劲。等你想改的时候才发现，你压根不知道它为什么这么设计，改一个地方，可能会影响十个地方。</p>
<p>还有更可怕的，随着时间的流逝，这种依赖会形成惯性。你用得越多，越像在维护一份「外包」代码。只不过这个外包商是 AI，而你成了那个下需求的产品经理。</p>
<p>表面上看，你在主导 AI。实际上呢？你越来越依赖它，它也越来越多地接手决策。到最后你会发现，代码是它写的，架构是它设计的，你只是个「prompt 工程师」。</p>
<p>这让我想起一个段子：以前是「CV工程师」（复制粘贴），现在升级成「AI工程师」（AI写我调）。看似进步了，其实本质没变，都是不求甚解。</p>
<h2 data-id="heading-3">作为 CTO 的思考框架</h2>
<p>那么，作为技术负责人，到底该怎么看待和使用 AI 编程工具？我觉得需要建立一个清晰的思考框架。</p>
<p><strong>第一，明确 AI 的定位</strong>。AI 编程工具是助手，不是替代品。它应该帮助程序员更高效地实现想法，而不是替程序员思考。这个定位必须在团队内部达成共识，否则很容易走偏。</p>
<p><strong>第二，建立使用边界</strong>。什么代码可以用 AI 写，什么不可以？我的建议是：</p>
<ul>
<li>样板代码、测试用例、文档注释——可以大胆用</li>
<li>业务逻辑、核心算法、安全相关——谨慎用或不用</li>
<li>学习新技术、快速原型——可以用，但要理解原理</li>
</ul>
<p><strong>第三，强调代码审查</strong>。AI 生成的代码必须经过严格的 Code Review。不仅要审查功能正确性，更要审查代码质量、设计合理性、安全隐患等。千万不能因为是 AI 写的就放松标准。</p>
<p><strong>第四，投资团队成长</strong>。这点特别重要。AI 工具的普及，对程序员的要求不是降低了，而是提高了。以前你只需要会写代码，现在你需要会判断代码好坏、会设计系统架构、会解决复杂问题。这些能力不是 AI 能替代的，反而因为 AI 的存在变得更加稀缺和重要。</p>
<h2 data-id="heading-4">具体的实施建议</h2>
<p>如果你决定在团队中引入 AI 编程工具，这里有一些具体的建议：</p>
<p><strong>1. 先试点，后推广</strong></p>
<p>不要一上来就全员推广。选择一两个小团队或项目先行试点，收集使用数据和反馈。试点期至少 3-6 个月，要关注这些指标：</p>
<ul>
<li>编码效率是否真的提升了？</li>
<li>代码质量有没有下降？</li>
<li>团队成员的接受度如何？</li>
<li>有没有安全或合规问题？</li>
</ul>
<p><strong>2. 制定明确的使用规范</strong></p>
<p>规范不需要太复杂，但一定要明确。比如：</p>
<ul>
<li>哪些代码库可以使用 AI 工具</li>
<li>敏感代码和数据的处理原则</li>
<li>AI 生成代码的标记和审查流程</li>
<li>工具选型和采购流程</li>
</ul>
<p><strong>3. 加强技术培训</strong></p>
<p>不是培训怎么用 AI 工具，而是培训如何在 AI 时代保持竞争力。包括：</p>
<ul>
<li>系统设计能力</li>
<li>代码审查能力</li>
<li>问题分析和解决能力</li>
<li>对 AI 生成代码的判断能力</li>
</ul>
<p><strong>4. 建立反馈机制</strong></p>
<p>定期收集团队使用 AI 工具的反馈，及时发现和解决问题。可以通过：</p>
<ul>
<li>月度问卷调查</li>
<li>定期的分享会</li>
<li>1 对 1 沟通</li>
<li>代码质量数据分析</li>
</ul>
<p><strong>5. 保持技术敏感度</strong></p>
<p>AI 技术发展很快，作为 CTO 要保持对新技术的敏感度。但也不要被各种营销话术忽悠，要基于实际效果做决策。</p>
<h2 data-id="heading-5">更深层的思考</h2>
<p>站在更高的角度看，AI 编程工具的出现，其实是在重新定义程序员这个职业。</p>
<p>以前，程序员的核心技能是「把想法转化为代码」。现在，这个转化过程很大程度上可以由 AI 完成。那程序员的价值在哪里？</p>
<p>我觉得在于三个方面：</p>
<p><strong>第一，定义正确的问题</strong>。爱因斯坦说过，提出问题比解决问题更重要。在 AI 时代，知道要解决什么问题、如何定义问题，变得更加关键。</p>
<p><strong>第二，设计优雅的方案</strong>。AI 可以写代码，但很难设计出优雅、可扩展、高性能的系统架构。这需要经验、品味和全局思维。</p>
<p><strong>第三，处理复杂的情况</strong>。现实世界的问题往往不是非黑即白的。如何在各种约束条件下找到最优解，如何处理各种边界情况和异常，这些都需要人的判断。</p>
<p>从这个角度看，AI 编程工具不是程序员的终结者，而是一次职业升级的机会。那些只会写代码的程序员可能会被淘汰，但那些会思考、会设计、会解决复杂问题的程序员，会变得更有价值。</p>
<h2 data-id="heading-6">对团队文化的影响</h2>
<p>引入 AI 编程工具，不仅仅是技术决策，也会深刻影响团队文化。</p>
<p><strong>学习文化的改变</strong>。以前遇到不会的，查文档、看源码、问同事。现在呢？直接问 AI。这种便利性是好事，但也可能导致浅尝辄止，不求甚解。作为 CTO，要引导团队保持深度学习的习惯。</p>
<p><strong>协作模式的改变</strong>。当每个人都有 AI 助手时，pair programming 还有必要吗？code review 的重点是什么？这些都需要重新思考和定义。</p>
<p><strong>价值认同的改变</strong>。什么样的程序员是优秀的？是 prompt 写得好的，还是系统设计得好的？团队的价值导向必须明确，否则容易迷失方向。</p>
<h2 data-id="heading-7">风险管理</h2>
<p>作为 CTO，风险管理始终是重要职责。在 AI 编程工具的使用上，需要特别关注这些风险：</p>
<p><strong>知识产权风险</strong>。AI 生成的代码可能包含其他项目的代码片段，存在版权风险。团队需要有意识地审查和规避。</p>
<p><strong>依赖风险</strong>。如果团队过度依赖某个 AI 工具，一旦工具不可用或政策变化，可能会严重影响开发进度。</p>
<p><strong>能力退化风险</strong>。<strong>这是最隐蔽也最危险的</strong>。当团队习惯了 AI 代劳，自主解决问题的能力可能会逐渐退化。等到真正需要的时候，才发现已经力不从心。</p>
<p><strong>安全合规风险</strong>。特别是在金融、医疗、政府等行业，数据安全和合规要求很高。使用 AI 工具可能会触碰红线，需要特别谨慎。</p>
<h2 data-id="heading-8">一些实用的建议</h2>
<p>最后，给正在纠结是否引入 AI 编程工具的 CTO 们一些实用建议：</p>
<p><strong>1. 自己先用起来</strong>。不要只看网上别人的视频或他人分享的文章，自己深度使用至少一个月，持续的跟进更新，形成自己的判断和手感。</p>
<p><strong>2. 小步快跑</strong>。不要想着一步到位，先从风险较小的场景开始，比如单元测试、文档生成等。</p>
<p><strong>3. 数据说话</strong>。建立量化指标，用数据来评估效果，而不是凭感觉。</p>
<p><strong>4. 保持开放</strong>。技术在快速发展，保持学习和调整的心态。今天的最佳实践，可能明天就过时了。</p>
<p><strong>5. 关注人</strong>。技术只是工具，人才是核心。如何让团队在 AI 时代保持成长和价值，这是最重要的课题。</p>
<h2 data-id="heading-9">写在最后</h2>
<p>作为 CTO，我们已经站在技术变革的前沿。AI 编程工具的出现，既是机遇，也是挑战。</p>
<p>机遇在于，它确实能提升效率，降低门槛，让我们能够更快地实现想法。挑战在于，如何在使用工具的同时，不失去核心竞争力，不积累技术债务，不触碰安全红线。</p>
<p>这需要智慧，需要平衡，更需要不断的思考和调整。</p>
<p>如果你已经在使用 AI 编程工具，不妨问问自己和团队：</p>
<ul>
<li>我们是在利用 AI，还是在依赖 AI？</li>
<li>团队的核心能力是在增强，还是在弱化？</li>
<li>面对没有 AI 的场景，我们还能高效工作吗？</li>
</ul>
<p>如果你还在观望，也不妨思考：</p>
<ul>
<li>竞争对手都在用 AI 提效，我们不用会不会落后？</li>
<li>如何在保证安全的前提下，适度引入 AI 工具？</li>
<li>团队对 AI 工具的态度如何，有没有抵触或过度期待？</li>
</ul>
<p>无论如何，保持清醒的头脑，做出适合自己团队的选择。</p>
<p>以 Jim Collins 在《从优秀到卓越》中话结尾：</p>
<blockquote><p>轻率地依赖技术是一种债务，而不是资产。是的，只有合理地使用技术，让这种技术服务于一个简单、清晰、连贯并且已经被深刻理解的概念时，技术才会成为加速发展的根本推动力。相反，当技术没有被合理使用，只是被当作一个简单的解决办法，也没有被深刻地认识到它是如何与一个清晰连贯的概念联系在一起的时候，技术就是加速你灭亡的工具。</p></blockquote>
</div>
<div></div>
</section>
]]></content:encoded>
			<wfw:commentRss>https://www.phppan.com/2025/08/ai-vibe-coding-cto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于 AI Agent： 从 Manus 聊起</title>
		<link>https://www.phppan.com/2025/07/ai-agent-manus/</link>
		<comments>https://www.phppan.com/2025/07/ai-agent-manus/#comments</comments>
		<pubDate>Sat, 12 Jul 2025 03:39:54 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[架构和远方]]></category>
		<category><![CDATA[Agent]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[AI 编程]]></category>
		<category><![CDATA[Cursor]]></category>

		<guid isPermaLink="false">https://www.phppan.com/?p=2395</guid>
		<description><![CDATA[最近几天 Manus 的新闻不停的出现在我的信息流中，从 Manus 官方账号清空了微博、小红书上的所有内容， [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="color: #000000;" data-tool="mdnice编辑器">最近几天 Manus 的新闻不停的出现在我的信息流中，从 Manus 官方账号清空了微博、小红书上的所有内容，到裁员争议，据说将核心技术人员迁往了新加坡。一个从北京、武汉出发的纯正中国公司，最终选择了离开。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">还记得今年火热的 3 月，Manus 发布当天就引爆了社交网络。邀请码一码难求，甚至在二手平台被炒出天价。创始人肖弘（人称red）带领的这支年轻团队，用一个产品点燃了整个行业对 AI Agent 的热情。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">2025 年是 AI Agent 元年。AI Agent 的发展速度惊人。不只是 Manus 这种通用型 Agent，还有各种垂直领域的，如 设计领域的 lovart，编程领域的 Claude Code Cursor 等等。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">那什么是 AI Agent，它由什么组成？今天我们聊一聊。</p>
<h1 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">1. 从专家系统说起</span></h1>
<p style="color: #000000;" data-tool="mdnice编辑器">要说 AI Agent 的历史，得从上世纪 60 年代说起。那时候，计算机科学家们就在琢磨一个事：能不能让机器像人一样，自己去感知环境、做出决策、然后采取行动？</p>
<p style="color: #000000;" data-tool="mdnice编辑器">最早的尝试是专家系统。比如 1970 年代斯坦福大学开发的 MYCIN，这是一个诊断血液感染疾病的系统。它的工作方式很简单：问医生一堆问题，然后根据预设的规则给出诊断建议。虽然现在看来很原始，但在当时，这已经算是「智能」了。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">到了 80 年代，出现了更复杂的系统，比如 R1/XCON，帮助 DEC 公司配置计算机系统。这些系统有个共同特点：它们都是基于规则的。你得事先把所有可能的情况都想到，然后写成 if-then 规则。问题是，现实世界太复杂了，你不可能把所有情况都考虑进去。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">90 年代，研究者们开始尝试新的路子。他们发现，与其让人去编写所有规则，不如让机器自己去学习。于是有了基于机器学习的 Agent，比如强化学习 Agent。这些 Agent 可以通过试错来学习如何完成任务。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">但真正的转折点出现在 2010 年代深度学习兴起之后。特别是 2017 年 Transformer 架构的出现，彻底改变了游戏规则。有了 GPT、BERT 这些大语言模型，AI Agent 突然变得「聪明」了很多。它们不再需要人类事先编写规则，而是可以理解自然语言，根据上下文做出合理的判断。</p>
<h1 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">2. 现代 AI Agent 的样子</span></h1>
<p style="color: #000000;" data-tool="mdnice编辑器">要理解现代的 AI Agent，我们得先搞清楚它到底是什么。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">简单来说，<strong style="color: #0e88eb;">AI Agent 就是一个能够自主感知环境、制定计划、采取行动来完成特定目标的系统</strong>。听起来很抽象？我举个例子：</p>
<p style="color: #000000;" data-tool="mdnice编辑器">假设你要让 AI 帮你订一张从北京到上海的机票。一个简单的聊天机器人可能只会回答：&#8221;请您登录航空公司网站自行预订。&#8221;但一个真正的 AI Agent 会这样做：</p>
<ol class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">理解你的需求（什么时间、预算多少、有什么偏好）</section>
</li>
<li>
<section style="color: #010101;">搜索多个航空公司的航班信息</section>
</li>
<li>
<section style="color: #010101;">比较价格和时间</section>
</li>
<li>
<section style="color: #010101;">根据你的偏好筛选</section>
</li>
<li>
<section style="color: #010101;">甚至可能帮你完成预订（如果有相应的接口）</section>
</li>
</ol>
<p style="color: #000000;" data-tool="mdnice编辑器">这就是 AI Agent 和普通 AI 应用的区别：<strong style="color: #0e88eb;">它不是被动地回答问题，而是主动地解决问题</strong>。</p>
<h1 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">3. 核心技术和架构</span></h1>
<p style="color: #000000;" data-tool="mdnice编辑器">现在咱们来看看 AI Agent 是怎么实现的。核心架构可以分成四个部分：</p>
<h2 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">3.1 感知模块</span></h2>
<p style="color: #000000;" data-tool="mdnice编辑器">这是 Agent 的「眼睛」和「耳朵」。它需要理解用户的输入，同时还要感知环境的状态。比如，当你让 AI Agent 帮你写代码时，它需要理解：</p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">你想要实现什么功能</section>
</li>
<li>
<section style="color: #010101;">使用什么编程语言</section>
</li>
<li>
<section style="color: #010101;">有什么特殊要求</section>
</li>
<li>
<section style="color: #010101;">当前的代码结构是什么样的</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器">但这里有个关键点：感知模块需要区分两种不同的信息——状态上下文和意图上下文。</p>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">状态上下文</strong>是环境的客观信息。比如：</p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">当前项目使用的是 Python 3.9</section>
</li>
<li>
<section style="color: #010101;">代码库里已经有了用户认证模块</section>
</li>
<li>
<section style="color: #010101;">数据库是 MySQL</section>
</li>
<li>
<section style="color: #010101;">使用的是的 FastAPI 框架</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器">这些信息是确定的、可验证的事实。Agent 需要准确地获取和理解这些信息，因为任何误判都可能导致后续行动的失败。</p>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">意图上下文</strong>则是用户想要达成的目标，这往往更加模糊和主观。比如用户说「帮我优化一下这段代码」，Agent 需要理解：</p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">「优化」是指性能优化还是可读性优化？</section>
</li>
<li>
<section style="color: #010101;">用户的性能预期是什么？</section>
</li>
<li>
<section style="color: #010101;">有没有特定的约束条件？</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器">区分这两种上下文至关重要。很多 AI Agent 的失败，就是因为混淆了状态和意图。比如，用户说「这个函数太慢了」，Agent 需要识别出：</p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">状态：函数执行时间是 500ms</section>
</li>
<li>
<section style="color: #010101;">意图：用户希望降低到 100ms 以内</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器">现代的 AI Agent 通过多种方式来增强感知能力：</p>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">多模态感知</strong>：不只是文字，还包括图像、语音、甚至视频。Cursor 支持图片上传，代码索引，文档等。</p>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">主动询问</strong>：当信息不充分时，优秀的 Agent 会主动提问。「你提到要优化性能，具体是想优化响应时间还是内存占用？」这种澄清式的对话，能大大提高后续行动的准确性。</p>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">历史记录</strong>：通过分析用户的历史行为，Agent 可以更好地理解当前的意图。如果用户之前多次要求「简洁的代码」，那么在新的任务中，Agent 就会倾向于生成更简洁的解决方案。</p>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">环境探测</strong>：高级的 Agent 还会主动探测环境。比如，在开始写代码前，它可能会先检查项目的配置文件、依赖列表、测试用例等，构建一个完整的环境画像。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">感知的准确性直接决定了 Agent 的表现。一个看不清路的司机，再好的驾驶技术也没用。同样，一个不能准确理解用户意图和环境状态的 Agent，后续的规划和执行必然会出问题。</p>
<h2 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">3.2 推理模块</span></h2>
<p style="color: #000000;" data-tool="mdnice编辑器">这是 Agent 的「大脑」，也就是大语言模型。现在主流的做法是使用 GPT-4、Claude、Gemini 这样的大模型。但光有大模型还不够，还需要深入理解不同模型的特性，才能让它们更好地工作。</p>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">模型的性格差异</strong></p>
<p style="color: #000000;" data-tool="mdnice编辑器">就像人有不同的性格，AI 模型也有各自的「个性」。这不是玄学，而是训练方式和优化目标的差异造成的。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">以 Cursor 编辑器的实践为例，他们把模型分为两大类：</p>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">思考型模型</strong>（Thinking Models）：</p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">Claude 3 Opus：喜欢先理解全局，会主动推断你的意图</section>
</li>
<li>
<section style="color: #010101;">Gemini 2.0 Flash：自信果断，经常会做出超出预期的大改动</section>
</li>
<li>
<section style="color: #010101;">o1：专门为复杂推理设计，会花时间深入分析问题</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器">这类模型就像经验丰富的专家，你给它一个大方向，它会自己规划路径。适合探索性任务、大规模重构、或者当你自己也不太确定最终方案时使用。</p>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">执行型模型</strong>（Non-thinking Models）：</p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">Claude 3.5 Sonnet：等待明确指令，不会过度推断</section>
</li>
<li>
<section style="color: #010101;">GPT-4 Turbo：行为可预测，适合精确控制</section>
</li>
<li>
<section style="color: #010101;">文心一言 4.0：在中文任务上表现稳定</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器">这类模型像是可靠的助手，严格按照你的要求执行。适合明确的任务、需要精确控制的场景、或者当你已经知道要做什么时使用。</p>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">选择模型的艺术</strong></p>
<p style="color: #000000;" data-tool="mdnice编辑器">选择合适的模型，就像选择合适的工具。你不会用大锤子去拧螺丝，也不会用螺丝刀去砸钉子。</p>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">根据任务类型选择</strong>：</p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">代码生成：Claude 3.5 Sonnet 和 GPT-4 都很优秀</section>
</li>
<li>
<section style="color: #010101;">代码理解和重构：Gemini 2.0 Flash 的长上下文能力突出</section>
</li>
<li>
<section style="color: #010101;">复杂 Bug 调试：o1 的深度推理能力更适合</section>
</li>
<li>
<section style="color: #010101;">中文文档处理：通义千问、豆包有本土优势</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">根据交互风格选择</strong>：</p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">如果你喜欢给出详细指令：选择执行型模型</section>
</li>
<li>
<section style="color: #010101;">如果你偏好给出大方向：选择思考型模型</section>
</li>
<li>
<section style="color: #010101;">如果你需要创造性方案：选择更&#8221;活跃&#8221;的模型</section>
</li>
<li>
<section style="color: #010101;">如果你需要稳定输出：选择更&#8221;保守&#8221;的模型</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">提示词工程的进化</strong></p>
<p style="color: #000000;" data-tool="mdnice编辑器">早期的 AI Agent 严重依赖精心设计的提示词。但随着模型能力的提升，这种情况正在改变。</p>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">从复杂到简单</strong>： 过去我们可能需要这样的提示词：</p>
<pre style="color: #000000;" data-tool="mdnice编辑器"><code style="color: #abb2bf;">你是一个专业的Python开发者。请严格遵循PEP8规范。
在编写代码时，请考虑以下几点：
1. 代码的可读性
2. 性能优化
3. 错误处理
...（还有20条）
</code></pre>
<p style="color: #000000;" data-tool="mdnice编辑器">现在，一句简单的&#8221;帮我优化这段代码&#8221;就能得到不错的结果。</p>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">动态提示词策略</strong>： 现代 AI Agent 会根据上下文动态调整提示词：</p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">初次对话：使用更详细的背景说明</section>
</li>
<li>
<section style="color: #010101;">后续对话：只提供增量信息</section>
</li>
<li>
<section style="color: #010101;">错误修正：加入具体的约束条件</section>
</li>
<li>
<section style="color: #010101;">创造性任务：减少限制，鼓励探索</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">混合模型策略</strong></p>
<p style="color: #000000;" data-tool="mdnice编辑器">越来越多的 AI Agent 开始采用混合模型策略，在一个任务流程中使用多个模型：</p>
<ol class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">理解阶段</strong>：使用 Claude 3 Opus 深入分析需求</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">规划阶段</strong>：使用 o1 制定详细的执行计划</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">执行阶段</strong>：使用 GPT-4 Turbo 快速生成代码</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">优化阶段</strong>：使用专门的代码模型进行微调</section>
</li>
</ol>
<p style="color: #000000;" data-tool="mdnice编辑器">这种方式能够充分发挥每个模型的优势，同时控制成本。</p>
<h2 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">3.3 记忆模块</span></h2>
<p style="color: #000000;" data-tool="mdnice编辑器">人做事情需要记住前面发生了什么，AI Agent 也一样。记忆分成几种：</p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">短期记忆：当前对话的上下文</section>
</li>
<li>
<section style="color: #010101;">长期记忆：之前的对话历史、学到的知识</section>
</li>
<li>
<section style="color: #010101;">工作记忆：执行任务过程中的中间状态</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器">但实现一个好的记忆系统，比想象中要复杂得多。</p>
<h3 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e88eb;">3.3.1 记忆的层次结构</span></h3>
<p style="color: #000000;" data-tool="mdnice编辑器">就像人脑有不同类型的记忆，AI Agent 的记忆系统也需要分层设计：</p>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">感知记忆（Sensory Memory）</strong>：</p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">保存时间：几秒到几分钟</section>
</li>
<li>
<section style="color: #010101;">内容：用户刚刚的输入、系统刚刚的输出</section>
</li>
<li>
<section style="color: #010101;">用途：处理连续对话中的指代关系</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">工作记忆（Working Memory）</strong>：</p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">保存时间：整个任务周期</section>
</li>
<li>
<section style="color: #010101;">内容：当前任务的状态、中间结果、待办事项</section>
</li>
<li>
<section style="color: #010101;">用途：复杂任务的分步执行</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">情景记忆（Episodic Memory）</strong>：</p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">保存时间：数天到数月</section>
</li>
<li>
<section style="color: #010101;">内容：完整的对话历史、任务执行记录</section>
</li>
<li>
<section style="color: #010101;">用途：理解用户偏好、避免重复错误</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">语义记忆（Semantic Memory）</strong>：</p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">保存时间：永久</section>
</li>
<li>
<section style="color: #010101;">内容：领域知识、最佳实践、学到的模式</section>
</li>
<li>
<section style="color: #010101;">用途：积累经验、提升能力</section>
</li>
</ul>
<h3 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e88eb;">3.3.2 实现方案-RAG（检索增强生成）</span></h3>
<p style="color: #000000;" data-tool="mdnice编辑器">这是目前最成熟的方案。基本思路是：当 AI Agent 需要回答问题时，先去知识库里检索相关信息，然后把这些信息作为上下文提供给大模型。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">比如你问：&#8221;我们公司的年假政策是什么？&#8221;Agent 会先去检索公司的政策文档，找到相关内容，然后基于这些内容生成回答。</p>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">RAG 的进化史</strong></p>
<p style="color: #000000;" data-tool="mdnice编辑器">第一代 RAG（2020-2022）：</p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">简单的向量检索</section>
</li>
<li>
<section style="color: #010101;">使用 BERT 或 Sentence-BERT 做编码</section>
</li>
<li>
<section style="color: #010101;">召回 Top-K 相关文档</section>
</li>
<li>
<section style="color: #010101;">效果一般，经常找不到真正相关的内容</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器">第二代 RAG（2023-2024）：</p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">引入混合检索（向量+关键词）</section>
</li>
<li>
<section style="color: #010101;">使用更强的编码模型（如 BGE、E5）</section>
</li>
<li>
<section style="color: #010101;">加入重排序（Reranking）步骤</section>
</li>
<li>
<section style="color: #010101;">开始考虑文档结构和语义分块</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器">第三代 RAG（2024-现在）：</p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">多级索引结构（摘要→章节→段落）</section>
</li>
<li>
<section style="color: #010101;">查询改写和扩展</section>
</li>
<li>
<section style="color: #010101;">动态上下文窗口调整</section>
</li>
<li>
<section style="color: #010101;">引入知识图谱增强检索</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">实践中的 RAG 优化技巧</strong></p>
<ol class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">
<p style="color: #000000;"><strong style="color: #0e88eb;">智能分块</strong>：不要机械地按字数切分，而是按语义单元切分</p>
</section>
<ul class="list-paddingleft-1">
<li>
<section style="color: #010101;">代码：按函数/类切分</section>
</li>
<li>
<section style="color: #010101;">文档：按章节/段落切分</section>
</li>
<li>
<section style="color: #010101;">对话：按话轮切分</section>
</li>
</ul>
</li>
<li>
<section style="color: #010101;">
<p style="color: #000000;"><strong style="color: #0e88eb;">多路召回</strong>：同时使用多种检索策略</p>
</section>
<ul class="list-paddingleft-1">
<li>
<section style="color: #010101;">向量相似度检索</section>
</li>
<li>
<section style="color: #010101;">BM25 关键词检索</section>
</li>
<li>
<section style="color: #010101;">实体链接检索</section>
</li>
<li>
<section style="color: #010101;">基于图的检索</section>
</li>
</ul>
</li>
<li>
<section style="color: #010101;">
<p style="color: #000000;"><strong style="color: #0e88eb;">上下文工程</strong>：检索到的内容需要精心组织</p>
</section>
</li>
<li>
<section style="color: #010101;">
<p style="color: #000000;"><strong style="color: #0e88eb;">增量索引</strong>：新知识的实时更新</p>
</section>
<ul class="list-paddingleft-1">
<li>
<section style="color: #010101;">使用流式处理架构</section>
</li>
<li>
<section style="color: #010101;">支持热更新索引</section>
</li>
<li>
<section style="color: #010101;">版本控制和回滚机制</section>
</li>
</ul>
</li>
</ol>
<h3 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e88eb;">3.3.3 实现方案-超长上下文</span></h3>
<p style="color: #000000;" data-tool="mdnice编辑器">最新的趋势是直接增加模型的上下文长度。比如 Claude 3 已经支持 200K token 的上下文，Gemini 1.5 Pro 甚至支持 200 万 token。</p>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">长上下文的真实挑战</strong></p>
<p style="color: #000000;" data-tool="mdnice编辑器">虽然模型号称支持超长上下文，但实际使用中会遇到很多问题：</p>
<ol class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">
<p style="color: #000000;"><strong style="color: #0e88eb;">「迷失在中间」现象</strong>：模型对上下文开头和结尾的内容记忆较好，但中间部分容易遗忘</p>
</section>
</li>
<li>
<section style="color: #010101;">
<p style="color: #000000;"><strong style="color: #0e88eb;">注意力稀释</strong>：上下文越长，模型对每个部分的注意力就越分散</p>
</section>
</li>
<li>
<section style="color: #010101;">
<p style="color: #000000;"><strong style="color: #0e88eb;">推理退化</strong>：在超长上下文中，模型的推理能力会显著下降</p>
</section>
</li>
</ol>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">混合方案：长上下文 + 选择性注意</strong></p>
<h3 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e88eb;">3.3.4 主动遗忘</span></h3>
<p style="color: #000000;" data-tool="mdnice编辑器">这是一个反直觉但很重要的概念：不是记住越多越好，而是要学会遗忘。</p>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">为什么需要遗忘？</strong></p>
<ol class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">降噪</strong>：不是所有信息都值得记住</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">隐私</strong>：某些敏感信息需要及时删除</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">效率</strong>：保持记忆系统的高效运转</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">相关性</strong>：过时的信息可能产生负面影响</section>
</li>
</ol>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">遗忘策略</strong></p>
<ol class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">
<p style="color: #000000;"><strong style="color: #0e88eb;">基于时间的遗忘</strong>：</p>
</section>
<ul class="list-paddingleft-1">
<li>
<section style="color: #010101;">会话结束后 24 小时删除临时信息</section>
</li>
<li>
<section style="color: #010101;">30 天后归档低频访问的记忆</section>
</li>
<li>
<section style="color: #010101;">90 天后删除无用的错误记录</section>
</li>
</ul>
</li>
<li>
<section style="color: #010101;">
<p style="color: #000000;"><strong style="color: #0e88eb;">基于重要性的遗忘</strong>：</p>
</section>
<ul class="list-paddingleft-1">
<li>
<section style="color: #010101;">使用 LRU（最近最少使用）策略</section>
</li>
<li>
<section style="color: #010101;">基于访问频率的动态评分</section>
</li>
<li>
<section style="color: #010101;">保留高价值的&#8221;关键时刻&#8221;</section>
</li>
</ul>
</li>
<li>
<section style="color: #010101;">
<p style="color: #000000;"><strong style="color: #0e88eb;">基于相关性的遗忘</strong>：</p>
</section>
<ul class="list-paddingleft-1">
<li>
<section style="color: #010101;">当新信息与旧信息冲突时，更新而非累加</section>
</li>
<li>
<section style="color: #010101;">合并相似的记忆，避免冗余</section>
</li>
<li>
<section style="color: #010101;">定期整理和压缩记忆库</section>
</li>
</ul>
</li>
</ol>
<h2 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">3.4 行动模块</span></h2>
<p style="color: #000000;" data-tool="mdnice编辑器">这是 Agent 的「手脚」，让它能够真正做事情。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">行动模块的核心是 Function Calling（函数调用），这是目前最主流的方式。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">简单来说，就是预先定义好一系列函数，比如搜索网页、查询数据库、发送邮件等，然后告诉大模型这些函数的作用和参数。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">当用户提出需求时，模型会判断需要调用哪个函数，提取相应的参数，执行函数并获取结果。这个过程已经从最初的单次调用，进化到现在可以进行多步骤调用、并行执行、错误重试等复杂操作。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">Anthropic 推出的 MCP（Model Context Protocol）协议，试图建立行动模块的统一标准。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">MCP 采用服务器-客户端架构，工具提供方作为服务器，AI 应用作为客户端，通过标准化的协议进行通信。这种设计的好处是解耦和复用：AI 应用不需要知道工具的具体实现细节，一个 MCP 服务器可以同时服务多个 AI 应用。更重要的是，MCP 提供了统一的安全管理和权限控制机制，让行动模块的集成变得更加简单和安全。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">安全性是行动模块最关键的考虑因素。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">在 Manus 刚上线的时候就爆出一个问题，有人用提示词，让 AI Agent 打包了当前执行的环境的所有代码。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">给 AI 执行能力就像给孩子一把剪刀，必须设置严格的安全边界。现代 Agent 通常采用多层防护：首先是沙箱环境，所有代码执行都在隔离的容器中进行，限制内存、CPU、网络访问；其次是权限管理，基于用户角色和具体场景动态分配权限；最后是审计日志，记录所有行动的执行情况，便于追溯和分析。这些措施确保 Agent 在帮助用户的同时，不会造成安全风险。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">复杂任务往往需要多个行动的协调配合，这就需要工作流引擎来编排。比如&#8221;帮我分析竞品并生成报告&#8221;这个任务，可能需要先搜索竞品信息，然后提取关键数据，接着进行对比分析，最后生成可视化报告。工作流引擎负责管理这些步骤的执行顺序、处理步骤间的数据传递、应对执行失败等情况。高级的引擎还支持条件分支、循环执行、并行处理等复杂逻辑，让 Agent 能够处理更加复杂的任务。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">行动模块的未来发展方向是更强的自主性。目前的 Agent 主要执行预定义的动作，但未来可能会具备动作发现和学习能力，能够自动发现新的 API、学习新的操作模式、甚至创造性地组合已有动作来完成新任务。另一个重要方向是与物理世界的交互，通过机器人或 IoT 设备执行物理动作。随着这些能力的提升，AI Agent 将真正从「会说」进化到「会做」，成为人类在数字世界和物理世界中的得力助手。</p>
<h1 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">4. 当前的局限性</span></h1>
<p style="color: #000000;" data-tool="mdnice编辑器">AI 有其局限性，了解这些局限性，对于合理使用和未来改进都很重要。</p>
<h2 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">4.1 幻觉问题</span></h2>
<p style="color: #000000;" data-tool="mdnice编辑器">这是所有基于大模型的 AI Agent 都面临的核心挑战。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">Agent 可能会编造不存在的 API、虚构执行结果、或者对自己的能力过度自信。比如，当你要求 Agent 查询某个数据库时，它可能会返回看起来合理但实际上完全虚构的数据。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">这种幻觉在连续多步骤的任务中会被放大，一个小错误可能导致整个任务链的崩溃。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">更危险的是，这些幻觉往往很难被发现，因为它们在表面上看起来完全合理。虽然通过 RAG、工具调用验证等方法可以部分缓解，但彻底解决仍然是个开放性难题。</p>
<h2 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">4.2 可靠性不足</span></h2>
<p style="color: #000000;" data-tool="mdnice编辑器">AI Agent 的表现稳定性仍然是个大问题。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">同样的任务，在不同时间执行可能得到不同的结果。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">这种不确定性来源于多个方面：模型本身的随机性、上下文理解的偏差、外部环境的变化等。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">在一些对可靠性要求高的场景，比如金融交易、医疗诊断、工业控制等，目前的 AI Agent 还远远达不到要求。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">即使加入了重试机制、结果验证等保障措施，也只能提高而非保证可靠性。这导致在关键业务场景中，AI Agent 更多是作为辅助而非主导。</p>
<h2 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">4.3 成本与效率</span></h2>
<p style="color: #000000;" data-tool="mdnice编辑器">运行一个功能完善的 AI Agent 系统成本不菲。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">首先是模型调用成本，特别是使用 GPT-4、Claude 等顶级模型时，每次交互都要花费不少钱。复杂任务可能需要多次模型调用，成本会快速累加。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">其次是延迟问题，每次函数调用、每次推理都需要时间，一个看似简单的任务可能需要等待数十秒甚至几分钟。对于需要实时响应的场景，当前的 AI Agent 往往力不从心。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">虽然可以通过模型蒸馏、缓存优化等手段降低成本，但在性能和成本之间找到平衡点仍然很困难。</p>
<h2 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">4.4 安全与隐私挑战</span></h2>
<p style="color: #000000;" data-tool="mdnice编辑器">AI Agent 需要访问大量数据和系统才能发挥作用，这带来了严重的安全隐私问题。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">首先是数据泄露风险，Agent 可能无意中将敏感信息包含在给大模型的请求中，而这些数据可能被用于模型训练。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">其次是提示注入攻击，恶意用户可能通过精心构造的输入操控 Agent 执行非预期的操作。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">还有权限滥用问题，一个被赋予过多权限的 Agent 可能造成严重损害。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">虽然业界正在开发各种防护措施，如差分隐私、安全沙箱、细粒度权限控制等，但攻防对抗仍在继续。</p>
<h2 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">4.5 理解与推理的局限</span></h2>
<p style="color: #000000;" data-tool="mdnice编辑器">虽然大模型展现出了惊人的能力，但 AI Agent 在深层理解和复杂推理方面仍有明显不足。它们往往只能处理相对直接的任务，面对需要长链条推理、创造性思维或深层次理解的问题时就会暴露短板。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">比如，Agent 可能很擅长执行&#8221;帮我订一张机票&#8221;这样的任务，但如果要求&#8221;帮我规划一个考虑预算、时间、个人兴趣的完整旅行方案&#8221;，效果就会大打折扣。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">此外，Agent 缺乏真正的常识推理能力，可能会提出一些违背基本常识的方案。即使是最新的 o1 模型，虽然推理能力有所提升，但距离人类水平的推理能力还有很大差距。</p>
<h1 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">5. 写在最后</span></h1>
<p style="color: #000000;" data-tool="mdnice编辑器">AI Agent 的发展才刚刚开始。虽然现在的技术还不完美，但进步的速度是惊人的。两年前，我们还在惊叹 ChatGPT 能够进行对话；现在，AI Agent 已经能够帮我们写代码、分析数据、制定计划了。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">对于技术人员来说，现在是最好的时代。我们有机会参与到这场变革中，创造出真正有用的 AI Agent。但同时，我们也要保持清醒：AI Agent 是工具，不是魔法。它能够提高效率，但不能替代人类的创造力和判断力。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">未来的世界，可能每个人都会有自己的 AI Agent 团队。就像现在每个人都有智能手机一样自然。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">而现在，正是这个未来的开端。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">以上。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.phppan.com/2025/07/ai-agent-manus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AI 编程下的舒适区不能一直呆着</title>
		<link>https://www.phppan.com/2025/06/the-comfort-zone-of-ai-programming-cannot-last-forever/</link>
		<comments>https://www.phppan.com/2025/06/the-comfort-zone-of-ai-programming-cannot-last-forever/#comments</comments>
		<pubDate>Sat, 07 Jun 2025 01:54:03 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[架构和远方]]></category>
		<category><![CDATA[AI 编程]]></category>
		<category><![CDATA[舒适区]]></category>

		<guid isPermaLink="false">https://www.phppan.com/?p=2378</guid>
		<description><![CDATA[上周和 GZ 大佬在群里吹水，聊到 AI 编程，其中他所在的大厂已经全面推行 Cursor，他提到在 AI 时 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="color: #191b1f;" data-first-child="" data-pid="kvwoccgE">上周和 GZ 大佬在群里吹水，聊到 AI 编程，其中他所在的大厂已经全面推行 Cursor，他提到在 AI 时代下依赖 AI 会导致程序员失去思考力和代码能力。</p>
<figure style="color: #191b1f;" data-size="normal"><img class="origin_image zh-lightbox-thumb lazy" src="https://pic1.zhimg.com/80/v2-2fc194bf5ff84551f014527b70e94f74_1440w.webp" alt="" width="836" height="352" data-caption="" data-size="normal" data-rawwidth="836" data-rawheight="352" data-original-token="v2-f3d1ea68bc8add2b2da6ebd8868b9fa7" data-original="https://pic1.zhimg.com/v2-2fc194bf5ff84551f014527b70e94f74_r.jpg" data-actualsrc="https://pic1.zhimg.com/v2-2fc194bf5ff84551f014527b70e94f74_1440w.jpg" data-lazy-status="ok" /></figure>
<p style="color: #191b1f;" data-pid="PYnH6GRR">虽然 GZ 的观点有些尖锐，但其核心表述的：<span style="font-weight: 600;">过度依赖这类 AI 工具，可能会导致程序员的独立思考能力和实际编码能力下降。</span> 是有道理的，<span style="font-weight: 600;">人都是有惰性的，由简入奢易，由奢入简难</span>。</p>
<p style="color: #191b1f;" data-pid="_bMniHVF">AI 给编程带来了「捷径」和「舒适区」。有即时的满足感，有认知负载的降低，还有我好像什么都会了的错觉。</p>
<ul style="color: #191b1f;">
<li data-pid="7UvLNMfN"><span style="font-weight: 600;">即时满足感：</span> AI工具能迅速生成代码、解答疑问，这种即时满足感是非常诱人的。就像以前需要自己做饭（从买菜、洗菜、切菜到烹饪），现在可以直接点外卖，省时省力，结果直接呈现。</li>
<li data-pid="-h-T8hL6"><span style="font-weight: 600;">认知负荷降低：</span> 思考是耗能的。AI 工具在很多时候替我们完成了初步的思考和构建工作，大大降低了认知负荷。大脑天然倾向于节能，所以会不自觉地依赖这种轻松模式。</li>
<li data-pid="-Hd7OfFp"><span style="font-weight: 600;">我好像什么都会了的错觉：</span> 有了AI的辅助，很多以前觉得困难或耗时的任务变得简单，这容易让人产生一种「能力快速提升」的错觉，从而更愿意待在这个由AI构建的「舒适区」里。</li>
</ul>
<p style="color: #191b1f;" data-pid="bzbYoSp_">美国心理学家 NoelTichy 提出的理论人类对外部世界的认识可分为三个区域：舒适区，学习区，恐慌区。</p>
<p style="color: #191b1f;" data-pid="DkUb7UCz">参考下面这张图：</p>
<figure style="color: #191b1f;" data-size="normal"><img class="origin_image zh-lightbox-thumb lazy" src="https://pic4.zhimg.com/80/v2-266cd2bcdecdd74202fe03bd4045655f_1440w.webp" alt="" width="1206" height="1124" data-caption="" data-size="normal" data-rawwidth="1206" data-rawheight="1124" data-original-token="v2-4cb09fcbb3f5099f3551127462f84057" data-original="https://pic4.zhimg.com/v2-266cd2bcdecdd74202fe03bd4045655f_r.jpg" data-actualsrc="https://pic4.zhimg.com/v2-266cd2bcdecdd74202fe03bd4045655f_1440w.jpg" data-lazy-status="ok" /></figure>
<p class="ztext-empty-paragraph" style="color: #191b1f;">
<p style="color: #191b1f;" data-pid="_1OVM8_b">图片来源：即梦 AI 生成</p>
<p style="color: #191b1f;" data-pid="ACvb5bk_">我们天生是喜欢舒适区的，有在 AI 的加持下慢慢滑向依赖的自然趋势。</p>
<ul style="color: #191b1f;">
<li data-pid="y-21ELm_"><span style="font-weight: 600;">习惯的养成：</span> 一旦习惯了 AI 带来的便利，就很难再回到过去那种凡事亲力亲为的「简朴」状态。第一次用 AI 生成复杂函数可能还会仔细研究，第十次可能就直接 <span style="font-weight: 600;">Accepted</span> 了。惰性会让我们不自觉地选择最省力的方式。</li>
<li data-pid="WzZw2QRa"><span style="font-weight: 600;">「温水煮青蛙」效应：</span> 思考能力和编码能力的退化，往往不是一蹴而就的，而是像温水煮青蛙一样，在不知不觉中慢慢发生的。每次都依赖一点点，每次都少思考一点点，日积月累，当真正需要独立面对复杂问题时，才发现「内功」已经荒废了。</li>
<li data-pid="cVVQWI6x"><span style="font-weight: 600;">对「不便」的容忍度降低：</span> 习惯了 AI 的「秒回」和「全能」，一旦遇到 AI 无法解决或需要自己深入研究的问题，可能会更容易感到沮丧、不耐烦，甚至选择回避。</li>
</ul>
<p style="color: #191b1f;" data-pid="Z8S0MCcW">当我们真的养成了这种依赖的习惯，适应了这种舒服区，就会<span style="font-weight: 600;">面对能力退化后的困境</span>：</p>
<ul style="color: #191b1f;">
<li data-pid="cJmMdEaB"><span style="font-weight: 600;">核心技能的生疏：</span> 长期依赖 AI 完成编码和调试，会导致对编程语言特性、底层原理、算法数据结构、系统设计等核心技能的生疏。就像长期开车的人，突然让他走一段远路，可能会觉得非常吃力。</li>
<li data-pid="JE0NeFyQ"><span style="font-weight: 600;">问题解决能力的下降：</span> 独立分析问题、定位问题、解决问题的能力，是在一次次「啃硬骨头」的过程中锻炼出来的。如果这个过程被 AI 替代，那么这种宝贵的实战经验就会缺失。当 AI 「失灵」或给出错误方案时，便会束手无策。</li>
<li data-pid="_KtMU0QV"><span style="font-weight: 600;">创新能力的抑制：</span> 真正的创新往往源于对问题的深刻理解和多角度的尝试。如果满足于AI给出的「标准答案」，就可能失去探索更优解或全新解决方案的动力和能力。</li>
<li data-pid="EN24eoYj"><span style="font-weight: 600;">学习动力的削弱：</span> 「反正有AI」，这种心态可能会削弱一些人主动学习新知识、钻研深层技术的动力。因为「奢华」的生活方式似乎唾手可得，何必再去「简朴」地刻苦修炼呢？</li>
</ul>
<p style="color: #191b1f;" data-pid="vDOuczvv">就像我们家包包公主说的，这算不算「没苦硬吃」呢？</p>
<p style="color: #191b1f;" data-pid="dCONvO_M">小朋友的视角不一样，也很形象。我们再深入思考一下：</p>
<p style="color: #191b1f;" data-pid="ZSGCDDaT">从某种程度上说，如果 AI 已经能完美、高效地解决一些重复性的、模式化的、或者我们已经非常熟悉且没有太多新学习价值的问题，我们还非要「绕过」AI，坚持用原始的、低效的方式去「硬磕」，那确实有点「没苦硬吃」的味道。这就像明明有洗衣机，还非要每一件衣服都手洗，只为了「体验劳动的艰辛」，效率上肯定是不划算的。</p>
<p style="color: #191b1f;" data-pid="KBVeAOyh"><span style="font-weight: 600;">但是，这里面有个核心的思考：我们「吃苦」的目的是什么？</span></p>
<p style="color: #191b1f;" data-pid="ymnMuK3h">比如，AI 能快速生成一个标准的 CRUD 代码框架，我们非要一行一行手动敲，而且这个过程对我们来说已经没有新的知识增量了，那这种「苦」可能就真的是「没必要硬吃」。时间应该花在更有价值的地方。</p>
<p style="color: #191b1f;" data-pid="Sc_3P4eF">如果是为了「锻炼核心能力」、「深化理解」、「探索未知」而吃苦：</p>
<ul style="color: #191b1f;">
<li data-pid="1nvw9Dh8"><span style="font-weight: 600;">打地基的苦：</span> 对于初学者，或者在学习新技术、新领域时，有些基础的「苦」是必须吃的。比如，亲手搭建环境、理解底层原理、调试简单的错误。这个过程 AI 可以辅助，但不能完全替代，因为这是建立认知框架和培养解决问题直觉的过程。直接跳过，地基不牢。</li>
<li data-pid="nMS7FMVj"><span style="font-weight: 600;">理解「所以然」的苦：</span> AI 给出了一个方案，我们不满足于「知其然」，而是要去深究「所以然」——它为什么这么写？有没有其他方案？优劣何在？这个思考和验证的过程，可能需要查阅资料、动手实验，是「苦」的，但这种「苦」能让我们真正掌握知识，而不是停留在表面。</li>
<li data-pid="fTLJ61XR"><span style="font-weight: 600;">攻坚克难的苦：</span> 面对复杂的、AI 也难以完美解决的、或者需要创新性思维的问题时，我们需要自己去分析、设计、试错。这个过程无疑是「苦」的，但正是这种「苦」孕育了核心竞争力和真正的技术突破。</li>
<li data-pid="0HW-KAiV"><span style="font-weight: 600;">保持「手感」和「警惕性」的苦：</span> 就像运动员需要日常训练来保持状态一样，程序员偶尔也需要「刻意练习」一些基础技能，或者对AI的输出进行严格的审视和重构，以保持对代码的敏感度和对潜在问题的警惕性。这种「苦」是为了防止能力退化。</li>
</ul>
<p style="color: #191b1f;" data-pid="nlu6aYIc">明明有更优解（AI能完美胜任且无损学习），却固执地选择低效、重复且对能力提升帮助不大的方式。这是一种<span style="font-weight: 600;">低效的勤奋</span>，属于没苦硬吃。为了掌握核心技能、深化理解、培养批判性思维、解决复杂问题而进行的<span style="font-weight: 600;">有目的的、高价值的努力</span>。这是一种<span style="font-weight: 600;">战略性的投入</span>。不是没苦硬吃。</p>
<p style="color: #191b1f;" data-pid="bJzszHVh"><span style="font-weight: 600;">回到「由简入奢易，由奢入简难」和「人的惰性」</span></p>
<p style="color: #191b1f;" data-pid="fSwkEhwZ">正是因为惰性的存在，我们很容易滑向完全依赖 AI 的「奢华」生活，从而<span style="font-weight: 600;">不自觉地回避了那些必要的、能提升核心能力的「苦」</span>。这时候，有意识地去「吃一些必要的苦」，就不是「没苦硬吃」，而是<span style="font-weight: 600;">对抗惰性、保持清醒、主动投资未来</span>的表现。</p>
<p style="color: #191b1f;" data-pid="z98Ro2XB"><span style="font-weight: 600;">举个例子：</span></p>
<ul style="color: #191b1f;">
<li data-pid="Se4t_sZm">AI能帮我们写单元测试。如果我们只是为了应付覆盖率，让 AI 生成然后看都不看，那可能会错过很多理解代码逻辑和边界情况的机会。</li>
<li data-pid="JSDtUEiw">但如果我们让 AI 生成初步的测试用例，然后再仔细分析这些用例是否覆盖了所有关键逻辑、边界条件、异常情况，并在此基础上进行补充和优化，甚至思考如何设计更健壮的被测试代码——这个过程虽然也「苦」，但价值巨大。</li>
</ul>
<p style="color: #191b1f;" data-pid="vYP4VHe1"><span style="font-weight: 600;">那如何对抗这种「人性」？</span></p>
<p style="color: #191b1f;" data-pid="RiWRNihK">正因为「惰性」和「由简入奢易，由奢入简难」是人性的一部分，所以对抗它需要<span style="font-weight: 600;">刻意的练习</span>：</p>
<p style="color: #191b1f;" data-pid="ZEGA8uP9">1.<span style="font-weight: 600;">保持警惕意识：</span> 时刻提醒自己，AI 是工具，不是替代品。享受便利的同时，要警惕能力滑坡的风险。</p>
<p style="color: #191b1f;" data-pid="UWhqdMeX">2.<span style="font-weight: 600;">刻意练习：</span></p>
<ul style="color: #191b1f;">
<li data-pid="tRlLk-Zs"><span style="font-weight: 600;">主动「脱离」 AI ：</span> 对于一些核心模块或自己希望提升的领域，尝试不使用或少使用 AI，强迫自己独立思考和编码。</li>
<li data-pid="vc6sVBE-"><span style="font-weight: 600;">深究 AI 的答案：</span> 不满足于AI给出的结果，而是去理解它为什么这么做，它的原理是什么，有没有更好的方式。把 AI 的输出当成学习材料，而不是最终答案。</li>
<li data-pid="jy1bqCa9"><span style="font-weight: 600;">复盘与总结：</span> 即使使用了 AI，也要对过程和结果进行复盘，总结学到的东西和 AI 的局限性。</li>
</ul>
<p style="color: #191b1f;" data-pid="vpMaM823">3.<span style="font-weight: 600;">设定更高的目标：</span> 将 AI 视为达到更高目标的「杠杆」，而不是满足于现有水平的「安乐椅」。比如，利用 AI 节省下来的时间去学习新的架构知识、去钻研更复杂的算法、去思考更有创造性的解决方案。让 AI 帮助我们去追求一种更高层次的、更依赖人类智慧的「奢华」。</p>
<p style="color: #191b1f;" data-pid="VLEqEMrs">4.<span style="font-weight: 600;">强化元认知：</span> 思考自己是如何思考的，学习自己是如何学习的。意识到自己可能陷入了惰性思维，并主动调整策略。</p>
<p style="color: #191b1f;" data-pid="T-sGzhXq">5.<span style="font-weight: 600;">对「思考能力」和「代码能力」的重新定义</span></p>
<ul style="color: #191b1f;">
<li data-pid="4UXY2w3q"><span style="font-weight: 600;">思考能力：</span> 可能从「如何从零开始解决问题」更多地转向「如何清晰地描述问题」、「如何将大问题分解给 AI」、「如何评估和整合 AI 提供的方案」、「如何在更高层面进行架构设计和技术决策」。</li>
<li data-pid="m_C-pqio"><span style="font-weight: 600;">代码能力：</span> 可能从「熟练编写每一行具体代码」更多地转向「快速理解和修改 AI 生成的代码」、「保证代码质量、可维护性和安全性」、「进行有效的Code Review（即使是AI生成的代码）」。</li>
</ul>
<p style="color: #191b1f;" data-pid="xeTgD-68">AI 编程工具，确实像一把双刃剑。它带来的「即时满足感」和「认知负荷降低」，很容易就把我们拽进那个诱人的「舒适区」。毕竟，谁不爱走捷径呢？可问题也随之而来，长期依赖这种「外挂」，我们自己的「内功」——独立思考和编码能力，真可能在「温水煮青蛙」般的日常中，不知不觉就打了折扣。</p>
<p style="color: #191b1f;" data-pid="0O0HIC5u">当然，这也不是说我们就得跟 AI 划清界限，放着高效的工具不用，非得事事躬亲，那确实有点「低效勤奋」，甚至真成了「没苦硬吃」。关键在于，我们得想明白，哪些「苦」是值得吃的，是能真正提升我们核心竞争力的「战略性投入」。</p>
<ul style="color: #191b1f;">
<li data-pid="U2ToO-60">那些AI能完美胜任、重复性高且对我们知识增量有限的活儿，大胆交给 AI，这叫<span style="font-weight: 600;">明智地利用工具，解放生产力</span>。</li>
<li data-pid="iU5X-ffC">但那些关乎「打地基」、深究「所以然」、需要「攻坚克难」的硬骨头，以及为了保持「手感」和「警惕性」的刻意练习——这些「苦」，恰恰是 AI 时代我们安身立命的本钱。它们能帮助我们<span style="font-weight: 600;">构建真正的理解，培养批判性思维，并最终驾驭 AI，而不是被 AI 所定义</span>。</li>
</ul>
<p style="color: #191b1f;" data-pid="oVF8hggA">所以，面对AI，我们不能简单地「躺平」享受，也不能盲目地「排斥对抗」。更重要的是，要<span style="font-weight: 600;">保持那份警惕意识，用刻意的练习去对抗人性的惰性</span>。</p>
<p style="color: #191b1f;" data-pid="zfJuHUPh">这不仅仅是关于代码怎么写得更快，更是关于我们如何<span style="font-weight: 600;">重新定义自己的「思考能力」和「代码能力」</span>，如何在 AI 的浪潮中，通过主动学习和深度思考，完成一次自我进化。说到底，AI 是工具，方向盘始终还是握在我们自己手里，是选择成为更智慧的「驾驶员」，还是满足于当一个「乘客」，这道题，得我们自己用心作答。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.phppan.com/2025/06/the-comfort-zone-of-ai-programming-cannot-last-forever/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一行代码没写，我用一天的时间做了一个网站</title>
		<link>https://www.phppan.com/2025/02/ai-coding-trae/</link>
		<comments>https://www.phppan.com/2025/02/ai-coding-trae/#comments</comments>
		<pubDate>Sat, 15 Feb 2025 10:55:18 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[架构和远方]]></category>
		<category><![CDATA[AI 编程]]></category>

		<guid isPermaLink="false">https://www.phppan.com/?p=2332</guid>
		<description><![CDATA[★AI 编程真的能做到一天写完一个网站吗？ 这听上去像科幻小说里的情节，但事实证明，借助字节的 Trae，我真 [&#8230;]]]></description>
				<content:encoded><![CDATA[<section id="nice" style="color: #000000;" data-tool="mdnice编辑器" data-website="https://www.mdnice.com">
<blockquote class="custom-blockquote multiquote-1" data-tool="mdnice编辑器"><p><span style="font-weight: bold; color: #0e88eb;">★</span><strong style="color: #0e88eb;">AI 编程真的能做到一天写完一个网站吗？</strong> 这听上去像科幻小说里的情节，但事实证明，借助字节的 <strong style="color: #0e88eb;">Trae</strong>，我真的在一天之内完成了一个网站的开发。本篇文章主要分享这次 AI 编程的完整实战经验，包括踩过的坑、用到的技巧，以及如何最大化 AI 的生产力。</p></blockquote>
<p data-tool="mdnice编辑器">整个写代码的过程有点钢铁侠里面的场景，只是没有那么炫，大概是这样：</p>
<figure data-tool="mdnice编辑器"><img src="https://files.mdnice.com/user/36365/09870606-8d3d-4cc3-b160-82a8d47dc32a.jpg" alt="" /></figure>
<p data-tool="mdnice编辑器">网站已经上线，有兴趣的同学可以访问： <a style="font-weight: bold; color: #0e88eb;" href="https://www.kaifage.com/">开发哥 AI 编程工具箱</a> https://www.kaifage.com/</p>
<p data-tool="mdnice编辑器">完工后的界面如下： <img src="https://files.mdnice.com/user/36365/a7eb773f-46b5-46d8-b645-3e646b4a7a49.png" alt="" /></p>
<p data-tool="mdnice编辑器">纯前端项目，使用了 Vue 框架</p>
<h2 data-tool="mdnice编辑器"><span class="content" style="color: #0e8aeb;"> AI 编程的核心思路</span></h2>
<p data-tool="mdnice编辑器">在这次沉浸式 AI 编程过程中，主要使用了 <strong style="color: #0e88eb;">Trae</strong> 作为 AI 编程助手，并结合 <strong style="color: #0e88eb;">Claude 3.5 Sonnet</strong> 和 <strong style="color: #0e88eb;">GPT-4o</strong> 进行代码生成和优化。整体思路如下：</p>
<ol data-tool="mdnice编辑器">
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">让 AI 发挥创造力</strong>：先给 AI 一个大致的需求，让它自己发挥，生成一个完整的功能雏形。</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">分步细化需求</strong>：每次只修改一个小地方，比如调整颜色、优化布局或添加某个功能，而不是一次性提出复杂需求。</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">查漏补缺</strong>：AI 生成的代码通常会有小问题，需要自己细心检查并修正。</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">多模态交互</strong>：可以用截图标注问题，让 AI 直接针对修改点进行调整，而不是仅靠文字描述。</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">灵活切换 AI 工具</strong>：Claude 3.5 Sonnet 在代码生成上的表现比 GPT-4o 更稳定，但有时候 GPT-4o 也能提供不同的实现思路。</section>
</li>
</ol>
<hr data-tool="mdnice编辑器" />
<h2 data-tool="mdnice编辑器"><span class="content" style="color: #0e8aeb;"> AI 编程的最佳实践</span></h2>
<p data-tool="mdnice编辑器">在这次 AI 编程过程中，有以下的一些体验点，能极大提升开发效率：</p>
<h3 data-tool="mdnice编辑器"><span class="content" style="color: #0e88eb;">1. <strong>AI 对于前端生成效果比较好</strong></span></h3>
<p data-tool="mdnice编辑器">在前端（HTML/CSS/JavaScript）方面，AI 生成的质量较高，尤其是像 React、Vue 这样的框架，AI 处理起来相对流畅。 实际使用体感，传统的前端方案略差一些。</p>
<h3 data-tool="mdnice编辑器"><span class="content" style="color: #0e88eb;">2. <strong>遇到死循环？换个方法！</strong></span></h3>
<p data-tool="mdnice编辑器">如果 AI 一直在重复错误，或者陷入死循环，不妨试试：</p>
<ul data-tool="mdnice编辑器">
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">换个 AI 问</strong>，让另一个 AI 重新理解问题。</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">Google 搜索</strong>，找到正确的解决方案后，再喂给 AI，让它基于正确的信息继续优化。</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">直接问 AI：有没有其它办法？你再想想？</strong> 适当「<strong style="color: #0e88eb;">PUA</strong>」 AI，往往能让它跳出思维定式。</section>
</li>
</ul>
<h3 data-tool="mdnice编辑器"><span class="content" style="color: #0e88eb;">3. <strong>抽象表达 vs. 精确指令</strong></span></h3>
<p data-tool="mdnice编辑器">有时候，AI 对于具体代码的理解会有偏差，但如果用抽象表达，它反而能给出更好的优化方案。例如：<br />
✅ <strong style="color: #0e88eb;">❌ 直接写代码请求</strong>：「请调整 <code style="color: #0e8aeb;">div</code> 的 <code style="color: #0e8aeb;">padding</code> 为 <code style="color: #0e8aeb;">20px</code>。」 这种还不如自己直接调。</p>
<p data-tool="mdnice编辑器">✅ <strong style="color: #0e88eb;">✔️ 抽象表达</strong>：「当前的界面布局不合理，请优化为更合理的布局。」</p>
<h3 data-tool="mdnice编辑器"><span class="content" style="color: #0e88eb;">4. <strong>结合多模态能力，提高沟通效率</strong></span></h3>
<ul data-tool="mdnice编辑器">
<li>
<section style="color: #010101;">如果界面某个地方不合理，可以 <strong style="color: #0e88eb;">截图+红框标注</strong>，让 AI 直接修改。</section>
</li>
<li>
<section style="color: #010101;">视觉化的反馈比纯文本描述更直观，减少沟通成本。</section>
</li>
</ul>
<h3 data-tool="mdnice编辑器"><span class="content" style="color: #0e88eb;">5. <strong>让 AI 直接修改具体文件</strong></span></h3>
<ul data-tool="mdnice编辑器">
<li>
<section style="color: #010101;">如果 AI 生成的代码分散在多个文件里，可以 <strong style="color: #0e88eb;">指定文件路径</strong>，让它直接修改，而不是让它自己找文件，有时候会出错，特别是有某些文件相似的时候。</section>
</li>
</ul>
<hr data-tool="mdnice编辑器" />
<h2 data-tool="mdnice编辑器"><span class="content" style="color: #0e8aeb;">⚠️ 踩坑记录</span></h2>
<p data-tool="mdnice编辑器">当然，AI 编程并不总是生成你想要的代码，这次编程过程中也遇到了不少问题：</p>
<ol data-tool="mdnice编辑器">
<li>
<section style="color: #010101;">
<p style="color: #000000;"><strong style="color: #0e88eb;">「正在为当前文件写入变更」 真的太慢！</strong></p>
<ul style="color: #000000;">
<li>
<section style="color: #010101;">有时候 AI 生成代码的速度很快，但写入修改的时候却非常慢，甚至会提示「网络故障」。</section>
</li>
<li>
<section style="color: #010101;">解决方案：如果长时间没反应，手动复制代码粘贴到文件里，或者让 AI 直接输出完整代码。</section>
</li>
</ul>
</section>
</li>
<li>
<section style="color: #010101;">
<p style="color: #000000;"><strong style="color: #0e88eb;">代码不准，得自己检查！</strong></p>
<ul style="color: #000000;">
<li>
<section style="color: #010101;">AI 生成的代码 80% 以上是可用的，但仍然会有小错误，比如少了一个逗号，无法跑通，时序问题等。</section>
</li>
<li>
<section style="color: #010101;">解决方案：自己多测试、多 Debug，不要 100% 依赖 AI。</section>
</li>
</ul>
</section>
</li>
<li>
<section style="color: #010101;">
<p style="color: #000000;"><strong style="color: #0e88eb;">AI 生成的代码风格不一致</strong></p>
<ul style="color: #000000;">
<li>
<section style="color: #010101;">可能前后使用的变量名不统一，或者代码风格参差不齐。</section>
</li>
<li>
<section style="color: #010101;">解决方案：事先定义好代码风格，然后让 AI 统一格式，或者使用代码格式化工具。</section>
</li>
</ul>
</section>
</li>
<li>
<section style="color: #010101;">
<p style="color: #000000;"><strong style="color: #0e88eb;">AI 把原来已经跑通的模块搞坏了</strong></p>
<ul style="color: #000000;">
<li>
<section style="color: #010101;">AI 在修改代码时，可能覆盖已有代码，导致逻辑混乱，甚至让原本能跑通的功能失效。</section>
</li>
<li>
<section style="color: #010101;">解决方案：使用 Git 进行版本管理，当一个功能调通后，先提交，建立一个可用的基线。同时如果过程中发现不可用了，可以取消本次编辑结果。</section>
</li>
</ul>
</section>
</li>
</ol>
<hr data-tool="mdnice编辑器" />
<p data-tool="mdnice编辑器">以下为本次写代码过程中的一些记录和截图。</p>
<h2 data-tool="mdnice编辑器"><span class="content" style="color: #0e8aeb;">比如做密码生成功能的时候</span></h2>
<figure data-tool="mdnice编辑器"><img src="https://files.mdnice.com/user/36365/48916371-b97c-43b1-910d-77f3d423439c.png" alt="" /></figure>
<figure data-tool="mdnice编辑器"><img src="https://files.mdnice.com/user/36365/ff18e71f-2a0c-40c8-8c61-58b5c1aad319.png" alt="" /></figure>
<figure data-tool="mdnice编辑器"><img src="https://files.mdnice.com/user/36365/27e6f05b-8327-4c8b-baeb-15e9a9b010b0.png" alt="" /></figure>
<figure data-tool="mdnice编辑器"><img src="https://files.mdnice.com/user/36365/f22cab3e-b922-45cc-9c3b-26c29afb1ca1.png" alt="" /></figure>
<h2 data-tool="mdnice编辑器"><span class="content" style="color: #0e8aeb;">比如做二维码功能的时候</span></h2>
<figure data-tool="mdnice编辑器"><img src="https://files.mdnice.com/user/36365/06a781d2-4372-4110-964b-fb059d5aa6eb.png" alt="" /></figure>
<p data-tool="mdnice编辑器">会把其它功能弄坏掉，需要修复 <img src="https://files.mdnice.com/user/36365/1ab77036-ed83-4de3-b3fd-a53a60c7c388.png" alt="" /></p>
<h2 data-tool="mdnice编辑器"><span class="content" style="color: #0e8aeb;">移动端的适配</span></h2>
<figure data-tool="mdnice编辑器"><img src="https://files.mdnice.com/user/36365/2f57229d-b29e-4239-8a1d-f75740bb220f.png" alt="" /></figure>
<p data-tool="mdnice编辑器">实际上他只改了布局，具体的页面内容还是不行</p>
<figure data-tool="mdnice编辑器"><img src="https://files.mdnice.com/user/36365/3b89159b-18b8-419f-82bc-4f2898a5d688.png" alt="" /></figure>
<p data-tool="mdnice编辑器">单独对这个页面增加响应式布局。</p>
<p data-tool="mdnice编辑器">同样，对于其它页面也一个一个任务的要求 AI 修改。 如：</p>
<figure data-tool="mdnice编辑器"><img src="https://files.mdnice.com/user/36365/38f3adcf-6a02-4dca-9671-a34eef4ee94e.png" alt="" /></figure>
<figure data-tool="mdnice编辑器"><img src="https://files.mdnice.com/user/36365/23e35105-dd5e-4876-ab58-ed26a4486148.png" alt="" /></figure>
<figure data-tool="mdnice编辑器"><img src="https://files.mdnice.com/user/36365/0afff170-4aad-4382-b4fd-b5bbcf2685d8.png" alt="" /></figure>
<figure data-tool="mdnice编辑器"><img src="https://files.mdnice.com/user/36365/df3c79bb-e3d2-4c46-b9b4-08e88487c2d5.png" alt="" /></figure>
<figure data-tool="mdnice编辑器"><img src="https://files.mdnice.com/user/36365/17f598f6-b819-4510-a82a-bd6814954dff.png" alt="" /></figure>
<figure data-tool="mdnice编辑器"><img src="https://files.mdnice.com/user/36365/2b828838-3ad4-49d9-83d2-f01e193b5881.png" alt="" /></figure>
</section>
]]></content:encoded>
			<wfw:commentRss>https://www.phppan.com/2025/02/ai-coding-trae/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AI 时代研发同学的必备软技能：从「写好代码」到「终结问题」的进化指南</title>
		<link>https://www.phppan.com/2025/02/ai-era-developer-soft-skills-guide/</link>
		<comments>https://www.phppan.com/2025/02/ai-era-developer-soft-skills-guide/#comments</comments>
		<pubDate>Sat, 01 Feb 2025 14:08:24 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[架构和远方]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[AI 编程]]></category>

		<guid isPermaLink="false">https://www.phppan.com/?p=2327</guid>
		<description><![CDATA[当 Cursor/Windsurf 为你生成代码片段，ChatGPT/DeepSeek 为你优化技术文档，Mi [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="color: #000000;" data-tool="mdnice编辑器">当 Cursor/Windsurf 为你生成代码片段，ChatGPT/DeepSeek 为你优化技术文档，Midjourney 为你绘制精美草图，你是否也曾思考过：<br />
<strong style="color: #0e88eb;">「在这个 AI 时代，你工作的核心竞争力究竟是什么？」</strong></p>
<p style="color: #000000;" data-tool="mdnice编辑器">过去，技术硬实力是研发同学的核心武器，但今天，AI 工具正在以惊人的速度让这些技能「平民化」：</p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">代码量产</strong>：AI 几秒钟生成数百行代码；</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">自动调优</strong>：AI 自主优化算法参数，超越人类水平；</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">全栈覆盖</strong>：从前端到后端，从 DevOps 到数据分析，AI 工具无处不在。</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器">然而，AI 的快速普及并不是威胁，而是机会。未来最优秀的研发，<strong style="color: #0e88eb;">不再只是写代码的人，而是能够驾驭 AI，解决复杂问题、创造价值的人</strong>。而这一切的基础，就在于<strong style="color: #0e88eb;">软技能</strong>的升级。</p>
<h1 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">1. AI 时代的「新研发」画像：从执行到创造的转型</span></h1>
<p style="color: #000000;" data-tool="mdnice编辑器">AI 时代对研发同学的要求正在发生质的变化。你需要的不仅是工具使用能力，更是掌握以下三大能力的思维跃迁：</p>
<h2 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">1.1 问题定义力：从「如何做」到「做什么」</span></h2>
<p style="color: #000000;" data-tool="mdnice编辑器">AI 工具可以为你提供实现方案，但它无法回答「我们到底要解决什么问题」。能精准定义问题的人，才能引领 AI 高效运转。</p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">举例：用户反馈「系统太慢」，真正的瓶颈可能并不是代码性能，而是业务逻辑过于复杂，或者数据库架构不合理。</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">关键问题</strong>：AI 可以帮你解决「已知问题」，但只有你能找到「未知问题」。</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">建议实践：</strong></p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">在接到需求时，不急于动手写代码，而是花 30% 的时间明确核心目标。</section>
</li>
<li>
<section style="color: #010101;">使用「5 WHY」拆解问题，找到真正的根因。</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器">以某电商大促系统卡顿的问题为例：</p>
<p style="color: #000000;" data-tool="mdnice编辑器">当用户反馈「下单页面卡顿」时，我们需要问：</p>
<p style="color: #000000;" data-tool="mdnice编辑器">第一层追问：卡顿发生在点击下单按钮时？还是页面加载时？（发生在哪里？）</p>
<p style="color: #000000;" data-tool="mdnice编辑器">第二层追问：只有大促期间出现？普通时段正常？（发生在什么时候？）</p>
<p style="color: #000000;" data-tool="mdnice编辑器">第三层拆解：日志显示数据库查询耗时暴增，但真的是 SQL 问题吗？（多问一次）</p>
<p style="color: #000000;" data-tool="mdnice编辑器">最终发现根本原因是优惠券叠加计算逻辑：当用户同时使用店铺券、平台券、满减券时，业务逻辑循环嵌套导致指数级复杂度上升。</p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">用「5 WHY」法拆解问题</strong>：<br />
比如面对「系统太慢」的反馈，可以问：</section>
<ol class="list-paddingleft-1">
<li>
<section style="color: #010101;">为什么太慢？ -&gt; 数据查询耗时过长。</section>
</li>
<li>
<section style="color: #010101;">为什么查询耗时过长？ -&gt; 数据库没有索引。</section>
</li>
<li>
<section style="color: #010101;">为什么没有索引？ -&gt; 设计时没有考虑这个场景。<br />
通过层层追问，找到问题的根因，而不是停留在表面。</section>
</li>
</ol>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">多站在用户视角思考</strong>：系统性能对用户真正的影响是什么？是加载时间？响应速度？还是页面卡顿？明确目标后再行动。</p>
<h2 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">1.2 跨领域协作力：从「技术孤岛」到「多维桥梁」</span></h2>
<p style="color: #000000;" data-tool="mdnice编辑器">研发同学往往被视为技术专家，但在 AI 时代，研发工作正在从「单一技术领域」走向「跨领域协作」,<strong style="color: #0e88eb;">能够在技术与业务、技术与设计之间建立桥梁的人更具影响力</strong>。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">AI 工具的普及，让技术不再是只有工程师能看懂的「黑箱」，它正在成为每个部门都能触及的工具。这意味着，<strong style="color: #0e88eb;">研发者的作用不再是单纯的技术专家，而是跨部门桥梁</strong>。</p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">场景 1</strong>：向业务团队解释 AI 模型的局限性，例如：大模型生成的预测结果为何在特定场景无法应用。</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">场景 2</strong>：与设计师协作，优化用户体验，而不是单纯关注技术实现。</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">建议实践：</strong></p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">多关注非技术领域的语言和逻辑，例如：用「用户故事」代替技术术语。</section>
</li>
<li>
<section style="color: #010101;">在技术方案中，明确描述其对业务的价值和风险。</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">举个例子：从「技术术语」到「用户故事」</strong>假设业务部门提出一个需求：<strong style="color: #0e88eb;">「我们需要一个 AI 模型来预测用户流失率。」</strong></p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">如果你直接给出技术方案，比如「我们用随机森林算法和 LSTM 模型」，业务团队可能一头雾水，也无法判断你的方案是否符合实际需求。</section>
</li>
<li>
<section style="color: #010101;">更好的方式是转化为业务语言，比如：<strong style="color: #0e88eb;">「我们会用 AI 模型预测哪些用户可能流失，这样可以提醒销售团队提前联系，并减少用户流失。」</strong></section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器">这种「跨领域翻译能力」不仅能让技术方案更落地，还能让你在团队中更具影响力。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">那么，<strong style="color: #0e88eb;">如何提升跨领域协作力？</strong></p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">学习对方的语言和逻辑</strong>：比如了解产品经理常用的「用户故事」格式，用场景化的方式描述技术方案。</section>
<ul class="list-paddingleft-1">
<li>
<section style="color: #010101;">比如：用户故事可以是「作为一名用户，我希望系统能在 2 秒内加载完成，这样我就不会失去耐心」。</section>
</li>
</ul>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">明确技术对业务的价值</strong>：在提交技术方案时，补充说明「这个功能可以提升 xx% 的用户体验，节约 xx% 的成本」。</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器">在 AI 时代，研发者不仅是技术的推动者，更是沟通技术与业务、技术与设计的桥梁。谁能打通这些边界，谁就掌握了更多主动权。</p>
<h2 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">1.3 批判性思维：从「接受答案」到「验证答案」</span></h2>
<p style="color: #000000;" data-tool="mdnice编辑器">AI 工具给出的代码、方案并非总是可靠。研发者必须具备<strong style="color: #0e88eb;">质疑与验证的能力</strong>，避免高效地犯错。</p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">AI 提供的代码是否安全？</strong> Cursor 生成的代码可能存在漏洞。</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">AI 生成的方案是否符合需求场景？</strong> 自动化工具可能忽略了业务逻辑中的特殊条件。</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">建议实践：</strong></p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">为你的 AI 工作流创建「质检清单」，例如：性能测试、安全检查、业务逻辑验证等。</section>
</li>
<li>
<section style="color: #010101;">从 AI 输出中学习，而不是无脑接受，学习其思路和编码的方式等等。</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">如何培养批判性思维？</strong></p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">
<p style="color: #000000;"><strong style="color: #0e88eb;">为 AI 创建「质检清单」</strong>：<br />
每次接受 AI 的输出前，进行以下检查：</p>
</section>
<ol class="list-paddingleft-1">
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">技术层面</strong>：代码是否经过边界测试？是否存在安全隐患？</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">业务层面</strong>：输出结果是否符合实际场景？是否考虑了用户行为习惯？</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">合规层面</strong>：生成内容是否符合公司政策或行业法规？</section>
</li>
</ol>
</li>
<li>
<section style="color: #010101;">
<p style="color: #000000;"><strong style="color: #0e88eb;">从失败案例中学习</strong>：多分析 AI 工具失败的案例，理解 AI 的局限性和潜在风险。比如，研究某些场景下的 AI 偏见问题，避免类似错误。</p>
</section>
</li>
</ul>
<h1 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">2. AI 时代的软技能到底有多重要？</span></h1>
<p style="color: #000000;" data-tool="mdnice编辑器">如果技术硬实力是「上限」，软技能就是「下限」。AI 可以让所有人起点更高，但也会放大研发者的短板：</p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">不会定义问题的人</strong>，会被工具束缚在错误的方向上。</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">缺乏沟通能力的人</strong>，会在跨部门协作中失去对话权。</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">思维固化的人</strong>，无法适应 AI 工具带来的工作流变化。</section>
</li>
</ul>
<h2 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">2.1 生存指南</span></h2>
<ol class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">
<p style="color: #000000;">用「 CTO 思维」拆需求，接到任务时先问三连：</p>
</section>
<ol class="list-paddingleft-1">
<li>
<section style="color: #010101;">这个需求背后的商业目标是什么？（比如提升转化率？降低客诉？）</section>
</li>
<li>
<section style="color: #010101;">如果只能用一句话描述成功标准，应该是什么？</section>
</li>
<li>
<section style="color: #010101;">现有数据中哪些指标暗示了真正的问题？（如支付环节跳出率&gt;80%）</section>
</li>
</ol>
</li>
<li>
<section style="color: #010101;">
<p style="color: #000000;">给 AI 加「导航仪」，向 AI 提问时避免开放式指令，而是结构化引导：</p>
</section>
<ul class="list-paddingleft-1">
<li>
<section style="color: #010101;">错误示范：&#8221;优化系统性能&#8221;</section>
</li>
<li>
<section style="color: #010101;">正确姿势：&#8221;当前订单提交平均耗时 2.3 秒（ APM 数据），在保证 100% 数据一致性的前提下，请提供三种不同成本预算的优化方案&#8221;</section>
</li>
</ul>
</li>
</ol>
<h2 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">2.2 话术 &#8211; 「见人说人话，见鬼说鬼话」</span></h2>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">对老板：「投入 1 个月开发时间，能防止明年 618 大促期间服务器崩溃的风险」，关注成本和产出</section>
</li>
<li>
<section style="color: #010101;">对运营：「这个接口延迟降低1秒，首页UV转化率能提升0.7%（附 A/B 测试数据）」，关注指标</section>
</li>
<li>
<section style="color: #010101;">对客服：「新系统上线后，用户咨询&#8217;物流进度&#8217;的话术可以减少 3 次点击步骤」，关注对于其工作的影响</section>
</li>
</ul>
<h2 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">2.3 软技能的红利公式</span></h2>
<pre style="color: #000000;" data-tool="mdnice编辑器"><code style="color: #abb2bf;">AI 时代个人价值 = （技术硬实力 × 软技能系数）^ AI 工具适配度  
</code></pre>
<p style="color: #000000;" data-tool="mdnice编辑器">系数破局点：</p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">会用AI写代码 → 硬实力基准线（人人可达）</section>
</li>
<li>
<section style="color: #010101;">能判断该让 AI 写什么代码 → 软技能决胜区（稀缺资源）</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器">那些软技能出色的研发同学，能够借助 AI 实现飞跃式成长，成为团队中的关键角色。</p>
<h1 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">3. 打造你的「AI 时代工具箱」</span></h1>
<p style="color: #000000;" data-tool="mdnice编辑器">软技能的提升不是一朝一夕的事，但可以通过系统化的方法论，逐步打造适应 AI 时代的「工具箱」。</p>
<h2 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">3.1 练习「问题之上」的思维：从执行者到问题定义者</span></h2>
<p style="color: #000000;" data-tool="mdnice编辑器">AI 工具可以帮助你高效地执行任务，但它无法告诉你「最重要的问题是什么」。在 AI 时代（也不仅仅是 AI 时代），研发需要从全局视角思考问题的本质：<strong style="color: #0e88eb;">为什么做，而不仅仅是怎么做。</strong></p>
<h3 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e88eb;">3.1.1 <strong>如何练习「问题之上」的思维？</strong></span></h3>
<p style="color: #000000;" data-tool="mdnice编辑器">每天主动问自己三个「为什么」，从执行层面上升到战略层面：</p>
<ol class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">
<p style="color: #000000;"><strong style="color: #0e88eb;">为什么这个功能重要？</strong>：真实案例：某研发团队接到任务，优化一个页面加载速度。当他们问「为什么优化加载速度重要？」时，发现问题的本质并不在于技术性能，而是用户期望在关键时刻快速获取信息。最终，他们通过简化页面结构和聚焦核心功能，比单纯优化代码更高效地解决了问题。</p>
</section>
</li>
<li>
<section style="color: #010101;">
<p style="color: #000000;"><strong style="color: #0e88eb;">为什么用户需要这个解决方案？</strong>：从用户视角出发，挖掘需求背后的真实动机。例如，一款 AI 推荐系统的研发团队意识到，用户并不需要复杂的算法结果，而是想快速找到符合场景的解决方案。于是，他们优化了推荐理由的呈现方式，让用户更容易理解和采纳推荐结果。</p>
</section>
</li>
<li>
<section style="color: #010101;">
<p style="color: #000000;"><strong style="color: #0e88eb;">如果资源有限，如何找到最优解？</strong>：设想一个极限场景：如果只能用 50% 的时间或资源完成任务，你会如何取舍？这种思考方式能帮助你聚焦核心问题，避免陷入无意义的细节优化中。</p>
</section>
</li>
</ol>
<h3 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e88eb;">3.1.2 成为「破界思考者」的 4 层跃迁法</span></h3>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">人类擅长于发现隐藏在表象下的真问题</strong>。4 层跃迁法帮助突破思维惯性：</p>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">▌认知框架</strong></p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">第1层：需求表象</strong>：「业务方要求 3 天上线一个推荐算法」</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">第2层：利益相关者分析</strong>：使用 RACI 矩阵梳理：谁决策/执行/被影响</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">第3层：系统动力学推演</strong>：用因果回路图分析技术方案对用户体验/后端负载/商业指标的连锁影响</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">第4层：第一性原理拆解</strong>：追问：用户点击转化率低的根本原因是算法不准？还是商品信息呈现方式问题？</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">▌实战工具包</strong></p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">丰田「5Why分析法」进阶版</strong>：</p>
<pre><code style="color: #0e8aeb;">现象：用户投诉支付失败率上升  
Why 1 ▶ 接口超时？  
Why 2 ▶ 第三方支付网关响应慢？  
Why 3 ▶ 未适配银行新加密协议？  
Why 4 ▶ 运维监控策略未覆盖合作方变更？  
Why 5 ▶ 跨部门信息同步机制缺失？  
</code></pre>
</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">MIT系统思考工具箱</strong>：</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">记住：AI 再强大，也需要你来定义问题。跳脱「怎么做」的思维框架，才能成为团队中的问题定义者。</strong></p>
<h2 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">3.2 刻意提升「非技术表达」：让技术为业务赋能</span></h2>
<p style="color: #000000;" data-tool="mdnice编辑器">技术再高深，如果让人听不懂，价值就会大打折扣。AI 时代的研发者不仅需要写得出代码，更需要<strong style="color: #0e88eb;">讲得清技术</strong>。能用简单、直观的方式表达技术方案，既能提高跨部门协作效率，又能让你的工作成果更具说服力。</p>
<h3 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e88eb;">3.2.1 如何刻意练习「非技术表达」？</span></h3>
<ol class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">
<p style="color: #000000;"><strong style="color: #0e88eb;">用一张图解释技术架构</strong>：将复杂的技术架构简化成流程图、思维导图或者用户体验图。例如，一个后端服务的高可用方案，可以用一张图展示数据流动、容错机制以及业务价值，而不是写一长段技术描述。</p>
</section>
</li>
<li>
<section style="color: #010101;">
<p style="color: #000000;"><strong style="color: #0e88eb;">用「用户视角」描述技术方案的价值</strong>：比如，你正在开发一个自动化测试工具，与其说「这个工具可以减少测试时间」，不如说「这个工具可以帮助团队提前发现潜在的产品缺陷，从而减少 30% 的用户投诉」。这样的表达更容易被非技术团队接受。</p>
</section>
</li>
<li>
<section style="color: #010101;">
<p style="color: #000000;"><strong style="color: #0e88eb;">用故事化的方式呈现你的方案</strong>：例如，在解释一个推荐算法时，可以说：「想象一下用户点开首页，看到的是他最喜欢的内容，这背后是我们的 AI 模型在实时分析用户行为。」这种讲故事的方式更具感染力。</p>
</section>
</li>
</ol>
<h3 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e88eb;">3.2.2 实践工具</span></h3>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;">
<p style="color: #000000;"><strong style="color: #0e88eb;">▌FAB 法则（Feature-Advantage-Benefit）</strong><br />
表达技术方案时，从功能（Feature）入手，解释优势（Advantage），最后明确带来的好处（Benefit）。</p>
</section>
<ul class="list-paddingleft-1">
<li>
<section style="color: #010101;">功能：我们的推荐算法会实时预测用户偏好。</section>
</li>
<li>
<section style="color: #010101;">优势：它能够在用户访问的第一时间推荐最相关的内容。</section>
</li>
<li>
<section style="color: #010101;">好处：提升用户粘性和点击率，从而增加转化率。</section>
</li>
</ul>
</li>
<ul class="list-paddingleft-1">
<li>
<section style="color: #010101;">例如：</section>
</li>
</ul>
<li>
<section style="color: #010101;">
<p style="color: #000000;"><strong style="color: #0e88eb;">▌SCQA模型</strong>（情境-冲突-问题-答案）</p>
<pre><code style="color: #0e8aeb;">[情境] 当前订单查询 API 响应时间突破 2s  
[冲突] 用户体验下滑 vs 硬件扩容成本激增  
[问题] 如何在零成本下优化性能？  
[答案] 通过 AI 预测缓存热点数据（命中率提升至 92% ）  
</code></pre>
</section>
</li>
<li>
<section style="color: #010101;">
<p style="color: #000000;"><strong style="color: #0e88eb;">金字塔原理实战</strong>：技术方案文档采用「结论先行+ MECE 分类」结构</p>
</section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">记住：技术的价值必须通过清晰的表达被团队和业务部门感知，才能真正落地并创造商业价值。</strong></p>
<h1 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">3. 搭建「AI 质检工作流」：让 AI 为你所用，而不是盲目信任</span></h1>
<p style="color: #000000;" data-tool="mdnice编辑器">AI 工具再强大，也只是工具，其输出的内容仍然可能存在问题。研发者需要对 AI 的输出保持质疑态度，并建立一套完善的质检流程，确保工具真正符合需求。</p>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">▌四阶验证框架</strong></p>
<section style="color: #000000;" data-tool="mdnice编辑器">
<table>
<thead>
<tr>
<th style="color: #000000;" valign="top">
<section>阶段</section>
</th>
<th style="color: #000000;" valign="top">
<section>检查重点</section>
</th>
<th style="color: #000000;" valign="top">
<section>工具/方法</section>
</th>
</tr>
</thead>
<tbody>
<tr style="color: #000000;">
<td valign="top">
<section>输入层</section>
</td>
<td valign="top">
<section>需求理解偏差</section>
</td>
<td valign="top">
<section>ChatGPT 反向提问验证法</section>
</td>
</tr>
<tr style="color: #000000;">
<td valign="top">
<section>设计层</section>
</td>
<td valign="top">
<section>架构合理性</section>
</td>
<td valign="top">
<section>架构决策记录（ADR）模板</section>
</td>
</tr>
<tr style="color: #000000;">
<td valign="top">
<section>实现层</section>
</td>
<td valign="top">
<section>安全隐患/技术债</section>
</td>
<td valign="top">
<section>SonarQube+AI 代码审计</section>
</td>
</tr>
<tr style="color: #000000;">
<td valign="top">
<section>价值层</section>
</td>
<td valign="top">
<section>商业目标对齐度</section>
</td>
<td valign="top">
<section>OKR-KPI 映射矩阵</section>
</td>
</tr>
</tbody>
</table>
</section>
<p style="color: #000000;" data-tool="mdnice编辑器">当AI工具成为标配，<strong style="color: #0e88eb;">建立质量管控机制比盲目追求效率更重要</strong>。</p>
<h1 style="color: #000000;" data-tool="mdnice编辑器"><span style="font-weight: bold; color: #0e8aeb;">4. 用 AI 「解未来」</span></h1>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">精准定义问题，让 AI 为你服务，而不是反过来被工具左右。</strong></section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">跨领域协作，用技术思维解决业务问题，成为团队的桥梁。</strong></section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">对 AI 保持质疑，避免高效犯错，用批判性思维守住技术底线。</strong></section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">AI 不会淘汰研发，只会淘汰不会用 AI 的研发。当机器开始思考时，人类的智慧应该闪耀在机器停止思考的地方。</strong></p>
<p style="color: #000000;" data-tool="mdnice编辑器">此刻的你，不妨用 0.1 秒思考：是继续做工具的操控者，还是成为驾驭 AI 的「指挥官」？这场进化游戏没有旁观席，每个技术人都已身在局中。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">未来的研发工作，不再是机械地写代码，而是以技术为工具，<strong style="color: #0e88eb;">解决问题、创造价值、推动变革</strong>。</p>
<p style="color: #000000;" data-tool="mdnice编辑器">从今天开始，思考：</p>
<ul class="list-paddingleft-1" style="color: #000000;">
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">我的工作是否创造了价值？</strong></section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">我的技能是否放大了 AI 的潜能？</strong></section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">我的软技能是否已跟上时代的节奏？</strong></section>
</li>
</ul>
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">AI 已来，你准备好了吗？</strong> </p>
<hr style="color: #000000;" />
<p style="color: #000000;" data-tool="mdnice编辑器"><strong style="color: #0e88eb;">「你认为 AI 时代最重要的软技能是什么？欢迎评论留言讨论！」</strong></p>
<p style="color: #000000;" data-tool="mdnice编辑器">以上。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.phppan.com/2025/02/ai-era-developer-soft-skills-guide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AI 编程真的会让程序员失业！</title>
		<link>https://www.phppan.com/2025/01/ai-programming-will-really-make-programmers-unemployed/</link>
		<comments>https://www.phppan.com/2025/01/ai-programming-will-really-make-programmers-unemployed/#comments</comments>
		<pubDate>Fri, 24 Jan 2025 12:11:49 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[架构和远方]]></category>
		<category><![CDATA[AI 编程]]></category>
		<category><![CDATA[AIGC]]></category>
		<category><![CDATA[trae]]></category>

		<guid isPermaLink="false">https://www.phppan.com/?p=2324</guid>
		<description><![CDATA[2025 年 1 月 20 日上午 10:24 ，这个包含了 1024 的时间点，字节发布了其 AI 编程 I [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>2025 年 1 月 20 日上午 10:24 ，这个包含了 <strong>1024</strong> 的时间点，字节发布了其 AI 编程 IDE: Trae <a title="https://www.trae.ai/" href="https://www.trae.ai/" target="_blank">www.trae.ai/</a></p>
<p><img class="medium-zoom-image" src="https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/d3bc39b192b842c2bf864ea1d816faab~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5r2Y6ZSm:q75.awebp?rk3s=f64ab15b&amp;x-expires=1738324527&amp;x-signature=yw%2Buua4u3862D%2Fcm7QCnQLo7XwQ%3D" alt="ai_1.png" /></p>
<p>对标 Cursor，Windsurf 的国内出海的一个 IDE，当前可使用 Claude-3.5-Sonnet 和 GPT-4o 大语言模型</p>
<p>深入使用，花了三个小时，<strong>不写一行代码</strong>，实现了一个前端后端分离架构，包含登录/退出，数据库查询，跨域，以及首页功能的小管理后台，包括前端和后端的代码。前端所使用技术栈为 Vue，后端使用了 golang + beego。</p>
<p>这 3 个小时有一个耗时点是想让 AI 来解决跨域的问题，我们知道跨域主要是 Access-Control-Allow-Origin 等头信息的处理，把前后端的代码上下文都给了，反复试 OPTIONS 请求跨域总是不成功，后来发现是后台接口实现所修改的跨域文件没有加载导致的。</p>
<p>除了通用功能，实际业务开发中，花了 30 分钟实现了 Java 的流式输出，其场景是要实现 DeepSeek 的模型调用，以实现打字机的输出效果。 <img class="medium-zoom-image" src="https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/da0529a374a9431d9cf9f666730cc617~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5r2Y6ZSm:q75.awebp?rk3s=f64ab15b&amp;x-expires=1738324527&amp;x-signature=L20OTLp3Ar44LOsqujK2LIpuYHk%3D" alt="ai_2.png" /></p>
<p>这里 AI 给的 golang 的实现，但是当前我需要的是 Java 的，这里的问题是没有把需求讲清楚。同时也表示在开始对话时，需要把一些背景信息讲清楚能提高整体的效率。</p>
<p><img class="medium-zoom-image" src="https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/286c8a8c3948463289d1cefc8b6f5fd4~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5r2Y6ZSm:q75.awebp?rk3s=f64ab15b&amp;x-expires=1738324527&amp;x-signature=Dl5xwXgHUnJXoajDreQP0b3cIDg%3D" alt="ai_3.png" /></p>
<p><img class="medium-zoom-image" src="https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/eb704077048b4388a66b8119fb60fd16~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5r2Y6ZSm:q75.awebp?rk3s=f64ab15b&amp;x-expires=1738324527&amp;x-signature=bFs9bwKAvdswo3iboVXN13rka%2B0%3D" alt="ai_5.png" /></p>
<p>经过了大概 10 轮对话，他大概就了解我真正想要的是什么了，再经过 6 轮对话补全，把过程中有问题的地方和相关代码圈出来给到 AI，很快就有结果，并解决了问题。</p>
<p><img class="medium-zoom-image" src="https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/02c027f6f81b41ad960c28d5eef40991~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5r2Y6ZSm:q75.awebp?rk3s=f64ab15b&amp;x-expires=1738324527&amp;x-signature=L%2B27m5%2FJvozXaLGGwUv3WUmUIYc%3D" alt="ai_6.png" /></p>
<h2 data-id="heading-0">1. 使用过程中的感受</h2>
<ol>
<li>表述清楚需求很重要，在最开始的时候一些背景重要的背景信息可以提前给出，如技术栈，表结构、想做的事情等等；</li>
<li>给到更多的上下文，更容易得到正确的答案，在 Trea 中使用 # 号引入，当前支持代码、文件、目录及工作区间；</li>
<li>从 AI 中来，到 AI 中去，可以跳出 AI 来解决问题，当 AI 限入解决问题的死循环，可以找 google 要一些答案喂给 AI，后续应该会自动支持这个功能；</li>
<li>出错的地方，选中后，直接让 AI 解决，甚至不需要多说一句话，当然，你也可以多说几句，更清晰的表述你想要的东西；</li>
<li>多模态的能力，在界面有问题的地方，截图说明给到 AI 就能解决；</li>
<li>先做框架，再逐个功能实现，当前阶段，AI 解决小范围的问题会更合适一些。</li>
</ol>
<p>到这里，对于这种通用类的功能，AI 已经能发挥出很大的能力了，再进化一段时间，程序员的大部分编码工作真的就会被 AI 取代了。那是不是我们就失业了呢？从纯粹写代码的角度来说，是的，但是从整个项目的角度不一定。</p>
<h2 data-id="heading-1">2. 程序员的当前职责</h2>
<p>和康总有聊到这块，当前我们程序员基本在解决的问题包括决策、连接和编码三部分。</p>
<ul>
<li><strong>决策</strong>：技术选型、架构设计等高层次决策，AI 尚无法完全替代。</li>
<li><strong>连接</strong>：跨部门需求分析、团队沟通与资源协调。</li>
<li><strong>编码</strong>：过去程序员的核心工作，但 AI 的介入正在加速其主要功能的边缘化。</li>
</ul>
<h3 data-id="heading-2">2.1 决策</h3>
<p>项目开发的过程实际上是一个个的决策过程组成的，决策是咱们的核心职责之一，是一个项目从业务需求到技术实现的过程中，如何选择解决方案的过程。</p>
<p>我们需要在不确定性和多种选择中，基于经验、知识和实际需求，做出技术上的关键决定。这些决策往往会对团队的效率、产品的质量和未来的技术发展方向产生深远影响。</p>
<p><strong>决策</strong>指的它涉及从业务层面到技术层面的全局性规划，包括但不限于：</p>
<ul>
<li><strong>需求分析</strong>：
<ul>
<li>理解并提炼业务需求，制定核心目标和功能优先级。</li>
<li>与产品经理、业务方的沟通，明确业务目标和用户需求。</li>
</ul>
</li>
<li><strong>技术选型</strong>：
<ul>
<li>决定使用何种技术栈（前端框架、后端框架、数据库、云服务等）。</li>
<li>评估不同技术的可行性、扩展性和成本。</li>
</ul>
</li>
<li><strong>架构设计</strong>：
<ul>
<li>系统架构的顶层设计，比如单体架构 vs 微服务架构。</li>
<li>数据库选择（SQL vs NoSQL）、缓存策略、性能优化方案。</li>
</ul>
</li>
<li><strong>风险评估与管理</strong>：
<ul>
<li>评估技术方案的风险（如性能瓶颈、技术债务、团队技术栈能力）。</li>
<li>制定备选方案和应急措施。</li>
</ul>
</li>
</ul>
<p><strong>AI 替代能力：</strong></p>
<ul>
<li><strong>当前能力</strong>：
<ul>
<li>AI 已能提供强大的技术选型建议（如根据场景推荐框架、库、工具）。</li>
<li>在简单的架构设计中，AI 已能生成初步方案（如微服务与单体架构优劣分析）。</li>
</ul>
</li>
<li><strong>未来潜力</strong>：
<ul>
<li>AI 可能在复杂的技术决策中辅助更精准的数据分析和方案评估。</li>
<li>但最终决策依赖对业务需求的深刻理解，这仍需要人类的经验和判断。</li>
</ul>
</li>
</ul>
<p><strong>程序员核心竞争力：</strong></p>
<ul>
<li>理解业务需求和行业背景，能够将技术与业务深度结合。</li>
<li>解决复杂的非结构化问题，比如协调跨团队需求冲突，平衡业务优先级。</li>
<li>创新能力：AI 只能在已有知识中提供建议，真正的创新需要人类。</li>
</ul>
<h3 data-id="heading-3">2.2 连接</h3>
<p><strong>连接</strong>是将技术方案具体化并协调各方资源，使其从理论走向实践的过程。重点包括：</p>
<ul>
<li><strong>需求转化</strong>：
<ul>
<li>将业务需求拆解为可执行的技术任务。</li>
<li>明确模块划分、接口定义以及交互方式。</li>
</ul>
</li>
<li><strong>团队协作</strong>：
<ul>
<li>前后端、测试、运维、产品经理之间的沟通与协作。</li>
<li>协调跨部门资源，解决技术与运营、市场等职能间的矛盾。</li>
</ul>
</li>
<li><strong>接口与模块设计</strong>：
<ul>
<li>定义 API 接口规范（RESTful、GraphQL）。</li>
<li>确保接口的安全性、性能和兼容性。</li>
</ul>
</li>
<li><strong>测试与迭代</strong>：
<ul>
<li>制定测试方案，组织单元测试、集成测试。</li>
<li>根据测试反馈快速调整，推动迭代优化。</li>
</ul>
</li>
</ul>
<p><strong>AI 替代能力：</strong></p>
<ul>
<li><strong>当前能力</strong>：
<ul>
<li>AI 已能快速生成接口文档、代码示例、测试用例。</li>
<li>在协作方面，AI 可以辅助生成任务拆解、需求文档、项目计划等。</li>
</ul>
</li>
<li><strong>未来潜力</strong>：
<ul>
<li>AI 可以成为跨部门的沟通桥梁，如生成更加精确的技术-业务对接文档。</li>
<li>但复杂、动态的沟通和协调仍是 AI 难以替代的领域。</li>
</ul>
</li>
</ul>
<p><strong>程序员核心竞争力：</strong></p>
<ul>
<li>优秀的沟通能力和团队协作能力，能在矛盾或模糊的需求中推动项目前进。</li>
<li>对复杂系统的整体把控力，确保各模块之间的高效协作。</li>
<li>快速适应变化的能力，能够在项目中临时调整资源和策略。</li>
</ul>
<h3 data-id="heading-4">2.3 编码</h3>
<p><strong>编码</strong>是程序员的核心工作之一，涉及将设计方案转化为实际运行代码的过程。它包括：</p>
<ul>
<li><strong>代码实现</strong>：
<ul>
<li>基于需求和设计文档，开发具体功能模块。</li>
<li>包括前端开发（UI、交互逻辑）和后端开发（业务逻辑、数据库操作）。</li>
</ul>
</li>
<li><strong>调试与优化</strong>：
<ul>
<li>修复 BUG，优化代码性能。</li>
<li>解决复杂的技术难点（如跨域问题、性能瓶颈、并发冲突）。</li>
</ul>
</li>
<li><strong>代码质量保障</strong>：
<ul>
<li>编写单元测试、集成测试，确保代码质量。</li>
<li>遵循代码规范，进行代码审查。</li>
</ul>
</li>
<li><strong>持续集成与发布</strong>：
<ul>
<li>使用 CI/CD 工具进行自动化构建和部署。</li>
<li>实现代码版本管理和持续优化。</li>
</ul>
</li>
</ul>
<p><strong>AI 替代能力：</strong></p>
<ul>
<li><strong>当前能力</strong>：
<ul>
<li>AI 已能生成高质量的代码片段、调试建议，甚至完整的模块代码。</li>
<li>对于常见的编码任务（如脚本处理类，CRUD 功能），AI 的效率和准确性已超过人类。</li>
</ul>
</li>
<li><strong>未来潜力</strong>：
<ul>
<li>AI 将进一步替代大部分重复性、模板化的编码工作。</li>
<li>但对于复杂场景下的创新性编码，AI 的能力仍有限。</li>
</ul>
</li>
</ul>
<p><strong>程序员核心竞争力：</strong></p>
<ul>
<li>对技术深度的理解，能够在 AI 提供的代码基础上进行优化和扩展。</li>
<li>解决复杂问题的能力，比如在非标准化场景下实现创新功能。</li>
<li>对代码质量的把控能力，确保生成代码的安全性、性能和可维护性。</li>
</ul>
<h2 data-id="heading-5">3. AI 替代的趋势与程序员未来的价值</h2>
<h3 data-id="heading-6">3.1 当前 AI 会逐步替代哪些部分？</h3>
<ol>
<li><strong>重复性、模板化的工作</strong>：
<ul>
<li>例如脚本类、通用类、CRUD 重复类的功能。</li>
<li>常见的 BUG 修复、代码优化建议。</li>
</ul>
</li>
<li><strong>常规化的架构设计和技术选型</strong>：
<ul>
<li>AI 将能处理大部分标准化场景下的技术决策。</li>
<li>在数据驱动的决策场景中，AI 的效率更高。</li>
</ul>
</li>
<li><strong>文档、接口、测试的自动化</strong>：
<ul>
<li>自动生成 API 文档、测试用例，将成为默认功能。</li>
</ul>
</li>
</ol>
<h3 data-id="heading-7">3.2 程序员的核心竞争力是什么？</h3>
<ol>
<li><strong>业务理解与技术结合能力</strong>：
<ul>
<li>AI 不理解业务逻辑背后的真实需求，程序员能够通过与产品、业务沟通，设计出更贴合实际的解决方案。</li>
</ul>
</li>
<li><strong>复杂场景的解决能力</strong>：
<ul>
<li>比如跨团队协作、大规模分布式系统设计、非标准化需求的实现。</li>
</ul>
</li>
<li><strong>创新与创意能力</strong>：
<ul>
<li>AI 是基于已有数据训练的，无法真正创新。程序员在新领域和新需求中的创意能力不可替代。</li>
</ul>
</li>
<li><strong>人际沟通与团队协作能力</strong>：
<ul>
<li>项目中的决策、问题协调、资源整合都需要人类来推动。</li>
</ul>
</li>
</ol>
<h3 data-id="heading-8">3.3 程序员未来应该做什么？</h3>
<ol>
<li><strong>提升抽象能力和建模能力</strong>：
<ul>
<li>从写代码转向设计方案，专注于高层次的架构和技术规划。</li>
</ul>
</li>
<li><strong>拥抱 AI 工具</strong>：
<ul>
<li>熟练使用 AI 编程工具（如 Trea、Cursor）提升效率，将 AI 当作“助手”。</li>
</ul>
</li>
<li><strong>深耕行业知识</strong>：
<ul>
<li>了解特定行业的业务逻辑，成为领域专家。</li>
</ul>
</li>
<li><strong>培养软技能</strong>：
<ul>
<li>强化沟通能力、团队协作能力和项目管理能力。</li>
</ul>
</li>
</ol>
<p>画了一个思维导图，大概是这样：</p>
<p><img class="medium-zoom-image" src="https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/446d071cf44f4649bf2799efff050813~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5r2Y6ZSm:q75.awebp?rk3s=f64ab15b&amp;x-expires=1738324527&amp;x-signature=b02BUkFyXatf6kbQ%2FyAc0%2Fif9ro%3D" alt="ai_sj.png" /></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>https://www.phppan.com/2025/01/ai-programming-will-really-make-programmers-unemployed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cursor AI 编程让我的编码效率提升了 10 倍</title>
		<link>https://www.phppan.com/2025/01/cursor-ai-programming-has-increased-my-coding-efficiency-by-10-times/</link>
		<comments>https://www.phppan.com/2025/01/cursor-ai-programming-has-increased-my-coding-efficiency-by-10-times/#comments</comments>
		<pubDate>Sat, 18 Jan 2025 11:57:43 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[架构和远方]]></category>
		<category><![CDATA[AI 编程]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[研发效能]]></category>

		<guid isPermaLink="false">https://www.phppan.com/?p=2322</guid>
		<description><![CDATA[从 2022 年 6 月底正式上线的 GitHub Copilot 开始，AI 编程逐步开始进入工作的环境中， [&#8230;]]]></description>
				<content:encoded><![CDATA[<section id="nice" style="color: #000000;" data-tool="mdnice编辑器" data-website="https://www.mdnice.com">
<section id="nice" data-tool="mdnice编辑器" data-website="https://www.mdnice.com">
<p data-tool="mdnice编辑器">从 2022 年 6 月底正式上线的 GitHub Copilot 开始，AI 编程逐步开始进入工作的环境中，开始成为一个真正的 Copilot。据当时微软的评测报告以及当时公司内部使用的问卷反馈调查显示提升效率大概在 10% ～ 30%。</p>
<p data-tool="mdnice编辑器">这一数据在当时已经令人惊叹，但随着大语言模型的飞速发展，以及 Cursor、Windsurf 等新一代 AI 编程工具以更直接的 IDE 方式的加入，效率提升的天花板被彻底打破。</p>
<p data-tool="mdnice编辑器">从个人体感来说，部分场景有<strong style="color: #0e88eb;">超过 10 倍</strong>的提升，特别是通用类功能实现，如爬虫、CRUD 功能、脚本类处理等。但并不等于以前一个项目要 10 个人，现在只需要 1 个人了，毕竟编码在整个项目过程中只占用的时间资源的一部分。</p>
<p data-tool="mdnice编辑器">而且，这里的提升并不是说给 AI 说一句话：「给我完成 XXX 功能」，就能直接提效 10 倍 ，当前阶段，我们还需要有一些使用技巧才能较好的使用 AI 编程，让 AI 编程成为一个实实在在的助手。以下为过程中的一些注意事项和一些可能遇到的问题。</p>
<h1 data-tool="mdnice编辑器"><span class="content" style="color: #0e8aeb;">1. 使用 AI 编程的注意事项</span></h1>
<h2 data-tool="mdnice编辑器"><span class="content" style="color: #0e8aeb;">1.1 不要求一次性完成所有的工作</span></h2>
<p data-tool="mdnice编辑器">AI 编程工具暂时并不擅长处理复杂且模糊的任务，而是更适合解决清晰、具体的小问题。因此，任务分解是高效使用 AI 编程的第一步。</p>
<p data-tool="mdnice编辑器"><strong style="color: #0e88eb;">如何实现？</strong></p>
<ul data-tool="mdnice编辑器">
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">需求分解</strong>：将大任务拆解为小模块，可以人工分解，也可以让 AI 协助分解。例如：</p>
<ul>
<li>
<section style="color: #010101;">开发一个后端服务时，可以分解为：数据库表设计、路由框架搭建、业务逻辑实现、测试用例编写。</section>
</li>
</ul>
</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">框架优先</strong>：先让 AI 生成代码框架，例如接口的骨架代码、类和方法的定义，然后再逐步实现具体功能。</section>
</li>
</ul>
<p data-tool="mdnice编辑器">以一个简单的任务管理系统为例，你直接告诉 Cursor 「帮我实现任务管理功能」，他会提示你给出更多的输入，比如所要使用的技术栈等等，如果我们输入：请用 python 语言作为后端，vue 作为前端帮我实现任务管理功能。他会给出完整的看起来可以使用的架子，实际不太能用。</p>
<p data-tool="mdnice编辑器">如果是在一个已有项目的基础上增加模块，以 CRUD 管理任务来说，较好的做法是：</p>
<ol data-tool="mdnice编辑器">
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">分解需求</strong>：</p>
<ul>
<li>
<section style="color: #010101;">第一步：设计任务表（表结构设计），也是明确核心需求的过程；</section>
</li>
<li>
<section style="color: #010101;">第二步：实现核心的接口和界面；</section>
</li>
<li>
<section style="color: #010101;">第三步：添加权限管理，一般是有权限体系，可以给参考或者表结构之类的实现；</section>
</li>
</ul>
</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">逐步实现</strong>：</p>
<ul>
<li>
<section style="color: #010101;">先让 AI 生成数据库表的定义，明确需求及约束；</section>
</li>
<li>
<section style="color: #010101;">再生成 API 的路由框架。</section>
</li>
<li>
<section style="color: #010101;">最后逐一实现各个功能模块。</section>
</li>
<li>
<section style="color: #010101;">在各功能模块上再扩展其它的需求，如在任务添加的时候要调起弹性接口去完成任务等。</section>
</li>
</ul>
</section>
</li>
</ol>
<h2 data-tool="mdnice编辑器"><span class="content" style="color: #0e8aeb;">1.2 明确和细化需求</span></h2>
<p data-tool="mdnice编辑器">明确和细化需求和第一点有一些不同，这里所要表达的是我们在需求描述时要尽可能的明确和细致，以及需要有我们的转化和理解。</p>
<p data-tool="mdnice编辑器">当前阶段，我们用 AI 编程并不是把产品需求扔给 AI，而是我们思考过整个实现的过程，有自己的认知后让 AI 来做会更好，当然，这个思考的过程也可以让 AI 来辅助。</p>
<ul data-tool="mdnice编辑器">
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">明确需求的层级</strong></p>
<p>假设你需要实现一个用户登录功能，可以先从高层次的需求入手「实现用户登录功能」，然后逐步细化为：</p>
<ul>
<li>
<section style="color: #010101;">数据库中需要存储哪些信息？</section>
</li>
<li>
<section style="color: #010101;">前端需要提供哪些输入？有没有什么安全输入策略？</section>
</li>
<li>
<section style="color: #010101;">后端服务的接口设计是什么样的？格式是怎样的？返回码规范是怎样的？</section>
</li>
<li>
<section style="color: #010101;">需要哪些验证逻辑？使用 JWT 还是 Auth2.0？有哪些安全策略？</section>
</li>
</ul>
</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">细化到函数级别</strong></p>
<p>在某些情况下，有必要直接将需求分解到函数的输入输出、核心逻辑或算法。比如：</p>
<ul>
<li>
<section style="color: #010101;">函数应该接受哪些参数？</section>
</li>
<li>
<section style="color: #010101;">输出的结果应该是什么样的？是什么类型的数据结构？</section>
</li>
<li>
<section style="color: #010101;">核心逻辑是否需要特殊的算法优化？</section>
</li>
</ul>
</section>
</li>
</ul>
<p data-tool="mdnice编辑器">以上这个细化的过程也是个 AI 交互的过程，<strong style="color: #0e88eb;">从大到小，从整体到部分，逐步完成整个需求</strong>。</p>
<p data-tool="mdnice编辑器">在使用 AI 编程的过程中，确定需求并细化需求是最难，也是整个过程中最复杂的环节，因为它是对现实世界的建模。</p>
<p data-tool="mdnice编辑器">把产品需求没有歧义的描述出来，这个过程远没有很多人想象中那么简单。期待 AI 进一步进化后能优化这部分理解的工作。</p>
<h2 data-tool="mdnice编辑器"><span class="content" style="color: #0e8aeb;">1.3 善用 AI 的上下文记忆</span></h2>
<p data-tool="mdnice编辑器"><strong style="color: #0e88eb;">AI 编程的生成效果在很大程度上依赖于上下文信息</strong>。</p>
<p data-tool="mdnice编辑器">Cursor 支持上下文记忆功能，可以根据当前项目的代码结构或对话历史生成更精准的结果。并且对于已有代码的项目，提供示例代码给 Cursor 参考，可以帮助它更好地理解项目的整体风格、编码规范以及约定。</p>
<ul data-tool="mdnice编辑器">
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">参考已有代码</strong></p>
<p>比如，我们可以将公司内部的编码规约或项目约定通过已有代码的形式提供给 AI，这样生成的代码更符合项目需求，<strong style="color: #0e88eb;">减少后续调整的工作量</strong>。</p>
</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">让 AI 理解当前代码环境</strong></p>
<p>在和 Cursor 对话时，可以特别的指出关键代码片段（如数据模型、核心函数），这种方式是为了<strong style="color: #0e88eb;">规避 LLM 的上下文记忆的限制问题</strong>，突出当前要解决的问题和场景。</p>
</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">补充上下文</strong></p>
<p>如果项目中有复杂的业务逻辑或特定的技术约定，可以通过注释、文档或已有代码的形式向 AI 提供相关背景信息。这样，AI 生成的代码不仅能够「跑通」，还更贴近实际需求。如使用 Cursor 的 @ 符号，除了本地的代码、文档、还可以有多模态的图片、外部链接的文档，Web 网页等等。</p>
</section>
</li>
</ul>
<h1 data-tool="mdnice编辑器"><span class="content" style="color: #0e8aeb;">2. AI 编程使用中的问题及解决方案</span></h1>
<p data-tool="mdnice编辑器">在使用 AI 编程工具（如 Cursor、Windsurf 等）时，尽管其效率提升显著，但也有一些问题亟待解决。</p>
<h2 data-tool="mdnice编辑器"><span class="content" style="color: #0e8aeb;">2.1 额度不够了</span></h2>
<p data-tool="mdnice编辑器">以 Cursor 为例，即使在不大量使用的情况下，Pro 版本（如 GPT-4、GPT-4o、Claude 3.5 Sonnet 的高速请求）两周内就可能用完额度。高级模型的调用成本较高，尤其是当需要生成大量代码或反复调试时，消耗会非常快。</p>
<h3 data-tool="mdnice编辑器"><span class="content" style="color: #0e88eb;"><strong>解决方案：</strong></span></h3>
<ol data-tool="mdnice编辑器">
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">分工明确，优化工具使用场景</strong></p>
<ul>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">代码相关任务交给 Cursor</strong>：专注于代码生成、函数实现等任务，减少对 Cursor 的非核心调用。</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">知识性问题交给 ChatGPT或其它大语言模型</strong>：对于纯知识性或逻辑性的问题，使用 ChatGPT 或其他不限量的模型（如 GPT-3.5 免费版本）来查询。</section>
</li>
</ul>
</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">分层实现代码</strong></p>
<ul>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">先写框架</strong>：在开发项目时，先用 Cursor 生成代码框架，明确主流程。</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">逐步细化</strong>：将需求明确的函数（尤其是复杂的小块代码）交由 Cursor 实现，而非一次性生成庞大的代码段。</section>
</li>
</ul>
</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">结合其他无限制的大模型</strong></p>
<ul>
<li>
<section style="color: #010101;">对于通用型函数（如工具类代码、简单的逻辑实现），可以利用免费的语言模型完成。</section>
</li>
<li>
<section style="color: #010101;">配合使用多个编辑器（如 Windsurf 、Cursor、豆包），减少单一工具的使用频率。</section>
</li>
</ul>
</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">节约上下文消耗</strong></p>
<ul>
<li>
<section style="color: #010101;">避免在上下文中反复输入无关信息，尽量精简对话内容。</section>
</li>
<li>
<section style="color: #010101;">善用工具内的上下文管理功能，如 Cursor 提供的 <code style="color: #0e8aeb;">Add context</code> 或 <code style="color: #0e8aeb;">@</code> 引用功能，将关键信息外部化，减少重复输入。</section>
</li>
</ul>
</section>
</li>
</ol>
<p data-tool="mdnice编辑器">当然，对于不差钱的小主来说，可以忽略此问题。</p>
<h2 data-tool="mdnice编辑器"><span class="content" style="color: #0e8aeb;">2.2 上下文限制：会「失忆」</span></h2>
<p data-tool="mdnice编辑器">当前的 LLM 上下文窗口有限，当输入信息超出限制时，模型可能会「遗忘」之前的内容。这种「失忆」表现尤其明显，例如在多次会话后，最前面的一些关键信息可能会被遗忘，导致生成的代码出现不一致的问题。</p>
<h3 data-tool="mdnice编辑器"><span class="content" style="color: #0e88eb;"><strong>解决方案</strong></span></h3>
<ol data-tool="mdnice编辑器">
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">简要总结关键信息</strong></p>
<ul>
<li>
<section style="color: #010101;">当模型开始「失忆」时，可以总结项目的关键信息并重新输入。例如， 核心配置或表结构可以作为关键信息，在对话开始时就输入给 LLM，确保其随时可用。</section>
</li>
</ul>
</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">外部化核心信息</strong></p>
<ul>
<li>
<section style="color: #010101;">将一些不变的核心信息（如数据库表结构、配置文件、接口定义等）存储到单独的文件中。</section>
</li>
<li>
<section style="color: #010101;">在对话中通过 <code style="color: #0e8aeb;">@</code> 或 <code style="color: #0e8aeb;">Add context</code>，将这些文件动态添加到上下文中，避免重复输入。</section>
</li>
</ul>
</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">引用外部文档</strong></p>
<ul>
<li>
<section style="color: #010101;">将外部帮助文档、链接或者参考资源作为上下文的一部分添加到对话中。例如，直接粘贴代码库的 README 文件、API 文档链接等，可以帮助模型更好地理解当前任务。</section>
</li>
<li>
<section style="color: #010101;">Cursor 自身支持这些外部的引用，具体方法参见 Cursor 的帮助文档，探索上下文扩展功能。</section>
</li>
</ul>
</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">优化上下文使用策略</strong></p>
<ul>
<li>
<section style="color: #010101;">尽量减少对话中的无关内容（如闲聊或冗长描述）。</section>
</li>
<li>
<section style="color: #010101;">定期总结对话内容并清理上下文，确保关键信息占用优先位置。</section>
</li>
</ul>
</section>
</li>
</ol>
<h2 data-tool="mdnice编辑器"><span class="content" style="color: #0e8aeb;">2.3 修改代码混乱：会改乱代码</span></h2>
<p data-tool="mdnice编辑器">AI 工具在生成代码时，可能覆盖或修改原有代码，导致逻辑混乱，甚至出现功能性错误，一不小心原来能跑通的功能就不通了。这种情况常发生在对已有代码进行修改时，尤其是在多次修改的情况下。</p>
<h3 data-tool="mdnice编辑器"><span class="content" style="color: #0e88eb;">解决方案</span></h3>
<ol data-tool="mdnice编辑器">
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">结合版本控制工具</strong></p>
<ul>
<li>
<section style="color: #010101;">在完成每一阶段的明确功能后，及时使用 Git 提交代码，确保已有的工作成果被保存。</section>
</li>
<li>
<section style="color: #010101;">在尝试新的修改时，可以创建分支或临时提交，确保不影响主分支的代码完整性。</section>
</li>
</ul>
</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">分步引导 AI</strong></p>
<ul>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">避免一次性让 AI 修改大量代码</strong>，而是按功能模块逐步进行修改。例如，先让 AI 修改某个函数，再验证其效果，而不是直接让它大规模重构代码。</section>
</li>
</ul>
</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">生成新代码替代旧代码</strong></p>
<ul>
<li>
<section style="color: #010101;">在涉及复杂逻辑的修改时，建议让 AI 生成新的代码片段，而不是直接修改现有代码。我们可以手动选择将新代码合并到项目中，避免出现覆盖错误。</section>
</li>
</ul>
</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">代码审查</strong></p>
<ul>
<li>
<section style="color: #010101;">对 AI 生成或修改的代码进行人工审阅，尤其是涉及关键逻辑的部分，确保生成代码符合预期。</section>
</li>
</ul>
</section>
</li>
</ol>
<h2 data-tool="mdnice编辑器"><span class="content" style="color: #0e8aeb;">2.4 无法解决复杂问题：可能进入死循环</span></h2>
<p data-tool="mdnice编辑器">在调试复杂问题或某个难点时，AI 工具可能陷入死循环，反复尝试生成代码但无法有效解决问题。例如，AI 对某个 bug 的修复建议多次尝试后仍然无效，甚至可能导致代码更加混乱。</p>
<h3 data-tool="mdnice编辑器"><span class="content" style="color: #0e88eb;">解决方案</span></h3>
<ol data-tool="mdnice编辑器">
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">重新整理问题</strong></p>
<ul>
<li>
<section style="color: #010101;">如果问题复杂而模糊，先关闭当前对话，重新开启一个新的会话。</section>
</li>
<li>
<section style="color: #010101;">将问题简化为多个子问题，并逐步整理关键信息后输入给 AI。例如，将错误日志、上下文代码片段和预期行为整理成清晰的描述。</section>
</li>
</ul>
</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">结合搜索引擎</strong></p>
<ul>
<li>
<section style="color: #010101;">对难以解决的问题，可以将错误信息、bug 的关键描述扔给搜索引擎，结合开发者社区（如 Stack Overflow）寻找答案。</section>
</li>
<li>
<section style="color: #010101;">搜索的过程中可以收集更具体的上下文，再反馈给 AI，增加其解决问题的可能性。</section>
</li>
</ul>
</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">寻求多工具协作</strong></p>
<ul>
<li>
<section style="color: #010101;">如果单个 AI 工具陷入死循环，可以尝试切换到其他工具或模型。例如，Cursor 无法解决的问题，可以切换到 ChatGPT 或 Claude 进行尝试。</section>
</li>
<li>
<section style="color: #010101;">结合传统的调试手段（如 IDE 的调试功能、日志分析工具等），帮助定位问题。</section>
</li>
</ul>
</section>
</li>
<li>
<section style="color: #010101;"><strong style="color: #0e88eb;">分阶段测试</strong></p>
<ul>
<li>
<section style="color: #010101;">将复杂问题拆解为多个小问题，逐步测试每一部分的结果。例如，如果某个模块的逻辑无法正常运行，可以先测试其输入输出，再逐步调试内部逻辑。</section>
</li>
</ul>
</section>
</li>
</ol>
<h1 data-tool="mdnice编辑器"><span class="content" style="color: #0e8aeb;">3. 小结</span></h1>
<p data-tool="mdnice编辑器">用 AI 编程，也就是和 AI 协作，本质上是一种双向的沟通过程。</p>
<p data-tool="mdnice编辑器">我们需要像与团队成员协作一样，<strong style="color: #0e88eb;">清晰表达需求、提供必要的背景信息</strong>，并通过持续的反馈和迭代优化，逐步引导 AI 生成符合预期的结果。只有做到有效沟通，AI 才能真正成为开发者的高效助手，而不是一个需要频繁纠错的工具。</p>
<p data-tool="mdnice编辑器">以上。</p>
</section>
</section>
]]></content:encoded>
			<wfw:commentRss>https://www.phppan.com/2025/01/cursor-ai-programming-has-increased-my-coding-efficiency-by-10-times/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
