<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>文玑阁</title><link>https://imwen.com/</link><description>玑琢算法万象，文藏俗世烟火-IT技术基于ZBLOG模板</description><item><title>MCP 是什么：给 AI 接一根通向真实世界的数据线 | AI 打工日志·MCP篇①</title><link>https://imwen.com/post/394.html</link><description>&lt;!-- AI 打工日志 · MCP 篇 · 第1篇 · 交互完整版（样式已隔离，勿在可视化编辑器中编辑源码模式之外的内容） --&gt;&lt;div class=&quot;ai-mcp ai-mcp-1&quot;&gt;&lt;style&gt;.ai-mcp-1 {
    --primary: #0B5C3F;
    --primary-light: #E6F2EC;
    --primary-soft: #BFE3D0;
    --primary-deep: #08432E;
    --accent: #38B07A;
    --bg: #FAF7F2;
    --card: #FFFFFF;
    --ink: #2B2724;
    --ink-soft: #6B6259;
    --line: #EDE5DA;
    --radius: 20px;
    --serif: &quot;Songti SC&quot;, &quot;STSong&quot;, &quot;SimSun&quot;, Georgia, serif;
    --sans: -apple-system, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Segoe UI&quot;, sans-serif;
  }
  .ai-mcp-1 * { margin: 0; padding: 0; box-sizing: border-box; }
  .ai-mcp-1 { font-family: var(--sans); background: var(--bg); color: var(--ink); line-height: 1.85; font-size: 17px; }
  .ai-mcp-1 .wrap { max-width: 760px; margin: 0 auto; padding: 0 22px; }
  .ai-mcp-1 .hero { background: linear-gradient(160deg, var(--primary) 0%, var(--accent) 100%); color: #fff; padding: 72px 0 88px; position: relative; overflow: hidden; }
  .ai-mcp-1 .hero::after { content: &quot;&quot;; position: absolute; bottom: -2px; left: 0; right: 0; height: 44px; background: var(--bg); border-radius: 44px 44px 0 0; }
  .ai-mcp-1 .series-tag { display: inline-block; background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.4); border-radius: 999px; padding: 5px 16px; font-size: 13px; letter-spacing: 2px; margin-bottom: 26px; }
  .ai-mcp-1 .hero .ep { font-size: 14px; letter-spacing: 6px; opacity: .85; margin-bottom: 10px; }
  .ai-mcp-1 .hero h1 { font-family: var(--serif); font-size: clamp(30px, 5.6vw, 46px); line-height: 1.35; font-weight: 700; margin-bottom: 18px; }
  .ai-mcp-1 .hero .sub { font-size: 18px; opacity: .92; }
  .ai-mcp-1 .hero .meta { margin-top: 30px; font-size: 13px; opacity: .75; }
  .ai-mcp-1 .toc { position: sticky; top: 0; z-index: 50; background: rgba(250,247,242,.92); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); padding: 10px 0; }
  .ai-mcp-1 .toc .wrap { display: flex; gap: 8px; overflow-x: auto; white-space: nowrap; scrollbar-width: none; }
  .ai-mcp-1 .toc .wrap::-webkit-scrollbar { display: none; }
  .ai-mcp-1 .toc a { flex: 0 0 auto; text-decoration: none; color: var(--ink-soft); font-size: 14px; padding: 6px 14px; border-radius: 999px; border: 1px solid transparent; transition: all .25s; }
  .ai-mcp-1 .toc a:hover, .ai-mcp-1 .toc a.active { color: var(--primary-deep); background: var(--primary-soft); border-color: var(--primary-soft); }
  .ai-mcp-1 section { padding: 64px 0 8px; }
  .ai-mcp-1 .sec-head { display: flex; align-items: center; gap: 14px; margin-bottom: 26px; }
  .ai-mcp-1 .sec-num { width: 52px; height: 52px; flex: 0 0 52px; border-radius: 16px; background: var(--primary-soft); display: flex; align-items: center; justify-content: center; font-size: 26px; }
  .ai-mcp-1 .sec-head h2 { font-family: var(--serif); font-size: clamp(22px, 3.6vw, 28px); line-height: 1.4; }
  .ai-mcp-1 .sec-head .sec-sub { font-size: 13px; color: var(--ink-soft); display: block; font-family: var(--sans); font-weight: 400; margin-top: 2px; }
  .ai-mcp-1 .card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 28px 26px; margin-bottom: 22px; box-shadow: 0 2px 10px rgba(43,39,36,.04); }
  .ai-mcp-1 p + p { margin-top: 16px; }
  .ai-mcp-1 .card h3 { font-size: 18px; margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }
  .ai-mcp-1 .em { color: var(--primary-deep); font-weight: 700; }
  .ai-mcp-1 strong { font-weight: 700; }
  .ai-mcp-1 .quote { margin: 34px 0; background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%); color: #fff; border-radius: var(--radius); padding: 34px 30px; font-family: var(--serif); font-size: clamp(19px, 3vw, 23px); line-height: 1.7; position: relative; }
  .ai-mcp-1 .quote::before { content: &quot;❝&quot;; position: absolute; top: 10px; left: 18px; font-size: 44px; opacity: .3; }
  .ai-mcp-1 .quote .who { display: block; margin-top: 14px; font-family: var(--sans); font-size: 13px; opacity: .8; }
  .ai-mcp-1 .demo { background: var(--card); border: 2px dashed var(--primary); border-radius: var(--radius); padding: 30px 26px; margin: 30px 0; }
  .ai-mcp-1 .demo-title { text-align: center; font-weight: 700; font-size: 16px; color: var(--primary-deep); letter-spacing: 1px; margin-bottom: 6px; }
  .ai-mcp-1 .demo-hint { text-align: center; font-size: 13px; color: var(--ink-soft); margin-bottom: 20px; }
  .ai-mcp-1 .toggle-bar { display: flex; justify-content: center; gap: 10px; margin-bottom: 20px; }
  .ai-mcp-1 .toggle-bar button { font-family: var(--sans); font-size: 15px; font-weight: 600; padding: 9px 20px; border-radius: 999px; border: 1.5px solid var(--line); background: #fff; color: var(--ink-soft); cursor: pointer; transition: all .2s; }
  .ai-mcp-1 .toggle-bar button.on { border-color: var(--primary); background: var(--primary); color: #fff; box-shadow: 0 4px 14px rgba(11,92,63,.28); }
  .ai-mcp-1 .vs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 22px 0; }
  .ai-mcp-1 .vs-card { border-radius: 16px; padding: 22px 20px; font-size: 14.5px; }
  .ai-mcp-1 .vs-card.old { background: #F6F3F0; border: 1px solid var(--line); }
  .ai-mcp-1 .vs-card.new { background: var(--primary-light); border: 1px solid var(--primary-soft); }
  .ai-mcp-1 .vs-card .v-ico { font-size: 28px; }
  .ai-mcp-1 .vs-card h3 { font-size: 16px; margin: 8px 0 6px; }
  .ai-mcp-1 .vs-card.new h3 { color: var(--primary-deep); }
  .ai-mcp-1 .vs-card ul { padding-left: 18px; }
  .ai-mcp-1 .vs-card li { margin: 4px 0; }
  .ai-mcp-1 .role-grid { display: grid; grid-template-columns: 1fr; gap: 14px; margin: 22px 0; }
  .ai-mcp-1 .role-card { background: #fff; border: 1.5px solid var(--line); border-radius: 16px; padding: 20px 20px; display: flex; gap: 14px; align-items: flex-start; }
  .ai-mcp-1 .role-card .r-ico { font-size: 30px; flex: 0 0 40px; text-align: center; }
  .ai-mcp-1 .role-card h3 { font-size: 16.5px; margin-bottom: 6px; color: var(--primary-deep); }
  .ai-mcp-1 .role-card p { font-size: 14.5px; color: var(--ink-soft); }
  .ai-mcp-1 .check-list { list-style: none; }
  .ai-mcp-1 .check-list li { padding: 12px 16px; margin: 10px 0; border-radius: 12px; border: 1px solid var(--line); background: #fff; }
  .ai-mcp-1 .check-list li b { color: var(--primary-deep); }
  .ai-mcp-1 .quiz { margin: 26px 0 6px; }
  .ai-mcp-1 .q-item { margin-bottom: 22px; }
  .ai-mcp-1 .q-item .q { font-weight: 700; font-size: 16px; margin-bottom: 12px; }
  .ai-mcp-1 .q-item .q .qn { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 8px; background: var(--primary); color: #fff; font-size: 14px; margin-right: 8px; vertical-align: -5px; }
  .ai-mcp-1 .opts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .ai-mcp-1 .opts button { font-family: var(--sans); font-size: 14.5px; text-align: left; padding: 12px 16px; border-radius: 12px; border: 1.5px solid var(--line); background: #fff; color: var(--ink); cursor: pointer; transition: all .2s; line-height: 1.6; }
  .ai-mcp-1 .opts button:hover { border-color: var(--primary); }
  .ai-mcp-1 .opts button.right { border-color: #2B8A3E; background: #EBF7EE; color: #1B5E2B; font-weight: 700; }
  .ai-mcp-1 .opts button.wrong { border-color: #C92A2A; background: #FFF0F0; color: #A61E1E; }
  .ai-mcp-1 .q-explain { margin-top: 10px; font-size: 13.5px; color: var(--ink-soft); background: var(--primary-light); border-radius: 10px; padding: 10px 14px; display: none; }
  .ai-mcp-1 .q-explain.show { display: block; }
  .ai-mcp-1 .final-cta { margin: 50px 0 10px; text-align: center; padding: 44px 26px; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); }
  .ai-mcp-1 .final-cta .emoji { font-size: 40px; }
  .ai-mcp-1 .final-cta h2 { font-family: var(--serif); font-size: 24px; margin: 12px 0 10px; }
  .ai-mcp-1 footer { text-align: center; padding: 30px 0 50px; color: var(--ink-soft); font-size: 13px; }
  .ai-mcp-1 .reveal { opacity: 0; transform: translateY(26px); transition: all .7s cubic-bezier(.22,.61,.36,1); }
  .ai-mcp-1 .reveal.in { opacity: 1; transform: none; }
  @media (max-width: 560px) {.ai-mcp-1 .vs-grid, .ai-mcp-1 .opts { grid-template-columns: 1fr; } .ai-mcp-1 .role-card { flex-direction: column; } }


  /* === Z-Blog 正文适配层 === */
  .ai-mcp { font-size: 17px; line-height: 1.85; color: #2B2724; }
  .ai-mcp .tri-banner { text-align: center; padding: 8px 0 4px; margin-bottom: 18px; }
  .ai-mcp .tri-banner .tri-title {
    font-family: &quot;Songti SC&quot;, &quot;STSong&quot;, &quot;SimSun&quot;, Georgia, serif;
    font-size: clamp(22px, 3.4vw, 30px); line-height: 1.45; margin: 16px 0 8px; font-weight: 700;
  }
  .ai-mcp .tri-banner .tri-sub { font-size: 15px; color: #6B6259; }
  .ai-mcp .tri-banner .series-tag {
    background: var(--primary-soft); border: 1px solid var(--primary);
    color: var(--primary-deep); margin-bottom: 0;
  }
  .ai-mcp main { display: block; }&lt;/style&gt;&lt;header class=&quot;tri-banner&quot;&gt;&lt;span class=&quot;series-tag&quot;&gt;AI 打工日志 · MCP 篇&lt;/span&gt;
 &amp;nbsp;&lt;h2 class=&quot;tri-title&quot;&gt;《MCP 是什么：给 AI 接一根通向真实世界的数据线》&lt;/h2&gt;&lt;p class=&quot;tri-sub&quot;&gt;一个高材生被困在没有门窗的房间里 · 阅读约 9 分钟 · 无需技术背景&lt;/p&gt;&lt;p class=&quot;tri-sub&quot;&gt;&lt;img src=&quot;https://imwen.com/zb_users/upload/2026/09/202609241790231193681869.jpg&quot; alt=&quot;mcp-cover-1.jpg&quot; width=&quot;768&quot; height=&quot;512&quot; border=&quot;0&quot; vspace=&quot;0&quot; title=&quot;mcp-cover-1.jpg&quot; style=&quot;width: 768px; height: 512px;&quot;/&gt;&lt;/p&gt;&lt;/header&gt;&lt;main class=&quot;wrap&quot;&gt;&lt;section id=&quot;s1&quot; class=&quot;reveal&quot;&gt;&lt;div class=&quot;sec-head&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🔌&lt;/div&gt;&lt;h2&gt;插不上线的高材生 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;sec-sub&quot;&gt;它很聪明，但它不知道你桌上有什么&lt;/span&gt;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card&quot;&gt;&lt;p&gt;我们前面几季给这位 AI 同事配了本领（技能篇的 Skill），也给它招了团队（Agent 篇的多智能体协作）。到这一步，它写得了方案、排得了流程、分工也清清楚楚。&lt;/p&gt;&lt;p&gt;但你真把它拉到工位上，会发现一件尴尬的事：&lt;span class=&quot;em&quot;&gt;它对你公司的世界一无所知。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;你问它：&lt;strong&gt;上个月华东区的退货率为什么涨了？&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;它需要三样东西：销售数据库里的订单、客服系统里的投诉记录、仓库那张谁也没整理过的退货台账。这三样东西分别躺在三个不同的系统里，没有一个向 AI 敞开大门。&lt;/p&gt;&lt;p&gt;于是它只能这样回答你：&lt;em&gt;一般来说，退货率上升可能与物流时效、产品质量、客服体验有关，建议您从这几个维度排查……&lt;/em&gt;&lt;/p&gt;&lt;p&gt;这话没毛病，但也没用。这就是一个&lt;span class=&quot;em&quot;&gt;被困在没有门窗的房间里&lt;/span&gt;的高材生——脑子极好，手伸不出去。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;quote&quot;&gt;知识在模型里，数据在世界里。&lt;br/&gt;中间隔着一道墙，这堵墙叫「没接口」。&lt;span class=&quot;who&quot;&gt;—— 这就是为什么需要一个标准插座&lt;/span&gt;
 &amp;nbsp;&lt;/div&gt;&lt;/section&gt;&lt;section id=&quot;s2&quot; class=&quot;reveal&quot;&gt;&lt;div class=&quot;sec-head&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🧩&lt;/div&gt;&lt;h2&gt;一根插头对一百种口 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;sec-sub&quot;&gt;在 MCP 出现之前，世界是这样的&lt;/span&gt;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card&quot;&gt;&lt;p&gt;你当然可以说：那就给它开个接口呗。&lt;/p&gt;&lt;p&gt;问题是——&lt;span class=&quot;em&quot;&gt;开给谁？&lt;/span&gt; 你的 AI 助手可能有三四个（写文档的、写代码的、答疑的），公司里的数据源可能有七八处（数据库、工单系统、网盘、代码仓库、CRM……）。&lt;/p&gt;&lt;p&gt;如果每个 AI 应用要单独接每一个数据源，你需要做的接口数量是 &lt;strong&gt;3 × 7 = 21 个&lt;/strong&gt;。再加一个 AI 应用，变成 28 个。这就是工程师嘴里的 &lt;span class=&quot;em&quot;&gt;N×M 难题&lt;/span&gt;。&lt;/p&gt;&lt;p&gt;更麻烦的是，这 21 个接口由不同团队在不同时间写成，格式各写各的：有的要传 JSON，有的要拼查询串；有的用这家的鉴权，有的用那家的令牌。换个 AI 应用，全套重来一遍。&lt;/p&gt;&lt;p&gt;这事儿我们其实见过。十几年前的手机充电口：诺基亚一根、摩托一根、三星一根，抽屉里永远团着一坨乱线，出差忘带原装线就抓瞎。后来全行业统一成一种口，世界才清净。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;demo reveal&quot;&gt;&lt;div class=&quot;demo-title&quot;&gt;🧪 试试看：接线方式对比器&lt;/div&gt;&lt;p class=&quot;demo-hint&quot;&gt;点按钮切换，直观感受两种接法的差别&lt;/p&gt;&lt;div class=&quot;toggle-bar&quot;&gt;&lt;button class=&quot;on&quot; data-mode=&quot;old&quot;&gt;😵 以前：一机一线&lt;/button&gt;&lt;button data-mode=&quot;new&quot;&gt;😌 现在：一个插座&lt;/button&gt;&lt;/div&gt;&lt;div id=&quot;wireBox&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/section&gt;&lt;section id=&quot;s3&quot; class=&quot;reveal&quot;&gt;&lt;div class=&quot;sec-head&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🔧&lt;/div&gt;&lt;h2&gt;万能插座长啥样 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;sec-sub&quot;&gt;三方分工：主机、服务端、协议&lt;/span&gt;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card&quot;&gt;&lt;p&gt;MCP 这三个字母是 &lt;strong&gt;Model Context Protocol&lt;/strong&gt;，中文叫「模型上下文协议」。名字听着唬人，拆开就是三拨人在分工。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;role-grid&quot;&gt;&lt;div class=&quot;role-card&quot;&gt;&lt;div class=&quot;r-ico&quot;&gt;🖥️&lt;/div&gt;&lt;div&gt;&lt;h3&gt;主机 Host —— 用工具的那一方&lt;/h3&gt;&lt;p&gt;你正在用的 AI 应用：写代码的编辑器、桌面的助手、公司内部的问答机器人。它负责跟用户对话，也负责在需要时喊一声：谁有这本事？&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;role-card&quot;&gt;&lt;div class=&quot;r-ico&quot;&gt;🔌&lt;/div&gt;&lt;div&gt;&lt;h3&gt;服务端 Server —— 提供能力的那一方&lt;/h3&gt;&lt;p&gt;一坨专门负责「把某个系统接出来」的小程序。有的负责读你本地的文件夹，有的负责查公司数据库，有的负责调第三方的工单接口。它只做一件事：把自家资源按统一格式摆出来。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;role-card&quot;&gt;&lt;div class=&quot;r-ico&quot;&gt;📐&lt;/div&gt;&lt;div&gt;&lt;h3&gt;协议 Protocol —— 统一的插口规格&lt;/h3&gt;&lt;p&gt;规定插头多大、几根针、每根针管什么。主机用这套规格喊话，服务端按这套规格应答，两边不需要认识对方是谁。&lt;span class=&quot;em&quot;&gt;这才是 N×M 变成 N+M 的关键。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;card&quot;&gt;&lt;p&gt;换算一下账：以前 3 个 AI 应用 × 7 个数据源 = 21 套定制对接；现在 3 个主机 + 7 个服务端 = 10 份实现，而且&lt;span class=&quot;em&quot;&gt;每个服务端写完一次，所有主机都能用&lt;/span&gt;。数据源再加五个，也只是加五段。&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;section id=&quot;s4&quot; class=&quot;reveal&quot;&gt;&lt;div class=&quot;sec-head&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🆚&lt;/div&gt;&lt;h2&gt;它和那些老办法有什么区别 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;sec-sub&quot;&gt;函数调用、插件、传统对接，都不是一回事&lt;/span&gt;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;vs-grid&quot;&gt;&lt;div class=&quot;vs-card old&quot;&gt;&lt;div class=&quot;v-ico&quot;&gt;🔧&lt;/div&gt;&lt;h3&gt;传统的接口对接&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;为某个应用单独写死&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;换一个应用就得重写&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;格式、鉴权全靠自己定&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;集成数量随双方数量相乘增长&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;vs-card new&quot;&gt;&lt;div class=&quot;v-ico&quot;&gt;🔌&lt;/div&gt;&lt;h3&gt;MCP 的做法&lt;/h3&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;一处实现，多处可用&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;换主机不用动服务端&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;统一描述能力与入参&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;集成数量变成两边相加&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;card&quot;&gt;&lt;h3&gt;❓ 那「函数调用」呢？&lt;/h3&gt;&lt;p&gt;函数调用是 AI 自己知道「我可以喊某某功能」，但那个功能具体怎么接到你的数据库，还得你手写。MCP 补的是后半段——把「喊誰」和「怎么连」也标准化了。&lt;/p&gt;&lt;p&gt;一句话区分：&lt;span class=&quot;em&quot;&gt;函数调用解决的是 AI 会不会用工具，MCP 解决的是工具怎么插上来。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;section id=&quot;s5&quot; class=&quot;reveal&quot;&gt;&lt;div class=&quot;sec-head&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;📦&lt;/div&gt;&lt;h2&gt;插上之后，它能拿出三种东西 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;sec-sub&quot;&gt;干活的能力、可读的材料、现成的模板&lt;/span&gt;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card&quot;&gt;&lt;h3&gt;🛠️ 工具 Tools —— 让它动手&lt;/h3&gt;&lt;p&gt;可以真的去执行动作的能力：查一笔订单、提交一个工单、往表里写一行、跑一次查询。&lt;strong&gt;这是三类里最需要谨慎对待的&lt;/strong&gt;，因为它会改变外部世界的状态。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;card&quot;&gt;&lt;h3&gt;📄 资源 Resources —— 让它读书&lt;/h3&gt;&lt;p&gt;可以被读取的素材：某个文件夹里的文档、数据库里的表结构、项目的配置文件。特点是只读不写，给它上下文，不让它乱动。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;card&quot;&gt;&lt;h3&gt;📋 提示模板 Prompts —— 让它照着做&lt;/h3&gt;&lt;p&gt;服务端自带的一些现成用法。比如某个数据系统自带「生成月度分析报告」的模板，你不用从零教它怎么问，选一个模板填上参数就行。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;quote&quot;&gt;工具是手，资源是眼，模板是套路。&lt;br/&gt;三样齐全，它才算从「聊天对象」升级成「能办事的同事」。&lt;/div&gt;&lt;ul class=&quot;check-list reveal list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;要只读背景资料&lt;/strong&gt; —— 优先用资源，别一上来就给写权限&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;要能改数据&lt;/strong&gt; —— 才用到工具，并且要盯着它改&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;✅ &lt;strong&gt;流程固定且重复&lt;/strong&gt; —— 用提示模板省事，也省心&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt;&lt;section id=&quot;s6&quot; class=&quot;reveal&quot;&gt;&lt;div class=&quot;sec-head&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🎯&lt;/div&gt;&lt;h2&gt;三题小测 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;sec-sub&quot;&gt;做完这三题，MCP 你就懂了八成&lt;/span&gt;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;quiz&quot;&gt;&lt;div class=&quot;q-item card&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;1&lt;/span&gt;MCP 主要解决的是什么问题？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;c&quot; data-explain=&quot; MCP 解决的是「对接」这件事：把过去每个 AI 应用各自对接每个数据源的乘法级工作量，变成一次实现处处可用的加法级工作量。它不负责把模型变聪明。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 让大模型变得更聪明&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 让 AI 的回答更快、更便宜&lt;/button&gt;&lt;button data-v=&quot;c&quot;&gt;C. 让 AI 与外部系统的对接标准化&lt;/button&gt;&lt;button data-v=&quot;d&quot;&gt;D. 让 AI 彻底不需要联网&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;q-item card&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;2&lt;/span&gt;关于 MCP 里的「服务端 Server」，下面哪种说法对？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;b&quot; data-explain=&quot; 服务端是能力的提供方，负责把某个系统（文件、数据库、工单系统等）按统一格式接出来。它写一次，任何支持 MCP 的主机都能调用，不需要为每个应用重写一遍。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 它是跑大模型的那台机器&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 它负责把某个系统的能力按统一格式暴露出来&lt;/button&gt;&lt;button data-v=&quot;c&quot;&gt;C. 它是用户电脑上的聊天界面&lt;/button&gt;&lt;button data-v=&quot;d&quot;&gt;D. 它是一份必须手写给用户看的说明书&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;q-item card&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;3&lt;/span&gt;下面哪个场景最适合先用「资源」而不是「工具」？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;a&quot; data-explain=&quot; 资源是只读的素材，适合提供背景信息，风险最低。工单、改价、删文件都属于写操作，用工具时必须配权限与复核，不能上来就放开。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 让它读公司制度文档来回答问题&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 让它替你在系统里提交一张报销单&lt;/button&gt;&lt;button data-v=&quot;c&quot;&gt;C. 让它直接修改商品定价&lt;/button&gt;&lt;button data-v=&quot;d&quot;&gt;D. 让它清理一批历史文件&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;final-cta reveal&quot;&gt;&lt;div class=&quot;emoji&quot;&gt;🔌&lt;/div&gt;&lt;h2&gt;下一站：把线真的插上&lt;/h2&gt;&lt;p&gt;明白了万能插座的原理，下一步就是实操——MCP 到底怎么装、怎么配，装完不工作又该怎么排查。下一篇见。&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;/main&gt;&lt;script&gt;(function () {
  var root = document.currentScript.closest(&#039;.ai-mcp&#039;);
  
  // ---- 滚动显现 ----
  const io = new IntersectionObserver((entries) =&gt; {
    entries.forEach(e =&gt; { if (e.isIntersecting) { e.target.classList.add(&#039;in&#039;); io.unobserve(e.target); } });
  }, { threshold: 0.12 });
  root.querySelectorAll(&#039;.reveal&#039;).forEach(el =&gt; io.observe(el));

  // ---- 目录高亮 ----
  const links = root.querySelectorAll(&#039;.toc a&#039;);
  const secs = [...links].map(a =&gt; root.querySelector(a.getAttribute(&#039;href&#039;)));
  const spy = new IntersectionObserver((entries) =&gt; {
    entries.forEach(e =&gt; {
      if (e.isIntersecting) {
        links.forEach(l =&gt; l.classList.remove(&#039;active&#039;));
        const hit = links.find(l =&gt; l.getAttribute(&#039;href&#039;) === &#039;#&#039; + e.target.id);
        if (hit) hit.classList.add(&#039;active&#039;);
      }
    });
  }, { rootMargin: &#039;-30% 0px -60% 0px&#039; });
  secs.forEach(s =&gt; s &amp;&amp; spy.observe(s));

  // ---- 接线方式对比器 ----
  const wire = {
    old: {
      head: &#039;😵 以前：一机一线，各自为战&#039;,
      body: &#039;&lt;p&gt;3 个 AI 应用要接 7 个数据源，就得写 &lt;b&gt;21 套&lt;/b&gt;独立对接。每套的格式、鉴权、错误处理都不一样。&lt;/p&gt;&#039;
        + &#039;&lt;p&gt;换个 AI 应用？对不起，21 套重来一遍。加个新系统？又是 3 套。&lt;/p&gt;&#039;
        + &#039;&lt;p&gt;&lt;b&gt;成本随两边数量相乘增长，团队永远在写重复的胶水代码。&lt;/b&gt;&lt;/p&gt;&#039;
    },
    new: {
      head: &#039;😌 现在：一个插座，处处能插&#039;,
      body: &#039;&lt;p&gt;同样是 3 个主机 + 7 个数据源，各自按统一规格实现一次，合计 &lt;b&gt;10 份&lt;/b&gt;工作。&lt;/p&gt;&#039;
        + &#039;&lt;p&gt;而且每个服务端写完一次，所有支持这套规格的主机都能直接用，不用为谁单独改。&lt;/p&gt;&#039;
        + &#039;&lt;p&gt;&lt;b&gt;成本变成两边相加，新增系统的边际成本低得多。&lt;/b&gt;&lt;/p&gt;&#039;
    }
  };
  const wireBox = root.querySelector(&#039;#wireBox&#039;);
  function paintWire(mode) {
    const w = wire[mode];
    wireBox.innerHTML = &#039;&lt;div class=&quot;card&quot; style=&quot;margin:0;border-color:var(--primary-soft);background:var(--primary-light)&quot;&gt;&#039;
      + &#039;&lt;h3 style=&quot;color:var(--primary-deep)&quot;&gt;&#039; + w.head + &#039;&lt;/h3&gt;&#039; + w.body + &#039;&lt;/div&gt;&#039;;
  }
  root.querySelectorAll(&#039;.toggle-bar button&#039;).forEach(btn =&gt; {
    btn.onclick = () =&gt; {
      root.querySelectorAll(&#039;.toggle-bar button&#039;).forEach(b =&gt; b.classList.remove(&#039;on&#039;));
      btn.classList.add(&#039;on&#039;);
      paintWire(btn.dataset.mode);
    };
  });
  paintWire(&#039;old&#039;);

  // 兜底：2 秒后强制显示所有 reveal 元素，避免任何环境下内容被隐藏
  setTimeout(function () {
    root.querySelectorAll(&#039;.reveal&#039;).forEach(function (el) { el.classList.add(&#039;in&#039;); });
  }, 2000);
})();&lt;/script&gt;&lt;/div&gt;&lt;!-- AI 打工日志 · MCP 篇 · 第1篇 · 结束 --&gt;</description><pubDate>Thu, 24 Sep 2026 14:25:00 +0800</pubDate></item><item><title>多 Agent 避坑：团队不是万能的 | AI 打工日志·Agent篇④</title><link>https://imwen.com/post/392.html</link><description>&lt;!-- AI 打工日志 · Agent 篇 · 第4篇 · 交互完整版（样式已隔离，勿在可视化编辑器中编辑源码模式之外的内容） --&gt;&lt;div class=&quot;ai-agent ai-agent-4&quot;&gt;&lt;style&gt;.ai-agent-4 {
    --primary: #862E9C;
    --primary-light: #F5ECF8;
    --primary-soft: #EBD7F0;
    --primary-deep: #6B237E;
    --accent: #BE4BDB;
    --bg: #FAF7F2;
    --card: #FFFFFF;
    --ink: #2B2724;
    --ink-soft: #6B6259;
    --line: #EDE5DA;
    --radius: 20px;
    --serif: &quot;Songti SC&quot;, &quot;STSong&quot;, &quot;SimSun&quot;, Georgia, serif;
    --sans: -apple-system, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Segoe UI&quot;, sans-serif;
  }
  .ai-agent-4 * { margin: 0; padding: 0; box-sizing: border-box; }
  .ai-agent-4 { font-family: var(--sans); background: var(--bg); color: var(--ink); line-height: 1.85; font-size: 17px; }
  .ai-agent-4 .wrap { max-width: 760px; margin: 0 auto; padding: 0 22px; }
  .ai-agent-4 .hero { background: linear-gradient(160deg, var(--primary) 0%, var(--accent) 100%); color: #fff; padding: 72px 0 88px; position: relative; overflow: hidden; }
  .ai-agent-4 .hero::after { content: &quot;&quot;; position: absolute; bottom: -2px; left: 0; right: 0; height: 44px; background: var(--bg); border-radius: 44px 44px 0 0; }
  .ai-agent-4 .series-tag { display: inline-block; background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.4); border-radius: 999px; padding: 5px 16px; font-size: 13px; letter-spacing: 2px; margin-bottom: 26px; }
  .ai-agent-4 .hero .ep { font-size: 14px; letter-spacing: 6px; opacity: .85; margin-bottom: 10px; }
  .ai-agent-4 .hero h1 { font-family: var(--serif); font-size: clamp(30px, 5.6vw, 46px); line-height: 1.35; font-weight: 700; margin-bottom: 18px; }
  .ai-agent-4 .hero .sub { font-size: 18px; opacity: .92; }
  .ai-agent-4 .hero .meta { margin-top: 30px; font-size: 13px; opacity: .75; }
  .ai-agent-4 .toc { position: sticky; top: 0; z-index: 50; background: rgba(250,247,242,.92); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); padding: 10px 0; }
  .ai-agent-4 .toc .wrap { display: flex; gap: 8px; overflow-x: auto; white-space: nowrap; scrollbar-width: none; }
  .ai-agent-4 .toc .wrap::-webkit-scrollbar { display: none; }
  .ai-agent-4 .toc a { flex: 0 0 auto; text-decoration: none; color: var(--ink-soft); font-size: 14px; padding: 6px 14px; border-radius: 999px; border: 1px solid transparent; transition: all .25s; }
  .ai-agent-4 .toc a:hover, .ai-agent-4 .toc a.active { color: var(--primary-deep); background: var(--primary-soft); border-color: var(--primary-soft); }
  .ai-agent-4 section { padding: 64px 0 8px; }
  .ai-agent-4 .sec-head { display: flex; align-items: center; gap: 14px; margin-bottom: 26px; }
  .ai-agent-4 .sec-num { width: 52px; height: 52px; flex: 0 0 52px; border-radius: 16px; background: var(--primary-soft); display: flex; align-items: center; justify-content: center; font-size: 26px; }
  .ai-agent-4 .sec-head h2 { font-family: var(--serif); font-size: clamp(22px, 3.6vw, 28px); line-height: 1.4; }
  .ai-agent-4 .sec-head .sec-sub { font-size: 13px; color: var(--ink-soft); display: block; font-family: var(--sans); font-weight: 400; margin-top: 2px; }
  .ai-agent-4 .card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 28px 26px; margin-bottom: 22px; box-shadow: 0 2px 10px rgba(43,39,36,.04); }
  .ai-agent-4 p + p { margin-top: 16px; }
  .ai-agent-4 .card h3 { font-size: 18px; margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }
  .ai-agent-4 .em { color: var(--primary-deep); font-weight: 700; }
  .ai-agent-4 strong { font-weight: 700; }
  .ai-agent-4 .quote { margin: 34px 0; background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%); color: #fff; border-radius: var(--radius); padding: 34px 30px; font-family: var(--serif); font-size: clamp(19px, 3vw, 23px); line-height: 1.7; position: relative; }
  .ai-agent-4 .quote::before { content: &quot;❝&quot;; position: absolute; top: 10px; left: 18px; font-size: 44px; opacity: .3; }
  .ai-agent-4 .quote .who { display: block; margin-top: 14px; font-family: var(--sans); font-size: 13px; opacity: .8; }
  .ai-agent-4 .demo { background: var(--card); border: 2px dashed var(--primary); border-radius: var(--radius); padding: 30px 26px; margin: 30px 0; }
  .ai-agent-4 .demo-title { text-align: center; font-weight: 700; font-size: 16px; color: var(--primary-deep); letter-spacing: 1px; margin-bottom: 6px; }
  .ai-agent-4 .demo-hint { text-align: center; font-size: 13px; color: var(--ink-soft); margin-bottom: 20px; }
  .ai-agent-4 .bill-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 22px 0; }
  .ai-agent-4 .bill-card { border-radius: 16px; padding: 22px 20px; font-size: 14.5px; }
  .ai-agent-4 .bill-card.solo { background: #F6F3F0; border: 1px solid var(--line); }
  .ai-agent-4 .bill-card.team { background: var(--primary-light); border: 1px solid var(--primary-soft); }
  .ai-agent-4 .bill-card .b-ico { font-size: 30px; }
  .ai-agent-4 .bill-card h4 { font-size: 16px; margin: 8px 0 6px; }
  .ai-agent-4 .bill-card.team h4 { color: var(--primary-deep); }
  .ai-agent-4 .bill-card .num { font-size: 26px; font-weight: 700; color: var(--primary-deep); }
  .ai-agent-4 .diag-grid { display: grid; grid-template-columns: 1fr; gap: 12px; margin-bottom: 16px; }
  .ai-agent-4 .d-item { background: #fff; border: 1.5px solid var(--line); border-radius: 14px; padding: 16px 16px; cursor: pointer; transition: all .2s; text-align: left; font-family: var(--sans); }
  .ai-agent-4 .d-item:hover { transform: translateY(-2px); box-shadow: 0 5px 14px rgba(43,39,36,.1); }
  .ai-agent-4 .d-item.on { border-color: var(--primary); background: var(--primary-light); }
  .ai-agent-4 .d-item .d-ico { font-size: 24px; }
  .ai-agent-4 .d-item b { display: block; font-size: 15px; margin-top: 4px; }
  .ai-agent-4 .d-item span { font-size: 12.5px; color: var(--ink-soft); }
  .ai-agent-4 .d-result { background: var(--primary-light); border: 1px solid var(--primary-soft); border-radius: 14px; padding: 18px 20px; font-size: 14.5px; min-height: 110px; }
  .ai-agent-4 .d-result h4 { color: var(--primary-deep); font-size: 15.5px; margin-bottom: 8px; }
  .ai-agent-4 .d-result .rx { margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--primary-soft); }
  .ai-agent-4 .d-result .rx b { color: var(--primary-deep); }
  .ai-agent-4 .quiz { margin: 26px 0 6px; }
  .ai-agent-4 .q-item { margin-bottom: 22px; }
  .ai-agent-4 .q-item .q { font-weight: 700; font-size: 16px; margin-bottom: 12px; }
  .ai-agent-4 .q-item .q .qn { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 8px; background: var(--primary); color: #fff; font-size: 14px; margin-right: 8px; vertical-align: -5px; }
  .ai-agent-4 .opts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .ai-agent-4 .opts button { font-family: var(--sans); font-size: 14.5px; text-align: left; padding: 12px 16px; border-radius: 12px; border: 1.5px solid var(--line); background: #fff; color: var(--ink); cursor: pointer; transition: all .2s; line-height: 1.6; }
  .ai-agent-4 .opts button:hover { border-color: var(--primary); }
  .ai-agent-4 .opts button.right { border-color: #2B8A3E; background: #EBF7EE; color: #1B5E2B; font-weight: 700; }
  .ai-agent-4 .opts button.wrong { border-color: #C92A2A; background: #FFF0F0; color: #A61E1E; }
  .ai-agent-4 .q-explain { margin-top: 10px; font-size: 13.5px; color: var(--ink-soft); background: var(--primary-light); border-radius: 10px; padding: 10px 14px; display: none; }
  .ai-agent-4 .q-explain.show { display: block; }
  .ai-agent-4 .final-cta { margin: 50px 0 10px; text-align: center; padding: 44px 26px; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); }
  .ai-agent-4 .final-cta .emoji { font-size: 40px; }
  .ai-agent-4 .final-cta h2 { font-family: var(--serif); font-size: 24px; margin: 12px 0 10px; }
  .ai-agent-4 footer { text-align: center; padding: 30px 0 50px; color: var(--ink-soft); font-size: 13px; }
  .ai-agent-4 .reveal { opacity: 0; transform: translateY(26px); transition: all .7s cubic-bezier(.22,.61,.36,1); }
  .ai-agent-4 .reveal.in { opacity: 1; transform: none; }
  @media (max-width: 560px) { body { font-size: 16px; } .bill-grid, .opts { grid-template-columns: 1fr; } }


  /* === Z-Blog 正文适配层 === */
  .ai-agent { font-size: 17px; line-height: 1.85; color: #2B2724; }
  .ai-agent .tri-banner { text-align: center; padding: 8px 0 4px; margin-bottom: 18px; }
  .ai-agent .tri-banner .tri-title {
    font-family: &quot;Songti SC&quot;, &quot;STSong&quot;, &quot;SimSun&quot;, Georgia, serif;
    font-size: clamp(22px, 3.4vw, 30px); line-height: 1.45; margin: 16px 0 8px; font-weight: 700;
  }
  .ai-agent .tri-banner .tri-sub { font-size: 15px; color: #6B6259; }
  .ai-agent .tri-banner .series-tag {
    background: var(--primary-soft); border: 1px solid var(--primary);
    color: var(--primary-deep); margin-bottom: 0;
  }
  .ai-agent main { display: block; }&lt;/style&gt;&lt;header class=&quot;tri-banner&quot;&gt;&lt;span class=&quot;series-tag&quot;&gt;AI 打工日志 · Agent 篇&lt;/span&gt;
 &amp;nbsp;&lt;h2 class=&quot;tri-title&quot;&gt;《多 Agent 避坑：团队不是万能的》&lt;/h2&gt;&lt;p class=&quot;tri-sub&quot;&gt;人多了，账得算清 · 阅读约 8 分钟 · 无需技术背景&lt;/p&gt;&lt;p class=&quot;tri-sub&quot;&gt;&lt;img src=&quot;https://imwen.com/zb_users/upload/2026/09/202609231790135790757442.jpg&quot; alt=&quot;agent-cover-4.jpg&quot; width=&quot;768&quot; height=&quot;512&quot; border=&quot;0&quot; vspace=&quot;0&quot; title=&quot;agent-cover-4.jpg&quot; style=&quot;width: 768px; height: 512px;&quot;/&gt;&lt;/p&gt;&lt;/header&gt;&lt;main class=&quot;wrap&quot;&gt;&lt;section id=&quot;s1&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;💰&lt;/div&gt;&lt;h2&gt;团队能放大能力，也能放大账单&lt;span class=&quot;sec-sub&quot;&gt;每一个 AI 的每一次&amp;quot;动脑&amp;quot;，都要花钱&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;前几篇讲的全是&amp;quot;人多力量大&amp;quot;的好。这一篇说点实在的：&lt;span class=&quot;em&quot;&gt;多 Agent 是有成本的，而且不小。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;最直接的成本，就是&amp;quot;调用次数 × 单价&amp;quot;。一个 Agent 干完活要调用一次大模型；三个 Agent 串行干，就是三次；还要算上包工头自己拆活、验收的那几次。&lt;strong&gt;人越多、环节越多、来回改的次数越多，账单滚得越快。&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;更要命的是：如果活儿没拆好，两个 Agent 反复&amp;quot;修正&amp;quot;对方，账单能在你不知情的时候烧掉一大截——这就是下一篇要讲的&amp;quot;死循环&amp;quot;。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;bill-grid reveal&quot;&gt;&lt;div class=&quot;bill-card solo&quot;&gt;&lt;div class=&quot;b-ico&quot;&gt;🐺&lt;/div&gt;&lt;h4&gt;独狼模式&lt;/h4&gt;&lt;p&gt;干一件活：&lt;/p&gt;&lt;div class=&quot;num&quot;&gt;1 次调用&lt;/div&gt;&lt;p style=&quot;font-size:13px;color:var(--ink-soft)&quot;&gt;便宜，但活一多就翻车&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;bill-card team&quot;&gt;&lt;div class=&quot;b-ico&quot;&gt;🏢&lt;/div&gt;&lt;h4&gt;团队模式&lt;/h4&gt;&lt;p&gt;干同一件活：&lt;/p&gt;&lt;div class=&quot;num&quot;&gt;N+ 次调用&lt;/div&gt;&lt;p style=&quot;font-size:13px;color:var(--ink-soft)&quot;&gt;拆活、派单、干活、验收、返工……每一环都算钱&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/section&gt;&lt;section id=&quot;s2&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🚑&lt;/div&gt;&lt;h2&gt;团队翻车三连&lt;span class=&quot;sec-sub&quot;&gt;点开症状，看病理和药方&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;钱是明面上的坑，还有三个&amp;quot;暗坑&amp;quot;，团队一跑起来就往外冒：&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;demo reveal&quot;&gt;&lt;div class=&quot;demo-title&quot;&gt;🚑 翻车诊断台&lt;/div&gt;&lt;div class=&quot;demo-hint&quot;&gt;点任意症状卡，看诊断和药方&lt;/div&gt;&lt;div class=&quot;diag-grid&quot;&gt;&lt;button class=&quot;d-item&quot; data-k=&quot;blame&quot;&gt;&lt;span class=&quot;d-ico&quot;&gt;🤼&lt;/span&gt;&lt;strong&gt;症状 ①：互相甩锅&lt;/strong&gt;环节一多，责任就散&lt;/button&gt;&lt;button class=&quot;d-item&quot; data-k=&quot;loop&quot;&gt;&lt;span class=&quot;d-ico&quot;&gt;🔁&lt;/span&gt;&lt;strong&gt;症状 ②：死循环&lt;/strong&gt;改过来改回去，永远停不下来&lt;/button&gt;&lt;button class=&quot;d-item&quot; data-k=&quot;phone&quot;&gt;&lt;span class=&quot;d-ico&quot;&gt;📞&lt;/span&gt;&lt;strong&gt;症状 ③：传话变味&lt;/strong&gt;传一道丢一点，最后干的活变样&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;d-result&quot; id=&quot;dResult&quot;&gt;&lt;h4&gt;👈 点一个症状开始诊断&lt;/h4&gt;&lt;p style=&quot;font-size:13.5px;color:var(--ink-soft)&quot;&gt;团队翻车不可怕，可怕的是你早知道会翻，却没在设计阶段设护栏。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/section&gt;&lt;section id=&quot;s3&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🧭&lt;/div&gt;&lt;h2&gt;什么时候别上团队&lt;span class=&quot;sec-sub&quot;&gt;先问三个&amp;quot;不&amp;quot;，答上任何一个就别组队&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;避坑的最高境界，是&lt;strong&gt;不上不该上的坑&lt;/strong&gt;。动手前问自己三个&amp;quot;不&amp;quot;：&lt;/p&gt;&lt;p&gt;&lt;strong&gt;① 拆不开&lt;/strong&gt;——活儿是一气呵成的创作，拆了反而割裂，那就单 Agent 一次到位。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;② 不划算&lt;/strong&gt;——一件小事，一个人 30 秒搞定，组队反而要 5 次调用、3 次转述，纯亏。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;③ 不放心&lt;/strong&gt;——涉及&amp;quot;错了要命&amp;quot;又没法设人工节点的，不如自己多盯着，别全交给一群 AI。&lt;/p&gt;&lt;p&gt;一句话总结：&lt;span class=&quot;em&quot;&gt;多 Agent 是工具，不是信仰。该上才上，能省则省。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;quote reveal&quot;&gt;团队的价值，在于它省下的时间，得大于它多花的钱。 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;who&quot;&gt;—— 包工头老张的算账哲学&lt;/span&gt;&lt;/div&gt;&lt;/section&gt;&lt;section id=&quot;s4&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🎓&lt;/div&gt;&lt;h2&gt;毕业大考&lt;span class=&quot;sec-sub&quot;&gt;三道题横跨四篇，答完真毕业&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;demo reveal&quot;&gt;&lt;div class=&quot;demo-title&quot;&gt;🎓 Agent 篇毕业大考&lt;/div&gt;&lt;div class=&quot;demo-hint&quot;&gt;答对三题，授予「AI 包工头」称号&lt;/div&gt;&lt;div class=&quot;quiz&quot;&gt;&lt;div class=&quot;q-item&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;1&lt;/span&gt;多 Agent 的核心，是&amp;quot;人多&amp;quot;还是&amp;quot;分工&amp;quot;？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;b&quot; data-explain=&quot;核心是「分工」。让术业有专攻的 AI 各管一摊，由一个包工头统一调度，才是多 Agent 的精髓——不是单纯堆数量。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 人多，越多越强&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 分工，各司其职&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;q-item&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;2&lt;/span&gt;多 Agent 最大的&amp;quot;隐性成本&amp;quot;是什么？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;a&quot; data-explain=&quot;最大隐性成本是「调用次数 × 单价」——拆活、派单、干活、验收、返工，每一环都要调用大模型花钱。环节越多、返工越多，账单滚得越快。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 调用次数滚出来的账单&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 要买更贵的电脑&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;q-item&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;3&lt;/span&gt;哪种活，最该&amp;quot;别上团队&amp;quot;？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;c&quot; data-explain=&quot;一件小事 30 秒能搞定，组队反而要多调用、多转述，纯亏。多 Agent 是工具不是信仰——该上才上，能省则省。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 出一份带数据核对的行业报告&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 同时写文案 + 查数据 + 配图&lt;/button&gt;&lt;button data-v=&quot;c&quot;&gt;C. 给猫起个名字&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;final-cta reveal&quot;&gt;&lt;div class=&quot;emoji&quot;&gt;🏁&lt;/div&gt;&lt;h2&gt;Agent 篇 · 全系列完&lt;/h2&gt;&lt;p style=&quot;color: var(--ink-soft)&quot;&gt;独狼 → 包工头 → 装修队 → 避坑指南。&lt;br/&gt;四篇读完，你已经从&amp;quot;用单个 AI&amp;quot;进阶到&amp;quot;指挥一支 AI 团队&amp;quot;。&lt;br/&gt;&lt;br/&gt;下一季预告：《AI 打工日志》MCP 篇——&lt;br/&gt;团队有了，电从哪来？（连接外部系统）&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;/main&gt;&lt;script&gt;(function () {
  var root = document.currentScript.closest(&#039;.ai-agent&#039;);
  
  // ---- 滚动显现 ----
  const io = new IntersectionObserver((entries) =&gt; {
    entries.forEach(e =&gt; { if (e.isIntersecting) { e.target.classList.add(&#039;in&#039;); io.unobserve(e.target); } });
  }, { threshold: 0.12 });
  root.querySelectorAll(&#039;.reveal&#039;).forEach(el =&gt; io.observe(el));

  // ---- 目录高亮 ----
  const links = root.querySelectorAll(&#039;.toc a&#039;);
  const secs = [...links].map(a =&gt; root.querySelector(a.getAttribute(&#039;href&#039;)));
  const spy = new IntersectionObserver((entries) =&gt; {
    entries.forEach(e =&gt; {
      if (e.isIntersecting) {
        links.forEach(l =&gt; l.classList.remove(&#039;active&#039;));
        const hit = links.find(l =&gt; l.getAttribute(&#039;href&#039;) === &#039;#&#039; + e.target.id);
        if (hit) hit.classList.add(&#039;active&#039;);
      }
    });
  }, { rootMargin: &#039;-30% 0px -60% 0px&#039; });
  secs.forEach(s =&gt; s &amp;&amp; spy.observe(s));

  // ---- S2：翻车诊断 ----
  const diag = {
    blame: {
      title: &#039;🤼 翻车①：互相甩锅&#039;,
      why: &#039;&lt;b&gt;病理：&lt;/b&gt;环节一多，责任就散。数据错了，写分析的说是查数据的锅，查数据的说是包工头没说清——皮球踢一圈，没人认。&#039;,
      rx: &#039;&lt;b&gt;💊 药方：&lt;/b&gt;让包工头在派单时就写清「谁、交什么、怎么算合格」，每个环节有明确的交付标准，责任一开始就焊死。&#039;
    },
    loop: {
      title: &#039;🔁 翻车②：死循环&#039;,
      why: &#039;&lt;b&gt;病理：&lt;/b&gt;一个改完另一个又改回去，两个 Agent 互相&quot;修正&quot;，永远停不下来，账单却在一直烧。&#039;,
      rx: &#039;&lt;b&gt;💊 药方：&lt;/b&gt;给流程设「最大回合数」——改到第 3 轮还没共识，强制停，交给包工头拍板。死循环必须在设计阶段就掐断。&#039;
    },
    phone: {
      title: &#039;📞 翻车③：传话变味&#039;,
      why: &#039;&lt;b&gt;病理：&lt;/b&gt;环节越多，信息传一道丢一点。包工头听你说一遍，转给工人又转述一遍，最后干的活早不是你要的样子——「传话游戏」的魔咒。&#039;,
      rx: &#039;&lt;b&gt;💊 药方：&lt;/b&gt;关键需求写成文字、一路原样传递，别让 AI 口头转述；重要节点加一次「人工确认」兜底。&#039;
    }
  };
  const dResult = root.querySelector(&#039;#dResult&#039;);
  root.querySelectorAll(&#039;.d-item&#039;).forEach(item =&gt; {
    item.onclick = () =&gt; {
      root.querySelectorAll(&#039;.d-item&#039;).forEach(x =&gt; x.classList.remove(&#039;on&#039;));
      item.classList.add(&#039;on&#039;);
      const d = diag[item.dataset.k];
      dResult.innerHTML = &#039;&lt;h4&gt;&#039; + d.title + &#039;&lt;/h4&gt;&lt;p&gt;&#039; + d.why + &#039;&lt;/p&gt;&lt;p class=&quot;rx&quot;&gt;&#039; + d.rx + &#039;&lt;/p&gt;&#039;;
    };
  });

  // ---- Quiz ----
  root.querySelectorAll(&#039;.quiz .q-item&#039;).forEach(qi =&gt; {
    const opts = qi.querySelector(&#039;.opts&#039;);
    const explain = qi.querySelector(&#039;.q-explain&#039;);
    const answer = opts.dataset.answer;
    let done = false;
    opts.querySelectorAll(&#039;button&#039;).forEach(btn =&gt; {
      btn.onclick = () =&gt; {
        if (done) return;
        done = true;
        const pick = btn.dataset.v;
        opts.querySelectorAll(&#039;button&#039;).forEach(b =&gt; {
          if (b.dataset.v === answer) b.classList.add(&#039;right&#039;);
          else if (b === btn) b.classList.add(&#039;wrong&#039;);
        });
        explain.textContent = opts.dataset.explain;
        explain.classList.add(&#039;show&#039;);
      };
    });
  });

  // 兜底：2 秒后强制显示所有 reveal 元素，避免任何环境下内容被隐藏
  setTimeout(function () {
    root.querySelectorAll(&#039;.reveal&#039;).forEach(function (el) { el.classList.add(&#039;in&#039;); });
  }, 2000);
})();&lt;/script&gt;&lt;/div&gt;&lt;!-- AI 打工日志 · Agent 篇 · 第4篇 · 结束 --&gt;</description><pubDate>Wed, 23 Sep 2026 10:22:33 +0800</pubDate></item><item><title>团队分工：装修队是怎么干活的 | AI 打工日志·Agent篇③</title><link>https://imwen.com/post/391.html</link><description>&lt;!-- AI 打工日志 · Agent 篇 · 第3篇 · 交互完整版（样式已隔离，勿在可视化编辑器中编辑源码模式之外的内容） --&gt;&lt;div class=&quot;ai-agent ai-agent-3&quot;&gt;&lt;style&gt;.ai-agent-3 {
    --primary: #C92A2A;
    --primary-light: #FBE9E9;
    --primary-soft: #F5C9C9;
    --primary-deep: #A61E1E;
    --accent: #F76707;
    --bg: #FAF7F2;
    --card: #FFFFFF;
    --ink: #2B2724;
    --ink-soft: #6B6259;
    --line: #EDE5DA;
    --radius: 20px;
    --serif: &quot;Songti SC&quot;, &quot;STSong&quot;, &quot;SimSun&quot;, Georgia, serif;
    --sans: -apple-system, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Segoe UI&quot;, sans-serif;
  }
  .ai-agent-3 * { margin: 0; padding: 0; box-sizing: border-box; }
  .ai-agent-3 { font-family: var(--sans); background: var(--bg); color: var(--ink); line-height: 1.85; font-size: 17px; }
  .ai-agent-3 .wrap { max-width: 760px; margin: 0 auto; padding: 0 22px; }
  .ai-agent-3 .hero { background: linear-gradient(160deg, var(--primary) 0%, var(--accent) 100%); color: #fff; padding: 72px 0 88px; position: relative; overflow: hidden; }
  .ai-agent-3 .hero::after { content: &quot;&quot;; position: absolute; bottom: -2px; left: 0; right: 0; height: 44px; background: var(--bg); border-radius: 44px 44px 0 0; }
  .ai-agent-3 .series-tag { display: inline-block; background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.4); border-radius: 999px; padding: 5px 16px; font-size: 13px; letter-spacing: 2px; margin-bottom: 26px; }
  .ai-agent-3 .hero .ep { font-size: 14px; letter-spacing: 6px; opacity: .85; margin-bottom: 10px; }
  .ai-agent-3 .hero h1 { font-family: var(--serif); font-size: clamp(30px, 5.6vw, 46px); line-height: 1.35; font-weight: 700; margin-bottom: 18px; }
  .ai-agent-3 .hero .sub { font-size: 18px; opacity: .92; }
  .ai-agent-3 .hero .meta { margin-top: 30px; font-size: 13px; opacity: .75; }
  .ai-agent-3 .toc { position: sticky; top: 0; z-index: 50; background: rgba(250,247,242,.92); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); padding: 10px 0; }
  .ai-agent-3 .toc .wrap { display: flex; gap: 8px; overflow-x: auto; white-space: nowrap; scrollbar-width: none; }
  .ai-agent-3 .toc .wrap::-webkit-scrollbar { display: none; }
  .ai-agent-3 .toc a { flex: 0 0 auto; text-decoration: none; color: var(--ink-soft); font-size: 14px; padding: 6px 14px; border-radius: 999px; border: 1px solid transparent; transition: all .25s; }
  .ai-agent-3 .toc a:hover, .ai-agent-3 .toc a.active { color: var(--primary-deep); background: var(--primary-soft); border-color: var(--primary-soft); }
  .ai-agent-3 section { padding: 64px 0 8px; }
  .ai-agent-3 .sec-head { display: flex; align-items: center; gap: 14px; margin-bottom: 26px; }
  .ai-agent-3 .sec-num { width: 52px; height: 52px; flex: 0 0 52px; border-radius: 16px; background: var(--primary-soft); display: flex; align-items: center; justify-content: center; font-size: 26px; }
  .ai-agent-3 .sec-head h2 { font-family: var(--serif); font-size: clamp(22px, 3.6vw, 28px); line-height: 1.4; }
  .ai-agent-3 .sec-head .sec-sub { font-size: 13px; color: var(--ink-soft); display: block; font-family: var(--sans); font-weight: 400; margin-top: 2px; }
  .ai-agent-3 .card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 28px 26px; margin-bottom: 22px; box-shadow: 0 2px 10px rgba(43,39,36,.04); }
  .ai-agent-3 p + p { margin-top: 16px; }
  .ai-agent-3 .card h3 { font-size: 18px; margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }
  .ai-agent-3 .em { color: var(--primary-deep); font-weight: 700; }
  .ai-agent-3 strong { font-weight: 700; }
  .ai-agent-3 .quote { margin: 34px 0; background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%); color: #fff; border-radius: var(--radius); padding: 34px 30px; font-family: var(--serif); font-size: clamp(19px, 3vw, 23px); line-height: 1.7; position: relative; }
  .ai-agent-3 .quote::before { content: &quot;❝&quot;; position: absolute; top: 10px; left: 18px; font-size: 44px; opacity: .3; }
  .ai-agent-3 .quote .who { display: block; margin-top: 14px; font-family: var(--sans); font-size: 13px; opacity: .8; }
  .ai-agent-3 .demo { background: var(--card); border: 2px dashed var(--primary); border-radius: var(--radius); padding: 30px 26px; margin: 30px 0; }
  .ai-agent-3 .demo-title { text-align: center; font-weight: 700; font-size: 16px; color: var(--primary-deep); letter-spacing: 1px; margin-bottom: 6px; }
  .ai-agent-3 .demo-hint { text-align: center; font-size: 13px; color: var(--ink-soft); margin-bottom: 20px; }
  .ai-agent-3 .mode-bar { display: flex; justify-content: center; gap: 10px; margin-bottom: 20px; flex-wrap: wrap; }
  .ai-agent-3 .mode-bar button { font-family: var(--sans); font-size: 14.5px; font-weight: 600; padding: 9px 16px; border-radius: 999px; border: 1.5px solid var(--line); background: #fff; color: var(--ink-soft); cursor: pointer; transition: all .2s; }
  .ai-agent-3 .mode-bar button.on { border-color: var(--primary); background: var(--primary); color: #fff; box-shadow: 0 4px 14px rgba(201,42,42,.28); }
  .ai-agent-3 .flow-box { border-radius: 16px; padding: 20px 18px; background: var(--primary-light); border: 1px solid var(--primary-soft); min-height: 180px; }
  .ai-agent-3 .flow-box h5 { color: var(--primary-deep); font-size: 15.5px; margin-bottom: 10px; }
  .ai-agent-3 .flow-steps { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
  .ai-agent-3 .flow-node { background: #fff; border: 1.5px solid var(--primary-soft); border-radius: 12px; padding: 8px 14px; font-size: 13.5px; font-weight: 600; color: var(--ink); }
  .ai-agent-3 .flow-node.boss { background: var(--primary); color: #fff; border-color: var(--primary); }
  .ai-agent-3 .flow-node.human { background: #FFF3BF; border-color: #F59F00; color: #9C5A00; }
  .ai-agent-3 .flow-arrow { color: var(--primary-deep); font-weight: 700; font-size: 16px; }
  .ai-agent-3 .flow-note { margin-top: 14px; font-size: 13.5px; color: var(--ink-soft); line-height: 1.7; }
  .ai-agent-3 .quiz { margin: 26px 0 6px; }
  .ai-agent-3 .q-item { margin-bottom: 22px; }
  .ai-agent-3 .q-item .q { font-weight: 700; font-size: 16px; margin-bottom: 12px; }
  .ai-agent-3 .q-item .q .qn { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 8px; background: var(--primary); color: #fff; font-size: 14px; margin-right: 8px; vertical-align: -5px; }
  .ai-agent-3 .opts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .ai-agent-3 .opts button { font-family: var(--sans); font-size: 14.5px; text-align: left; padding: 12px 16px; border-radius: 12px; border: 1.5px solid var(--line); background: #fff; color: var(--ink); cursor: pointer; transition: all .2s; line-height: 1.6; }
  .ai-agent-3 .opts button:hover { border-color: var(--primary); }
  .ai-agent-3 .opts button.right { border-color: #2B8A3E; background: #EBF7EE; color: #1B5E2B; font-weight: 700; }
  .ai-agent-3 .opts button.wrong { border-color: #C92A2A; background: #FFF0F0; color: #A61E1E; }
  .ai-agent-3 .q-explain { margin-top: 10px; font-size: 13.5px; color: var(--ink-soft); background: var(--primary-light); border-radius: 10px; padding: 10px 14px; display: none; }
  .ai-agent-3 .q-explain.show { display: block; }
  .ai-agent-3 .final-cta { margin: 50px 0 10px; text-align: center; padding: 44px 26px; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); }
  .ai-agent-3 .final-cta .emoji { font-size: 40px; }
  .ai-agent-3 .final-cta h2 { font-family: var(--serif); font-size: 24px; margin: 12px 0 10px; }
  .ai-agent-3 footer { text-align: center; padding: 30px 0 50px; color: var(--ink-soft); font-size: 13px; }
  .ai-agent-3 .reveal { opacity: 0; transform: translateY(26px); transition: all .7s cubic-bezier(.22,.61,.36,1); }
  .ai-agent-3 .reveal.in { opacity: 1; transform: none; }
  @media (max-width: 560px) { body { font-size: 16px; } .opts { grid-template-columns: 1fr; } }


  /* === Z-Blog 正文适配层 === */
  .ai-agent { font-size: 17px; line-height: 1.85; color: #2B2724; }
  .ai-agent .tri-banner { text-align: center; padding: 8px 0 4px; margin-bottom: 18px; }
  .ai-agent .tri-banner .tri-title {
    font-family: &quot;Songti SC&quot;, &quot;STSong&quot;, &quot;SimSun&quot;, Georgia, serif;
    font-size: clamp(22px, 3.4vw, 30px); line-height: 1.45; margin: 16px 0 8px; font-weight: 700;
  }
  .ai-agent .tri-banner .tri-sub { font-size: 15px; color: #6B6259; }
  .ai-agent .tri-banner .series-tag {
    background: var(--primary-soft); border: 1px solid var(--primary);
    color: var(--primary-deep); margin-bottom: 0;
  }
  .ai-agent main { display: block; }&lt;/style&gt;&lt;header class=&quot;tri-banner&quot;&gt;&lt;span class=&quot;series-tag&quot;&gt;AI 打工日志 · Agent 篇&lt;/span&gt;
 &amp;nbsp;&lt;h2 class=&quot;tri-title&quot;&gt;《团队分工：装修队是怎么干活的》&lt;/h2&gt;&lt;p class=&quot;tri-sub&quot;&gt;木工电工油漆工，各司其职 · 阅读约 8 分钟 · 无需技术背景&lt;/p&gt;&lt;p class=&quot;tri-sub&quot;&gt;&lt;img src=&quot;https://imwen.com/zb_users/upload/2026/09/202609221790041328791485.jpg&quot; alt=&quot;agent-cover-3.jpg&quot; width=&quot;768&quot; height=&quot;512&quot; border=&quot;0&quot; vspace=&quot;0&quot; title=&quot;agent-cover-3.jpg&quot; style=&quot;width: 768px; height: 512px;&quot;/&gt;&lt;/p&gt;&lt;/header&gt;&lt;main class=&quot;wrap&quot;&gt;&lt;section id=&quot;s1&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🔨&lt;/div&gt;&lt;h2&gt;装修队的分工哲学&lt;span class=&quot;sec-sub&quot;&gt;没有一个全能师傅，只有一支配合默契的队伍&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;上一篇我们请来了包工头。这一篇回答那个更实在的问题：&lt;span class=&quot;em&quot;&gt;工人和工头具体怎么配合，才能把活干顺？&lt;/span&gt;&lt;/p&gt;&lt;p&gt;装修队给了我们最朴素的答案。你从来没见过哪个装修队是&amp;quot;一个师傅从头干到尾&amp;quot;——木工打完柜子就走，电工接着布线，油漆工最后进场收尾。每个人只干自己那一段，但&lt;strong&gt;顺序、节奏、交接&lt;/strong&gt;都安排得明明白白。&lt;/p&gt;&lt;p&gt;AI 团队的配合，本质和装修队一模一样：&lt;span class=&quot;em&quot;&gt;把活拆成段，按依赖关系排好序，让对的人在对的时点进场。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;quote reveal&quot;&gt;把活儿拆给最擅长的人，把顺序排给最需要的人。 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;who&quot;&gt;—— 装修队长的口头禅&lt;/span&gt;&lt;/div&gt;&lt;/section&gt;&lt;section id=&quot;s2&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🛠️&lt;/div&gt;&lt;h2&gt;三种协作模式&lt;span class=&quot;sec-sub&quot;&gt;串行、并行、审批，各有各的适用场景&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;多 Agent 协作，常见三种&amp;quot;排法&amp;quot;。别被名字吓到，你只要记住它们对应装修队里的哪种干法就行：&lt;/p&gt;&lt;h3&gt;① 流水线模式（串行）&lt;/h3&gt;&lt;p&gt;像工厂流水线，&lt;strong&gt;一步做完下一步才开工&lt;/strong&gt;。查完数据 → 写分析 → 配图 → 验收。前一步的输出是后一步的输入，环环相扣。稳，但慢，一步卡住全线停摆。&lt;/p&gt;&lt;h3&gt;② 专家团模式（并行）&lt;/h3&gt;&lt;p&gt;几个人&lt;strong&gt;同时开工，各干各的&lt;/strong&gt;，最后统一拼装。查数据和写文案可以一起进行，谁也不用等谁。快，但必须有个&amp;quot;拼图的人&amp;quot;最后把它们合到一起。&lt;/p&gt;&lt;h3&gt;③ 审批制模式（人工把关）&lt;/h3&gt;&lt;p&gt;在关键节点&lt;strong&gt;停下来等你拍板&lt;/strong&gt;。AI 干到&amp;quot;写完了，先别发&amp;quot;，你点头它才继续。适合&amp;quot;错了要命&amp;quot;的活，比如对外公告、工资核算。&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;section id=&quot;s3&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🎮&lt;/div&gt;&lt;h2&gt;排兵布阵：亲手试一把&lt;span class=&quot;sec-sub&quot;&gt;点按钮，看看三种模式是怎么排的&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;demo reveal&quot;&gt;&lt;div class=&quot;demo-title&quot;&gt;🎮 排兵布阵模拟器&lt;/div&gt;&lt;div class=&quot;demo-hint&quot;&gt;切换三种协作模式，看&amp;quot;包工头&amp;quot;怎么排工&lt;/div&gt;&lt;div class=&quot;mode-bar&quot;&gt;&lt;button data-m=&quot;pipe&quot; class=&quot;on&quot;&gt;🏭 流水线&lt;/button&gt;&lt;button data-m=&quot;expert&quot;&gt;👥 专家团&lt;/button&gt;&lt;button data-m=&quot;audit&quot;&gt;🛡️ 审批制&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;flow-box&quot; id=&quot;flowBox&quot;&gt;&lt;h5&gt;🏭 流水线模式（串行）&lt;/h5&gt;&lt;div class=&quot;flow-steps&quot;&gt;&lt;span class=&quot;flow-node boss&quot;&gt;包工头&lt;/span&gt;&lt;span class=&quot;flow-arrow&quot;&gt;→&lt;/span&gt;&lt;span class=&quot;flow-node&quot;&gt;查数据&lt;/span&gt;&lt;span class=&quot;flow-arrow&quot;&gt;→&lt;/span&gt;&lt;span class=&quot;flow-node&quot;&gt;写分析&lt;/span&gt;&lt;span class=&quot;flow-arrow&quot;&gt;→&lt;/span&gt;&lt;span class=&quot;flow-node&quot;&gt;配图&lt;/span&gt;&lt;span class=&quot;flow-arrow&quot;&gt;→&lt;/span&gt;&lt;span class=&quot;flow-node&quot;&gt;验收&lt;/span&gt;&lt;span class=&quot;flow-arrow&quot;&gt;→&lt;/span&gt;&lt;span class=&quot;flow-node&quot;&gt;交活&lt;/span&gt;&lt;/div&gt;&lt;p class=&quot;flow-note&quot;&gt;一步做完下一步才开工，像工厂流水线。适合步骤之间有先后依赖的活——前一步的输出，是后一步的输入。稳，但慢，一步卡住全线停摆。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/section&gt;&lt;section id=&quot;s4&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🧠&lt;/div&gt;&lt;h2&gt;怎么选：看三个信号&lt;span class=&quot;sec-sub&quot;&gt;不看心情，看依赖、看风险、看预算&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;三种模式没有绝对好坏，只有&amp;quot;合不合适&amp;quot;。选的时候看三个信号：&lt;/p&gt;&lt;p&gt;&lt;strong&gt;① 看依赖&lt;/strong&gt;——后一步必须等前一步，就用流水线；各步骤互不相干，就上专家团并行。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;② 看风险&lt;/strong&gt;——错了会出大事的（发公告、算工资），哪怕慢，也要插个&amp;quot;审批制&amp;quot;人工节点。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;③ 看预算&lt;/strong&gt;——并行虽快，但几个人同时开工，账单也同时来。预算紧张时，串行更省。&lt;/p&gt;&lt;p&gt;这三个信号，下一篇我们展开讲——因为&lt;span class=&quot;em&quot;&gt;多 Agent 最大的坑，恰恰就藏在&amp;quot;人多&amp;quot;这两个字里&lt;/span&gt;。&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;section id=&quot;s5&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🎯&lt;/div&gt;&lt;h2&gt;三题小测&lt;span class=&quot;sec-sub&quot;&gt;答完，你就是会排兵布阵的工头了&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;demo reveal&quot;&gt;&lt;div class=&quot;demo-title&quot;&gt;🎯 第三篇小测&lt;/div&gt;&lt;div class=&quot;demo-hint&quot;&gt;三道题，测测你会不会排工&lt;/div&gt;&lt;div class=&quot;quiz&quot;&gt;&lt;div class=&quot;q-item&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;1&lt;/span&gt;「查数据 → 写分析 → 配图」这种有先后依赖的活，最适合哪种模式？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;a&quot; data-explain=&quot;步骤之间有先后依赖（后一步要用前一步的输出），最适合流水线串行。一步做完下一步才开工，环环相扣。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 流水线（串行）&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 专家团（并行）&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;q-item&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;2&lt;/span&gt;查数据和写文案可以同时干，最适合哪种模式？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;b&quot; data-explain=&quot;两个步骤互不依赖，可以同时开工，最后统一拼装——这正是专家团并行模式的优势：快。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 流水线（串行）&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 专家团（并行）&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;q-item&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;3&lt;/span&gt;「对外发布公告」这类错了要命的活，该加什么？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;c&quot; data-explain=&quot;错了会出大事的活，再快也要在关键节点插「审批制」人工节点——AI 干到「先别发」，你点头才继续。慢一点，但稳得放心。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 再多招几个 AI 一起写&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 让 AI 全自动发出去&lt;/button&gt;&lt;button data-v=&quot;c&quot;&gt;C. 插一个「人工确认」节点&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;final-cta reveal&quot;&gt;&lt;div class=&quot;emoji&quot;&gt;⚠️&lt;/div&gt;&lt;h2&gt;分工学会了，但团队也有坑&lt;/h2&gt;&lt;p style=&quot;color: var(--ink-soft)&quot;&gt;人多力量大，人多也麻烦。&lt;br/&gt;&lt;br/&gt;下一篇：《多 Agent 避坑：团队不是万能的》&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;/main&gt;&lt;script&gt;(function () {
  var root = document.currentScript.closest(&#039;.ai-agent&#039;);
  
  // ---- 滚动显现 ----
  const io = new IntersectionObserver((entries) =&gt; {
    entries.forEach(e =&gt; { if (e.isIntersecting) { e.target.classList.add(&#039;in&#039;); io.unobserve(e.target); } });
  }, { threshold: 0.12 });
  root.querySelectorAll(&#039;.reveal&#039;).forEach(el =&gt; io.observe(el));

  // ---- 目录高亮 ----
  const links = root.querySelectorAll(&#039;.toc a&#039;);
  const secs = [...links].map(a =&gt; root.querySelector(a.getAttribute(&#039;href&#039;)));
  const spy = new IntersectionObserver((entries) =&gt; {
    entries.forEach(e =&gt; {
      if (e.isIntersecting) {
        links.forEach(l =&gt; l.classList.remove(&#039;active&#039;));
        const hit = links.find(l =&gt; l.getAttribute(&#039;href&#039;) === &#039;#&#039; + e.target.id);
        if (hit) hit.classList.add(&#039;active&#039;);
      }
    });
  }, { rootMargin: &#039;-30% 0px -60% 0px&#039; });
  secs.forEach(s =&gt; s &amp;&amp; spy.observe(s));

  // ---- S3：排兵布阵模拟 ----
  const flows = {
    pipe: {
      title: &#039;🏭 流水线模式（串行）&#039;,
      nodes: [&#039;包工头&#039;,&#039;查数据&#039;,&#039;写分析&#039;,&#039;配图&#039;,&#039;验收&#039;,&#039;交活&#039;],
      note: &#039;一步做完下一步才开工，像工厂流水线。适合步骤之间有先后依赖的活——前一步的输出，是后一步的输入。稳，但慢，一步卡住全线停摆。&#039;
    },
    expert: {
      title: &#039;👥 专家团模式（并行）&#039;,
      nodes: [&#039;包工头&#039;,&#039;查数据&#039;,&#039;写文案&#039;,&#039;做PPT&#039;,&#039;验收&#039;,&#039;交活&#039;],
      note: &#039;几个人同时开工，各干各的，最后统一拼装。适合互不依赖的活——查数据和写文案可以同时进行。快，但要有个人最后&quot;拼图&quot;。&#039;
    },
    audit: {
      title: &#039;🛡️ 审批制模式（人工把关）&#039;,
      nodes: [&#039;包工头&#039;,&#039;查数据&#039;,&#039;写分析&#039;,&#039;你(确认)&#039;,&#039;定稿&#039;,&#039;交活&#039;],
      note: &#039;关键节点停下来等你拍板。适合&quot;错了要命&quot;的活——比如发对外公告、算工资。慢一点，但稳得放心。&#039;
    }
  };
  const flowBox = root.querySelector(&#039;#flowBox&#039;);
  root.querySelectorAll(&#039;.mode-bar button&#039;).forEach(btn =&gt; {
    btn.onclick = () =&gt; {
      root.querySelectorAll(&#039;.mode-bar button&#039;).forEach(x =&gt; x.classList.remove(&#039;on&#039;));
      btn.classList.add(&#039;on&#039;);
      const f = flows[btn.dataset.m];
      const nodes = f.nodes.map(n =&gt; {
        let cls = &#039;flow-node&#039;;
        if (n === &#039;包工头&#039;) cls += &#039; boss&#039;;
        if (n.indexOf(&#039;你&#039;) === 0) cls += &#039; human&#039;;
        return &#039;&lt;span class=&quot;&#039; + cls + &#039;&quot;&gt;&#039; + n + &#039;&lt;/span&gt;&#039;;
      }).join(&#039;&lt;span class=&quot;flow-arrow&quot;&gt;→&lt;/span&gt;&#039;);
      flowBox.innerHTML = &#039;&lt;h5&gt;&#039; + f.title + &#039;&lt;/h5&gt;&lt;div class=&quot;flow-steps&quot;&gt;&#039; + nodes + &#039;&lt;/div&gt;&lt;p class=&quot;flow-note&quot;&gt;&#039; + f.note + &#039;&lt;/p&gt;&#039;;
    };
  });

  // ---- Quiz ----
  root.querySelectorAll(&#039;.quiz .q-item&#039;).forEach(qi =&gt; {
    const opts = qi.querySelector(&#039;.opts&#039;);
    const explain = qi.querySelector(&#039;.q-explain&#039;);
    const answer = opts.dataset.answer;
    let done = false;
    opts.querySelectorAll(&#039;button&#039;).forEach(btn =&gt; {
      btn.onclick = () =&gt; {
        if (done) return;
        done = true;
        const pick = btn.dataset.v;
        opts.querySelectorAll(&#039;button&#039;).forEach(b =&gt; {
          if (b.dataset.v === answer) b.classList.add(&#039;right&#039;);
          else if (b === btn) b.classList.add(&#039;wrong&#039;);
        });
        explain.textContent = opts.dataset.explain;
        explain.classList.add(&#039;show&#039;);
      };
    });
  });

  // 兜底：2 秒后强制显示所有 reveal 元素，避免任何环境下内容被隐藏
  setTimeout(function () {
    root.querySelectorAll(&#039;.reveal&#039;).forEach(function (el) { el.classList.add(&#039;in&#039;); });
  }, 2000);
})();&lt;/script&gt;&lt;/div&gt;&lt;!-- AI 打工日志 · Agent 篇 · 第3篇 · 结束 --&gt;</description><pubDate>Tue, 22 Sep 2026 07:22:33 +0800</pubDate></item><item><title>包工头：给 AI 团队请个项目经理 | AI 打工日志·Agent篇②</title><link>https://imwen.com/post/390.html</link><description>&lt;!-- AI 打工日志 · Agent 篇 · 第2篇 · 交互完整版（样式已隔离，勿在可视化编辑器中编辑源码模式之外的内容） --&gt;&lt;div class=&quot;ai-agent ai-agent-2&quot;&gt;&lt;style&gt;.ai-agent-2 {
    --primary: #3B5BDB;
    --primary-light: #E7EBFC;
    --primary-soft: #D3DBF8;
    --primary-deep: #2B3FAD;
    --accent: #748FFC;
    --bg: #FAF7F2;
    --card: #FFFFFF;
    --ink: #2B2724;
    --ink-soft: #6B6259;
    --line: #EDE5DA;
    --radius: 20px;
    --serif: &quot;Songti SC&quot;, &quot;STSong&quot;, &quot;SimSun&quot;, Georgia, serif;
    --sans: -apple-system, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Segoe UI&quot;, sans-serif;
  }
  .ai-agent-2 * { margin: 0; padding: 0; box-sizing: border-box; }
  .ai-agent-2 { font-family: var(--sans); background: var(--bg); color: var(--ink); line-height: 1.85; font-size: 17px; }
  .ai-agent-2 .wrap { max-width: 760px; margin: 0 auto; padding: 0 22px; }
  .ai-agent-2 .hero { background: linear-gradient(160deg, var(--primary) 0%, var(--accent) 100%); color: #fff; padding: 72px 0 88px; position: relative; overflow: hidden; }
  .ai-agent-2 .hero::after { content: &quot;&quot;; position: absolute; bottom: -2px; left: 0; right: 0; height: 44px; background: var(--bg); border-radius: 44px 44px 0 0; }
  .ai-agent-2 .series-tag { display: inline-block; background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.4); border-radius: 999px; padding: 5px 16px; font-size: 13px; letter-spacing: 2px; margin-bottom: 26px; }
  .ai-agent-2 .hero .ep { font-size: 14px; letter-spacing: 6px; opacity: .85; margin-bottom: 10px; }
  .ai-agent-2 .hero h1 { font-family: var(--serif); font-size: clamp(30px, 5.6vw, 46px); line-height: 1.35; font-weight: 700; margin-bottom: 18px; }
  .ai-agent-2 .hero .sub { font-size: 18px; opacity: .92; }
  .ai-agent-2 .hero .meta { margin-top: 30px; font-size: 13px; opacity: .75; }
  .ai-agent-2 .toc { position: sticky; top: 0; z-index: 50; background: rgba(250,247,242,.92); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); padding: 10px 0; }
  .ai-agent-2 .toc .wrap { display: flex; gap: 8px; overflow-x: auto; white-space: nowrap; scrollbar-width: none; }
  .ai-agent-2 .toc .wrap::-webkit-scrollbar { display: none; }
  .ai-agent-2 .toc a { flex: 0 0 auto; text-decoration: none; color: var(--ink-soft); font-size: 14px; padding: 6px 14px; border-radius: 999px; border: 1px solid transparent; transition: all .25s; }
  .ai-agent-2 .toc a:hover, .ai-agent-2 .toc a.active { color: var(--primary-deep); background: var(--primary-soft); border-color: var(--primary-soft); }
  .ai-agent-2 section { padding: 64px 0 8px; }
  .ai-agent-2 .sec-head { display: flex; align-items: center; gap: 14px; margin-bottom: 26px; }
  .ai-agent-2 .sec-num { width: 52px; height: 52px; flex: 0 0 52px; border-radius: 16px; background: var(--primary-soft); display: flex; align-items: center; justify-content: center; font-size: 26px; }
  .ai-agent-2 .sec-head h2 { font-family: var(--serif); font-size: clamp(22px, 3.6vw, 28px); line-height: 1.4; }
  .ai-agent-2 .sec-head .sec-sub { font-size: 13px; color: var(--ink-soft); display: block; font-family: var(--sans); font-weight: 400; margin-top: 2px; }
  .ai-agent-2 .card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 28px 26px; margin-bottom: 22px; box-shadow: 0 2px 10px rgba(43,39,36,.04); }
  .ai-agent-2 p + p { margin-top: 16px; }
  .ai-agent-2 .card h3 { font-size: 18px; margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }
  .ai-agent-2 .em { color: var(--primary-deep); font-weight: 700; }
  .ai-agent-2 strong { font-weight: 700; }
  .ai-agent-2 .quote { margin: 34px 0; background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%); color: #fff; border-radius: var(--radius); padding: 34px 30px; font-family: var(--serif); font-size: clamp(19px, 3vw, 23px); line-height: 1.7; position: relative; }
  .ai-agent-2 .quote::before { content: &quot;❝&quot;; position: absolute; top: 10px; left: 18px; font-size: 44px; opacity: .3; }
  .ai-agent-2 .quote .who { display: block; margin-top: 14px; font-family: var(--sans); font-size: 13px; opacity: .8; }
  .ai-agent-2 .demo { background: var(--card); border: 2px dashed var(--primary); border-radius: var(--radius); padding: 30px 26px; margin: 30px 0; }
  .ai-agent-2 .demo-title { text-align: center; font-weight: 700; font-size: 16px; color: var(--primary-deep); letter-spacing: 1px; margin-bottom: 6px; }
  .ai-agent-2 .demo-hint { text-align: center; font-size: 13px; color: var(--ink-soft); margin-bottom: 20px; }
  .ai-agent-2 .role-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 22px 0; }
  .ai-agent-2 .role-card { border-radius: 16px; padding: 22px 20px; font-size: 14.5px; }
  .ai-agent-2 .role-card.boss { background: var(--primary-light); border: 1.5px solid var(--primary-soft); }
  .ai-agent-2 .role-card.worker { background: #F6F3F0; border: 1px solid var(--line); }
  .ai-agent-2 .role-card .r-ico { font-size: 30px; }
  .ai-agent-2 .role-card h4 { font-size: 16px; margin: 8px 0 6px; }
  .ai-agent-2 .role-card.boss h4 { color: var(--primary-deep); }
  .ai-agent-2 .role-card ul { padding-left: 18px; }
  .ai-agent-2 .role-card li { margin: 4px 0; }
  .ai-agent-2 .step-list { list-style: none; }
  .ai-agent-2 .step-list li { display: flex; gap: 12px; align-items: flex-start; padding: 12px 0; border-bottom: 1px dashed var(--line); }
  .ai-agent-2 .step-list li:last-child { border-bottom: none; }
  .ai-agent-2 .step-num { flex: 0 0 30px; height: 30px; border-radius: 10px; background: var(--primary); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 14px; }
  .ai-agent-2 .step-list li b { color: var(--primary-deep); display: block; }
  .ai-agent-2 .quiz { margin: 26px 0 6px; }
  .ai-agent-2 .q-item { margin-bottom: 22px; }
  .ai-agent-2 .q-item .q { font-weight: 700; font-size: 16px; margin-bottom: 12px; }
  .ai-agent-2 .q-item .q .qn { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 8px; background: var(--primary); color: #fff; font-size: 14px; margin-right: 8px; vertical-align: -5px; }
  .ai-agent-2 .opts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .ai-agent-2 .opts button { font-family: var(--sans); font-size: 14.5px; text-align: left; padding: 12px 16px; border-radius: 12px; border: 1.5px solid var(--line); background: #fff; color: var(--ink); cursor: pointer; transition: all .2s; line-height: 1.6; }
  .ai-agent-2 .opts button:hover { border-color: var(--primary); }
  .ai-agent-2 .opts button.right { border-color: #2B8A3E; background: #EBF7EE; color: #1B5E2B; font-weight: 700; }
  .ai-agent-2 .opts button.wrong { border-color: #C92A2A; background: #FFF0F0; color: #A61E1E; }
  .ai-agent-2 .q-explain { margin-top: 10px; font-size: 13.5px; color: var(--ink-soft); background: var(--primary-light); border-radius: 10px; padding: 10px 14px; display: none; }
  .ai-agent-2 .q-explain.show { display: block; }
  .ai-agent-2 .final-cta { margin: 50px 0 10px; text-align: center; padding: 44px 26px; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); }
  .ai-agent-2 .final-cta .emoji { font-size: 40px; }
  .ai-agent-2 .final-cta h2 { font-family: var(--serif); font-size: 24px; margin: 12px 0 10px; }
  .ai-agent-2 footer { text-align: center; padding: 30px 0 50px; color: var(--ink-soft); font-size: 13px; }
  .ai-agent-2 .reveal { opacity: 0; transform: translateY(26px); transition: all .7s cubic-bezier(.22,.61,.36,1); }
  .ai-agent-2 .reveal.in { opacity: 1; transform: none; }
  @media (max-width: 560px) { body { font-size: 16px; } .role-row, .opts { grid-template-columns: 1fr; } }


  /* === Z-Blog 正文适配层 === */
  .ai-agent { font-size: 17px; line-height: 1.85; color: #2B2724; }
  .ai-agent .tri-banner { text-align: center; padding: 8px 0 4px; margin-bottom: 18px; }
  .ai-agent .tri-banner .tri-title {
    font-family: &quot;Songti SC&quot;, &quot;STSong&quot;, &quot;SimSun&quot;, Georgia, serif;
    font-size: clamp(22px, 3.4vw, 30px); line-height: 1.45; margin: 16px 0 8px; font-weight: 700;
  }
  .ai-agent .tri-banner .tri-sub { font-size: 15px; color: #6B6259; }
  .ai-agent .tri-banner .series-tag {
    background: var(--primary-soft); border: 1px solid var(--primary);
    color: var(--primary-deep); margin-bottom: 0;
  }
  .ai-agent main { display: block; }&lt;/style&gt;&lt;header class=&quot;tri-banner&quot;&gt;&lt;span class=&quot;series-tag&quot;&gt;AI 打工日志 · Agent 篇&lt;/span&gt;
 &amp;nbsp;&lt;h2 class=&quot;tri-title&quot;&gt;《包工头：给 AI 团队请个项目经理》&lt;/h2&gt;&lt;p class=&quot;tri-sub&quot;&gt;会派活、会验收、会兜底 · 阅读约 8 分钟 · 无需技术背景&lt;/p&gt;&lt;p class=&quot;tri-sub&quot;&gt;&lt;img src=&quot;https://imwen.com/zb_users/upload/2026/09/202609201789871602160769.jpg&quot; alt=&quot;agent-cover-2.jpg&quot; width=&quot;768&quot; height=&quot;512&quot; border=&quot;0&quot; vspace=&quot;0&quot; title=&quot;agent-cover-2.jpg&quot; style=&quot;width: 768px; height: 512px;&quot;/&gt;&lt;/p&gt;&lt;/header&gt;&lt;main class=&quot;wrap&quot;&gt;&lt;section id=&quot;s1&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;👷&lt;/div&gt;&lt;h2&gt;人齐了，工地却乱了&lt;span class=&quot;sec-sub&quot;&gt;一群能干的 AI，没有一个会派活的&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;上一篇结尾，你把团队招齐了：会写文案的、会查数据的、会验收挑刺的，个个都是好手。你把活儿丢进去，结果——&lt;span class=&quot;em&quot;&gt;乱成一锅粥&lt;/span&gt;。&lt;/p&gt;&lt;p&gt;写文案的和查数据的谁也不理谁，各自闷头干；验收的抓不到人验收，对着空气挑刺；一份报告，三个 AI 各写了一版，格式还不一样。你这才意识到：光有人不行，得有个&lt;span class=&quot;em&quot;&gt;派活的人&lt;/span&gt;。&lt;/p&gt;&lt;p&gt;装修队里，这个人叫包工头；AI 团队里，它叫&lt;strong&gt;编排者（Orchestrator）&lt;/strong&gt;——它是那个&amp;quot;不干具体活，只负责把活安排明白&amp;quot;的 AI。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;quote reveal&quot;&gt;团队里最值钱的不是最能干的，是最会派活的。 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;who&quot;&gt;—— 装修界流传的一句话&lt;/span&gt;&lt;/div&gt;&lt;/section&gt;&lt;section id=&quot;s2&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🧭&lt;/div&gt;&lt;h2&gt;包工头是谁&lt;span class=&quot;sec-sub&quot;&gt;它是 AI，但干的活像项目经理&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;编排者 Agent，你可以把它理解成&lt;strong&gt;一个只会&amp;quot;调度&amp;quot;、不会&amp;quot;亲自搬砖&amp;quot;的项目经理&lt;/strong&gt;。它自己不写文案、不查数据，只做三件事：&lt;span class=&quot;em&quot;&gt;拆活、派单、验收&lt;/span&gt;。&lt;/p&gt;&lt;p&gt;它手里有一张&amp;quot;施工清单&amp;quot;：接到你的任务，先把大目标拆成几个小步骤，再按步骤匹配最合适的工人，把活派下去，等工人交活，它验收、拼装，最后交到你手上。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;role-row reveal&quot;&gt;&lt;div class=&quot;role-card boss&quot;&gt;&lt;div class=&quot;r-ico&quot;&gt;🧭&lt;/div&gt;&lt;h4&gt;包工头（编排者）&lt;/h4&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;不亲自搬砖&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;只负责拆活、派单、验收&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;谁翻车了，它负责兜底重派&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;脑子里只有&amp;quot;全局图&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;role-card worker&quot;&gt;&lt;div class=&quot;r-ico&quot;&gt;🔨&lt;/div&gt;&lt;h4&gt;工人（执行 Agent）&lt;/h4&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;只干自己擅长的活&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;不管别人，不抢别人的活&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;干完交活，等验收&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;脑子里只有&amp;quot;自己的那摊&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/section&gt;&lt;section id=&quot;s3&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;📋&lt;/div&gt;&lt;h2&gt;包工头的三大职责&lt;span class=&quot;sec-sub&quot;&gt;拆得开、派得对、收得回&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;一个合格的编排者，必须把这三件事做扎实。少一样，团队就散架。&lt;/p&gt;&lt;/div&gt;&lt;ol class=&quot;step-list reveal list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;span class=&quot;step-num&quot;&gt;1&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;strong&gt;拆活：把大任务切成小步骤&lt;/strong&gt;接到&amp;quot;写一份行业报告&amp;quot;，它先拆成&amp;quot;查数据 → 写分析 → 配图表 → 校对验收&amp;quot;四步。拆得越清楚，后面越好派。&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span class=&quot;step-num&quot;&gt;2&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;strong&gt;派单：把步骤交给最合适的人&lt;/strong&gt;查数据派给&amp;quot;数据 Agent&amp;quot;，写分析派给&amp;quot;文案 Agent&amp;quot;，校对派给&amp;quot;质检 Agent&amp;quot;。人尽其才，各管一摊。&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span class=&quot;step-num&quot;&gt;3&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;strong&gt;验收：收活、拼装、兜底&lt;/strong&gt;每步交活都先验一遍，不合格打回重做；全合格了拼成成品。哪步翻车，它顶上重派，绝不让你看到半成品。&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;h3&gt;💡 冷知识：编排者也可以&amp;quot;递进思考&amp;quot;&lt;/h3&gt;&lt;p&gt;高手的包工头不只是流水账派单，它会&lt;strong&gt;先列计划、再逐步执行、边做边修正&lt;/strong&gt;。这种&amp;quot;想一步、走一步、看一步&amp;quot;的节奏，能让多 Agent 协作更稳，不容易一条道走到黑。&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;section id=&quot;s4&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🏗️&lt;/div&gt;&lt;h2&gt;主从结构：一句话记住它&lt;span class=&quot;sec-sub&quot;&gt;一个大脑，N 双手&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;这种&amp;quot;一个包工头 + 一群工人&amp;quot;的搭法，有个正式名字叫&lt;strong&gt;主从结构（主控 Agent + 执行 Agent）&lt;/strong&gt;。记住一句话：&lt;span class=&quot;em&quot;&gt;一个大脑负责想，N 双手负责干&lt;/span&gt;。&lt;/p&gt;&lt;p&gt;它好在哪里？好在&lt;span class=&quot;em&quot;&gt;责任清晰&lt;/span&gt;。大脑不抢手的活，手不替大脑拿主意。出了岔子，你一眼就知道：活没拆对是大脑的锅，活没干好是手的锅，活没人干是大脑漏派了。谁的责任，清清楚楚。&lt;/p&gt;&lt;p&gt;这也是为什么上一篇说&amp;quot;独狼出错了你都不知道该查谁&amp;quot;——有了主从结构，问题天然就定位了。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;quote reveal&quot;&gt;一个大脑，N 双手——大脑越清楚，手就越有力。 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;who&quot;&gt;—— AI 打工日志 · Agent 篇&lt;/span&gt;&lt;/div&gt;&lt;/section&gt;&lt;section id=&quot;s5&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🎯&lt;/div&gt;&lt;h2&gt;三题小测&lt;span class=&quot;sec-sub&quot;&gt;答完，你就知道该请怎样的包工头了&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;demo reveal&quot;&gt;&lt;div class=&quot;demo-title&quot;&gt;🎯 第二篇小测&lt;/div&gt;&lt;div class=&quot;demo-hint&quot;&gt;三道题，测测你对包工头的理解&lt;/div&gt;&lt;div class=&quot;quiz&quot;&gt;&lt;div class=&quot;q-item&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;1&lt;/span&gt;编排者 Agent 最核心的工作是？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;b&quot; data-explain=&quot;编排者不亲自搬砖，它的核心是「拆活、派单、验收」三件事，相当于 AI 团队里的项目经理。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 亲自写文案、查数据&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 拆活、派单、验收&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;q-item&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;2&lt;/span&gt;主从结构里的「主」和「从」分别指什么？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;a&quot; data-explain=&quot;「主」是主控 Agent（包工头/大脑），负责想和调度；「从」是执行 Agent（工人/双手），负责具体干活。一个大脑 + N 双手。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 主控调度 + 执行干活的 AI&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 大模型 + 小模型&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;q-item&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;3&lt;/span&gt;哪一步做砸了，责任该算到包工头头上？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;c&quot; data-explain=&quot;活没人干 = 包工头漏派了，责任在调度；活没干好 = 执行 Agent 的锅。主从结构的好处就是责任清晰，一眼定位。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 文案写错别字&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 数据算错了&lt;/button&gt;&lt;button data-v=&quot;c&quot;&gt;C. 有个环节压根没人干&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;final-cta reveal&quot;&gt;&lt;div class=&quot;emoji&quot;&gt;🏗️&lt;/div&gt;&lt;h2&gt;包工头请来了，下一步该分工了&lt;/h2&gt;&lt;p style=&quot;color: var(--ink-soft)&quot;&gt;一个包工头 + 一群工人，具体怎么配合干活？&lt;br/&gt;&lt;br/&gt;下一篇：《团队分工：装修队是怎么干活的》&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;/main&gt;&lt;script&gt;(function () {
  var root = document.currentScript.closest(&#039;.ai-agent&#039;);
  
  // ---- 滚动显现 ----
  const io = new IntersectionObserver((entries) =&gt; {
    entries.forEach(e =&gt; { if (e.isIntersecting) { e.target.classList.add(&#039;in&#039;); io.unobserve(e.target); } });
  }, { threshold: 0.12 });
  root.querySelectorAll(&#039;.reveal&#039;).forEach(el =&gt; io.observe(el));

  // ---- 目录高亮 ----
  const links = root.querySelectorAll(&#039;.toc a&#039;);
  const secs = [...links].map(a =&gt; root.querySelector(a.getAttribute(&#039;href&#039;)));
  const spy = new IntersectionObserver((entries) =&gt; {
    entries.forEach(e =&gt; {
      if (e.isIntersecting) {
        links.forEach(l =&gt; l.classList.remove(&#039;active&#039;));
        const hit = links.find(l =&gt; l.getAttribute(&#039;href&#039;) === &#039;#&#039; + e.target.id);
        if (hit) hit.classList.add(&#039;active&#039;);
      }
    });
  }, { rootMargin: &#039;-30% 0px -60% 0px&#039; });
  secs.forEach(s =&gt; s &amp;&amp; spy.observe(s));

  // ---- Quiz ----
  root.querySelectorAll(&#039;.quiz .q-item&#039;).forEach(qi =&gt; {
    const opts = qi.querySelector(&#039;.opts&#039;);
    const explain = qi.querySelector(&#039;.q-explain&#039;);
    const answer = opts.dataset.answer;
    let done = false;
    opts.querySelectorAll(&#039;button&#039;).forEach(btn =&gt; {
      btn.onclick = () =&gt; {
        if (done) return;
        done = true;
        const pick = btn.dataset.v;
        opts.querySelectorAll(&#039;button&#039;).forEach(b =&gt; {
          if (b.dataset.v === answer) b.classList.add(&#039;right&#039;);
          else if (b === btn) b.classList.add(&#039;wrong&#039;);
        });
        explain.textContent = opts.dataset.explain;
        explain.classList.add(&#039;show&#039;);
      };
    });
  });

  // 兜底：2 秒后强制显示所有 reveal 元素，避免任何环境下内容被隐藏
  setTimeout(function () {
    root.querySelectorAll(&#039;.reveal&#039;).forEach(function (el) { el.classList.add(&#039;in&#039;); });
  }, 2000);
})();&lt;/script&gt;&lt;/div&gt;&lt;!-- AI 打工日志 · Agent 篇 · 第2篇 · 结束 --&gt;</description><pubDate>Sun, 20 Sep 2026 10:22:33 +0800</pubDate></item><item><title>多 Agent：一个实习生不够用了 | AI 打工日志·Agent篇①</title><link>https://imwen.com/post/389.html</link><description>&lt;!-- AI 打工日志 · Agent 篇 · 第1篇 · 交互完整版（样式已隔离，勿在可视化编辑器中编辑源码模式之外的内容） --&gt;&lt;div class=&quot;ai-agent ai-agent-1&quot;&gt;&lt;style&gt;.ai-agent-1 {
    --primary: #0B7285;
    --primary-light: #E3F4F6;
    --primary-soft: #C5ECEE;
    --primary-deep: #0A5C6B;
    --accent: #3BC9DB;
    --bg: #FAF7F2;
    --card: #FFFFFF;
    --ink: #2B2724;
    --ink-soft: #6B6259;
    --line: #EDE5DA;
    --radius: 20px;
    --serif: &quot;Songti SC&quot;, &quot;STSong&quot;, &quot;SimSun&quot;, Georgia, serif;
    --sans: -apple-system, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Segoe UI&quot;, sans-serif;
  }
  .ai-agent-1 * { margin: 0; padding: 0; box-sizing: border-box; }
  .ai-agent-1 { font-family: var(--sans); background: var(--bg); color: var(--ink); line-height: 1.85; font-size: 17px; }
  .ai-agent-1 .wrap { max-width: 760px; margin: 0 auto; padding: 0 22px; }
  .ai-agent-1 .hero { background: linear-gradient(160deg, var(--primary) 0%, var(--accent) 100%); color: #fff; padding: 72px 0 88px; position: relative; overflow: hidden; }
  .ai-agent-1 .hero::after { content: &quot;&quot;; position: absolute; bottom: -2px; left: 0; right: 0; height: 44px; background: var(--bg); border-radius: 44px 44px 0 0; }
  .ai-agent-1 .series-tag { display: inline-block; background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.4); border-radius: 999px; padding: 5px 16px; font-size: 13px; letter-spacing: 2px; margin-bottom: 26px; }
  .ai-agent-1 .hero .ep { font-size: 14px; letter-spacing: 6px; opacity: .85; margin-bottom: 10px; }
  .ai-agent-1 .hero h1 { font-family: var(--serif); font-size: clamp(30px, 5.6vw, 46px); line-height: 1.35; font-weight: 700; margin-bottom: 18px; }
  .ai-agent-1 .hero .sub { font-size: 18px; opacity: .92; }
  .ai-agent-1 .hero .meta { margin-top: 30px; font-size: 13px; opacity: .75; }
  .ai-agent-1 .toc { position: sticky; top: 0; z-index: 50; background: rgba(250,247,242,.92); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); padding: 10px 0; }
  .ai-agent-1 .toc .wrap { display: flex; gap: 8px; overflow-x: auto; white-space: nowrap; scrollbar-width: none; }
  .ai-agent-1 .toc .wrap::-webkit-scrollbar { display: none; }
  .ai-agent-1 .toc a { flex: 0 0 auto; text-decoration: none; color: var(--ink-soft); font-size: 14px; padding: 6px 14px; border-radius: 999px; border: 1px solid transparent; transition: all .25s; }
  .ai-agent-1 .toc a:hover, .ai-agent-1 .toc a.active { color: var(--primary-deep); background: var(--primary-soft); border-color: var(--primary-soft); }
  .ai-agent-1 section { padding: 64px 0 8px; }
  .ai-agent-1 .sec-head { display: flex; align-items: center; gap: 14px; margin-bottom: 26px; }
  .ai-agent-1 .sec-num { width: 52px; height: 52px; flex: 0 0 52px; border-radius: 16px; background: var(--primary-soft); display: flex; align-items: center; justify-content: center; font-size: 26px; }
  .ai-agent-1 .sec-head h2 { font-family: var(--serif); font-size: clamp(22px, 3.6vw, 28px); line-height: 1.4; }
  .ai-agent-1 .sec-head .sec-sub { font-size: 13px; color: var(--ink-soft); display: block; font-family: var(--sans); font-weight: 400; margin-top: 2px; }
  .ai-agent-1 .card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 28px 26px; margin-bottom: 22px; box-shadow: 0 2px 10px rgba(43,39,36,.04); }
  .ai-agent-1 p + p { margin-top: 16px; }
  .ai-agent-1 .card h3 { font-size: 18px; margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }
  .ai-agent-1 .em { color: var(--primary-deep); font-weight: 700; }
  .ai-agent-1 strong { font-weight: 700; }
  .ai-agent-1 .quote { margin: 34px 0; background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%); color: #fff; border-radius: var(--radius); padding: 34px 30px; font-family: var(--serif); font-size: clamp(19px, 3vw, 23px); line-height: 1.7; position: relative; }
  .ai-agent-1 .quote::before { content: &quot;❝&quot;; position: absolute; top: 10px; left: 18px; font-size: 44px; opacity: .3; }
  .ai-agent-1 .quote .who { display: block; margin-top: 14px; font-family: var(--sans); font-size: 13px; opacity: .8; }
  .ai-agent-1 .demo { background: var(--card); border: 2px dashed var(--primary); border-radius: var(--radius); padding: 30px 26px; margin: 30px 0; }
  .ai-agent-1 .demo-title { text-align: center; font-weight: 700; font-size: 16px; color: var(--primary-deep); letter-spacing: 1px; margin-bottom: 6px; }
  .ai-agent-1 .demo-hint { text-align: center; font-size: 13px; color: var(--ink-soft); margin-bottom: 20px; }
  .ai-agent-1 .toggle-bar { display: flex; justify-content: center; gap: 10px; margin-bottom: 20px; }
  .ai-agent-1 .toggle-bar button { font-family: var(--sans); font-size: 15px; font-weight: 600; padding: 9px 20px; border-radius: 999px; border: 1.5px solid var(--line); background: #fff; color: var(--ink-soft); cursor: pointer; transition: all .2s; }
  .ai-agent-1 .toggle-bar button.on { border-color: var(--primary); background: var(--primary); color: #fff; box-shadow: 0 4px 14px rgba(11,114,133,.28); }
  .ai-agent-1 .vs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 22px 0; }
  .ai-agent-1 .vs-card { border-radius: 16px; padding: 22px 20px; font-size: 14.5px; }
  .ai-agent-1 .vs-card.mouth { background: #F6F3F0; border: 1px solid var(--line); }
  .ai-agent-1 .vs-card.machine { background: var(--primary-light); border: 1px solid var(--primary-soft); }
  .ai-agent-1 .vs-card .v-ico { font-size: 28px; }
  .ai-agent-1 .vs-card h4 { font-size: 16px; margin: 8px 0 6px; }
  .ai-agent-1 .vs-card.machine h4 { color: var(--primary-deep); }
  .ai-agent-1 .vs-card ul { padding-left: 18px; }
  .ai-agent-1 .vs-card li { margin: 4px 0; }
  .ai-agent-1 .diag-grid { display: grid; grid-template-columns: 1fr; gap: 12px; margin-bottom: 16px; }
  .ai-agent-1 .d-item { background: #fff; border: 1.5px solid var(--line); border-radius: 14px; padding: 16px 16px; cursor: pointer; transition: all .2s; text-align: left; font-family: var(--sans); }
  .ai-agent-1 .d-item:hover { transform: translateY(-2px); box-shadow: 0 5px 14px rgba(43,39,36,.1); }
  .ai-agent-1 .d-item.on { border-color: var(--primary); background: var(--primary-light); }
  .ai-agent-1 .d-item .d-ico { font-size: 24px; }
  .ai-agent-1 .d-item b { display: block; font-size: 15px; margin-top: 4px; }
  .ai-agent-1 .d-item span { font-size: 12.5px; color: var(--ink-soft); }
  .ai-agent-1 .d-result { background: var(--primary-light); border: 1px solid var(--primary-soft); border-radius: 14px; padding: 18px 20px; font-size: 14.5px; min-height: 110px; }
  .ai-agent-1 .d-result h4 { color: var(--primary-deep); font-size: 15.5px; margin-bottom: 8px; }
  .ai-agent-1 .d-result .rx { margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--primary-soft); }
  .ai-agent-1 .d-result .rx b { color: var(--primary-deep); }
  .ai-agent-1 .check-list { list-style: none; }
  .ai-agent-1 .check-list li { padding: 12px 16px; margin: 10px 0; border-radius: 12px; border: 1px solid var(--line); background: #fff; }
  .ai-agent-1 .check-list li b { color: var(--primary-deep); }
  .ai-agent-1 .quiz { margin: 26px 0 6px; }
  .ai-agent-1 .q-item { margin-bottom: 22px; }
  .ai-agent-1 .q-item .q { font-weight: 700; font-size: 16px; margin-bottom: 12px; }
  .ai-agent-1 .q-item .q .qn { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 8px; background: var(--primary); color: #fff; font-size: 14px; margin-right: 8px; vertical-align: -5px; }
  .ai-agent-1 .opts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .ai-agent-1 .opts button { font-family: var(--sans); font-size: 14.5px; text-align: left; padding: 12px 16px; border-radius: 12px; border: 1.5px solid var(--line); background: #fff; color: var(--ink); cursor: pointer; transition: all .2s; line-height: 1.6; }
  .ai-agent-1 .opts button:hover { border-color: var(--primary); }
  .ai-agent-1 .opts button.right { border-color: #2B8A3E; background: #EBF7EE; color: #1B5E2B; font-weight: 700; }
  .ai-agent-1 .opts button.wrong { border-color: #C92A2A; background: #FFF0F0; color: #A61E1E; }
  .ai-agent-1 .q-explain { margin-top: 10px; font-size: 13.5px; color: var(--ink-soft); background: var(--primary-light); border-radius: 10px; padding: 10px 14px; display: none; }
  .ai-agent-1 .q-explain.show { display: block; }
  .ai-agent-1 .final-cta { margin: 50px 0 10px; text-align: center; padding: 44px 26px; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); }
  .ai-agent-1 .final-cta .emoji { font-size: 40px; }
  .ai-agent-1 .final-cta h2 { font-family: var(--serif); font-size: 24px; margin: 12px 0 10px; }
  .ai-agent-1 footer { text-align: center; padding: 30px 0 50px; color: var(--ink-soft); font-size: 13px; }
  .ai-agent-1 .reveal { opacity: 0; transform: translateY(26px); transition: all .7s cubic-bezier(.22,.61,.36,1); }
  .ai-agent-1 .reveal.in { opacity: 1; transform: none; }
  @media (max-width: 560px) { body { font-size: 16px; } .vs-grid, .opts { grid-template-columns: 1fr; } }


  /* === Z-Blog 正文适配层 === */
  .ai-agent { font-size: 17px; line-height: 1.85; color: #2B2724; }
  .ai-agent .tri-banner { text-align: center; padding: 8px 0 4px; margin-bottom: 18px; }
  .ai-agent .tri-banner .tri-title {
    font-family: &quot;Songti SC&quot;, &quot;STSong&quot;, &quot;SimSun&quot;, Georgia, serif;
    font-size: clamp(22px, 3.4vw, 30px); line-height: 1.45; margin: 16px 0 8px; font-weight: 700;
  }
  .ai-agent .tri-banner .tri-sub { font-size: 15px; color: #6B6259; }
  .ai-agent .tri-banner .series-tag {
    background: var(--primary-soft); border: 1px solid var(--primary);
    color: var(--primary-deep); margin-bottom: 0;
  }
  .ai-agent main { display: block; }&lt;/style&gt;&lt;header class=&quot;tri-banner&quot;&gt;&lt;span class=&quot;series-tag&quot;&gt;AI 打工日志 · Agent 篇&lt;/span&gt;
 &amp;nbsp;&lt;h2 class=&quot;tri-title&quot;&gt;《多 Agent：一个实习生不够用了》&lt;/h2&gt;&lt;p class=&quot;tri-sub&quot;&gt;独狼的尽头，是开一家公司 · 阅读约 8 分钟 · 无需技术背景&lt;/p&gt;&lt;p class=&quot;tri-sub&quot;&gt;&lt;img src=&quot;https://imwen.com/zb_users/upload/2026/09/202609171789651405643403.jpg&quot; alt=&quot;agent-cover-1.jpg&quot; width=&quot;768&quot; height=&quot;512&quot; border=&quot;0&quot; vspace=&quot;0&quot; title=&quot;agent-cover-1.jpg&quot; style=&quot;width: 768px; height: 512px;&quot;/&gt;&lt;/p&gt;&lt;/header&gt;&lt;main class=&quot;wrap&quot;&gt;&lt;section id=&quot;s1&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🔥&lt;/div&gt;&lt;h2&gt;那个全能的实习生，扛不住了&lt;span class=&quot;sec-sub&quot;&gt;不是它不努力，是活儿实在太多了&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;上一季，你把 AI 从一个&amp;quot;只会接话的话痨&amp;quot;，一路培养成了&amp;quot;有手册、有装备、有档案柜&amp;quot;的熟练工。它帮你写周报、核发票、整理工地日志，样样干得漂亮。&lt;/p&gt;&lt;p&gt;直到有一天，你一口气甩给它八个活：写方案、查数据、回邮件、排会议、做 PPT、校对合同、翻译、再报个销——然后它就&lt;span class=&quot;em&quot;&gt;开始顾头不顾尾&lt;/span&gt;：方案写到一半想起要回邮件，回完邮件忘了 PPT 还差三页，最后交上来的报销单，把餐饮费填进了差旅费。&lt;/p&gt;&lt;p&gt;你抓狂地问：&amp;quot;你不是挺能干的吗？&amp;quot; 它委屈巴巴：&amp;quot;能干，但我只有一双手、一颗脑子、一段要装下所有事的上下文。&amp;quot;&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;quote reveal&quot;&gt;把一百件事塞给一个人，不是给他机会，是给他埋雷。 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;who&quot;&gt;—— 包工头老张的经验之谈&lt;/span&gt;&lt;/div&gt;&lt;/section&gt;&lt;section id=&quot;s2&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🐺&lt;/div&gt;&lt;h2&gt;独狼 vs 团队：两种干法&lt;span class=&quot;sec-sub&quot;&gt;一个人硬扛，还是一队人分工，天差地别&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;先别急着怪 AI。想想你自己——公司里让你一个人扛下&amp;quot;写代码 + 做设计 + 谈客户 + 财务报销 + 招聘&amp;quot;，你也会疯。区别在于，人干不过来会招人、会外包、会拉团队，而&lt;span class=&quot;em&quot;&gt;一个 AI 只能靠&amp;quot;更长的上下文&amp;quot;硬扛，扛到极限就漏、就串、就编&lt;/span&gt;。&lt;/p&gt;&lt;p&gt;那该怎么办？答案朴素得不像科技圈：&lt;strong&gt;招人。&lt;/strong&gt;一个 AI 干不过来，就招一群 AI，各管一摊。这就是&amp;quot;多 Agent&amp;quot;（Multi-Agent）的起点。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;vs-grid reveal&quot;&gt;&lt;div class=&quot;vs-card mouth&quot;&gt;&lt;div class=&quot;v-ico&quot;&gt;🐺&lt;/div&gt;&lt;h4&gt;独狼模式（单 Agent）&lt;/h4&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;一个脑子记下所有事&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;上下文越堆越长，越靠后越忘&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;活儿一多就顾头不顾尾&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;出错了你都不知道该查谁&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;vs-card machine&quot;&gt;&lt;div class=&quot;v-ico&quot;&gt;🏢&lt;/div&gt;&lt;h4&gt;团队模式（多 Agent）&lt;/h4&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;每个人只记自己那一摊&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;各管各的，互不串味&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;拆得开，也拼得起来&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;哪环错了，一眼定位到人&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/section&gt;&lt;section id=&quot;s3&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🧱&lt;/div&gt;&lt;h2&gt;单个 Agent 的三大极限&lt;span class=&quot;sec-sub&quot;&gt;点开每一条，看它到底卡在哪&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;为什么单个 Agent 一定会到极限？因为有三个绕不过去的坎，卡在它的&amp;quot;生理结构&amp;quot;上：&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;demo reveal&quot;&gt;&lt;div class=&quot;demo-title&quot;&gt;🧱 极限诊断台&lt;/div&gt;&lt;div class=&quot;demo-hint&quot;&gt;点任意一条，看病理和药方&lt;/div&gt;&lt;div class=&quot;diag-grid&quot;&gt;&lt;button class=&quot;d-item&quot; data-k=&quot;ctx&quot;&gt;&lt;span class=&quot;d-ico&quot;&gt;📚&lt;/span&gt;&lt;strong&gt;极限 ①：上下文挤爆了&lt;/strong&gt;活儿一多，读完后面的就忘了前面的&lt;/button&gt;&lt;button class=&quot;d-item&quot; data-k=&quot;single&quot;&gt;&lt;span class=&quot;d-ico&quot;&gt;🥢&lt;/span&gt;&lt;strong&gt;极限 ②：一样本事干所有活&lt;/strong&gt;什么都懂一点，什么都不精&lt;/button&gt;&lt;button class=&quot;d-item&quot; data-k=&quot;check&quot;&gt;&lt;span class=&quot;d-ico&quot;&gt;🎭&lt;/span&gt;&lt;strong&gt;极限 ③：自己人查自己人&lt;/strong&gt;既当运动员，又当裁判&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;d-result&quot; id=&quot;dResult&quot;&gt;&lt;h4&gt;👈 点一条极限开始诊断&lt;/h4&gt;&lt;p style=&quot;font-size:13.5px;color:var(--ink-soft)&quot;&gt;单个 Agent 的极限不是能力问题，是&amp;quot;单打独斗&amp;quot;这个结构本身的天花板。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/section&gt;&lt;section id=&quot;s4&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🏢&lt;/div&gt;&lt;h2&gt;多 Agent 到底是什么&lt;span class=&quot;sec-sub&quot;&gt;一句话：让一群各司其职的 AI 组队干活&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;多 Agent，说穿了就是&lt;strong&gt;把一件大活拆成若干小活，交给一群&amp;quot;术业有专攻&amp;quot;的 AI 分头干，再由一个&amp;quot;包工头&amp;quot;统一调度、验收、交活&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;这里的关键词不是&amp;quot;多&amp;quot;，而是&lt;span class=&quot;em&quot;&gt;分工&lt;/span&gt;。就像装修一套房，你不会请一个&amp;quot;什么都会的水电木瓦油全能师傅&amp;quot;一个人干完（真有这种师傅你也雇不起），而是请一个工头，下面带着木工、电工、油漆工，各干各的，工头统一盯着进度和质量。&lt;/p&gt;&lt;p&gt;放到 AI 里就是：写文案的 Agent 只管文案，查数据的 Agent 只管查数，验收的 Agent 只管挑刺，调度的那位只负责派活和兜底。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;quote reveal&quot;&gt;独狼拼的是能力上限，团队拼的是分工下限——后者没有天花板。 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;who&quot;&gt;—— AI 打工日志 · Agent 篇&lt;/span&gt;&lt;/div&gt;&lt;/section&gt;&lt;section id=&quot;s5&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;📋&lt;/div&gt;&lt;h2&gt;什么时候该上团队&lt;span class=&quot;sec-sub&quot;&gt;不是所有活都值得组队，先问自己三句&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;多 Agent 不是万能药。一件小事也要拉个团队，就像煮碗泡面还要开个三人会议——纯属浪费。动手前先问自己三句：&lt;/p&gt;&lt;/div&gt;&lt;ul class=&quot;check-list reveal list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;① 活儿能拆开吗？&lt;/strong&gt;如果能拆成&amp;quot;写 + 查 + 验&amp;quot;几个独立环节，适合组队；如果是一气呵成的创作，单 Agent 反而更顺。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;② 拆开后质量会更好吗？&lt;/strong&gt;多一双挑刺的眼睛，比一个人硬撑更可靠，尤其涉及&amp;quot;算钱&amp;quot;&amp;quot;核对&amp;quot;这类不能错的活。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;③ 你受得了那个开销吗？&lt;/strong&gt;人多力量大，但人多账单也长。具体账怎么算，第四篇专门讲。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;这一篇先埋个伏笔：团队要转起来，光有人不行，还得有个&lt;span class=&quot;em&quot;&gt;会派活的包工头&lt;/span&gt;。下一集，我们就把这位项目经理请出来。&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;section id=&quot;s6&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🎯&lt;/div&gt;&lt;h2&gt;三题小测&lt;span class=&quot;sec-sub&quot;&gt;答完，你就摸到了多 Agent 的门槛&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;demo reveal&quot;&gt;&lt;div class=&quot;demo-title&quot;&gt;🎯 开篇小测&lt;/div&gt;&lt;div class=&quot;demo-hint&quot;&gt;三道题，测测你抓到重点没&lt;/div&gt;&lt;div class=&quot;quiz&quot;&gt;&lt;div class=&quot;q-item&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;1&lt;/span&gt;单个 Agent 干大堆活会翻车，最根本的原因是？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;b&quot; data-explain=&quot;根本原因不在 Agent 笨，而在于「单打独斗」这个结构：一个脑子要装下所有事的上下文，活儿一多就挤爆、就顾头不顾尾。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 它太笨了，能力不行&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 一个脑子装不下所有上下文&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;q-item&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;2&lt;/span&gt;多 Agent 的关键词是哪个？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;a&quot; data-explain=&quot;关键词不是「多」，是「分工」。让术业有专攻的 AI 各管一摊，再由一个包工头统一调度、验收，才是多 Agent 的精髓。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 分工&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 数量多&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;q-item&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;3&lt;/span&gt;下面哪种活，最该上多 Agent？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;c&quot; data-explain=&quot;能拆成「写 + 查 + 验」几个独立环节、且涉及不能错的核对，最适合组队：写的人负责写，查的人负责查，验收的人负责挑刺。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 写一首情诗&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 给猫起个名字&lt;/button&gt;&lt;button data-v=&quot;c&quot;&gt;C. 出一份带数据核对的行业报告&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;final-cta reveal&quot;&gt;&lt;div class=&quot;emoji&quot;&gt;🏢&lt;/div&gt;&lt;h2&gt;独狼的尽头，是开一家公司&lt;/h2&gt;&lt;p style=&quot;color: var(--ink-soft)&quot;&gt;下一个问题来了：人齐了，谁来当包工头？&lt;br/&gt;&lt;br/&gt;下一篇：《包工头：给 AI 团队请个项目经理》&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;/main&gt;&lt;script&gt;(function () {
  var root = document.currentScript.closest(&#039;.ai-agent&#039;);
  
  // ---- 滚动显现 ----
  const io = new IntersectionObserver((entries) =&gt; {
    entries.forEach(e =&gt; { if (e.isIntersecting) { e.target.classList.add(&#039;in&#039;); io.unobserve(e.target); } });
  }, { threshold: 0.12 });
  root.querySelectorAll(&#039;.reveal&#039;).forEach(el =&gt; io.observe(el));

  // ---- 目录高亮 ----
  const links = root.querySelectorAll(&#039;.toc a&#039;);
  const secs = [...links].map(a =&gt; root.querySelector(a.getAttribute(&#039;href&#039;)));
  const spy = new IntersectionObserver((entries) =&gt; {
    entries.forEach(e =&gt; {
      if (e.isIntersecting) {
        links.forEach(l =&gt; l.classList.remove(&#039;active&#039;));
        const hit = links.find(l =&gt; l.getAttribute(&#039;href&#039;) === &#039;#&#039; + e.target.id);
        if (hit) hit.classList.add(&#039;active&#039;);
      }
    });
  }, { rootMargin: &#039;-30% 0px -60% 0px&#039; });
  secs.forEach(s =&gt; s &amp;&amp; spy.observe(s));

  // ---- S3：三大极限诊断 ----
  const diag = {
    ctx: {
      title: &#039;🧱 极限①：上下文挤爆了&#039;,
      why: &#039;&lt;b&gt;病理：&lt;/b&gt;一个 Agent 只有一段上下文。你把八个活、二十份文件、三页背景全塞进去，它读着读着就把开头的忘了——就像人一次只能端稳三杯水，你偏要他端十杯，还怪他洒了。&#039;,
      rx: &#039;&lt;b&gt;💊 药方：&lt;/b&gt;别让一个人记所有事。把任务拆开，让每个人只端自己那杯水。这正是多 Agent 的意义。&#039;
    },
    single: {
      title: &#039;🧱 极限②：一样本事干所有活&#039;,
      why: &#039;&lt;b&gt;病理：&lt;/b&gt;一个全才 Agent，写方案不如专业文案，算数不如专业脚本，谈客户不如专业销售。什么都会一点的另一面，是什么都不精。&#039;,
      rx: &#039;&lt;b&gt;💊 药方：&lt;/b&gt;让专业的 Agent 干专业的事。写字的管字，算数的管数——把「全才」拆成「专才」。&#039;
    },
    check: {
      title: &#039;🧱 极限③：自己人查自己人&#039;,
      why: &#039;&lt;b&gt;病理：&lt;/b&gt;写方案的是它，验收方案的还是它。自己写的错，自己最看不出来——这就是「既当运动员又当裁判」的坑。&#039;,
      rx: &#039;&lt;b&gt;💊 药方：&lt;/b&gt;让一个 Agent 干活，另一个 Agent 挑刺。有独立的质检员，质量才有保障。&#039;
    }
  };
  const dResult = root.querySelector(&#039;#dResult&#039;);
  root.querySelectorAll(&#039;.d-item&#039;).forEach(item =&gt; {
    item.onclick = () =&gt; {
      root.querySelectorAll(&#039;.d-item&#039;).forEach(x =&gt; x.classList.remove(&#039;on&#039;));
      item.classList.add(&#039;on&#039;);
      const d = diag[item.dataset.k];
      dResult.innerHTML = &#039;&lt;h4&gt;&#039; + d.title + &#039;&lt;/h4&gt;&lt;p&gt;&#039; + d.why + &#039;&lt;/p&gt;&lt;p class=&quot;rx&quot;&gt;&#039; + d.rx + &#039;&lt;/p&gt;&#039;;
    };
  });

  // ---- Quiz ----
  root.querySelectorAll(&#039;.quiz .q-item&#039;).forEach(qi =&gt; {
    const opts = qi.querySelector(&#039;.opts&#039;);
    const explain = qi.querySelector(&#039;.q-explain&#039;);
    const answer = opts.dataset.answer;
    let done = false;
    opts.querySelectorAll(&#039;button&#039;).forEach(btn =&gt; {
      btn.onclick = () =&gt; {
        if (done) return;
        done = true;
        const pick = btn.dataset.v;
        opts.querySelectorAll(&#039;button&#039;).forEach(b =&gt; {
          if (b.dataset.v === answer) b.classList.add(&#039;right&#039;);
          else if (b === btn) b.classList.add(&#039;wrong&#039;);
        });
        explain.textContent = opts.dataset.explain;
        explain.classList.add(&#039;show&#039;);
      };
    });
  });

  // 兜底：2 秒后强制显示所有 reveal 元素，避免任何环境下内容被隐藏
  setTimeout(function () {
    root.querySelectorAll(&#039;.reveal&#039;).forEach(function (el) { el.classList.add(&#039;in&#039;); });
  }, 2000);
})();&lt;/script&gt;&lt;/div&gt;&lt;!-- AI 打工日志 · Agent 篇 · 第1篇 · 结束 --&gt;</description><pubDate>Thu, 17 Sep 2026 21:22:33 +0800</pubDate></item><item><title>技能进阶：从员工手册到技术档案室 | AI 打工日志·技能篇④</title><link>https://imwen.com/post/376.html</link><description>&lt;!-- AI 打工日志 · 技能篇 · 第7篇 · 交互完整版（样式已隔离，勿在可视化编辑器中编辑源码模式之外的内容） --&gt;&lt;div class=&quot;ai-tri ai-tri-7&quot;&gt;&lt;style&gt;.ai-tri-7 {
    --primary: #1C7ED6;
    --primary-light: #E7F5FF;
    --primary-soft: #D0EBFF;
    --primary-deep: #1864AB;
    --accent: #4DABF7;
    --bg: #FAF7F2;
    --card: #FFFFFF;
    --ink: #2B2724;
    --ink-soft: #6B6259;
    --line: #EDE5DA;
    --radius: 20px;
    --serif: &quot;Songti SC&quot;, &quot;STSong&quot;, &quot;SimSun&quot;, Georgia, serif;
    --sans: -apple-system, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Segoe UI&quot;, sans-serif;
  }
  .ai-tri-7 * { margin: 0; padding: 0; box-sizing: border-box; }
  .ai-tri-7 {
    font-family: var(--sans);
    background: var(--bg);
    color: var(--ink);
    line-height: 1.85;
    font-size: 17px;
  }
  .ai-tri-7 .wrap { max-width: 760px; margin: 0 auto; padding: 0 22px; }

  /* ===== Hero ===== */
  .ai-tri-7 .hero {
    background: linear-gradient(160deg, var(--primary) 0%, var(--accent) 100%);
    color: #fff;
    padding: 72px 0 88px;
    position: relative;
    overflow: hidden;
  }
  .ai-tri-7 .hero::after {
    content: &quot;&quot;;
    position: absolute; bottom: -2px; left: 0; right: 0;
    height: 44px;
    background: var(--bg);
    border-radius: 44px 44px 0 0;
  }
  .ai-tri-7 .series-tag {
    display: inline-block;
    background: rgba(255,255,255,.18);
    border: 1px solid rgba(255,255,255,.4);
    border-radius: 999px;
    padding: 5px 16px;
    font-size: 13px;
    letter-spacing: 2px;
    margin-bottom: 26px;
  }
  .ai-tri-7 .hero .ep { font-size: 14px; letter-spacing: 6px; opacity: .85; margin-bottom: 10px; }
  .ai-tri-7 .hero h1 {
    font-family: var(--serif);
    font-size: clamp(30px, 5.6vw, 46px);
    line-height: 1.35;
    font-weight: 700;
    margin-bottom: 18px;
  }
  .ai-tri-7 .hero .sub { font-size: 18px; opacity: .92; }
  .ai-tri-7 .hero .meta { margin-top: 30px; font-size: 13px; opacity: .75; }

  /* ===== Sticky nav ===== */
  .ai-tri-7 .toc {
    position: sticky; top: 0; z-index: 50;
    background: rgba(250,247,242,.92);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--line);
    padding: 10px 0;
  }
  .ai-tri-7 .toc .wrap {
    display: flex; gap: 8px;
    overflow-x: auto; white-space: nowrap;
    scrollbar-width: none;
  }
  .ai-tri-7 .toc .wrap::-webkit-scrollbar { display: none; }
  .ai-tri-7 .toc a {
    flex: 0 0 auto;
    text-decoration: none;
    color: var(--ink-soft);
    font-size: 14px;
    padding: 6px 14px;
    border-radius: 999px;
    border: 1px solid transparent;
    transition: all .25s;
  }
  .ai-tri-7 .toc a:hover, .ai-tri-7 .toc a.active {
    color: var(--primary-deep);
    background: var(--primary-soft);
    border-color: var(--primary-soft);
  }

  /* ===== Sections ===== */
  .ai-tri-7 section { padding: 64px 0 8px; }
  .ai-tri-7 .sec-head {
    display: flex; align-items: center; gap: 14px;
    margin-bottom: 26px;
  }
  .ai-tri-7 .sec-num {
    width: 52px; height: 52px; flex: 0 0 52px;
    border-radius: 16px;
    background: var(--primary-soft);
    display: flex; align-items: center; justify-content: center;
    font-size: 26px;
  }
  .ai-tri-7 .sec-head h2 {
    font-family: var(--serif);
    font-size: clamp(22px, 3.6vw, 28px);
    line-height: 1.4;
  }
  .ai-tri-7 .sec-head .sec-sub { font-size: 13px; color: var(--ink-soft); display: block; font-family: var(--sans); font-weight: 400; margin-top: 2px; }

  .ai-tri-7 .card {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 28px 26px;
    margin-bottom: 22px;
    box-shadow: 0 2px 10px rgba(43,39,36,.04);
  }
  .ai-tri-7 p + p { margin-top: 16px; }
  .ai-tri-7 .card h3 {
    font-size: 18px; margin-bottom: 12px;
    display: flex; align-items: center; gap: 8px;
  }
  .ai-tri-7 .em { color: var(--primary-deep); font-weight: 700; }
  .ai-tri-7 strong { font-weight: 700; }

  .ai-tri-7 .quote {
    margin: 34px 0;
    background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);
    color: #fff;
    border-radius: var(--radius);
    padding: 34px 30px;
    font-family: var(--serif);
    font-size: clamp(19px, 3vw, 23px);
    line-height: 1.7;
    position: relative;
  }
  .ai-tri-7 .quote::before {
    content: &quot;❝&quot;;
    position: absolute; top: 10px; left: 18px;
    font-size: 44px; opacity: .3;
  }
  .ai-tri-7 .quote .who {
    display: block; margin-top: 14px;
    font-family: var(--sans); font-size: 13px; opacity: .8;
  }

  /* ===== demo 通用 ===== */
  .ai-tri-7 .demo {
    background: var(--card);
    border: 2px dashed var(--primary);
    border-radius: var(--radius);
    padding: 30px 26px;
    margin: 30px 0;
  }
  .ai-tri-7 .demo-title {
    text-align: center; font-weight: 700; font-size: 16px;
    color: var(--primary-deep);
    letter-spacing: 1px; margin-bottom: 6px;
  }
  .ai-tri-7 .demo-hint { text-align: center; font-size: 13px; color: var(--ink-soft); margin-bottom: 20px; }
  .ai-tri-7 .toggle-bar {
    display: flex; justify-content: center; gap: 10px; margin-bottom: 20px;
  }
  .ai-tri-7 .toggle-bar button {
    font-family: var(--sans);
    font-size: 15px; font-weight: 600;
    padding: 9px 20px; border-radius: 999px;
    border: 1.5px solid var(--line);
    background: #fff; color: var(--ink-soft);
    cursor: pointer; transition: all .2s;
  }
  .ai-tri-7 .toggle-bar button.on {
    border-color: var(--primary);
    background: var(--primary); color: #fff;
    box-shadow: 0 4px 14px rgba(28,126,214,.28);
  }

  /* ===== S2：脚本 vs 嘴算 ===== */
  .ai-tri-7 .vs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 22px 0; }
  .ai-tri-7 .vs-card {
    border-radius: 16px;
    padding: 22px 20px;
    font-size: 14.5px;
  }
  .ai-tri-7 .vs-card.mouth { background: #F6F3F0; border: 1px solid var(--line); }
  .ai-tri-7 .vs-card.machine { background: var(--primary-light); border: 1px solid var(--primary-soft); }
  .ai-tri-7 .vs-card .v-ico { font-size: 28px; }
  .ai-tri-7 .vs-card h4 { font-size: 16px; margin: 8px 0 6px; }
  .ai-tri-7 .vs-card.machine h4 { color: var(--primary-deep); }
  .ai-tri-7 .vs-card ul { padding-left: 18px; }
  .ai-tri-7 .vs-card li { margin: 4px 0; }

  /* ===== S3：加载清单对比 ===== */
  .ai-tri-7 .load-list { border-radius: 14px; padding: 18px 20px; font-size: 14.5px; min-height: 170px; }
  .ai-tri-7 .load-list.stuff { background: #F6F3F0; border: 1px solid var(--line); }
  .ai-tri-7 .load-list.lean { background: var(--primary-light); border: 1px solid var(--primary-soft); }
  .ai-tri-7 .load-list h5 { font-size: 15px; margin-bottom: 10px; }
  .ai-tri-7 .load-list.stuff h5 { color: #9A3B1E; }
  .ai-tri-7 .load-list.lean h5 { color: var(--primary-deep); }
  .ai-tri-7 .load-list li { margin: 5px 0; padding-left: 4px; list-style: none; }
  .ai-tri-7 .load-list .tag-bill {
    display: inline-block; margin-top: 10px;
    font-size: 12.5px; font-weight: 700;
    border-radius: 999px; padding: 3px 12px;
  }
  .ai-tri-7 .load-list.stuff .tag-bill { background: #FFE3E3; color: #C92A2A; }
  .ai-tri-7 .load-list.lean .tag-bill { background: #D3F9D8; color: #2B8A3E; }

  /* ===== S4：翻车诊断 ===== */
  .ai-tri-7 .diag-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 16px; }
  .ai-tri-7 .d-item {
    background: #fff;
    border: 1.5px solid var(--line);
    border-radius: 14px;
    padding: 16px 16px;
    cursor: pointer;
    transition: all .2s;
    text-align: left;
    font-family: var(--sans);
  }
  .ai-tri-7 .d-item:hover { transform: translateY(-2px); box-shadow: 0 5px 14px rgba(43,39,36,.1); }
  .ai-tri-7 .d-item.on { border-color: var(--primary); background: var(--primary-light); }
  .ai-tri-7 .d-item .d-ico { font-size: 24px; }
  .ai-tri-7 .d-item b { display: block; font-size: 15px; margin-top: 4px; }
  .ai-tri-7 .d-item span { font-size: 12.5px; color: var(--ink-soft); }
  .ai-tri-7 .d-result {
    background: var(--primary-light);
    border: 1px solid var(--primary-soft);
    border-radius: 14px;
    padding: 18px 20px;
    font-size: 14.5px;
    min-height: 110px;
  }
  .ai-tri-7 .d-result h4 { color: var(--primary-deep); font-size: 15.5px; margin-bottom: 8px; }
  .ai-tri-7 .d-result .rx { margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--primary-soft); }
  .ai-tri-7 .d-result .rx b { color: var(--primary-deep); }

  /* ===== compare table ===== */
  .ai-tri-7 .cmp { width: 100%; border-collapse: separate; border-spacing: 0; margin: 22px 0; font-size: 15px; }
  .ai-tri-7 .cmp th, .ai-tri-7 .cmp td { padding: 13px 14px; border-bottom: 1px solid var(--line); text-align: left; }
  .ai-tri-7 .cmp th { background: var(--primary-soft); color: var(--primary-deep); font-size: 14px; }
  .ai-tri-7 .cmp td:first-child { font-weight: 700; white-space: nowrap; }
  .ai-tri-7 .cmp tr:last-child td { border-bottom: none; }

  /* ===== quiz ===== */
  .ai-tri-7 .quiz { margin: 26px 0 6px; }
  .ai-tri-7 .q-item { margin-bottom: 22px; }
  .ai-tri-7 .q-item .q {
    font-weight: 700; font-size: 16px; margin-bottom: 12px;
  }
  .ai-tri-7 .q-item .q .qn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 26px; height: 26px; border-radius: 8px;
    background: var(--primary); color: #fff;
    font-size: 14px; margin-right: 8px;
    vertical-align: -5px;
  }
  .ai-tri-7 .opts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .ai-tri-7 .opts button {
    font-family: var(--sans); font-size: 14.5px; text-align: left;
    padding: 12px 16px; border-radius: 12px;
    border: 1.5px solid var(--line);
    background: #fff; color: var(--ink);
    cursor: pointer; transition: all .2s; line-height: 1.6;
  }
  .ai-tri-7 .opts button:hover { border-color: var(--primary); }
  .ai-tri-7 .opts button.right { border-color: #2B8A3E; background: #EBF7EE; color: #1B5E2B; font-weight: 700; }
  .ai-tri-7 .opts button.wrong { border-color: #C92A2A; background: #FFF0F0; color: #A61E1E; }
  .ai-tri-7 .q-explain {
    margin-top: 10px; font-size: 13.5px; color: var(--ink-soft);
    background: var(--primary-light); border-radius: 10px;
    padding: 10px 14px; display: none;
  }
  .ai-tri-7 .q-explain.show { display: block; }

  /* ===== 结尾互动 ===== */
  .ai-tri-7 .final-cta {
    margin: 50px 0 10px;
    text-align: center;
    padding: 44px 26px;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius);
  }
  .ai-tri-7 .final-cta .emoji { font-size: 40px; }
  .ai-tri-7 .final-cta h2 { font-family: var(--serif); font-size: 24px; margin: 12px 0 10px; }

  /* ===== series nav ===== */
  .ai-tri-7 .series-nav {
    margin: 40px 0 60px;
    display: grid; grid-template-columns: 1fr; gap: 14px;
  }
  .ai-tri-7 .snav-card {
    display: flex; align-items: center; gap: 16px;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
    text-decoration: none;
    color: var(--ink);
    transition: all .25s;
  }
  .ai-tri-7 .snav-card:hover { transform: translateY(-3px); box-shadow: 0 8px 22px rgba(43,39,36,.09); border-color: var(--primary); }
  .ai-tri-7 .snav-card .arrow { font-size: 22px; color: var(--primary); }
  .ai-tri-7 .snav-card b { display: block; font-size: 16px; }
  .ai-tri-7 .snav-card span { font-size: 13px; color: var(--ink-soft); }

  .ai-tri-7 footer {
    text-align: center;
    padding: 30px 0 50px;
    color: var(--ink-soft);
    font-size: 13px;
  }

  /* reveal on scroll */
  .ai-tri-7 .reveal { opacity: 0; transform: translateY(26px); transition: all .7s cubic-bezier(.22,.61,.36,1); }
  .ai-tri-7 .reveal.in { opacity: 1; transform: none; }

  @media (max-width: 560px) {
  .ai-tri-7 { font-size: 16px; }
  .ai-tri-7 .vs-grid, .ai-tri-7 .diag-grid, .ai-tri-7 .opts { grid-template-columns: 1fr; }
  .ai-tri-7 .cmp { font-size: 14px; }
  .ai-tri-7 .cmp th, .ai-tri-7 .cmp td { padding: 10px 8px; }
  .ai-tri-7 .cmp td:first-child { white-space: normal; }
  }


  /* === Z-Blog 正文适配层 === */
  .ai-tri { font-size: 17px; line-height: 1.85; color: #2B2724; }
  .ai-tri .tri-banner { text-align: center; padding: 8px 0 4px; margin-bottom: 18px; }
  .ai-tri .tri-banner .tri-title {
    font-family: &quot;Songti SC&quot;, &quot;STSong&quot;, &quot;SimSun&quot;, Georgia, serif;
    font-size: clamp(22px, 3.4vw, 30px); line-height: 1.45; margin: 16px 0 8px; font-weight: 700;
  }
  .ai-tri .tri-banner .tri-sub { font-size: 15px; color: #6B6259; }
  .ai-tri .tri-banner .series-tag {
    background: var(--primary-soft); border: 1px solid var(--primary);
    color: var(--primary-deep); margin-bottom: 0;
  }
  .ai-tri main { display: block; }&lt;/style&gt;&lt;header class=&quot;tri-banner&quot;&gt;&lt;span class=&quot;series-tag&quot;&gt;AI 打工日志 · 技能篇&lt;/span&gt;
 &amp;nbsp;&lt;h2 class=&quot;tri-title&quot;&gt;《技能进阶：从员工手册到技术档案室》&lt;/h2&gt;&lt;p class=&quot;tri-sub&quot;&gt;会写手册，还要会开手册柜、配机器、防翻车 · 阅读约 8 分钟 · 无需技术背景&lt;/p&gt;&lt;p class=&quot;tri-sub&quot;&gt;&lt;img src=&quot;https://imwen.com/zb_users/upload/2026/09/202609121789209251165329.jpg&quot; alt=&quot;cover-7.jpg&quot; width=&quot;768&quot; height=&quot;512&quot; border=&quot;0&quot; vspace=&quot;0&quot; title=&quot;cover-7.jpg&quot; style=&quot;width: 768px; height: 512px;&quot;/&gt;&lt;/p&gt;&lt;/header&gt;&lt;main class=&quot;wrap&quot;&gt;&lt;!-- S1 --&gt;&lt;section id=&quot;s1&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🏗️&lt;/div&gt;&lt;h2&gt;徒弟出师之后&lt;span class=&quot;sec-sub&quot;&gt;光有手册不够，还得配装备、开档案柜&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;前三篇走完，你的 AI 徒弟已经&amp;quot;认识手册、会用装备、能照菜谱干活&amp;quot;了。但它还是个&lt;span class=&quot;em&quot;&gt;只带了一张纸的徒弟&lt;/span&gt;：算 300 行数据靠心算，查个新税率要现场翻你聊天记录，闯了祸你也不知道该怪谁。&lt;/p&gt;&lt;p&gt;这一篇就是给徒弟配齐&amp;quot;技术档案室&amp;quot;的三件套：&lt;strong&gt;一台机器&lt;/strong&gt;（scripts/ 脚本）、&lt;strong&gt;一个档案柜&lt;/strong&gt;（references/ 资料库）、&lt;strong&gt;一套事故预案&lt;/strong&gt;（翻车急救流程）。最后，把这门手艺上架技能市场——从&amp;quot;会用 AI&amp;quot;正式毕业到&amp;quot;输出方法论&amp;quot;。&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;!-- S2 --&gt;&lt;section id=&quot;s2&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🔧&lt;/div&gt;&lt;h2&gt;配台机器：scripts/ 脚本&lt;span class=&quot;sec-sub&quot;&gt;手册教流程，机器管精度——嘴再溜也算不过计算器&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;上一篇菜谱化解决的是&amp;quot;步骤说清楚&amp;quot;，但有些活不是说得清就干得了的：300 行发票求和、批量重命名 80 个文件、按经纬度算距离——&lt;span class=&quot;em&quot;&gt;AI 用&amp;quot;嘴&amp;quot;算这些，跟大厨用心算找零一样，不是不行，是不敢用&lt;/span&gt;。&lt;/p&gt;&lt;p&gt;所以第三篇埋的那个伏笔（&amp;quot;能交给脚本的，别让它用嘴算&amp;quot;）现在正式展开：把这些活写成脚本，放进技能的 scripts/ 文件夹，手册里只写一句&amp;quot;这一步调用 xxx 脚本&amp;quot;。AI 负责判断和串联，脚本负责精确执行。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;vs-grid reveal&quot;&gt;&lt;div class=&quot;vs-card mouth&quot;&gt;&lt;div class=&quot;v-ico&quot;&gt;🗣️&lt;/div&gt;&lt;h4&gt;嘴算模式&lt;/h4&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;300 行求和：可能对，可能差一点&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;批量文件：逐个&amp;quot;假装&amp;quot;处理&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;同样的问题问三遍，答案能出三个&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;错了还特别自信&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;vs-card machine&quot;&gt;&lt;div class=&quot;v-ico&quot;&gt;⚙️&lt;/div&gt;&lt;h4&gt;脚本模式&lt;/h4&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;300 行求和：毫秒出结果，分毫不差&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;批量文件：一次全处理完&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;跑一万遍，结果永远一样&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;错了会报错，绝不装没事&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;h3&gt;💡 冷知识：脚本也是 AI 写&lt;/h3&gt;&lt;p&gt;不会编程？没关系——&lt;strong&gt;让 AI 自己写&lt;/strong&gt;。你用大白话描述&amp;quot;这个脚本要干嘛、输入什么、输出什么&amp;quot;，AI 十有八九能写出来，你负责测试和验收。这是全系列最划算的一笔买卖：用 AI 的脑子，造 AI 的手。&lt;/p&gt;&lt;p&gt;判断该不该上脚本的口诀：&lt;span class=&quot;em&quot;&gt;重复的、算数的、批量的、要分毫不差的——上脚本；要理解、要判断、要措辞的——留给手册。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;!-- S3 --&gt;&lt;section id=&quot;s3&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🗄️&lt;/div&gt;&lt;h2&gt;开个档案柜：references/ 资料库&lt;span class=&quot;sec-sub&quot;&gt;把知识归档，而不是塞进 AI 的脑子&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;第三篇说过：SKILL.md 只放主干，大块头资料进 references/。这一节讲清楚为什么&amp;quot;归档&amp;quot;比&amp;quot;塞脑内&amp;quot;划算——因为&lt;strong&gt;AI 的脑子是按次计费的&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;你每次派活，AI 都要重新&amp;quot;读&amp;quot;一遍塞给它的所有内容。把 40 页报销制度写进手册正文，等于每次干点小事都背一遍制度全文——又慢又贵，还容易读串行。放进档案柜就优雅多了：手册里写&amp;quot;税率见 references/报销制度2026.md&amp;quot;，用到才去翻，翻完只取那几行。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;demo reveal&quot;&gt;&lt;div class=&quot;demo-title&quot;&gt;🗄️ 账单对比：塞脑内 vs 归档&lt;/div&gt;&lt;div class=&quot;demo-hint&quot;&gt;同一个任务「核对 5 张发票的税率」，看两种存法每次要加载多少&lt;/div&gt;&lt;div class=&quot;toggle-bar&quot;&gt;&lt;button id=&quot;btnStuff&quot; class=&quot;on&quot;&gt;🧠 塞脑内（全写进手册正文）&lt;/button&gt;&lt;button id=&quot;btnLean&quot;&gt;🗄️ 归档（手册 + 档案柜分层）&lt;/button&gt;&lt;/div&gt;&lt;ul class=&quot;load-list stuff list-paddingleft-2&quot; id=&quot;loadList&quot;&gt;&lt;h5&gt;每次干活，AI 都得先读一遍：&lt;/h5&gt;&lt;li&gt;&lt;p&gt;📄 手册正文（含完整报销制度 40 页）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;📄 增值税税率表全文 + 历年政策变更说明&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;📄 报销流程审批权限矩阵（跟本任务无关）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;📄 常见问题 88 条（跟本任务无关）&lt;/p&gt;&lt;/li&gt;&lt;span class=&quot;tag-bill&quot;&gt;⏱️ 慢 · 💸 贵 · 😵 串味风险高&lt;/span&gt;&lt;li&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;h3&gt;🗂️ 档案柜收纳三原则&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;① 一事一柜&lt;/strong&gt;——税率表、审批权限、常见问题分文件放，别记在一个大杂烩里；&lt;strong&gt;② 文件名说人话&lt;/strong&gt;——&amp;quot;报销制度2026.md&amp;quot; 比 &amp;quot;doc3_final_新.md&amp;quot; 好找一百倍；&lt;strong&gt;③ 政策变了只改柜子&lt;/strong&gt;——税率更新只需替换那一个文件，手册正文一个字不用动，技能秒懂新政。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;quote reveal&quot;&gt;脑子用来判断，柜子用来存放，账单用来证明这个决定是对的。 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;who&quot;&gt;—— 档案室主任的节约哲学&lt;/span&gt;&lt;/div&gt;&lt;/section&gt;&lt;!-- S4 --&gt;&lt;section id=&quot;s4&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🚑&lt;/div&gt;&lt;h2&gt;翻车急救中心&lt;span class=&quot;sec-sub&quot;&gt;实习生闯祸三步：复盘 → 改手册 → 再放出去&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;技能一定会翻车——这不是悲观，是设定预期。区别在于：&lt;span class=&quot;em&quot;&gt;新手对着翻车的 AI 骂骂咧咧，老手把每次翻车变成一次手册升级&lt;/span&gt;。&lt;/p&gt;&lt;p&gt;急救的总流程固定三步：&lt;strong&gt;① 复盘&lt;/strong&gt;（它当时读了什么、干了什么、错在哪一步）；&lt;strong&gt;② 改手册&lt;/strong&gt;（把坑写进去，让这个错永远不可能再犯）；&lt;strong&gt;③ 再放出去&lt;/strong&gt;（用同样的任务重跑验证）。下面是四个最常见症状的诊断单——点开看看：&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;demo reveal&quot;&gt;&lt;div class=&quot;demo-title&quot;&gt;🚑 症状诊断台&lt;/div&gt;&lt;div class=&quot;demo-hint&quot;&gt;点任意症状卡，看诊断和药方&lt;/div&gt;&lt;div class=&quot;diag-grid&quot;&gt;&lt;button class=&quot;d-item&quot; data-k=&quot;hallu&quot;&gt;&lt;span class=&quot;d-ico&quot;&gt;🤥&lt;/span&gt;&lt;strong&gt;症状 ①：数据是编的&lt;/strong&gt;&amp;quot;这数字哪来的？&amp;quot;&amp;quot;我猜的&amp;quot;&lt;/button&gt;&lt;button class=&quot;d-item&quot; data-k=&quot;miss&quot;&gt;&lt;span class=&quot;d-ico&quot;&gt;🙈&lt;/span&gt;&lt;strong&gt;症状 ②：该上场时装死&lt;/strong&gt;明明有技能，它就是不用&lt;/button&gt;&lt;button class=&quot;d-item&quot; data-k=&quot;fmt&quot;&gt;&lt;span class=&quot;d-ico&quot;&gt;🎲&lt;/span&gt;&lt;strong&gt;症状 ③：格式每次都变&lt;/strong&gt;昨天三栏今天五栏，随心所欲&lt;/button&gt;&lt;button class=&quot;d-item&quot; data-k=&quot;stuck&quot;&gt;&lt;span class=&quot;d-ico&quot;&gt;🧱&lt;/span&gt;&lt;strong&gt;症状 ④：中途停下装死&lt;/strong&gt;干到一半不吭声了&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;d-result&quot; id=&quot;dResult&quot;&gt;&lt;h4&gt;👈 点一个症状开始诊断&lt;/h4&gt;&lt;p style=&quot;font-size:13.5px;color:var(--ink-soft)&quot;&gt;翻车不可怕，可怕的是同一个坑摔三次——那说明你一直没改手册。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;h3&gt;📋 急救中心墙上贴的三句话&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;1. 翻车是手册的免费体检&lt;/strong&gt;——每个 bug 都暴露一处没写清的地方。&lt;br/&gt; &amp;nbsp;&lt;strong&gt;2. 修手册，别修脾气&lt;/strong&gt;——对着 AI 发火不解决任何问题，改一行触发条件立竿见影。&lt;br/&gt; &amp;nbsp;&lt;strong&gt;3. 记事故日志&lt;/strong&gt;——翻过的车简单记一笔（症状+药方），下次同类问题三十秒定位。&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;!-- S5 --&gt;&lt;section id=&quot;s5&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🌍&lt;/div&gt;&lt;h2&gt;上架市场，与更远的地图&lt;span class=&quot;sec-sub&quot;&gt;把手艺共享出去，然后看看整个 AI 江湖&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;技能练成了，最后一件事：&lt;span class=&quot;em&quot;&gt;上架技能市场&lt;/span&gt;。把文件夹打包提交，写清楚简介和适用场景，全世界的用户就能一键安装你的手艺。这跟把精心调好的 Excel 模板共享到全公司是一回事——只不过这次，&amp;quot;全公司&amp;quot;是整个互联网。&lt;/p&gt;&lt;p&gt;别觉得自己的手艺&amp;quot;太土&amp;quot;不值一提。你会的&amp;quot;门店日销对账&amp;quot;“工地日志整理”&amp;quot;宠物医院回访话术&amp;quot;，对同行来说是刚需。&lt;strong&gt;越垂直的经验，越稀缺；越稀缺，越值钱。&lt;/strong&gt;写 App 要一个团队，写技能只要一个下午——这可能是普通人分享知识成本最低、杠杆最大的时代。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;h3&gt;🗺️ 最后，把整张地图摊开&lt;/h3&gt;&lt;p&gt;技能篇完结，把前面所有概念拼成一张&amp;quot;AI 打工宇宙&amp;quot;的全家福：&lt;/p&gt;&lt;table class=&quot;cmp&quot;&gt;&lt;tbody&gt;&lt;tr class=&quot;firstRow&quot;&gt;&lt;th&gt;成员&lt;/th&gt;&lt;th&gt;管什么&lt;/th&gt;&lt;th&gt;一句话&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;大模型&lt;/td&gt;&lt;td&gt;脑子&lt;/td&gt;&lt;td&gt;读完了整个互联网的话痨（前传①）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Agent&lt;/td&gt;&lt;td&gt;手脚&lt;/td&gt;&lt;td&gt;会自己拆任务、用工具的员工（前传②）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Skill&lt;/td&gt;&lt;td&gt;岗位知识&lt;/td&gt;&lt;td&gt;员工手册 + 装备 + 档案柜（本系列）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MCP&lt;/td&gt;&lt;td&gt;标准插座&lt;/td&gt;&lt;td&gt;让 AI 能插上各种外部系统的新接口&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;顺带认识一下新面孔 &lt;strong&gt;MCP&lt;/strong&gt;：如果说技能是&amp;quot;教 AI 怎么干&amp;quot;，MCP 就是&amp;quot;给 AI 一个标准插座&amp;quot;，让它能统一插上数据库、网盘、企业系统这些外部电源。技能管知识，MCP 管连接，Agent 管调度——三者合体，才是完整的&amp;quot;数字员工&amp;quot;。这就是下一季的故事了。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;quote reveal&quot;&gt;三部曲教会你用 AI，技能篇教会你把经验变成 AI 的本事——后者才是你带得走的行李。 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;who&quot;&gt;—— AI 打工日志 · 技能篇 · 完&lt;/span&gt;&lt;/div&gt;&lt;/section&gt;&lt;!-- S6 --&gt;&lt;section id=&quot;s6&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🎓&lt;/div&gt;&lt;h2&gt;系列毕业大考&lt;span class=&quot;sec-sub&quot;&gt;三道题横跨四篇，答完真毕业&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;demo reveal&quot;&gt;&lt;div class=&quot;demo-title&quot;&gt;🎓 毕业大考&lt;/div&gt;&lt;div class=&quot;demo-hint&quot;&gt;答对三题，授予「AI 带教师傅」称号&lt;/div&gt;&lt;div class=&quot;quiz&quot;&gt;&lt;div class=&quot;q-item&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;1&lt;/span&gt;SKILL.md 手册正文越厚越好，资料全塞进去最省事。对吗？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;b&quot; data-explain=&quot;错。手册正文只放主干流程，大块资料放 references/ 档案柜。AI 的脑子按次计费：塞太厚每次都全量加载，又慢又贵还容易串味。用到才翻，才是优雅的姿势。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 对，一步到位省得以后再改&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 错，主干进手册，大块头进档案柜&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;q-item&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;2&lt;/span&gt;AI 用你的技能算 300 行发票求和，你该怎么想？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;c&quot; data-explain=&quot;重复、算数、批量、要分毫不差的活，都该交给 scripts/ 里的脚本。AI 负责判断和串联，脚本负责精确执行——嘴再溜也算不过计算器。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 它是 AI，算数肯定没问题&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 让它算三遍取多数答案&lt;/button&gt;&lt;button data-v=&quot;c&quot;&gt;C. 该上脚本了：这种活别让它用嘴算&lt;/button&gt;&lt;button data-v=&quot;d&quot;&gt;D. 人工再算一遍核对&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;q-item&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;3&lt;/span&gt;技能翻车了，最专业的第一反应是？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;d&quot; data-explain=&quot;急救三步：复盘（它读了什么、错在哪步）→ 改手册（把坑写进去）→ 再放出去（同任务重跑验证）。翻车是手册的免费体检，同一个坑摔三次才是真的失职。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 对着 AI 骂一顿出气&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 立刻卸载换别人的技能&lt;/button&gt;&lt;button data-v=&quot;c&quot;&gt;C. 以后这个活还是自己干吧&lt;/button&gt;&lt;button data-v=&quot;d&quot;&gt;D. 复盘 → 改手册 → 同任务重跑验证&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;final-cta reveal&quot;&gt;&lt;div class=&quot;emoji&quot;&gt;🏁&lt;/div&gt;&lt;h2&gt;技能篇 · 全系列完&lt;/h2&gt;&lt;p style=&quot;color: var(--ink-soft)&quot;&gt;认识手册 → 办装备 → 当师傅 → 开档案室。&lt;br/&gt;四篇读完，你已经完成了从&amp;quot;AI 用户&amp;quot;到&amp;quot;AI 师傅&amp;quot;的转型。&lt;br/&gt;&lt;br/&gt;下一季预告：《AI 打工日志》Agent 篇——&lt;br/&gt;当徒弟越来越多，谁来当包工头？&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;/main&gt;&lt;script&gt;(function () {
  var root = document.currentScript.closest(&#039;.ai-tri&#039;);
  
  // ---- 滚动显现 ----
  const io = new IntersectionObserver((entries) =&gt; {
    entries.forEach(e =&gt; { if (e.isIntersecting) { e.target.classList.add(&#039;in&#039;); io.unobserve(e.target); } });
  }, { threshold: 0.12 });
  root.querySelectorAll(&#039;.reveal&#039;).forEach(el =&gt; io.observe(el));

  // ---- 目录高亮 ----
  const links = root.querySelectorAll(&#039;.toc a&#039;);
  const secs = [...links].map(a =&gt; root.querySelector(a.getAttribute(&#039;href&#039;)));
  const spy = new IntersectionObserver((entries) =&gt; {
    entries.forEach(e =&gt; {
      if (e.isIntersecting) {
        links.forEach(l =&gt; l.classList.remove(&#039;active&#039;));
        const hit = links.find(l =&gt; l.getAttribute(&#039;href&#039;) === &#039;#&#039; + e.target.id);
        if (hit) hit.classList.add(&#039;active&#039;);
      }
    });
  }, { rootMargin: &#039;-30% 0px -60% 0px&#039; });
  secs.forEach(s =&gt; s &amp;&amp; spy.observe(s));

  // ---- S3：加载清单切换 ----
  const stuffHtml = &#039;&lt;h5&gt;🧠 塞脑内 · 每次干活，AI 都得先读一遍：&lt;/h5&gt;&#039; +
    &#039;&lt;li&gt;📄 手册正文（含完整报销制度 40 页）&lt;/li&gt;&#039; +
    &#039;&lt;li&gt;📄 增值税税率表全文 + 历年政策变更说明&lt;/li&gt;&#039; +
    &#039;&lt;li&gt;📄 报销流程审批权限矩阵（跟本任务无关）&lt;/li&gt;&#039; +
    &#039;&lt;li&gt;📄 常见问题 88 条（跟本任务无关）&lt;/li&gt;&#039; +
    &#039;&lt;span class=&quot;tag-bill&quot;&gt;⏱️ 慢 · 💸 贵 · 😵 串味风险高&lt;/span&gt;&#039;;
  const leanHtml = &#039;&lt;h5&gt;🗄️ 归档 · 每次干活，AI 只需要：&lt;/h5&gt;&#039; +
    &#039;&lt;li&gt;📄 手册正文（1 页主干流程 + 一句「税率见档案柜」）&lt;/li&gt;&#039; +
    &#039;&lt;li&gt;📄 翻开档案柜，只抽那一页税率表&lt;/li&gt;&#039; +
    &#039;&lt;li&gt;✅ 干完收工&lt;/li&gt;&#039; +
    &#039;&lt;span class=&quot;tag-bill&quot;&gt;⚡ 快 · 💰 省 · 🎯 精准取用零干扰&lt;/span&gt;&#039;;
  const btnStuff = root.querySelector(&#039;#btnStuff&#039;);
  const btnLean = root.querySelector(&#039;#btnLean&#039;);
  const loadList = root.querySelector(&#039;#loadList&#039;);
  function setLoad(mode) {
    const stuff = mode === &#039;stuff&#039;;
    btnStuff.classList.toggle(&#039;on&#039;, stuff);
    btnLean.classList.toggle(&#039;on&#039;, !stuff);
    loadList.className = &#039;load-list &#039; + (stuff ? &#039;stuff&#039; : &#039;lean&#039;);
    loadList.innerHTML = stuff ? stuffHtml : leanHtml;
  }
  btnStuff.onclick = () =&gt; setLoad(&#039;stuff&#039;);
  btnLean.onclick = () =&gt; setLoad(&#039;lean&#039;);

  // ---- S4：症状诊断 ----
  const diag = {
    hallu: {
      title: &#039;🤥 症状 ①：数据是编的&#039;,
      why: &#039;&lt;b&gt;病理：&lt;/b&gt;手册里没写&quot;数据从哪来&quot;，AI 又太想帮你——于是凭训练记忆编了个看起来很像的数。这就是大模型祖传的「幻觉」，有技能也挡不住，除非你把来源焊死。&#039;,
      rx: &#039;&lt;b&gt;💊 药方：&lt;/b&gt;手册里加一条：所有数字必须来自输入文件或脚本输出，&lt;b&gt;禁止凭记忆填数&lt;/b&gt;；拿不准的字段标注&quot;未找到&quot;，不许猜。&#039;
    },
    miss: {
      title: &#039;🙈 症状 ②：该上场时装死&#039;,
      why: &#039;&lt;b&gt;病理：&lt;/b&gt;触发条件写得太窄或太生僻。你手册写&quot;用户提到『报销单核对』时使用&quot;，结果你说的是&quot;帮我看看这堆票&quot;——关键词没对上，技能就一直在架上吃灰。&#039;,
      rx: &#039;&lt;b&gt;💊 药方：&lt;/b&gt;触发条件加宽并列举同义词：发票、报销、票据、报账……都算；再补一条&quot;不确定时，询问用户是否需要本技能&quot;。&#039;
    },
    fmt: {
      title: &#039;🎲 症状 ③：格式每次都变&#039;,
      why: &#039;&lt;b&gt;病理：&lt;/b&gt;手册只说&quot;输出表格&quot;，没锁死格式。AI 每次都自由发挥——列顺序、分组方式、小数位数，全看当天心情。&#039;,
      rx: &#039;&lt;b&gt;💊 药方：&lt;/b&gt;格式三件套写死：列名和顺序逐条列出、附一个标准示例、或直接套 assets/ 里的模板文件。格式这种事，永远不留给 AI 创作空间。&#039;
    },
    stuck: {
      title: &#039;🧱 症状 ④：中途停下装死&#039;,
      why: &#039;&lt;b&gt;病理：&lt;/b&gt;某一步失败了（比如文件读不出来），手册没写失败怎么办，AI 就卡在那——既不敢猜，也不敢问，干脆沉默。&#039;,
      rx: &#039;&lt;b&gt;💊 药方：&lt;/b&gt;给每一步加兜底：&quot;失败时，停止并报告原因，等待用户指示。&quot;会喊救命的徒弟，比硬撑的徒弟安全一百倍。&#039;
    }
  };
  const dResult = root.querySelector(&#039;#dResult&#039;);
  root.querySelectorAll(&#039;.d-item&#039;).forEach(item =&gt; {
    item.onclick = () =&gt; {
      root.querySelectorAll(&#039;.d-item&#039;).forEach(x =&gt; x.classList.remove(&#039;on&#039;));
      item.classList.add(&#039;on&#039;);
      const d = diag[item.dataset.k];
      dResult.innerHTML = &#039;&lt;h4&gt;&#039; + d.title + &#039;&lt;/h4&gt;&lt;p&gt;&#039; + d.why + &#039;&lt;/p&gt;&lt;p class=&quot;rx&quot;&gt;&#039; + d.rx + &#039;&lt;/p&gt;&#039;;
    };
  });

  // ---- Quiz ----
  root.querySelectorAll(&#039;.quiz .q-item&#039;).forEach(qi =&gt; {
    const opts = qi.querySelector(&#039;.opts&#039;);
    const explain = qi.querySelector(&#039;.q-explain&#039;);
    const answer = opts.dataset.answer;
    let done = false;
    opts.querySelectorAll(&#039;button&#039;).forEach(btn =&gt; {
      btn.onclick = () =&gt; {
        if (done) return;
        done = true;
        const pick = btn.dataset.v;
        opts.querySelectorAll(&#039;button&#039;).forEach(b =&gt; {
          if (b.dataset.v === answer) b.classList.add(&#039;right&#039;);
          else if (b === btn) b.classList.add(&#039;wrong&#039;);
        });
        explain.textContent = opts.dataset.explain;
        explain.classList.add(&#039;show&#039;);
      };
    });
  });

  // 兜底：2 秒后强制显示所有 reveal 元素，避免任何环境下内容被隐藏
  setTimeout(function () {
    root.querySelectorAll(&#039;.reveal&#039;).forEach(function (el) { el.classList.add(&#039;in&#039;); });
  }, 2000);
})();&lt;/script&gt;&lt;/div&gt;&lt;!-- AI 打工日志 · 技能篇 · 第7篇 · 结束 --&gt;</description><pubDate>Sat, 12 Sep 2026 17:00:07 +0800</pubDate></item><item><title>写技能：给 AI 当一回带教师傅 | AI 打工日志·技能篇③</title><link>https://imwen.com/post/375.html</link><description>&lt;!-- AI 打工日志 · 技能篇 · 第6篇 · 交互完整版（样式已隔离，勿在可视化编辑器中编辑源码模式之外的内容） --&gt;&lt;div class=&quot;ai-tri ai-tri-6&quot;&gt;&lt;style&gt;.ai-tri-6 {
    --primary: #F76707;
    --primary-light: #FFF4E6;
    --primary-soft: #FFE8D6;
    --primary-deep: #D9480F;
    --accent: #FF922B;
    --bg: #FAF7F2;
    --card: #FFFFFF;
    --ink: #2B2724;
    --ink-soft: #6B6259;
    --line: #EDE5DA;
    --radius: 20px;
    --serif: &quot;Songti SC&quot;, &quot;STSong&quot;, &quot;SimSun&quot;, Georgia, serif;
    --sans: -apple-system, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Segoe UI&quot;, sans-serif;
  }
  .ai-tri-6 * { margin: 0; padding: 0; box-sizing: border-box; }
  .ai-tri-6 {
    font-family: var(--sans);
    background: var(--bg);
    color: var(--ink);
    line-height: 1.85;
    font-size: 17px;
  }
  .ai-tri-6 .wrap { max-width: 760px; margin: 0 auto; padding: 0 22px; }

  /* ===== Hero ===== */
  .ai-tri-6 .hero {
    background: linear-gradient(160deg, var(--primary) 0%, var(--accent) 100%);
    color: #fff;
    padding: 72px 0 88px;
    position: relative;
    overflow: hidden;
  }
  .ai-tri-6 .hero::after {
    content: &quot;&quot;;
    position: absolute; bottom: -2px; left: 0; right: 0;
    height: 44px;
    background: var(--bg);
    border-radius: 44px 44px 0 0;
  }
  .ai-tri-6 .series-tag {
    display: inline-block;
    background: rgba(255,255,255,.18);
    border: 1px solid rgba(255,255,255,.4);
    border-radius: 999px;
    padding: 5px 16px;
    font-size: 13px;
    letter-spacing: 2px;
    margin-bottom: 26px;
  }
  .ai-tri-6 .hero .ep { font-size: 14px; letter-spacing: 6px; opacity: .85; margin-bottom: 10px; }
  .ai-tri-6 .hero h1 {
    font-family: var(--serif);
    font-size: clamp(30px, 5.6vw, 46px);
    line-height: 1.35;
    font-weight: 700;
    margin-bottom: 18px;
  }
  .ai-tri-6 .hero .sub { font-size: 18px; opacity: .92; }
  .ai-tri-6 .hero .meta { margin-top: 30px; font-size: 13px; opacity: .75; }

  /* ===== Sticky nav ===== */
  .ai-tri-6 .toc {
    position: sticky; top: 0; z-index: 50;
    background: rgba(250,247,242,.92);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--line);
    padding: 10px 0;
  }
  .ai-tri-6 .toc .wrap {
    display: flex; gap: 8px;
    overflow-x: auto; white-space: nowrap;
    scrollbar-width: none;
  }
  .ai-tri-6 .toc .wrap::-webkit-scrollbar { display: none; }
  .ai-tri-6 .toc a {
    flex: 0 0 auto;
    text-decoration: none;
    color: var(--ink-soft);
    font-size: 14px;
    padding: 6px 14px;
    border-radius: 999px;
    border: 1px solid transparent;
    transition: all .25s;
  }
  .ai-tri-6 .toc a:hover, .ai-tri-6 .toc a.active {
    color: var(--primary-deep);
    background: var(--primary-soft);
    border-color: var(--primary-soft);
  }

  /* ===== Sections ===== */
  .ai-tri-6 section { padding: 64px 0 8px; }
  .ai-tri-6 .sec-head {
    display: flex; align-items: center; gap: 14px;
    margin-bottom: 26px;
  }
  .ai-tri-6 .sec-num {
    width: 52px; height: 52px; flex: 0 0 52px;
    border-radius: 16px;
    background: var(--primary-soft);
    display: flex; align-items: center; justify-content: center;
    font-size: 26px;
  }
  .ai-tri-6 .sec-head h2 {
    font-family: var(--serif);
    font-size: clamp(22px, 3.6vw, 28px);
    line-height: 1.4;
  }
  .ai-tri-6 .sec-head .sec-sub { font-size: 13px; color: var(--ink-soft); display: block; font-family: var(--sans); font-weight: 400; margin-top: 2px; }

  .ai-tri-6 .card {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 28px 26px;
    margin-bottom: 22px;
    box-shadow: 0 2px 10px rgba(43,39,36,.04);
  }
  .ai-tri-6 p + p { margin-top: 16px; }
  .ai-tri-6 .card h3 {
    font-size: 18px; margin-bottom: 12px;
    display: flex; align-items: center; gap: 8px;
  }
  .ai-tri-6 .em { color: var(--primary-deep); font-weight: 700; }
  .ai-tri-6 strong { font-weight: 700; }

  .ai-tri-6 .quote {
    margin: 34px 0;
    background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);
    color: #fff;
    border-radius: var(--radius);
    padding: 34px 30px;
    font-family: var(--serif);
    font-size: clamp(19px, 3vw, 23px);
    line-height: 1.7;
    position: relative;
  }
  .ai-tri-6 .quote::before {
    content: &quot;❝&quot;;
    position: absolute; top: 10px; left: 18px;
    font-size: 44px; opacity: .3;
  }
  .ai-tri-6 .quote .who {
    display: block; margin-top: 14px;
    font-family: var(--sans); font-size: 13px; opacity: .8;
  }

  /* ===== demo 通用 ===== */
  .ai-tri-6 .demo {
    background: var(--card);
    border: 2px dashed var(--primary);
    border-radius: var(--radius);
    padding: 30px 26px;
    margin: 30px 0;
  }
  .ai-tri-6 .demo-title {
    text-align: center; font-weight: 700; font-size: 16px;
    color: var(--primary-deep);
    letter-spacing: 1px; margin-bottom: 6px;
  }
  .ai-tri-6 .demo-hint { text-align: center; font-size: 13px; color: var(--ink-soft); margin-bottom: 20px; }
  .ai-tri-6 .toggle-bar {
    display: flex; justify-content: center; gap: 10px; margin-bottom: 20px;
  }
  .ai-tri-6 .toggle-bar button {
    font-family: var(--sans);
    font-size: 15px; font-weight: 600;
    padding: 9px 20px; border-radius: 999px;
    border: 1.5px solid var(--line);
    background: #fff; color: var(--ink-soft);
    cursor: pointer; transition: all .2s;
  }
  .ai-tri-6 .toggle-bar button.on {
    border-color: var(--primary);
    background: var(--primary); color: #fff;
    box-shadow: 0 4px 14px rgba(247,103,7,.28);
  }

  /* ===== S2：SKILL.md 对照 ===== */
  .ai-tri-6 .md-view {
    background: #2B2724;
    border-radius: 14px;
    padding: 20px 22px;
    font-family: &quot;SF Mono&quot;, Consolas, &quot;Courier New&quot;, monospace;
    font-size: 13.5px;
    line-height: 1.95;
    color: #F1E8DE;
    white-space: pre-wrap;
    word-break: break-word;
  }
  .ai-tri-6 .md-view .cmt { color: #B8ABA0; }
  .ai-tri-6 .md-view .key { color: #FFC9A3; font-weight: 700; }
  .ai-tri-6 .md-view .ok { color: #8CE99A; }
  .ai-tri-6 .md-view .bad { color: #FFA8A8; }
  .ai-tri-6 .md-result {
    margin-top: 16px;
    border-radius: 14px;
    padding: 16px 20px;
    font-size: 14.5px;
    line-height: 1.85;
  }
  .ai-tri-6 .md-result.fail { background: #FFF0F0; border: 1px solid #FFD5D5; }
  .ai-tri-6 .md-result.pass { background: var(--primary-light); border: 1px solid var(--primary-soft); }
  .ai-tri-6 .md-result b.r-head { display: block; margin-bottom: 6px; }
  .ai-tri-6 .md-result.fail b.r-head { color: #C92A2A; }
  .ai-tri-6 .md-result.pass b.r-head { color: var(--primary-deep); }

  /* ===== S4：菜谱化切换 ===== */
  .ai-tri-6 .recipe-list { display: grid; gap: 10px; }
  .ai-tri-6 .r-step {
    display: flex; gap: 14px; align-items: flex-start;
    background: #fff;
    border: 1.5px solid var(--line);
    border-radius: 12px;
    padding: 14px 16px;
    transition: all .3s;
  }
  .ai-tri-6 .r-step .r-num {
    flex: 0 0 28px; height: 28px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 50%;
    background: var(--primary-soft); color: var(--primary-deep);
    font-weight: 700; font-size: 14px;
    margin-top: 2px;
  }
  .ai-tri-6 .r-step b { display: block; font-size: 15px; transition: all .3s; }
  .ai-tri-6 .r-step span { font-size: 13.5px; color: var(--ink-soft); transition: all .3s; }
  .ai-tri-6 .r-step.precise { border-color: var(--primary); background: var(--primary-light); }

  /* ===== compare table ===== */
  .ai-tri-6 .cmp { width: 100%; border-collapse: separate; border-spacing: 0; margin: 22px 0; font-size: 15px; }
  .ai-tri-6 .cmp th, .ai-tri-6 .cmp td { padding: 13px 14px; border-bottom: 1px solid var(--line); text-align: left; }
  .ai-tri-6 .cmp th { background: var(--primary-soft); color: var(--primary-deep); font-size: 14px; }
  .ai-tri-6 .cmp td:first-child { font-weight: 700; white-space: nowrap; }
  .ai-tri-6 .cmp tr:last-child td { border-bottom: none; }

  /* ===== quiz ===== */
  .ai-tri-6 .quiz { margin: 26px 0 6px; }
  .ai-tri-6 .q-item { margin-bottom: 22px; }
  .ai-tri-6 .q-item .q {
    font-weight: 700; font-size: 16px; margin-bottom: 12px;
  }
  .ai-tri-6 .q-item .q .qn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 26px; height: 26px; border-radius: 8px;
    background: var(--primary); color: #fff;
    font-size: 14px; margin-right: 8px;
    vertical-align: -5px;
  }
  .ai-tri-6 .opts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .ai-tri-6 .opts button {
    font-family: var(--sans); font-size: 14.5px; text-align: left;
    padding: 12px 16px; border-radius: 12px;
    border: 1.5px solid var(--line);
    background: #fff; color: var(--ink);
    cursor: pointer; transition: all .2s; line-height: 1.6;
  }
  .ai-tri-6 .opts button:hover { border-color: var(--primary); }
  .ai-tri-6 .opts button.right { border-color: #2B8A3E; background: #EBF7EE; color: #1B5E2B; font-weight: 700; }
  .ai-tri-6 .opts button.wrong { border-color: #C92A2A; background: #FFF0F0; color: #A61E1E; }
  .ai-tri-6 .q-explain {
    margin-top: 10px; font-size: 13.5px; color: var(--ink-soft);
    background: var(--primary-light); border-radius: 10px;
    padding: 10px 14px; display: none;
  }
  .ai-tri-6 .q-explain.show { display: block; }

  /* ===== 结尾互动 ===== */
  .ai-tri-6 .final-cta {
    margin: 50px 0 10px;
    text-align: center;
    padding: 44px 26px;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius);
  }
  .ai-tri-6 .final-cta .emoji { font-size: 40px; }
  .ai-tri-6 .final-cta h2 { font-family: var(--serif); font-size: 24px; margin: 12px 0 10px; }

  /* ===== series nav ===== */
  .ai-tri-6 .series-nav {
    margin: 40px 0 60px;
    display: grid; grid-template-columns: 1fr; gap: 14px;
  }
  .ai-tri-6 .snav-card {
    display: flex; align-items: center; gap: 16px;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
    text-decoration: none;
    color: var(--ink);
    transition: all .25s;
  }
  .ai-tri-6 .snav-card:hover { transform: translateY(-3px); box-shadow: 0 8px 22px rgba(43,39,36,.09); border-color: var(--primary); }
  .ai-tri-6 .snav-card .arrow { font-size: 22px; color: var(--primary); }
  .ai-tri-6 .snav-card b { display: block; font-size: 16px; }
  .ai-tri-6 .snav-card span { font-size: 13px; color: var(--ink-soft); }

  .ai-tri-6 footer {
    text-align: center;
    padding: 30px 0 50px;
    color: var(--ink-soft);
    font-size: 13px;
  }

  /* reveal on scroll */
  .ai-tri-6 .reveal { opacity: 0; transform: translateY(26px); transition: all .7s cubic-bezier(.22,.61,.36,1); }
  .ai-tri-6 .reveal.in { opacity: 1; transform: none; }

  @media (max-width: 560px) {
  .ai-tri-6 { font-size: 16px; }
  .ai-tri-6 .opts { grid-template-columns: 1fr; }
  .ai-tri-6 .md-view { font-size: 12px; }
  .ai-tri-6 .cmp { font-size: 14px; }
  .ai-tri-6 .cmp th, .ai-tri-6 .cmp td { padding: 10px 8px; }
  .ai-tri-6 .cmp td:first-child { white-space: normal; }
  }


  /* === Z-Blog 正文适配层 === */
  .ai-tri { font-size: 17px; line-height: 1.85; color: #2B2724; }
  .ai-tri .tri-banner { text-align: center; padding: 8px 0 4px; margin-bottom: 18px; }
  .ai-tri .tri-banner .tri-title {
    font-family: &quot;Songti SC&quot;, &quot;STSong&quot;, &quot;SimSun&quot;, Georgia, serif;
    font-size: clamp(22px, 3.4vw, 30px); line-height: 1.45; margin: 16px 0 8px; font-weight: 700;
  }
  .ai-tri .tri-banner .tri-sub { font-size: 15px; color: #6B6259; }
  .ai-tri .tri-banner .series-tag {
    background: var(--primary-soft); border: 1px solid var(--primary);
    color: var(--primary-deep); margin-bottom: 0;
  }
  .ai-tri main { display: block; }&lt;/style&gt;&lt;header class=&quot;tri-banner&quot;&gt;&lt;span class=&quot;series-tag&quot;&gt;AI 打工日志 · 技能篇&lt;/span&gt;
 &amp;nbsp;&lt;h2 class=&quot;tri-title&quot;&gt;《写技能：给 AI 当一回带教师傅》&lt;/h2&gt;&lt;p class=&quot;tri-sub&quot;&gt;把你的看家本事，写成 AI 能照做的菜谱 · 阅读约 8 分钟 · 无需技术背景&lt;/p&gt;&lt;p class=&quot;tri-sub&quot;&gt;&lt;img src=&quot;https://imwen.com/zb_users/upload/2026/09/202609101789046649426458.jpg&quot; alt=&quot;cover-6.jpg&quot; width=&quot;768&quot; height=&quot;512&quot; border=&quot;0&quot; vspace=&quot;0&quot; title=&quot;cover-6.jpg&quot; style=&quot;width: 768px; height: 512px;&quot;/&gt;&lt;/p&gt;&lt;/header&gt;&lt;main class=&quot;wrap&quot;&gt;&lt;!-- S1 --&gt;&lt;section id=&quot;s1&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;👨‍🏫&lt;/div&gt;&lt;h2&gt;为什么要自己写？&lt;span class=&quot;sec-sub&quot;&gt;市面上没有的，恰恰是你最值钱的&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;上一篇说了，技能可以市场下载、同事投喂。那为什么还要自己写？&lt;/p&gt;&lt;p&gt;因为&lt;span class=&quot;em&quot;&gt;市场上的技能是通用款，你的工作是个性款&lt;/span&gt;。市场里的&amp;quot;周报技能&amp;quot;不知道你们组周报要抄送谁；&amp;quot;发票技能&amp;quot;不知道你们财务的隐形规矩。就像食堂的大锅菜能吃饱，但做不出你家的味道——秘方在你脑子里。&lt;/p&gt;&lt;p&gt;而把秘方写出来这件事，本来就是老带新的日常：你入职时，是不是也有个师傅跟你说&amp;quot;这步系统里要这么点，别按回车会直接提交&amp;quot;？&lt;strong&gt;写技能，就是把你自己变成那个师傅，AI 变成你的徒弟。&lt;/strong&gt;徒弟学会之后，这活就再也不用你亲自动手了。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;h3&gt;🎁 写完还有三重意外收获&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;① 经验被逼着想清楚。&lt;/strong&gt;很多&amp;quot;手感&amp;quot;写不出来才发现根本说不清——写技能的过程等于免费给自己做了一次工作复盘。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;② 手艺可以攒资产。&lt;/strong&gt;手册写一次用一年，你换项目它跟着你，你升职它传给下一任。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;③ 别人抢不走。&lt;/strong&gt;会用 AI 的人很多，能把自己手艺教给 AI 的人很少——这才是 AI 时代的真·铁饭碗。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;quote reveal&quot;&gt;教会徒弟，饿死师傅？不，教会 AI 的师傅，把重复劳动全喂给了徒弟。 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;who&quot;&gt;—— 新时代师徒关系&lt;/span&gt;&lt;/div&gt;&lt;/section&gt;&lt;!-- S2 --&gt;&lt;section id=&quot;s2&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;📄&lt;/div&gt;&lt;h2&gt;手册骨架：SKILL.md 怎么写&lt;span class=&quot;sec-sub&quot;&gt;带教手册第一页：我是谁、啥时候叫我、怎么干&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;技能的核心就是那个 SKILL.md 文件。别被 Markdown 吓到——它就是带教手册的第一页，只需要回答三个问题：&lt;/p&gt;&lt;p&gt;&lt;strong&gt;我是谁&lt;/strong&gt;（技能名）——起个一眼看懂的名字。&lt;br/&gt; &amp;nbsp;&lt;strong&gt;啥时候叫我&lt;/strong&gt;（触发条件）——写清楚遇到什么任务该翻开这本手册。&lt;br/&gt; &amp;nbsp;&lt;strong&gt;怎么干&lt;/strong&gt;（步骤）——菜谱式地列出操作步骤。&lt;/p&gt;&lt;p&gt;先看一个反例和正例的对比。同一个&amp;quot;整理报销&amp;quot;技能，两版手册，AI 的表现天差地别：&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;demo reveal&quot;&gt;&lt;div class=&quot;demo-title&quot;&gt;📄 对照实验：烂手册 vs 好手册&lt;/div&gt;&lt;div class=&quot;demo-hint&quot;&gt;同一门手艺，两种写法，切换看 AI 的命运分岔&lt;/div&gt;&lt;div class=&quot;toggle-bar&quot;&gt;&lt;button id=&quot;btnBad&quot; class=&quot;on&quot;&gt;🥴 烂手册版&lt;/button&gt;&lt;button id=&quot;btnGood&quot;&gt;🏆 好手册版&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;md-view&quot; id=&quot;mdView&quot;&gt;&lt;/div&gt;&lt;div class=&quot;md-result fail&quot; id=&quot;mdResult&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;h3&gt;🔍 烂在哪，好在哪？&lt;/h3&gt;&lt;p&gt;烂手册的三大死因：&lt;strong&gt;名字含糊&lt;/strong&gt;（&amp;quot;helper&amp;quot;是个筐，什么都往里装，AI 不知道何时该用它）；&lt;strong&gt;没有触发条件&lt;/strong&gt;（永远不知道什么时候翻开）；&lt;strong&gt;步骤全是&amp;quot;酌情处理&amp;quot;&lt;/strong&gt;（把判断题抛还给 AI，等于没教）。&lt;/p&gt;&lt;p&gt;好手册三件套：&lt;strong&gt;名字带业务词&lt;/strong&gt;（invoice-reimburse，一看就知道管报销）；&lt;strong&gt;触发条件写到词&lt;/strong&gt;（&amp;quot;用户提到发票、报销、税&amp;quot;）；&lt;strong&gt;步骤像菜谱&lt;/strong&gt;（先干嘛后干嘛，遇到啥走哪条岔路，全写死）。&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;!-- S3 --&gt;&lt;section id=&quot;s3&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🎯&lt;/div&gt;&lt;h2&gt;触发条件：给权限划清边界&lt;span class=&quot;sec-sub&quot;&gt;只管报销，别管订机票——不写边界，实习生就会越权&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;新人都懂一个道理：管的事越多，越容易出事。技能也一样——&lt;span class=&quot;em&quot;&gt;触发条件写得宽，AI 就会抢戏&lt;/span&gt;。&lt;/p&gt;&lt;p&gt;一本报销技能如果只写&amp;quot;涉及财务的事都找我&amp;quot;，那用户问&amp;quot;这个月预算超了多少&amp;quot;，它也会跳出来插一嘴，还可能给你算错。正确的写法是双向的：&lt;/p&gt;&lt;p&gt;&lt;strong&gt;正向（什么时候用）&lt;/strong&gt;：&amp;quot;用户提到发票整理、报销表、报销单核对时使用。&amp;quot;&lt;br/&gt; &amp;nbsp;&lt;strong&gt;反向（什么时候别用）&lt;/strong&gt;：&amp;quot;仅处理报销整理。预算分析、订票、审批流程等其他财务事务不在范围内，请正常对话回答。&amp;quot;&lt;/p&gt;&lt;p&gt;别小看反向那一行——它就是给实习生划的&amp;quot;越权线&amp;quot;。一行字，少翻十次车。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;h3&gt;⚡ 触发条件速查表&lt;/h3&gt;&lt;table class=&quot;cmp&quot;&gt;&lt;tbody&gt;&lt;tr class=&quot;firstRow&quot;&gt;&lt;th&gt;写法&lt;/th&gt;&lt;th&gt;后果&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;quot;什么都能帮我&amp;quot;&lt;/td&gt;&lt;td&gt;抢戏之王，事事插嘴，错得也多&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;quot;涉及财务就用我&amp;quot;&lt;/td&gt;&lt;td&gt;范围太宽，预算、订票全都伸手&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;只写正向触发词&lt;/td&gt;&lt;td&gt;勉强能用，边界任务容易误触发&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;正向词 + 反向排除 ✅&lt;/td&gt;&lt;td&gt;该出手时才出手，稳&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/section&gt;&lt;!-- S4 --&gt;&lt;section id=&quot;s4&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🍳&lt;/div&gt;&lt;h2&gt;步骤菜谱化：把&amp;quot;适量&amp;quot;写成&amp;quot;3 克&amp;quot;&lt;span class=&quot;sec-sub&quot;&gt;菜谱能复刻，手感不能——除非你把手感翻译成克数&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;中餐菜谱最大的玄学是&amp;quot;盐适量、火候适当&amp;quot;——大厨看了一笑，新手照做翻车。AI 就是那个新手：它没进过你的厨房，&amp;quot;酌情&amp;quot;&amp;quot;大概&amp;quot;&amp;quot;看情况&amp;quot;对它来说等于没说。&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;em&quot;&gt;菜谱化的本质：把你的手感，翻译成它照做不出错的数字和条件。&lt;/span&gt;三个翻译技巧：&lt;/p&gt;&lt;p&gt;&lt;strong&gt;① 数字代替形容&lt;/strong&gt;——&amp;quot;表格适当美化&amp;quot; → &amp;quot;表头加粗、背景浅灰、列宽自适应&amp;quot;。&lt;br/&gt; &amp;nbsp;&lt;strong&gt;② 条件写成分岔&lt;/strong&gt;——&amp;quot;金额不对就处理一下&amp;quot; → &amp;quot;若金额与票据不符，标红并单列，不要自行修改&amp;quot;。&lt;br/&gt; &amp;nbsp;&lt;strong&gt;③ 兜底写出来&lt;/strong&gt;——&amp;quot;遇到问题找我&amp;quot; → &amp;quot;若连续两次提取失败，停止并报告原因，不要猜&amp;quot;。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;demo reveal&quot;&gt;&lt;div class=&quot;demo-title&quot;&gt;🍳 翻译机：手感 → 菜谱&lt;/div&gt;&lt;div class=&quot;demo-hint&quot;&gt;同一套整理周报的步骤，切换看两种写法&lt;/div&gt;&lt;div class=&quot;toggle-bar&quot;&gt;&lt;button id=&quot;btnVague&quot; class=&quot;on&quot;&gt;🌫️ 手感版（大厨式）&lt;/button&gt;&lt;button id=&quot;btnPrecise&quot;&gt;📋 菜谱版（新手也能复刻）&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;recipe-list&quot;&gt;&lt;div class=&quot;r-step&quot; data-p=&quot;0&quot;&gt;&lt;div class=&quot;r-num&quot;&gt;1&lt;/div&gt;&lt;div&gt;&lt;strong&gt;收集本周材料&lt;/strong&gt;把相关的东西都收集起来&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;r-step&quot; data-p=&quot;1&quot;&gt;&lt;div class=&quot;r-num&quot;&gt;2&lt;/div&gt;&lt;div&gt;&lt;strong&gt;提炼工作要点&lt;/strong&gt;挑重点，别太啰嗦&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;r-step&quot; data-p=&quot;2&quot;&gt;&lt;div class=&quot;r-num&quot;&gt;3&lt;/div&gt;&lt;div&gt;&lt;strong&gt;量化工作成果&lt;/strong&gt;能数字化的就数字化&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;r-step&quot; data-p=&quot;3&quot;&gt;&lt;div class=&quot;r-num&quot;&gt;4&lt;/div&gt;&lt;div&gt;&lt;strong&gt;输出周报&lt;/strong&gt;按我们组的格式来&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;h3&gt;💡 最容易被忽略的一条：写清&amp;quot;失败怎么办&amp;quot;&lt;/h3&gt;&lt;p&gt;带徒弟时最有价值的不是教他怎么成功，是教他&lt;strong&gt;失败时别硬撑&lt;/strong&gt;。&amp;quot;提取失败就停下报告&amp;quot;比&amp;quot;尽量提取出来&amp;quot;重要一百倍——AI 最危险的品质是永远自信，你的手册得负责给它装上刹车。&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;!-- S5 --&gt;&lt;section id=&quot;s5&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;📏&lt;/div&gt;&lt;h2&gt;手册多厚才合适？&lt;span class=&quot;sec-sub&quot;&gt;200 页的没人翻，贴工位的 2 页人人背得出&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;新手写技能最爱犯的错：想一次写全。把公司制度、历史案例、八百个注意事项全塞进 SKILL.md，写成一篇论文。&lt;/p&gt;&lt;p&gt;结果呢？&lt;span class=&quot;em&quot;&gt;手册越厚，AI 越抓不住重点&lt;/span&gt;——就像员工手册 200 页没人翻，贴在工位上的 2 页人人背得出。而且别忘了：正文是任务命中才加载的，太厚每次都要&amp;quot;读一遍论文&amp;quot;，又慢又贵还容易串味。&lt;/p&gt;&lt;p&gt;正确的厚度观：&lt;strong&gt;SKILL.md 只放主干流程&lt;/strong&gt;（一两百行封顶），大块头的制度、税率表、案例库，放进 references/ 资料夹，让 AI 遇到细节再去翻——上一篇讲过的&amp;quot;渐进式披露&amp;quot;，说的就是这件事。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;h3&gt;🚀 最小可用技能：先丑后好&lt;/h3&gt;&lt;p&gt;别追求一步到位。第一版手册只要能跑通核心流程就行——哪怕只有名字、触发条件和五步流程。跑几轮真任务，&lt;strong&gt;哪里翻车补哪里&lt;/strong&gt;：误触发了就补反向条件，某步老出错就把那步写细。&lt;/p&gt;&lt;p&gt;技能是养出来的，不是憋出来的。这跟带徒弟一个道理：先让他上手干简单的，闯了祸再复盘，比先关小黑屋培训三个月见效快得多。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;quote reveal&quot;&gt;第一版手册丑没关系，能跑就行——徒弟都是闯祸闯出来的，技能都是翻车翻出来的。 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;who&quot;&gt;—— 带教师傅语录&lt;/span&gt;&lt;/div&gt;&lt;/section&gt;&lt;!-- S6 --&gt;&lt;section id=&quot;s6&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🧪&lt;/div&gt;&lt;h2&gt;出师小测&lt;span class=&quot;sec-sub&quot;&gt;三道题，考考你这个师傅当得称不称职&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;demo reveal&quot;&gt;&lt;div class=&quot;demo-title&quot;&gt;🧭 出师考核&lt;/div&gt;&lt;div class=&quot;demo-hint&quot;&gt;答对两题以上，可以出师带 AI 徒弟了&lt;/div&gt;&lt;div class=&quot;quiz&quot;&gt;&lt;div class=&quot;q-item&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;1&lt;/span&gt;SKILL.md 骨架要回答的三个问题是？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;c&quot; data-explain=&quot;我是谁（技能名）、啥时候叫我（触发条件）、怎么干（菜谱式步骤）。三问缺一，手册就是摆设——要么不知道何时翻开，要么翻开了不知道干嘛。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 作者是谁、写给谁、何时更新&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 有啥功能、收多少钱、怎么退款&lt;/button&gt;&lt;button data-v=&quot;c&quot;&gt;C. 我是谁、啥时候叫我、怎么干&lt;/button&gt;&lt;button data-v=&quot;d&quot;&gt;D. 语法对不对、格式美不美、字数够不够&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;q-item&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;2&lt;/span&gt;&amp;quot;涉及财务的事都找我&amp;quot;这种触发条件，问题出在哪？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;b&quot; data-explain=&quot;范围太宽的触发条件等于没划边界：预算分析、订机票它都要插一脚，越权又容易错。正确姿势是正向触发词（发票、报销表）+ 反向排除（预算、订票不管）。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 没问题，覆盖面广是好事&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 范围太宽，AI 会越权抢戏&lt;/button&gt;&lt;button data-v=&quot;c&quot;&gt;C. 问题在于没写英文&lt;/button&gt;&lt;button data-v=&quot;d&quot;&gt;D. 问题在于字数太少&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;q-item&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;3&lt;/span&gt;把&amp;quot;盐适量&amp;quot;翻译成&amp;quot;3 克盐&amp;quot;，对应到写技能里就是？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;d&quot; data-explain=&quot;菜谱化 = 把手感翻译成可复刻的指令：数字代替形容、条件写成分岔、失败兜底写出来。AI 没进过你的厨房，「酌情处理」对它等于没说。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 把步骤写得更文艺一些&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 让 AI 自己体会其中的奥妙&lt;/button&gt;&lt;button data-v=&quot;c&quot;&gt;C. 多加几个感叹号增强语气&lt;/button&gt;&lt;button data-v=&quot;d&quot;&gt;D. 数字代替形容，条件写成岔路，兜底写出来&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;final-cta reveal&quot;&gt;&lt;div class=&quot;emoji&quot;&gt;👩‍🏫&lt;/div&gt;&lt;h2&gt;技能篇 3/4 · 完&lt;/h2&gt;&lt;p style=&quot;color: var(--ink-soft)&quot;&gt;你的第一本手册已经有骨架了。&lt;br/&gt;&lt;br/&gt;最后一篇，讲怎么把手册升级成&amp;quot;技术档案室&amp;quot;：&lt;br/&gt;配脚本、建资料库、翻车急救，&lt;br/&gt;以及把你的手艺&lt;span class=&quot;em&quot;&gt;上架技能市场&lt;/span&gt;。&lt;br/&gt;《技能进阶：从员工手册到技术档案室》&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;/main&gt;&lt;script&gt;(function () {
  var root = document.currentScript.closest(&#039;.ai-tri&#039;);
  
  // ---- 滚动显现 ----
  const io = new IntersectionObserver((entries) =&gt; {
    entries.forEach(e =&gt; { if (e.isIntersecting) { e.target.classList.add(&#039;in&#039;); io.unobserve(e.target); } });
  }, { threshold: 0.12 });
  root.querySelectorAll(&#039;.reveal&#039;).forEach(el =&gt; io.observe(el));

  // ---- 目录高亮 ----
  const links = root.querySelectorAll(&#039;.toc a&#039;);
  const secs = [...links].map(a =&gt; root.querySelector(a.getAttribute(&#039;href&#039;)));
  const spy = new IntersectionObserver((entries) =&gt; {
    entries.forEach(e =&gt; {
      if (e.isIntersecting) {
        links.forEach(l =&gt; l.classList.remove(&#039;active&#039;));
        const hit = links.find(l =&gt; l.getAttribute(&#039;href&#039;) === &#039;#&#039; + e.target.id);
        if (hit) hit.classList.add(&#039;active&#039;);
      }
    });
  }, { rootMargin: &#039;-30% 0px -60% 0px&#039; });
  secs.forEach(s =&gt; s &amp;&amp; spy.observe(s));

  // ---- S2：烂手册 vs 好手册 ----
  const mdBad = [
    &#039;&lt;span class=&quot;cmt&quot;&gt;# 帮助手册&lt;/span&gt;&#039;,
    &#039;&#039;,
    &#039;&lt;span class=&quot;key&quot;&gt;名字：&lt;/span&gt;helper&#039;,
    &#039;&lt;span class=&quot;key&quot;&gt;用途：&lt;/span&gt;帮助用户处理各种事情&#039;,
    &#039;&#039;,
    &#039;&lt;span class=&quot;cmt&quot;&gt;## 使用方法&lt;/span&gt;&#039;,
    &#039;根据实际情况，酌情处理用户的请求。&#039;,
    &#039;尽量让用户满意。加油！💪&#039;
  ].join(&#039;\n&#039;);
  const resBad = &#039;&lt;b class=&quot;r-head&quot;&gt;🤖 AI 拿到烂手册后的表现：&lt;/b&gt;用户：「整理一下报销单」&lt;br&gt;AI：「好的，我会酌情处理、尽量让您满意！」——然后开始自由发挥：字段自己猜、税率自己选、格式随缘。三小时后你花三小时返工，还没地方说理。&#039;;
  const mdGood = [
    &#039;&lt;span class=&quot;cmt&quot;&gt;# 发票报销整理手册&lt;/span&gt;&#039;,
    &#039;&#039;,
    &#039;&lt;span class=&quot;key&quot;&gt;名字：&lt;/span&gt;invoice-reimburse&#039;,
    &#039;&lt;span class=&quot;key&quot;&gt;触发条件：&lt;/span&gt;用户提到 &lt;span class=&quot;ok&quot;&gt;发票整理、报销表、报销单核对&lt;/span&gt; 时使用；&#039;,
    &#039;预算分析、订机票等&lt;span class=&quot;bad&quot;&gt;不在范围&lt;/span&gt;，正常回答即可。&#039;,
    &#039;&#039;,
    &#039;&lt;span class=&quot;cmt&quot;&gt;## 操作步骤&lt;/span&gt;&#039;,
    &#039;&lt;span class=&quot;ok&quot;&gt;1.&lt;/span&gt; 调用 extract_pdf.py 提取发票数据（发票号/抬头/金额/税额）&#039;,
    &#039;&lt;span class=&quot;ok&quot;&gt;2.&lt;/span&gt; 逐张核对：抬头与公司名不符 → &lt;span class=&quot;bad&quot;&gt;标红单列，不要自行修改&lt;/span&gt;&#039;,
    &#039;&lt;span class=&quot;ok&quot;&gt;3.&lt;/span&gt; 按 references/报销制度2026.md 的税率分类汇总&#039;,
    &#039;&lt;span class=&quot;ok&quot;&gt;4.&lt;/span&gt; 套用 assets/报销模板.xlsx 输出，附给财务的备注&#039;,
    &#039;&#039;,
    &#039;&lt;span class=&quot;cmt&quot;&gt;## 失败兜底&lt;/span&gt;&#039;,
    &#039;连续两次提取失败 → &lt;span class=&quot;bad&quot;&gt;停止并报告原因，禁止瞎猜&lt;/span&gt;&#039;
  ].join(&#039;\n&#039;);
  const resGood = &#039;&lt;b class=&quot;r-head&quot;&gt;🤖 AI 拿到好手册后的表现：&lt;/b&gt;用户：「整理一下报销单」&lt;br&gt;AI：提取 → 核对（2 张抬头不符，已标红）→ 按新税率汇总 → 套模板输出，全程零发挥。你只需要看一眼标红的两张，转发给同事重开。&#039;;

  const btnBad = root.querySelector(&#039;#btnBad&#039;);
  const btnGood = root.querySelector(&#039;#btnGood&#039;);
  const mdView = root.querySelector(&#039;#mdView&#039;);
  const mdResult = root.querySelector(&#039;#mdResult&#039;);

  function setMd(mode) {
    const bad = mode === &#039;bad&#039;;
    btnBad.classList.toggle(&#039;on&#039;, bad);
    btnGood.classList.toggle(&#039;on&#039;, !bad);
    mdView.innerHTML = bad ? mdBad : mdGood;
    mdResult.className = &#039;md-result &#039; + (bad ? &#039;fail&#039; : &#039;pass&#039;);
    mdResult.innerHTML = bad ? resBad : resGood;
  }
  btnBad.onclick = () =&gt; setMd(&#039;bad&#039;);
  btnGood.onclick = () =&gt; setMd(&#039;good&#039;);
  setMd(&#039;bad&#039;);

  // ---- S4：菜谱化切换 ----
  const vagueSteps = [
    [&#039;收集本周材料&#039;, &#039;把相关的东西都收集起来&#039;],
    [&#039;提炼工作要点&#039;, &#039;挑重点，别太啰嗦&#039;],
    [&#039;量化工作成果&#039;, &#039;能数字化的就数字化&#039;],
    [&#039;输出周报&#039;, &#039;按我们组的格式来&#039;]
  ];
  const preciseSteps = [
    [&#039;收集本周材料&#039;, &#039;读取本周的聊天记录、文档改动、待办清单三个来源，逐条列出&#039;],
    [&#039;提炼工作要点&#039;, &#039;按「项目进展 / 问题风险 / 需要支持」三栏归类，每栏不超过 5 条&#039;],
    [&#039;量化工作成果&#039;, &#039;每条进展尽量带数字：完成 N 个、推进 N%、节省 N 小时；没有数字就补「进行中（预计 X 日完成）」&#039;],
    [&#039;输出周报&#039;, &#039;套用 references/周报模板.md：正文四段式，结尾自动生成下周计划，全文不超过 600 字&#039;]
  ];
  const btnVague = root.querySelector(&#039;#btnVague&#039;);
  const btnPrecise = root.querySelector(&#039;#btnPrecise&#039;);
  const stepEls = root.querySelectorAll(&#039;.r-step&#039;);
  function setRecipe(mode) {
    const precise = mode === &#039;precise&#039;;
    btnVague.classList.toggle(&#039;on&#039;, !precise);
    btnPrecise.classList.toggle(&#039;on&#039;, precise);
    const data = precise ? preciseSteps : vagueSteps;
    stepEls.forEach((el, i) =&gt; {
      el.classList.toggle(&#039;precise&#039;, precise);
      const b = el.querySelector(&#039;b&#039;);
      const s = el.querySelector(&#039;span&#039;);
      b.textContent = data[i][0];
      s.textContent = data[i][1];
    });
  }
  btnVague.onclick = () =&gt; setRecipe(&#039;vague&#039;);
  btnPrecise.onclick = () =&gt; setRecipe(&#039;precise&#039;);
  setRecipe(&#039;vague&#039;);

  // ---- Quiz ----
  root.querySelectorAll(&#039;.quiz .q-item&#039;).forEach(qi =&gt; {
    const opts = qi.querySelector(&#039;.opts&#039;);
    const explain = qi.querySelector(&#039;.q-explain&#039;);
    const answer = opts.dataset.answer;
    let done = false;
    opts.querySelectorAll(&#039;button&#039;).forEach(btn =&gt; {
      btn.onclick = () =&gt; {
        if (done) return;
        done = true;
        const pick = btn.dataset.v;
        opts.querySelectorAll(&#039;button&#039;).forEach(b =&gt; {
          if (b.dataset.v === answer) b.classList.add(&#039;right&#039;);
          else if (b === btn) b.classList.add(&#039;wrong&#039;);
        });
        explain.textContent = opts.dataset.explain;
        explain.classList.add(&#039;show&#039;);
      };
    });
  });

  // 兜底：2 秒后强制显示所有 reveal 元素，避免任何环境下内容被隐藏
  setTimeout(function () {
    root.querySelectorAll(&#039;.reveal&#039;).forEach(function (el) { el.classList.add(&#039;in&#039;); });
  }, 2000);
})();&lt;/script&gt;&lt;/div&gt;&lt;!-- AI 打工日志 · 技能篇 · 第6篇 · 结束 --&gt;</description><pubDate>Thu, 10 Sep 2026 20:00:07 +0800</pubDate></item><item><title>装技能：给 AI 办入职装备 | AI 打工日志·技能篇②</title><link>https://imwen.com/post/374.html</link><description>&lt;!-- AI 打工日志 · 技能篇 · 第5篇 · 交互完整版（样式已隔离，勿在可视化编辑器中编辑源码模式之外的内容） --&gt;&lt;div class=&quot;ai-tri ai-tri-5&quot;&gt;&lt;style&gt;.ai-tri-5 {
    --primary: #2F9E44;
    --primary-light: #EBFBEE;
    --primary-soft: #D3F9D8;
    --primary-deep: #2B8A3E;
    --accent: #37B24D;
    --bg: #FAF7F2;
    --card: #FFFFFF;
    --ink: #2B2724;
    --ink-soft: #6B6259;
    --line: #EDE5DA;
    --radius: 20px;
    --serif: &quot;Songti SC&quot;, &quot;STSong&quot;, &quot;SimSun&quot;, Georgia, serif;
    --sans: -apple-system, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Segoe UI&quot;, sans-serif;
  }
  .ai-tri-5 * { margin: 0; padding: 0; box-sizing: border-box; }
  .ai-tri-5 {
    font-family: var(--sans);
    background: var(--bg);
    color: var(--ink);
    line-height: 1.85;
    font-size: 17px;
  }
  .ai-tri-5 .wrap { max-width: 760px; margin: 0 auto; padding: 0 22px; }

  /* ===== Hero ===== */
  .ai-tri-5 .hero {
    background: linear-gradient(160deg, var(--primary) 0%, var(--accent) 100%);
    color: #fff;
    padding: 72px 0 88px;
    position: relative;
    overflow: hidden;
  }
  .ai-tri-5 .hero::after {
    content: &quot;&quot;;
    position: absolute; bottom: -2px; left: 0; right: 0;
    height: 44px;
    background: var(--bg);
    border-radius: 44px 44px 0 0;
  }
  .ai-tri-5 .series-tag {
    display: inline-block;
    background: rgba(255,255,255,.18);
    border: 1px solid rgba(255,255,255,.4);
    border-radius: 999px;
    padding: 5px 16px;
    font-size: 13px;
    letter-spacing: 2px;
    margin-bottom: 26px;
  }
  .ai-tri-5 .hero .ep { font-size: 14px; letter-spacing: 6px; opacity: .85; margin-bottom: 10px; }
  .ai-tri-5 .hero h1 {
    font-family: var(--serif);
    font-size: clamp(30px, 5.6vw, 46px);
    line-height: 1.35;
    font-weight: 700;
    margin-bottom: 18px;
  }
  .ai-tri-5 .hero .sub { font-size: 18px; opacity: .92; }
  .ai-tri-5 .hero .meta { margin-top: 30px; font-size: 13px; opacity: .75; }

  /* ===== Sticky nav ===== */
  .ai-tri-5 .toc {
    position: sticky; top: 0; z-index: 50;
    background: rgba(250,247,242,.92);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--line);
    padding: 10px 0;
  }
  .ai-tri-5 .toc .wrap {
    display: flex; gap: 8px;
    overflow-x: auto; white-space: nowrap;
    scrollbar-width: none;
  }
  .ai-tri-5 .toc .wrap::-webkit-scrollbar { display: none; }
  .ai-tri-5 .toc a {
    flex: 0 0 auto;
    text-decoration: none;
    color: var(--ink-soft);
    font-size: 14px;
    padding: 6px 14px;
    border-radius: 999px;
    border: 1px solid transparent;
    transition: all .25s;
  }
  .ai-tri-5 .toc a:hover, .ai-tri-5 .toc a.active {
    color: var(--primary-deep);
    background: var(--primary-soft);
    border-color: var(--primary-soft);
  }

  /* ===== Sections ===== */
  .ai-tri-5 section { padding: 64px 0 8px; }
  .ai-tri-5 .sec-head {
    display: flex; align-items: center; gap: 14px;
    margin-bottom: 26px;
  }
  .ai-tri-5 .sec-num {
    width: 52px; height: 52px; flex: 0 0 52px;
    border-radius: 16px;
    background: var(--primary-soft);
    display: flex; align-items: center; justify-content: center;
    font-size: 26px;
  }
  .ai-tri-5 .sec-head h2 {
    font-family: var(--serif);
    font-size: clamp(22px, 3.6vw, 28px);
    line-height: 1.4;
  }
  .ai-tri-5 .sec-head .sec-sub { font-size: 13px; color: var(--ink-soft); display: block; font-family: var(--sans); font-weight: 400; margin-top: 2px; }

  .ai-tri-5 .card {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 28px 26px;
    margin-bottom: 22px;
    box-shadow: 0 2px 10px rgba(43,39,36,.04);
  }
  .ai-tri-5 p + p { margin-top: 16px; }
  .ai-tri-5 .card h3 {
    font-size: 18px; margin-bottom: 12px;
    display: flex; align-items: center; gap: 8px;
  }
  .ai-tri-5 .em { color: var(--primary-deep); font-weight: 700; }
  .ai-tri-5 strong { font-weight: 700; }

  .ai-tri-5 .quote {
    margin: 34px 0;
    background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);
    color: #fff;
    border-radius: var(--radius);
    padding: 34px 30px;
    font-family: var(--serif);
    font-size: clamp(19px, 3vw, 23px);
    line-height: 1.7;
    position: relative;
  }
  .ai-tri-5 .quote::before {
    content: &quot;❝&quot;;
    position: absolute; top: 10px; left: 18px;
    font-size: 44px; opacity: .3;
  }
  .ai-tri-5 .quote .who {
    display: block; margin-top: 14px;
    font-family: var(--sans); font-size: 13px; opacity: .8;
  }

  /* ===== demo 通用 ===== */
  .ai-tri-5 .demo {
    background: var(--card);
    border: 2px dashed var(--primary);
    border-radius: var(--radius);
    padding: 30px 26px;
    margin: 30px 0;
  }
  .ai-tri-5 .demo-title {
    text-align: center; font-weight: 700; font-size: 16px;
    color: var(--primary-deep);
    letter-spacing: 1px; margin-bottom: 6px;
  }
  .ai-tri-5 .demo-hint { text-align: center; font-size: 13px; color: var(--ink-soft); margin-bottom: 20px; }
  .ai-tri-5 .chips { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 22px; }
  .ai-tri-5 .chips button {
    font-family: var(--sans);
    font-size: 15px;
    padding: 8px 18px;
    border-radius: 999px;
    border: 1px solid var(--primary);
    background: #fff;
    color: var(--primary-deep);
    cursor: pointer;
    transition: all .2s;
  }
  .ai-tri-5 .chips button:hover { background: var(--primary); color: #fff; }
  .ai-tri-5 .chips button.on { background: var(--primary); color: #fff; }

  /* ===== S1：技能市场货架 ===== */
  .ai-tri-5 .market { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
  .ai-tri-5 .m-item {
    background: #fff;
    border: 1.5px solid var(--line);
    border-radius: 16px;
    padding: 16px 12px;
    text-align: center;
    cursor: pointer;
    transition: all .2s;
  }
  .ai-tri-5 .m-item:hover { transform: translateY(-3px); box-shadow: 0 6px 16px rgba(43,59,36,.1); }
  .ai-tri-5 .m-item.on { border-color: var(--primary); background: var(--primary-light); }
  .ai-tri-5 .m-item .m-ico { font-size: 30px; }
  .ai-tri-5 .m-item b { display: block; font-size: 14.5px; margin-top: 6px; }
  .ai-tri-5 .m-item .m-dl { font-size: 12px; color: var(--ink-soft); margin-top: 2px; }
  .ai-tri-5 .m-detail {
    margin-top: 16px;
    background: var(--primary-light);
    border: 1px solid var(--primary-soft);
    border-radius: 14px;
    padding: 16px 18px;
    font-size: 14.5px;
    min-height: 96px;
  }
  .ai-tri-5 .m-detail h4 { color: var(--primary-deep); font-size: 15.5px; margin-bottom: 6px; }
  .ai-tri-5 .m-detail .m-star { color: #E8A800; font-size: 13px; }
  .ai-tri-5 .m-detail .m-cmt { font-size: 13px; color: var(--ink-soft); margin-top: 6px; font-style: italic; }

  /* ===== S2：安装方式对比 ===== */
  .ai-tri-5 .install-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 22px 0; }
  .ai-tri-5 .ins-card {
    border-radius: 16px;
    padding: 22px 20px;
    font-size: 15px;
  }
  .ai-tri-5 .ins-card.easy { background: var(--primary-light); border: 1px solid var(--primary-soft); }
  .ai-tri-5 .ins-card.diy { background: #F6F3F0; border: 1px solid var(--line); }
  .ai-tri-5 .ins-card .i-ico { font-size: 28px; }
  .ai-tri-5 .ins-card h4 { font-size: 16px; margin: 8px 0 6px; }
  .ai-tri-5 .ins-card.easy h4 { color: var(--primary-deep); }
  .ai-tri-5 .ins-card ul { padding-left: 18px; font-size: 14px; color: var(--ink); }
  .ai-tri-5 .ins-card li { margin: 4px 0; }

  /* ===== S3：触发亮灯 ===== */
  .ai-tri-5 .say-box {
    background: var(--primary-light);
    border-radius: 14px;
    padding: 16px 20px;
    text-align: center;
    font-size: 16.5px;
    font-weight: 600;
    margin-bottom: 18px;
    min-height: 56px;
    display: flex; align-items: center; justify-content: center;
  }
  .ai-tri-5 .skill-rack { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .ai-tri-5 .rack-item {
    display: flex; align-items: center; gap: 12px;
    background: #fff;
    border: 1.5px solid var(--line);
    border-radius: 12px;
    padding: 12px 16px;
    transition: all .35s;
    opacity: .55;
  }
  .ai-tri-5 .rack-item .lamp {
    width: 12px; height: 12px; border-radius: 50%;
    background: #DDD5CA;
    flex: 0 0 12px;
    transition: all .35s;
  }
  .ai-tri-5 .rack-item b { font-size: 14.5px; display: block; }
  .ai-tri-5 .rack-item span { font-size: 12.5px; color: var(--ink-soft); }
  .ai-tri-5 .rack-item.lit {
    opacity: 1; border-color: var(--primary);
    background: var(--primary-light);
    box-shadow: 0 4px 14px rgba(47,158,68,.18);
  }
  .ai-tri-5 .rack-item.lit .lamp { background: var(--primary); box-shadow: 0 0 10px 2px rgba(47,158,68,.55); }
  .ai-tri-5 .match-note {
    margin-top: 16px; font-size: 13.5px; color: var(--ink-soft);
    text-align: center; min-height: 22px;
  }
  .ai-tri-5 .match-note b { color: var(--primary-deep); }

  /* ===== compare table ===== */
  .ai-tri-5 .cmp { width: 100%; border-collapse: separate; border-spacing: 0; margin: 22px 0; font-size: 15px; }
  .ai-tri-5 .cmp th, .ai-tri-5 .cmp td { padding: 13px 14px; border-bottom: 1px solid var(--line); text-align: left; }
  .ai-tri-5 .cmp th { background: var(--primary-soft); color: var(--primary-deep); font-size: 14px; }
  .ai-tri-5 .cmp td:first-child { font-weight: 700; white-space: nowrap; }
  .ai-tri-5 .cmp tr:last-child td { border-bottom: none; }

  /* ===== quiz ===== */
  .ai-tri-5 .quiz { margin: 26px 0 6px; }
  .ai-tri-5 .q-item { margin-bottom: 22px; }
  .ai-tri-5 .q-item .q {
    font-weight: 700; font-size: 16px; margin-bottom: 12px;
  }
  .ai-tri-5 .q-item .q .qn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 26px; height: 26px; border-radius: 8px;
    background: var(--primary); color: #fff;
    font-size: 14px; margin-right: 8px;
    vertical-align: -5px;
  }
  .ai-tri-5 .opts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .ai-tri-5 .opts button {
    font-family: var(--sans); font-size: 14.5px; text-align: left;
    padding: 12px 16px; border-radius: 12px;
    border: 1.5px solid var(--line);
    background: #fff; color: var(--ink);
    cursor: pointer; transition: all .2s; line-height: 1.6;
  }
  .ai-tri-5 .opts button:hover { border-color: var(--primary); }
  .ai-tri-5 .opts button.right { border-color: #2B8A3E; background: #EBF7EE; color: #1B5E2B; font-weight: 700; }
  .ai-tri-5 .opts button.wrong { border-color: #C92A2A; background: #FFF0F0; color: #A61E1E; }
  .ai-tri-5 .q-explain {
    margin-top: 10px; font-size: 13.5px; color: var(--ink-soft);
    background: var(--primary-light); border-radius: 10px;
    padding: 10px 14px; display: none;
  }
  .ai-tri-5 .q-explain.show { display: block; }

  /* ===== 结尾互动 ===== */
  .ai-tri-5 .final-cta {
    margin: 50px 0 10px;
    text-align: center;
    padding: 44px 26px;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius);
  }
  .ai-tri-5 .final-cta .emoji { font-size: 40px; }
  .ai-tri-5 .final-cta h2 { font-family: var(--serif); font-size: 24px; margin: 12px 0 10px; }

  /* ===== series nav ===== */
  .ai-tri-5 .series-nav {
    margin: 40px 0 60px;
    display: grid; grid-template-columns: 1fr; gap: 14px;
  }
  .ai-tri-5 .snav-card {
    display: flex; align-items: center; gap: 16px;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
    text-decoration: none;
    color: var(--ink);
    transition: all .25s;
  }
  .ai-tri-5 .snav-card:hover { transform: translateY(-3px); box-shadow: 0 8px 22px rgba(43,39,36,.09); border-color: var(--primary); }
  .ai-tri-5 .snav-card .arrow { font-size: 22px; color: var(--primary); }
  .ai-tri-5 .snav-card b { display: block; font-size: 16px; }
  .ai-tri-5 .snav-card span { font-size: 13px; color: var(--ink-soft); }

  .ai-tri-5 footer {
    text-align: center;
    padding: 30px 0 50px;
    color: var(--ink-soft);
    font-size: 13px;
  }

  /* reveal on scroll */
  .ai-tri-5 .reveal { opacity: 0; transform: translateY(26px); transition: all .7s cubic-bezier(.22,.61,.36,1); }
  .ai-tri-5 .reveal.in { opacity: 1; transform: none; }

  @media (max-width: 560px) {
  .ai-tri-5 { font-size: 16px; }
  .ai-tri-5 .market { grid-template-columns: repeat(2, 1fr); }
  .ai-tri-5 .skill-rack { grid-template-columns: 1fr; }
  .ai-tri-5 .install-grid { grid-template-columns: 1fr; }
  .ai-tri-5 .opts { grid-template-columns: 1fr; }
  .ai-tri-5 .cmp { font-size: 14px; }
  .ai-tri-5 .cmp th, .ai-tri-5 .cmp td { padding: 10px 8px; }
  .ai-tri-5 .cmp td:first-child { white-space: normal; }
  }


  /* === Z-Blog 正文适配层 === */
  .ai-tri { font-size: 17px; line-height: 1.85; color: #2B2724; }
  .ai-tri .tri-banner { text-align: center; padding: 8px 0 4px; margin-bottom: 18px; }
  .ai-tri .tri-banner .tri-title {
    font-family: &quot;Songti SC&quot;, &quot;STSong&quot;, &quot;SimSun&quot;, Georgia, serif;
    font-size: clamp(22px, 3.4vw, 30px); line-height: 1.45; margin: 16px 0 8px; font-weight: 700;
  }
  .ai-tri .tri-banner .tri-sub { font-size: 15px; color: #6B6259; }
  .ai-tri .tri-banner .series-tag {
    background: var(--primary-soft); border: 1px solid var(--primary);
    color: var(--primary-deep); margin-bottom: 0;
  }
  .ai-tri main { display: block; }&lt;/style&gt;&lt;header class=&quot;tri-banner&quot;&gt;&lt;span class=&quot;series-tag&quot;&gt;AI 打工日志 · 技能篇&lt;/span&gt;
 &amp;nbsp;&lt;h2 class=&quot;tri-title&quot;&gt;《装技能：给 AI 办入职装备》&lt;/h2&gt;&lt;p class=&quot;tri-sub&quot;&gt;从&amp;quot;你随便装&amp;quot;到&amp;quot;精挑细选&amp;quot; · 阅读约 8 分钟 · 无需技术背景&lt;/p&gt;&lt;p class=&quot;tri-sub&quot;&gt;&lt;img src=&quot;https://imwen.com/zb_users/upload/2026/09/202609101789006396866140.png&quot; alt=&quot;cover-5.png&quot; width=&quot;768&quot; height=&quot;512&quot; border=&quot;0&quot; vspace=&quot;0&quot; title=&quot;cover-5.png&quot; style=&quot;width: 768px; height: 512px;&quot;/&gt;&lt;/p&gt;&lt;/header&gt;&lt;main class=&quot;wrap&quot;&gt;&lt;!-- S1 --&gt;&lt;section id=&quot;s1&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🛒&lt;/div&gt;&lt;h2&gt;技能从哪来？&lt;span class=&quot;sec-sub&quot;&gt;三条路：应用商店、自己写、同事投喂&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;上一篇我们搞懂了：Skill 就是发给 AI 的员工手册。这一篇解决下一个问题——&lt;span class=&quot;em&quot;&gt;手册从哪儿搞？&lt;/span&gt;&lt;/p&gt;&lt;p&gt;新员工入职，装备一般有三个来源：公司发的（电脑工牌）、自己买的（人体工学椅）、以及&lt;strong&gt;前同事离职时留下的祖传文档&lt;/strong&gt;。AI 的技能也是一模一样的三条路：&lt;/p&gt;&lt;p&gt;&lt;strong&gt;① 技能市场&lt;/strong&gt;——像公司内网的应用商店，官方和各路大神把写好的技能挂上去，你点一下&amp;quot;安装&amp;quot;就完事。Excel 分析、PDF 整理、公众号排版，现成的一堆。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;② 自己写&lt;/strong&gt;——市面上没有你要的那门手艺？自己写一本手册。别慌，这是下一篇的内容，先埋个钩子。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;③ 同事投喂&lt;/strong&gt;——技能本质上就是个文件夹，能拷贝就能分享。同事把他调教好的&amp;quot;周报技能&amp;quot;发你，你放进自己的 AI，立刻同款效率。这是 AI 时代的新型土特产。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;demo reveal&quot;&gt;&lt;div class=&quot;demo-title&quot;&gt;🛒 模拟技能市场：逛一圈&lt;/div&gt;&lt;div class=&quot;demo-hint&quot;&gt;点任意商品卡，看看市场上的技能都长什么样&lt;/div&gt;&lt;div class=&quot;market&quot;&gt;&lt;div class=&quot;m-item&quot; data-k=&quot;invoice&quot;&gt;&lt;div class=&quot;m-ico&quot;&gt;🧾&lt;/div&gt;&lt;strong&gt;发票报销整理&lt;/strong&gt;&lt;div class=&quot;m-dl&quot;&gt;下载 12.8w&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;m-item&quot; data-k=&quot;excel&quot;&gt;&lt;div class=&quot;m-ico&quot;&gt;📊&lt;/div&gt;&lt;strong&gt;Excel 数据分析&lt;/strong&gt;&lt;div class=&quot;m-dl&quot;&gt;下载 45.2w&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;m-item&quot; data-k=&quot;weekly&quot;&gt;&lt;div class=&quot;m-ico&quot;&gt;📝&lt;/div&gt;&lt;strong&gt;周报一键生成&lt;/strong&gt;&lt;div class=&quot;m-dl&quot;&gt;下载 33.1w&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;m-item&quot; data-k=&quot;poem&quot;&gt;&lt;div class=&quot;m-ico&quot;&gt;✒️&lt;/div&gt;&lt;strong&gt;古诗风格写作&lt;/strong&gt;&lt;div class=&quot;m-dl&quot;&gt;下载 8.9w&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;m-item&quot; data-k=&quot;ppt&quot;&gt;&lt;div class=&quot;m-ico&quot;&gt;📽️&lt;/div&gt;&lt;strong&gt;PPT 大纲排版&lt;/strong&gt;&lt;div class=&quot;m-dl&quot;&gt;下载 52.7w&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;m-item&quot; data-k=&quot;travel&quot;&gt;&lt;div class=&quot;m-ico&quot;&gt;✈️&lt;/div&gt;&lt;strong&gt;差旅审批助手&lt;/strong&gt;&lt;div class=&quot;m-dl&quot;&gt;下载 3.4w&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;m-detail&quot; id=&quot;mDetail&quot;&gt;&lt;h4&gt;👈 点一个商品看看详情&lt;/h4&gt;&lt;p style=&quot;font-size:13.5px;color:var(--ink-soft)&quot;&gt;跟手机应用商店一个体验：看简介、看评分、看差评，再决定装不装。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;h3&gt;⚠️ 逛市场的第一条军规&lt;/h3&gt;&lt;p&gt;应用商店里有山寨 App，技能市场也有&lt;span class=&quot;em&quot;&gt;山寨技能&lt;/span&gt;：简介吹得天花乱坠，装上一跑，步骤错漏百出，甚至夹带私货（比如把你的数据发给第三方）。&lt;/p&gt;&lt;p&gt;三条防身术：&lt;strong&gt;看下载量和评分&lt;/strong&gt;（群众的眼睛）、&lt;strong&gt;看差评&lt;/strong&gt;（差评才是真相）、&lt;strong&gt;看它要什么权限&lt;/strong&gt;（一个整理发票的技能要联网权限？多个心眼）。&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;!-- S2 --&gt;&lt;section id=&quot;s2&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;📦&lt;/div&gt;&lt;h2&gt;怎么装？&lt;span class=&quot;sec-sub&quot;&gt;一键安装 vs 手动拷贝，两条路都得会&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;装技能和装软件一个道理，有&amp;quot;傻瓜式&amp;quot;和&amp;quot;动手式&amp;quot;两种：&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;install-grid reveal&quot;&gt;&lt;div class=&quot;ins-card easy&quot;&gt;&lt;div class=&quot;i-ico&quot;&gt;🟢&lt;/div&gt;&lt;h4&gt;一键安装（像装 App）&lt;/h4&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;在技能市场点&amp;quot;安装&amp;quot;，剩下全自动&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;自动放到正确位置、自动登记&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;有更新会提醒，一键升级&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;适合：绝大多数人、绝大多数场景&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;ins-card diy&quot;&gt;&lt;div class=&quot;i-ico&quot;&gt;🔧&lt;/div&gt;&lt;h4&gt;手动安装（像给新电脑拷软件）&lt;/h4&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;下载/收到技能文件夹&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;放到 AI 指定的技能目录里&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;刷新一下，AI 自动识别登记&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;适合：同事投喂、自己写的技能&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;装完之后，别忘了&lt;strong&gt;验收&lt;/strong&gt;。就像新员工领完装备要试开一下电脑——跟 AI 确认一句&amp;quot;你现在有哪些技能？&amp;quot;，看清单里有没有刚装的那本。没出现？多半是放错了目录，或者文件夹里缺了 SKILL.md（手册本体）。&lt;/p&gt;&lt;p&gt;顺便记两条仓库管理心法：&lt;strong&gt;不用的技能就卸载&lt;/strong&gt;——手册堆太多，AI 挑的时候也会挑花眼（上一篇说过，封面简介也是要占脑子的）；&lt;strong&gt;重要技能锁版本&lt;/strong&gt;——别人更新手册后行为变了，你那套跑顺的流程可能突然翻车。&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;!-- S3 --&gt;&lt;section id=&quot;s3&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🔔&lt;/div&gt;&lt;h2&gt;装完怎么用？&lt;span class=&quot;sec-sub&quot;&gt;说人话点名——喊全名，它才理你&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;很多人装完技能就犯一个错：以为 AI 自动就用了。结果聊了半天，它还是用&amp;quot;裸奔模式&amp;quot;回答你。&lt;/p&gt;&lt;p&gt;记住：&lt;span class=&quot;em&quot;&gt;技能触发靠的是&amp;quot;点名&amp;quot;&lt;/span&gt;。你在公司让同事帮忙，得喊人家名字或者拍拍肩膀；让技能上场，也得在话里带上它的&amp;quot;业务关键词&amp;quot;——最好是直接喊技能名。&lt;/p&gt;&lt;p&gt;说&amp;quot;帮我把这堆发票整理成报销表&amp;quot;，比说&amp;quot;帮我处理一下这些东西&amp;quot;靠谱得多。前一句让 AI 一秒锁定发票技能，后一句它只能猜——猜，就难免翻车。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;demo reveal&quot;&gt;&lt;div class=&quot;demo-title&quot;&gt;🔔 触发实验：看哪个技能亮灯&lt;/div&gt;&lt;div class=&quot;demo-hint&quot;&gt;点下面任意一句话，看 AI 技能架上的灯怎么亮&lt;/div&gt;&lt;div class=&quot;chips&quot; id=&quot;sayChips&quot;&gt;&lt;/div&gt;&lt;div class=&quot;say-box&quot; id=&quot;sayBox&quot;&gt;👆 先点一句话&lt;/div&gt;&lt;div class=&quot;skill-rack&quot;&gt;&lt;div class=&quot;rack-item&quot; data-s=&quot;invoice&quot;&gt;&lt;span class=&quot;lamp&quot;&gt;&lt;/span&gt;&lt;div&gt;&lt;strong&gt;🧾 发票报销整理&lt;/strong&gt;听懂：发票、报销、税&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;rack-item&quot; data-s=&quot;poem&quot;&gt;&lt;span class=&quot;lamp&quot;&gt;&lt;/span&gt;&lt;div&gt;&lt;strong&gt;✒️ 古诗风格写作&lt;/strong&gt;听懂：诗、绝句、藏头&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;rack-item&quot; data-s=&quot;weekly&quot;&gt;&lt;span class=&quot;lamp&quot;&gt;&lt;/span&gt;&lt;div&gt;&lt;strong&gt;📝 周报一键生成&lt;/strong&gt;听懂：周报、复盘、汇报&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;rack-item&quot; data-s=&quot;travel&quot;&gt;&lt;span class=&quot;lamp&quot;&gt;&lt;/span&gt;&lt;div&gt;&lt;strong&gt;✈️ 差旅审批助手&lt;/strong&gt;听懂：出差、机票、订酒店&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;match-note&quot; id=&quot;matchNote&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;h3&gt;💡 高级玩法：一喊一个准&lt;/h3&gt;&lt;p&gt;两个提效细节：&lt;strong&gt;① 名字+任务一起说&lt;/strong&gt;——&amp;quot;用发票报销整理技能，处理这个 PDF&amp;quot;，双保险；&lt;strong&gt;② 描述具体到字段&lt;/strong&gt;——&amp;quot;整理成报销表，按部门分组，含税单列&amp;quot;，技能手册写得再好，也架不住你给的需求是&amp;quot;随便弄弄&amp;quot;。&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;!-- S4 --&gt;&lt;section id=&quot;s4&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🧩&lt;/div&gt;&lt;h2&gt;多技能组合：叠券的艺术&lt;span class=&quot;sec-sub&quot;&gt;点外卖凑满减的手艺，这里全用得上&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;单个技能解决单个环节，但真实工作是一条&lt;strong&gt;流水线&lt;/strong&gt;。这时候就要组合技——原理跟点外卖凑满减一模一样：&lt;/p&gt;&lt;p&gt;外卖满减要&amp;quot;满减券 + 红包 + 会员价&amp;quot;叠着用才最省；AI 干活要&amp;quot;提取 + 分析 + 排版&amp;quot;几个技能接力才最顺。&lt;/p&gt;&lt;p&gt;举个真实的例子，做一份月度经营汇报：&lt;/p&gt;&lt;table class=&quot;cmp&quot;&gt;&lt;tbody&gt;&lt;tr class=&quot;firstRow&quot;&gt;&lt;th&gt;环节&lt;/th&gt;&lt;th&gt;上场的技能&lt;/th&gt;&lt;th&gt;干了啥&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;① 收料&lt;/td&gt;&lt;td&gt;📄 PDF/表格提取&lt;/td&gt;&lt;td&gt;把各部门发来的杂乱文件统一成表格&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;② 分析&lt;/td&gt;&lt;td&gt;📊 数据分析&lt;/td&gt;&lt;td&gt;算同比环比，找出涨跌前五名&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;③ 成文&lt;/td&gt;&lt;td&gt;📝 汇报写作&lt;/td&gt;&lt;td&gt;按老板爱看的结构写成初稿&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;④ 排版&lt;/td&gt;&lt;td&gt;📽️ PPT 排版&lt;/td&gt;&lt;td&gt;套模板生成幻灯片&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;四个技能各干一段，上一段的输出就是下一段的输入。&lt;span class=&quot;em&quot;&gt;你不再亲自干活的，你负责把流水线搭起来。&lt;/span&gt;这也正是&amp;quot;会用 AI 的人&amp;quot;和&amp;quot;被 AI 替代的人&amp;quot;的分水岭。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;quote reveal&quot;&gt;单技能是省力，组合技能才是生产力——就像单品打折只是便宜，凑满减才是过日子。 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;who&quot;&gt;—— 一位外卖资深战略家的感悟&lt;/span&gt;&lt;/div&gt;&lt;/section&gt;&lt;!-- S5 --&gt;&lt;section id=&quot;s5&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🙅&lt;/div&gt;&lt;h2&gt;什么时候不该用技能？&lt;span class=&quot;sec-sub&quot;&gt;杀鸡别用牛刀——牛刀还得先磨半小时&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;技能虽好，但不是万能钥匙。三种情况，别上技能：&lt;/p&gt;&lt;p&gt;&lt;strong&gt;① 一次性小任务。&lt;/strong&gt;就问一句&amp;quot;帮我翻译这行英文&amp;quot;，装什么翻译技能？直接问就行。技能的价值在&lt;strong&gt;重复&lt;/strong&gt;——这周整理发票、下周还整理发票，才值得配手册。为一次性任务装技能，是杀鸡用牛刀，而且这牛刀还得先磨半小时。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;② 需要真人判断的事。&lt;/strong&gt;技能手册能教流程，教不了担当。涉及签合同、对外发声、花大钱这类事的&lt;strong&gt;最终把关&lt;/strong&gt;，永远自己来——AI 负责快，你负责对。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;③ 敏感数据 + 来路不明的技能。&lt;/strong&gt;技能是要读你的文件才能干活的。财务报表、客户名单这类东西，只配自己写的技能碰——市场下载的技能再好用，也别让它碰你的核心资产，除非你审过它的每一行。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;h3&gt;✅ 一张决策卡&lt;/h3&gt;&lt;table class=&quot;cmp&quot;&gt;&lt;tbody&gt;&lt;tr class=&quot;firstRow&quot;&gt;&lt;th&gt;情况&lt;/th&gt;&lt;th&gt;用不用技能&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;每周都干的流程活&lt;/td&gt;&lt;td&gt;✅ 用，越早配越好&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;一句话能问明白的小事&lt;/td&gt;&lt;td&gt;❌ 直接问，别折腾&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;多步骤且格式要求固定&lt;/td&gt;&lt;td&gt;✅ 用，还能组流水线&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;需要拍板担责的决策&lt;/td&gt;&lt;td&gt;🧑‍✈️ AI 起草，你来拍板&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;敏感数据 + 陌生技能&lt;/td&gt;&lt;td&gt;⛔️ 不用，或换自写技能&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/section&gt;&lt;!-- S6 --&gt;&lt;section id=&quot;s6&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🧪&lt;/div&gt;&lt;h2&gt;装备验收小测&lt;span class=&quot;sec-sub&quot;&gt;三道题，验收你这篇有没有白读&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;demo reveal&quot;&gt;&lt;div class=&quot;demo-title&quot;&gt;🧭 装备验收&lt;/div&gt;&lt;div class=&quot;demo-hint&quot;&gt;三道题，答错不扣钱，答对涨姿势&lt;/div&gt;&lt;div class=&quot;quiz&quot;&gt;&lt;div class=&quot;q-item&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;1&lt;/span&gt;技能的三大来源，不包括下面哪个？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;d&quot; data-explain=&quot;技能三大来源：技能市场（公司应用商店）、自己写、同事投喂。至于 AI 自己顿悟——大模型：我不会，我只是背得多。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 技能市场一键安装&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 自己动手写一本&lt;/button&gt;&lt;button data-v=&quot;c&quot;&gt;C. 同事把他调教好的发你&lt;/button&gt;&lt;button data-v=&quot;d&quot;&gt;D. AI 睡一觉自己顿悟出来&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;q-item&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;2&lt;/span&gt;装完技能，怎么让它最稳地上场？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;c&quot; data-explain=&quot;技能靠「点名」触发：话里带上业务关键词，或者直接喊技能名+具体任务。「帮我处理一下这个东西」这种模糊表达，AI 只能靠猜，猜就难免翻车。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 装完自动就会用，等着就行&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 说&amp;quot;帮我处理一下这个东西&amp;quot;&lt;/button&gt;&lt;button data-v=&quot;c&quot;&gt;C. 带上业务关键词，最好直接点名&lt;/button&gt;&lt;button data-v=&quot;d&quot;&gt;D. 把问题重复发三遍引起注意&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;q-item&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;3&lt;/span&gt;下面哪种情况，最不建议用市场下载的技能？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;b&quot; data-explain=&quot;技能要读你的文件才能干活。市场技能没审过每一行，让它碰财务报表、客户名单这类核心资产是高危操作——敏感数据只配自己写的技能碰。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 每周整理一次考勤表&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 处理公司财务报表和客户名单&lt;/button&gt;&lt;button data-v=&quot;c&quot;&gt;C. 给公众号文章排版&lt;/button&gt;&lt;button data-v=&quot;d&quot;&gt;D. 生成每周的工作周报初稿&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;final-cta reveal&quot;&gt;&lt;div class=&quot;emoji&quot;&gt;🎒&lt;/div&gt;&lt;h2&gt;技能篇 2/4 · 完&lt;/h2&gt;&lt;p style=&quot;color: var(--ink-soft)&quot;&gt;装备领完了，AI 已经是个&amp;quot;装备齐全&amp;quot;的打工人。&lt;br/&gt;&lt;br/&gt;下一篇进入重头戏：&lt;br/&gt;市面上没有你要的手艺怎么办？&lt;span class=&quot;em&quot;&gt;自己写一本。&lt;/span&gt;&lt;br/&gt;《写技能：给 AI 当一回带教师傅》&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;/main&gt;&lt;script&gt;(function () {
  var root = document.currentScript.closest(&#039;.ai-tri&#039;);
  
  // ---- 滚动显现 ----
  const io = new IntersectionObserver((entries) =&gt; {
    entries.forEach(e =&gt; { if (e.isIntersecting) { e.target.classList.add(&#039;in&#039;); io.unobserve(e.target); } });
  }, { threshold: 0.12 });
  root.querySelectorAll(&#039;.reveal&#039;).forEach(el =&gt; io.observe(el));

  // ---- 目录高亮 ----
  const links = root.querySelectorAll(&#039;.toc a&#039;);
  const secs = [...links].map(a =&gt; root.querySelector(a.getAttribute(&#039;href&#039;)));
  const spy = new IntersectionObserver((entries) =&gt; {
    entries.forEach(e =&gt; {
      if (e.isIntersecting) {
        links.forEach(l =&gt; l.classList.remove(&#039;active&#039;));
        const hit = links.find(l =&gt; l.getAttribute(&#039;href&#039;) === &#039;#&#039; + e.target.id);
        if (hit) hit.classList.add(&#039;active&#039;);
      }
    });
  }, { rootMargin: &#039;-30% 0px -60% 0px&#039; });
  secs.forEach(s =&gt; s &amp;&amp; spy.observe(s));

  // ---- S1：技能市场货架 ----
  const mdata = {
    invoice: { title: &#039;🧾 发票报销整理&#039;, star: &#039;★4.8 ｜ 12.8w 下载&#039;, desc: &#039;自动提取 PDF/照片里的发票信息，核对抬头税号，按公司报销制度分类汇总，套模板出表。&#039;, cmt: &#039;&quot;差评：太好用，财务部现在对我的报销单格外严格。&quot; —— 匿名用户&#039; },
    excel: { title: &#039;📊 Excel 数据分析&#039;, star: &#039;★4.9 ｜ 45.2w 下载&#039;, desc: &#039;脏数据清洗、透视表、同比环比一套带走，附自动生成图表。Pandas 内核，快到没朋友。&#039;, cmt: &#039;&quot;我司表格侠当场失业，改行去做表格侠的领导了。&quot; —— 热评第一&#039; },
    weekly: { title: &#039;📝 周报一键生成&#039;, star: &#039;★4.6 ｜ 33.1w 下载&#039;, desc: &#039;把你这周的聊天记录、文档、待办揉成一份结构工整的周报，自动量化产出，附下期计划。&#039;, cmt: &#039;&quot;写周报五分钟，摸鱼省出俩小时。&quot; —— 某大厂员工&#039; },
    poem: { title: &#039;✒️ 古诗风格写作&#039;, star: &#039;★4.7 ｜ 8.9w 下载&#039;, desc: &#039;绝句、律诗、藏头诗、檄文（慎用）信手拈来，支持指定朝代文风。&#039;, cmt: &#039;&quot;让 AI 用盛唐口气写周报，领导看完沉默了。&quot; —— 文学爱好者&#039; },
    ppt: { title: &#039;📽️ PPT 大纲排版&#039;, star: &#039;★4.5 ｜ 52.7w 下载&#039;, desc: &#039;从一句话需求到完整大纲，套用公司模板自动排版，支持一键换肤。&#039;, cmt: &#039;&quot;做 PPT 的时间省下来，全用来想怎么跟老板汇报了。&quot; —— 卷王自述&#039; },
    travel: { title: &#039;✈️ 差旅审批助手&#039;, star: &#039;★4.4 ｜ 3.4w 下载&#039;, desc: &#039;查差旅政策、比价、预填审批单、盯进度。再也不用翻八百页的差旅制度 PDF。&#039;, cmt: &#039;&quot;它比行政还熟差旅制度，行政沉默了。&quot; —— 常出差选手&#039; }
  };
  const mDetail = root.querySelector(&#039;#mDetail&#039;);
  root.querySelectorAll(&#039;.m-item&#039;).forEach(item =&gt; {
    item.onclick = () =&gt; {
      root.querySelectorAll(&#039;.m-item&#039;).forEach(x =&gt; x.classList.remove(&#039;on&#039;));
      item.classList.add(&#039;on&#039;);
      const d = mdata[item.dataset.k];
      mDetail.innerHTML = &#039;&lt;h4&gt;&#039; + d.title + &#039; &lt;span class=&quot;m-star&quot;&gt;&#039; + d.star + &#039;&lt;/span&gt;&lt;/h4&gt;&lt;p&gt;&#039; + d.desc + &#039;&lt;/p&gt;&lt;p class=&quot;m-cmt&quot;&gt;&#039; + d.cmt + &#039;&lt;/p&gt;&#039;;
    };
  });

  // ---- S3：触发亮灯 ----
  const says = [
    { text: &#039;&quot;帮我把这堆发票整理成报销表，按新税率算&quot;&#039;, hit: [&#039;invoice&#039;], note: &#039;命中关键词：发票、报销表、税率 → &lt;b&gt;发票报销整理&lt;/b&gt; 灯亮。&#039; },
    { text: &#039;&quot;用周报技能，把我这周干的事写成汇报&quot;&#039;, hit: [&#039;weekly&#039;], note: &#039;直接点名 + 关键词&quot;汇报&quot; → &lt;b&gt;周报一键生成&lt;/b&gt; 灯亮。点名是最稳的触发方式。&#039; },
    { text: &#039;&quot;下周去上海出差，帮我看看订啥酒店符合标准&quot;&#039;, hit: [&#039;travel&#039;], note: &#039;命中关键词：出差、酒店、标准 → &lt;b&gt;差旅审批助手&lt;/b&gt; 灯亮。&#039; },
    { text: &#039;&quot;写一首藏头诗，藏&quot;升职加薪&quot;四个字&quot;&#039;, hit: [&#039;poem&#039;], note: &#039;命中关键词：藏头诗 → &lt;b&gt;古诗风格写作&lt;/b&gt; 灯亮。&#039; },
    { text: &#039;&quot;帮我处理一下这个东西&quot;&#039;, hit: [], note: &#039;❌ 没有任何关键词命中，全部技能沉默——AI 只能猜你要干嘛，猜错就得返工。&lt;b&gt;这就是&quot;说人话点名&quot;的意义。&lt;/b&gt;&#039; }
  ];
  const sayChips = root.querySelector(&#039;#sayChips&#039;);
  const sayBox = root.querySelector(&#039;#sayBox&#039;);
  const matchNote = root.querySelector(&#039;#matchNote&#039;);
  const racks = root.querySelectorAll(&#039;.rack-item&#039;);
  says.forEach(s =&gt; {
    const b = document.createElement(&#039;button&#039;);
    b.textContent = s.text.length &gt; 18 ? s.text.slice(0, 18) + &#039;…&#039; : s.text;
    b.title = s.text;
    b.onclick = () =&gt; {
      root.querySelectorAll(&#039;#sayChips button&#039;).forEach(x =&gt; x.classList.remove(&#039;on&#039;));
      b.classList.add(&#039;on&#039;);
      sayBox.textContent = s.text;
      racks.forEach(r =&gt; r.classList.toggle(&#039;lit&#039;, s.hit.includes(r.dataset.s)));
      matchNote.innerHTML = s.note;
    };
    sayChips.appendChild(b);
  });

  // 兜底：2 秒后强制显示所有 reveal 元素，避免任何环境下内容被隐藏
  setTimeout(function () {
    root.querySelectorAll(&#039;.reveal&#039;).forEach(function (el) { el.classList.add(&#039;in&#039;); });
  }, 2000);
})();&lt;/script&gt;&lt;/div&gt;&lt;!-- AI 打工日志 · 技能篇 · 第5篇 · 结束 --&gt;</description><pubDate>Wed, 09 Sep 2026 12:00:07 +0800</pubDate></item><item><title>Skill：给 AI 发一本员工手册 | AI 打工日志·技能篇①</title><link>https://imwen.com/post/373.html</link><description>&lt;figure class=&quot;ai-tri-cover&quot; style=&quot;margin:0 0 18px;padding:0&quot;&gt;&lt;img src=&quot;https://imwen.com/zb_users/upload/2026/09/202609101789006444451829.jpg&quot; alt=&quot;Skill：给 AI 发一本员工手册 | AI 打工日志·技能篇①&quot; style=&quot;display: block; border-radius: 12px; width: 768px; height: 512px;&quot; width=&quot;768&quot; height=&quot;512&quot; border=&quot;0&quot; vspace=&quot;0&quot; title=&quot;Skill：给 AI 发一本员工手册 | AI 打工日志·技能篇①&quot;/&gt;&lt;/figure&gt;&lt;!-- AI 打工日志 · 技能篇 · 第4篇 · 交互完整版（样式已隔离，勿在可视化编辑器中编辑源码模式之外的内容） --&gt;&lt;div class=&quot;ai-tri ai-tri-4&quot;&gt;&lt;style&gt;.ai-tri-4 {
    --primary: #C2255C;
    --primary-light: #FFF0F5;
    --primary-soft: #FFDEEB;
    --primary-deep: #A61E4D;
    --accent: #E64980;
    --bg: #FAF7F2;
    --card: #FFFFFF;
    --ink: #2B2724;
    --ink-soft: #6B6259;
    --line: #EDE5DA;
    --radius: 20px;
    --serif: &quot;Songti SC&quot;, &quot;STSong&quot;, &quot;SimSun&quot;, Georgia, serif;
    --sans: -apple-system, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Segoe UI&quot;, sans-serif;
  }
  .ai-tri-4 * { margin: 0; padding: 0; box-sizing: border-box; }
  .ai-tri-4 {
    font-family: var(--sans);
    background: var(--bg);
    color: var(--ink);
    line-height: 1.85;
    font-size: 17px;
  }
  .ai-tri-4 .wrap { max-width: 760px; margin: 0 auto; padding: 0 22px; }

  /* ===== Hero ===== */
  .ai-tri-4 .hero {
    background: linear-gradient(160deg, var(--primary) 0%, var(--accent) 100%);
    color: #fff;
    padding: 72px 0 88px;
    position: relative;
    overflow: hidden;
  }
  .ai-tri-4 .hero::after {
    content: &quot;&quot;;
    position: absolute; bottom: -2px; left: 0; right: 0;
    height: 44px;
    background: var(--bg);
    border-radius: 44px 44px 0 0;
  }
  .ai-tri-4 .series-tag {
    display: inline-block;
    background: rgba(255,255,255,.18);
    border: 1px solid rgba(255,255,255,.4);
    border-radius: 999px;
    padding: 5px 16px;
    font-size: 13px;
    letter-spacing: 2px;
    margin-bottom: 26px;
  }
  .ai-tri-4 .hero .ep { font-size: 14px; letter-spacing: 6px; opacity: .85; margin-bottom: 10px; }
  .ai-tri-4 .hero h1 {
    font-family: var(--serif);
    font-size: clamp(30px, 5.6vw, 46px);
    line-height: 1.35;
    font-weight: 700;
    margin-bottom: 18px;
  }
  .ai-tri-4 .hero .sub { font-size: 18px; opacity: .92; }
  .ai-tri-4 .hero .meta { margin-top: 30px; font-size: 13px; opacity: .75; }

  /* ===== Sticky nav ===== */
  .ai-tri-4 .toc {
    position: sticky; top: 0; z-index: 50;
    background: rgba(250,247,242,.92);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--line);
    padding: 10px 0;
  }
  .ai-tri-4 .toc .wrap {
    display: flex; gap: 8px;
    overflow-x: auto; white-space: nowrap;
    scrollbar-width: none;
  }
  .ai-tri-4 .toc .wrap::-webkit-scrollbar { display: none; }
  .ai-tri-4 .toc a {
    flex: 0 0 auto;
    text-decoration: none;
    color: var(--ink-soft);
    font-size: 14px;
    padding: 6px 14px;
    border-radius: 999px;
    border: 1px solid transparent;
    transition: all .25s;
  }
  .ai-tri-4 .toc a:hover, .ai-tri-4 .toc a.active {
    color: var(--primary-deep);
    background: var(--primary-soft);
    border-color: var(--primary-soft);
  }

  /* ===== Sections ===== */
  .ai-tri-4 section { padding: 64px 0 8px; }
  .ai-tri-4 .sec-head {
    display: flex; align-items: center; gap: 14px;
    margin-bottom: 26px;
  }
  .ai-tri-4 .sec-num {
    width: 52px; height: 52px; flex: 0 0 52px;
    border-radius: 16px;
    background: var(--primary-soft);
    display: flex; align-items: center; justify-content: center;
    font-size: 26px;
  }
  .ai-tri-4 .sec-head h2 {
    font-family: var(--serif);
    font-size: clamp(22px, 3.6vw, 28px);
    line-height: 1.4;
  }
  .ai-tri-4 .sec-head .sec-sub { font-size: 13px; color: var(--ink-soft); display: block; font-family: var(--sans); font-weight: 400; margin-top: 2px; }

  .ai-tri-4 .card {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 28px 26px;
    margin-bottom: 22px;
    box-shadow: 0 2px 10px rgba(43,39,36,.04);
  }
  .ai-tri-4 p + p { margin-top: 16px; }
  .ai-tri-4 .card h3 {
    font-size: 18px; margin-bottom: 12px;
    display: flex; align-items: center; gap: 8px;
  }
  .ai-tri-4 .em { color: var(--primary-deep); font-weight: 700; }
  .ai-tri-4 strong { font-weight: 700; }

  .ai-tri-4 .quote {
    margin: 34px 0;
    background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);
    color: #fff;
    border-radius: var(--radius);
    padding: 34px 30px;
    font-family: var(--serif);
    font-size: clamp(19px, 3vw, 23px);
    line-height: 1.7;
    position: relative;
  }
  .ai-tri-4 .quote::before {
    content: &quot;❝&quot;;
    position: absolute; top: 10px; left: 18px;
    font-size: 44px; opacity: .3;
  }
  .ai-tri-4 .quote .who {
    display: block; margin-top: 14px;
    font-family: var(--sans); font-size: 13px; opacity: .8;
  }

  /* ===== demo 通用 ===== */
  .ai-tri-4 .demo {
    background: var(--card);
    border: 2px dashed var(--primary);
    border-radius: var(--radius);
    padding: 30px 26px;
    margin: 30px 0;
  }
  .ai-tri-4 .demo-title {
    text-align: center; font-weight: 700; font-size: 16px;
    color: var(--primary-deep);
    letter-spacing: 1px; margin-bottom: 6px;
  }
  .ai-tri-4 .demo-hint { text-align: center; font-size: 13px; color: var(--ink-soft); margin-bottom: 20px; }

  /* ===== S1：装载前后对比 ===== */
  .ai-tri-4 .toggle-bar {
    display: flex; justify-content: center; gap: 10px; margin-bottom: 20px;
  }
  .ai-tri-4 .toggle-bar button {
    font-family: var(--sans);
    font-size: 15px; font-weight: 600;
    padding: 9px 20px; border-radius: 999px;
    border: 1.5px solid var(--line);
    background: #fff; color: var(--ink-soft);
    cursor: pointer; transition: all .2s;
  }
  .ai-tri-4 .toggle-bar button.on {
    border-color: var(--primary);
    background: var(--primary); color: #fff;
    box-shadow: 0 4px 14px rgba(194,37,92,.28);
  }
  .ai-tri-4 .task-chip {
    margin: 0 auto 18px; max-width: 520px;
    text-align: center;
    background: var(--primary-light);
    border: 1px solid var(--primary-soft);
    border-radius: 14px;
    padding: 12px 16px;
    font-size: 14.5px;
  }
  .ai-tri-4 .task-chip b { color: var(--primary-deep); }
  .ai-tri-4 .ai-reply {
    min-height: 150px;
    border-radius: 14px;
    padding: 20px 22px;
    font-size: 15.5px;
    line-height: 1.9;
    transition: all .3s;
  }
  .ai-tri-4 .ai-reply .r-head {
    display: flex; align-items: center; gap: 8px;
    font-weight: 700; font-size: 14px; margin-bottom: 10px;
  }
  .ai-tri-4 .ai-reply.bad { background: #F6F3F0; border: 1px solid var(--line); }
  .ai-tri-4 .ai-reply.bad .r-head { color: #9A3B1E; }
  .ai-tri-4 .ai-reply.good { background: var(--primary-light); border: 1px solid var(--primary-soft); }
  .ai-tri-4 .ai-reply.good .r-head { color: var(--primary-deep); }
  .ai-tri-4 .ai-reply ol { padding-left: 22px; }
  .ai-tri-4 .ai-reply ol li { margin: 4px 0; }
  .ai-tri-4 .ai-reply .dim { color: var(--ink-soft); font-size: 13.5px; }
  .ai-tri-4 .ai-reply .ok { color: var(--primary-deep); font-weight: 700; }

  /* ===== S3：文件树 ===== */
  .ai-tri-4 .skill-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 18px; }
  .ai-tri-4 .ftree {
    background: #2B2724;
    border-radius: 16px;
    padding: 20px 18px;
    font-family: &quot;SF Mono&quot;, Consolas, &quot;Courier New&quot;, monospace;
    font-size: 14px;
    color: #F1E8DE;
    line-height: 2.05;
  }
  .ai-tri-4 .ftree .f-item {
    cursor: pointer; border-radius: 8px;
    padding: 1px 8px; display: block;
    transition: background .2s;
    white-space: nowrap; overflow-x: auto;
  }
  .ai-tri-4 .ftree .f-item:hover { background: rgba(255,255,255,.12); }
  .ai-tri-4 .ftree .f-item.on { background: var(--primary); color: #fff; }
  .ai-tri-4 .ftree .folder { color: #FFC9A3; font-weight: 700; }
  .ai-tri-4 .ftree .desc { color: #B8ABA0; font-size: 12px; font-family: var(--sans); }
  .ai-tri-4 .fpanel {
    background: var(--primary-light);
    border: 1px solid var(--primary-soft);
    border-radius: 16px;
    padding: 20px 22px;
    font-size: 15px;
  }
  .ai-tri-4 .fpanel h4 { color: var(--primary-deep); font-size: 16px; margin-bottom: 8px; }
  .ai-tri-4 .fpanel .tag {
    display: inline-block; font-size: 12px; font-weight: 700;
    background: var(--primary); color: #fff;
    border-radius: 999px; padding: 2px 12px; margin-bottom: 10px;
  }

  /* ===== S4：渐进式披露 ===== */
  .ai-tri-4 .pd-stage {
    background: var(--primary-light);
    border-radius: 16px;
    padding: 22px 20px;
    margin-bottom: 16px;
  }
  .ai-tri-4 .pd-step {
    display: flex; gap: 14px; align-items: flex-start;
    padding: 13px 14px; border-radius: 12px;
    opacity: .35; transform: translateX(-8px);
    transition: all .5s;
    margin-bottom: 8px;
  }
  .ai-tri-4 .pd-step:last-child { margin-bottom: 0; }
  .ai-tri-4 .pd-step.lit {
    opacity: 1; transform: none;
    background: #fff;
    box-shadow: 0 3px 12px rgba(194,37,92,.12);
  }
  .ai-tri-4 .pd-step .ico { font-size: 24px; flex: 0 0 32px; text-align: center; }
  .ai-tri-4 .pd-step b { display: block; font-size: 15.5px; }
  .ai-tri-4 .pd-step span { font-size: 13.5px; color: var(--ink-soft); }
  .ai-tri-4 .pd-step .cost {
    flex: 0 0 auto; align-self: center;
    font-size: 12px; font-weight: 700;
    background: var(--primary-soft); color: var(--primary-deep);
    padding: 3px 10px; border-radius: 999px; white-space: nowrap;
  }
  .ai-tri-4 .pd-run {
    display: block; margin: 0 auto;
    font-family: var(--sans); font-size: 16px; font-weight: 700;
    background: var(--primary); color: #fff;
    border: none; border-radius: 999px;
    padding: 12px 34px; cursor: pointer;
    box-shadow: 0 5px 16px rgba(194,37,92,.3);
    transition: transform .2s;
  }
  .ai-tri-4 .pd-run:hover { transform: translateY(-2px); }
  .ai-tri-4 .pd-run[disabled] { opacity: .55; cursor: default; transform: none; }
  .ai-tri-4 .pd-total {
    text-align: center; font-size: 13.5px; color: var(--ink-soft);
    margin-top: 14px; min-height: 20px;
  }
  .ai-tri-4 .pd-total b { color: var(--primary-deep); font-size: 15px; }

  /* ===== compare table ===== */
  .ai-tri-4 .cmp { width: 100%; border-collapse: separate; border-spacing: 0; margin: 22px 0; font-size: 15px; }
  .ai-tri-4 .cmp th, .ai-tri-4 .cmp td { padding: 13px 14px; border-bottom: 1px solid var(--line); text-align: left; }
  .ai-tri-4 .cmp th { background: var(--primary-soft); color: var(--primary-deep); font-size: 14px; }
  .ai-tri-4 .cmp td:first-child { font-weight: 700; white-space: nowrap; }
  .ai-tri-4 .cmp tr:last-child td { border-bottom: none; }

  /* ===== quiz ===== */
  .ai-tri-4 .quiz { margin: 26px 0 6px; }
  .ai-tri-4 .q-item { margin-bottom: 22px; }
  .ai-tri-4 .q-item .q {
    font-weight: 700; font-size: 16px; margin-bottom: 12px;
  }
  .ai-tri-4 .q-item .q .qn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 26px; height: 26px; border-radius: 8px;
    background: var(--primary); color: #fff;
    font-size: 14px; margin-right: 8px;
    vertical-align: -5px;
  }
  .ai-tri-4 .opts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .ai-tri-4 .opts button {
    font-family: var(--sans); font-size: 14.5px; text-align: left;
    padding: 12px 16px; border-radius: 12px;
    border: 1.5px solid var(--line);
    background: #fff; color: var(--ink);
    cursor: pointer; transition: all .2s; line-height: 1.6;
  }
  .ai-tri-4 .opts button:hover { border-color: var(--primary); }
  .ai-tri-4 .opts button.right { border-color: #2B8A3E; background: #EBF7EE; color: #1B5E2B; font-weight: 700; }
  .ai-tri-4 .opts button.wrong { border-color: #C92A2A; background: #FFF0F0; color: #A61E1E; }
  .ai-tri-4 .q-explain {
    margin-top: 10px; font-size: 13.5px; color: var(--ink-soft);
    background: var(--primary-light); border-radius: 10px;
    padding: 10px 14px; display: none;
  }
  .ai-tri-4 .q-explain.show { display: block; }

  /* ===== 结尾互动 ===== */
  .ai-tri-4 .final-cta {
    margin: 50px 0 10px;
    text-align: center;
    padding: 44px 26px;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius);
  }
  .ai-tri-4 .final-cta .emoji { font-size: 40px; }
  .ai-tri-4 .final-cta h2 { font-family: var(--serif); font-size: 24px; margin: 12px 0 10px; }

  /* ===== series nav ===== */
  .ai-tri-4 .series-nav {
    margin: 40px 0 60px;
    display: grid; grid-template-columns: 1fr; gap: 14px;
  }
  .ai-tri-4 .snav-card {
    display: flex; align-items: center; gap: 16px;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
    text-decoration: none;
    color: var(--ink);
    transition: all .25s;
  }
  .ai-tri-4 .snav-card:hover { transform: translateY(-3px); box-shadow: 0 8px 22px rgba(43,39,36,.09); border-color: var(--primary); }
  .ai-tri-4 .snav-card .arrow { font-size: 22px; color: var(--primary); }
  .ai-tri-4 .snav-card b { display: block; font-size: 16px; }
  .ai-tri-4 .snav-card span { font-size: 13px; color: var(--ink-soft); }

  .ai-tri-4 footer {
    text-align: center;
    padding: 30px 0 50px;
    color: var(--ink-soft);
    font-size: 13px;
  }

  /* reveal on scroll */
  .ai-tri-4 .reveal { opacity: 0; transform: translateY(26px); transition: all .7s cubic-bezier(.22,.61,.36,1); }
  .ai-tri-4 .reveal.in { opacity: 1; transform: none; }

  @media (max-width: 560px) {
  .ai-tri-4 { font-size: 16px; }
  .ai-tri-4 .skill-grid { grid-template-columns: 1fr; }
  .ai-tri-4 .opts { grid-template-columns: 1fr; }
  .ai-tri-4 .cmp { font-size: 14px; }
  .ai-tri-4 .cmp th, .ai-tri-4 .cmp td { padding: 10px 8px; }
  .ai-tri-4 .cmp td:first-child { white-space: normal; }
  .ai-tri-4 .pd-step .cost { display: none; }
  .ai-tri-4 .ftree { font-size: 12.5px; }
  }


  /* === Z-Blog 正文适配层 === */
  .ai-tri { font-size: 17px; line-height: 1.85; color: #2B2724; }
  .ai-tri .tri-banner { text-align: center; padding: 8px 0 4px; margin-bottom: 18px; }
  .ai-tri .tri-banner .tri-title {
    font-family: &quot;Songti SC&quot;, &quot;STSong&quot;, &quot;SimSun&quot;, Georgia, serif;
    font-size: clamp(22px, 3.4vw, 30px); line-height: 1.45; margin: 16px 0 8px; font-weight: 700;
  }
  .ai-tri .tri-banner .tri-sub { font-size: 15px; color: #6B6259; }
  .ai-tri .tri-banner .series-tag {
    background: var(--primary-soft); border: 1px solid var(--primary);
    color: var(--primary-deep); margin-bottom: 0;
  }
  .ai-tri main { display: block; }&lt;/style&gt;&lt;header class=&quot;tri-banner&quot;&gt;&lt;span class=&quot;series-tag&quot;&gt;AI 打工日志 · 技能篇&lt;/span&gt;
 &amp;nbsp;&lt;h2 class=&quot;tri-title&quot;&gt;《Skill：给 AI 发一本员工手册》&lt;/h2&gt;&lt;p class=&quot;tri-sub&quot;&gt;同一个 AI，为什么别人用出花，你用成了人工智障？ · 阅读约 8 分钟 · 无需技术背景&lt;/p&gt;&lt;/header&gt;&lt;main class=&quot;wrap&quot;&gt;&lt;!-- S1 --&gt;&lt;section id=&quot;s1&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🧩&lt;/div&gt;&lt;h2&gt;先看一个扎心现场&lt;span class=&quot;sec-sub&quot;&gt;同一个模型，一个像秘书，一个像实习生第一天&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;你有没有过这种体验：朋友晒出的 AI 又帮他做了报表、剪了视频、整理了发票，而你的 AI——&lt;span class=&quot;em&quot;&gt;同一个模型，同一个月会员&lt;/span&gt;——还在慢悠悠地回答&amp;quot;抱歉，我无法直接读取该文件&amp;quot;。&lt;/p&gt;&lt;p&gt;差距在哪？不是你充的钱不够，也不是你的 prompt 不够虔诚。很可能只是：&lt;strong&gt;人家的 AI 手里有一本&amp;quot;员工手册&amp;quot;，你的是裸奔上岗。&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;这本手册，就是这两年突然爆火的 &lt;span class=&quot;em&quot;&gt;Skill（技能）&lt;/span&gt;。下面这个对比，你可以亲手切着玩：&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;demo reveal&quot;&gt;&lt;div class=&quot;demo-title&quot;&gt;🔬 实验台：同一个 AI，两种人生&lt;/div&gt;&lt;div class=&quot;demo-hint&quot;&gt;同一个任务，切换看看装没装技能的差别&lt;/div&gt;&lt;div class=&quot;task-chip&quot;&gt;📋 任务：&lt;strong&gt;「把这个 PDF 里的 14 张发票，整理成报销表格」&lt;/strong&gt;&lt;/div&gt;&lt;div class=&quot;toggle-bar&quot;&gt;&lt;button id=&quot;btnBad&quot; class=&quot;on&quot;&gt;😅 无技能裸奔&lt;/button&gt;&lt;button id=&quot;btnGood&quot;&gt;😎 装了技能包&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;ai-reply bad&quot; id=&quot;replyBox&quot;&gt;&lt;div class=&quot;r-head&quot;&gt;🤖 AI 的回复：&lt;/div&gt;&lt;div id=&quot;replyBody&quot;&gt;您好！很抱歉，我无法直接读取或处理 PDF 文件哦～&lt;br/&gt;&lt;br/&gt;建议您可以：&lt;br/&gt;1️⃣ 使用在线 PDF 转 Word 工具（注意信息安全哦）&lt;br/&gt;2️⃣ 手动将发票内容复制到 Excel 中&lt;br/&gt;3️⃣ 参考我为您提供的表格模板格式&lt;br/&gt;&lt;br/&gt;希望对您有帮助！还有什么可以为您效劳的吗？😊&lt;/div&gt;&lt;/div&gt;&lt;p class=&quot;demo-note&quot; id=&quot;replyNote&quot;&gt;👆 态度满分，行动零分——它不是不想帮，是真不会。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;quote reveal&quot;&gt;Prompt 决定 AI 说什么，Skill 决定 AI 会什么。 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;who&quot;&gt;—— 一句可以抄走的话&lt;/span&gt;&lt;/div&gt;&lt;/section&gt;&lt;!-- S2 --&gt;&lt;section id=&quot;s2&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;📖&lt;/div&gt;&lt;h2&gt;Skill 到底是个啥？&lt;span class=&quot;sec-sub&quot;&gt;本质上：一份写给 AI 看的带教手册&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;回想一下公司怎么带新员工。&lt;span class=&quot;em&quot;&gt;没有哪家公司会在入职第一天，让新人把八百页员工手册背下来&lt;/span&gt;——都是先发一张工牌、一张部门通讯录，告诉他&amp;quot;报销找财务、打印机坏了找行政&amp;quot;，具体规章放内网，用到哪章翻哪章。&lt;/p&gt;&lt;p&gt;Skill 就是发给 AI 的这套东西：一个装着&lt;strong&gt;说明书、脚本、参考资料&lt;/strong&gt;的文件夹。AI 平时只记住每本手册的&amp;quot;封面&amp;quot;（名字和一句话简介），真遇到匹配的任务，才翻开细读，照着一步步干。&lt;/p&gt;&lt;p&gt;这事为什么重要？回顾一下三部曲的世界观：&lt;/p&gt;&lt;p&gt;第一篇说过，大模型是个&lt;span class=&quot;em&quot;&gt;读完了整个互联网的&amp;quot;话痨&amp;quot;&lt;/span&gt;——满腹经纶，但没有工牌，进不了你公司的门，更不知道你们财务部报销要附审批号。第二篇的 Agent 给它配上了手脚和待办清单，会自己干活了；但让它干&lt;strong&gt;你公司&lt;/strong&gt;的活，它还是两眼一抹黑。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Skill 补的就是最后这块：岗位知识。&lt;/strong&gt;装上&amp;quot;发票整理技能&amp;quot;，它就懂你们公司的报销流程；装上&amp;quot;公众号排版技能&amp;quot;，它就懂你的号禁用什么词、封面图尺寸是多少。同一个大模型，装不同的手册，秒变不同的&amp;quot;熟练工&amp;quot;。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;h3&gt;💡 一句话记住它&lt;/h3&gt;&lt;p&gt;大模型 = 考了驾照的新手；Agent = 给他配了车；Skill = 导航里存好你家、公司、丈母娘家的地址，并备注&amp;quot;丈母娘家楼下不能按喇叭&amp;quot;。&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;!-- S3 --&gt;&lt;section id=&quot;s3&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🎒&lt;/div&gt;&lt;h2&gt;这本手册长什么样？&lt;span class=&quot;sec-sub&quot;&gt;一个技能 = 一个文件夹，点开看看&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;一个技能就是一个文件夹，里面最核心的是一份 &lt;span class=&quot;em&quot;&gt;SKILL.md&lt;/span&gt;——用 Markdown 写的说明书，开头写着这个技能叫什么、什么情况下该用它。剩下的，是配套的&amp;quot;家伙事儿&amp;quot;。&lt;/p&gt;&lt;p&gt;下面是一个「发票报销整理」技能的真实结构。&lt;strong&gt;每个文件都能点&lt;/strong&gt;，右边会告诉你它是干嘛的：&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;demo reveal&quot;&gt;&lt;div class=&quot;demo-title&quot;&gt;🎒 装备检查：skill-invoice/&lt;/div&gt;&lt;div class=&quot;demo-hint&quot;&gt;点击左侧文件树里的任意文件或文件夹&lt;/div&gt;&lt;div class=&quot;skill-grid&quot;&gt;&lt;div class=&quot;ftree&quot; id=&quot;ftree&quot;&gt;&lt;span class=&quot;f-item folder on&quot; data-k=&quot;root&quot;&gt;📁 skill-invoice/&lt;/span&gt; &amp;nbsp;&lt;span class=&quot;f-item&quot; data-k=&quot;skillmd&quot; style=&quot;padding-left:26px&quot;&gt;├── 📄 SKILL.md&lt;/span&gt; &amp;nbsp;&lt;span class=&quot;f-item folder&quot; data-k=&quot;scripts&quot; style=&quot;padding-left:26px&quot;&gt;├── 📂 scripts/&lt;/span&gt; &amp;nbsp;&lt;span class=&quot;f-item&quot; data-k=&quot;py&quot; style=&quot;padding-left:52px&quot;&gt;└── extract_pdf.py&lt;/span&gt; &amp;nbsp;&lt;span class=&quot;f-item folder&quot; data-k=&quot;refs&quot; style=&quot;padding-left:26px&quot;&gt;├── 📂 references/&lt;/span&gt; &amp;nbsp;&lt;span class=&quot;f-item&quot; data-k=&quot;rule&quot; style=&quot;padding-left:52px&quot;&gt;└── 报销制度2026.md&lt;/span&gt; &amp;nbsp;&lt;span class=&quot;f-item folder&quot; data-k=&quot;assets&quot; style=&quot;padding-left:26px&quot;&gt;└── 📂 assets/&lt;/span&gt; &amp;nbsp;&lt;span class=&quot;f-item&quot; data-k=&quot;xlsx&quot; style=&quot;padding-left:52px&quot;&gt;└── 报销模板.xlsx&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;fpanel&quot; id=&quot;fpanel&quot;&gt;&lt;span class=&quot;tag&quot;&gt;点左边看看&lt;/span&gt; &amp;nbsp;&lt;h4 id=&quot;fpTitle&quot;&gt;先点一个文件 👈&lt;/h4&gt;&lt;p id=&quot;fpDesc&quot; style=&quot;font-size:14.5px&quot;&gt;这就像员工的工位：桌面上的手册、抽屉里的工具、柜子里的资料。AI 上岗前，公司会把整个工位配好。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;h3&gt;🧠 各司其职&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;SKILL.md&lt;/strong&gt; 是灵魂：名字、触发条件、干活步骤，全写在这里。写得越像给实习生看的带教文档，AI 干得越像老员工。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;scripts/&lt;/strong&gt; 是&amp;quot;手&amp;quot;：AI 的嘴再溜，也算不动 300 行发票数据。让它调用现成脚本，说到就做到。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;references/&lt;/strong&gt; 是&amp;quot;资料柜&amp;quot;：报销新规、税率表这类大块资料。平时不占脑子，用到才翻。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;assets/&lt;/strong&gt; 是&amp;quot;附件袋&amp;quot;：模板、示例文件。要交作业的时候直接拿来套。&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;!-- S4 --&gt;&lt;section id=&quot;s4&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;⚡&lt;/div&gt;&lt;h2&gt;最妙的设计：用到哪章，翻哪章&lt;span class=&quot;sec-sub&quot;&gt;行话叫「渐进式披露」，人话叫「别让新人背整本手册」&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;你可能会问：直接把所有手册全文塞给 AI 不就完了？还真不行。&lt;/p&gt;&lt;p&gt;第一，&lt;strong&gt;塞不下&lt;/strong&gt;。AI 一次能&amp;quot;惦记&amp;quot;的内容有上限（行话叫上下文窗口），你把公司八百页规章全塞进去，再聊两句就爆了。第二，&lt;strong&gt;塞了也白塞&lt;/strong&gt;。手册太多反而互相干扰，就像你考试前把十本书复印成一摞，翻答案比做题还慢。&lt;/p&gt;&lt;p&gt;所以 Skill 的玩法是&lt;strong&gt;三层按需加载&lt;/strong&gt;：平时只记封面（几句话）→ 接到匹配任务才读正文（几百字）→ 碰到具体问题才翻附录（要多少翻多少）。点下面按钮，看 AI 接到报销任务后的完整动作：&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;demo reveal&quot;&gt;&lt;div class=&quot;demo-title&quot;&gt;⚡ 模拟现场：派活给 AI&lt;/div&gt;&lt;div class=&quot;demo-hint&quot;&gt;你：「把这个月报销单整理好，按新税率算」&lt;/div&gt;&lt;div class=&quot;pd-stage&quot;&gt;&lt;div class=&quot;pd-step&quot; id=&quot;pd1&quot;&gt;&lt;div class=&quot;ico&quot;&gt;🗂️&lt;/div&gt;&lt;div style=&quot;flex:1&quot;&gt;&lt;strong&gt;第一步 · 平时：只记封面&lt;/strong&gt;AI 脑子里只有每本技能的名字和一句话简介——「skill-invoice：发票整理报销专用」。几十个字，随身携带，零负担。 &amp;nbsp;&lt;/div&gt;&lt;span class=&quot;cost&quot;&gt;≈ 几十字&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;pd-step&quot; id=&quot;pd2&quot;&gt;&lt;div class=&quot;ico&quot;&gt;📖&lt;/div&gt;&lt;div style=&quot;flex:1&quot;&gt;&lt;strong&gt;第二步 · 命中任务：翻开正文&lt;/strong&gt;「报销单」三个字触发匹配！AI 打开 SKILL.md 细读：先跑脚本提取 PDF，再按步骤核对、分类、算税。 &amp;nbsp;&lt;/div&gt;&lt;span class=&quot;cost&quot;&gt;≈ 几百字&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;pd-step&quot; id=&quot;pd3&quot;&gt;&lt;div class=&quot;ico&quot;&gt;🔍&lt;/div&gt;&lt;div style=&quot;flex:1&quot;&gt;&lt;strong&gt;第三步 · 遇到细节：才翻附录&lt;/strong&gt;「新税率」是多少来着？现在才去翻 references/报销制度2026.md 里的税率表，顺带套用 assets/ 里的模板交作业。 &amp;nbsp;&lt;/div&gt;&lt;span class=&quot;cost&quot;&gt;按需取用&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;button class=&quot;pd-run&quot; id=&quot;pdRun&quot;&gt;▶️ 开始派活&lt;/button&gt;&lt;div class=&quot;pd-total&quot; id=&quot;pdTotal&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;quote reveal&quot;&gt;好的技能，不是把书塞进 AI 的脑子，而是把书放好在架子上，让它永远知道去哪儿翻。 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;who&quot;&gt;—— 渐进式披露的人话版&lt;/span&gt;&lt;/div&gt;&lt;/section&gt;&lt;!-- S5 --&gt;&lt;section id=&quot;s5&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🆚&lt;/div&gt;&lt;h2&gt;Prompt、Skill、Agent，到底谁是谁？&lt;span class=&quot;sec-sub&quot;&gt;一句话：说话 · 上班 · 干活&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;这三个词天天见，关系一句话说清：&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;em&quot;&gt;Prompt 教会 AI 说话，Skill 教会 AI 上班，Agent 是 AI 真的开始干活。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;展开对比一下：&lt;/p&gt;&lt;table class=&quot;cmp&quot;&gt;&lt;tbody&gt;&lt;tr class=&quot;firstRow&quot;&gt;&lt;th&gt;维度&lt;/th&gt;&lt;th&gt;💬 Prompt 提示词&lt;/th&gt;&lt;th&gt;📖 Skill 技能&lt;/th&gt;&lt;th&gt;🤖 Agent 智能体&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;像什么&lt;/td&gt;&lt;td&gt;临时吩咐&lt;/td&gt;&lt;td&gt;岗位 SOP 手册&lt;/td&gt;&lt;td&gt;一个会自己干活的员工&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;生命周期&lt;/td&gt;&lt;td&gt;用完即弃，下次重打&lt;/td&gt;&lt;td&gt;写一次，反复复用&lt;/td&gt;&lt;td&gt;常驻，随叫随到&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;记忆在哪&lt;/td&gt;&lt;td&gt;聊天框里&lt;/td&gt;&lt;td&gt;文件夹里&lt;/td&gt;&lt;td&gt;任务清单和记忆里&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;典型场景&lt;/td&gt;&lt;td&gt;「帮我改下这段话的语气」&lt;/td&gt;&lt;td&gt;「处理报销」「排版推文」&lt;/td&gt;&lt;td&gt;「每周五自动出周报」&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;包含关系&lt;/td&gt;&lt;td colspan=&quot;3&quot;&gt;Agent 接到活 → 翻 Skill 手册 → 按手册里的话（Prompt 水平）执行 ✅&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;三者不是竞争关系，是&lt;strong&gt;套装关系&lt;/strong&gt;：Agent 是人，Skill 是它受过的培训，Prompt 是你每次给它派的活。少一层，效率打折。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;h3&gt;🛒 顺带说一句：技能商店时代来了&lt;/h3&gt;&lt;p&gt;既然技能就是个文件夹，那自然可以&lt;strong&gt;分享、下载、装车&lt;/strong&gt;。现在各大 AI 平台都在做&amp;quot;技能市场&amp;quot;：别人写好的&amp;quot;Excel 分析技能&amp;quot;&amp;quot;公众号排版技能&amp;quot;，你下载装上就能用，跟手机装 App 一个体验。&lt;/p&gt;&lt;p&gt;写技能的人甚至比写 App 的人更吃香——App 要开发几个月，一个技能可能就是一个下午写的手册。这就是为什么说：&lt;span class=&quot;em&quot;&gt;把自己的经验写成技能，正在成为普通人分享知识的新方式。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;!-- S6 --&gt;&lt;section id=&quot;s6&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🧪&lt;/div&gt;&lt;h2&gt;你也能写一个：四条铁律&lt;span class=&quot;sec-sub&quot;&gt;把你最熟练的那件事，写成 AI 的带教手册&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;写技能不需要编程十级（能用上脚本更好，不能也不耽误）。记住四条：&lt;/p&gt;&lt;p&gt;&lt;strong&gt;① 触发条件写明确。&lt;/strong&gt;「当用户提到发票、报销、发票PDF时使用本技能」——含糊的触发条件，等于把手册塞进抽屉最底层。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;② 步骤写得像菜谱。&lt;/strong&gt;「第一步…第二步…如果遇到 A 就走 B」——别写&amp;quot;酌情处理&amp;quot;，AI 的&amp;quot;情&amp;quot;和你想的不是一个情。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;③ 把坑写进去。&lt;/strong&gt;「注意：金额含税与不含税别搞混」「老系统导出的日期是文本格式」——这些血泪教训，恰恰是你比 AI 贵的地方。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;④ 能交给脚本的，别让它用嘴算。&lt;/strong&gt;让 AI 背九九表不如给它一个计算器：重复劳动写成脚本，又快又稳。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;demo reveal&quot;&gt;&lt;div class=&quot;demo-title&quot;&gt;🧭 毕业小测：技能装载检查&lt;/div&gt;&lt;div class=&quot;demo-hint&quot;&gt;三道题，看看这本手册你读进去没有&lt;/div&gt;&lt;div class=&quot;quiz&quot;&gt;&lt;div class=&quot;q-item&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;1&lt;/span&gt;Skill 的本质是什么？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;b&quot; data-explain=&quot;Skill 不是更大的模型，也不是花钱开会员——它就是一份写给 AI 看的说明书加配套工具，装在哪个 AI 上，哪个 AI 就多了这门手艺。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 一个更大的新模型，更聪明&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 一份写给 AI 看的带教手册 + 配套工具&lt;/button&gt;&lt;button data-v=&quot;c&quot;&gt;C. 一种更贵的会员充值服务&lt;/button&gt;&lt;button data-v=&quot;d&quot;&gt;D. AI 界的电子游戏技能树&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;q-item&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;2&lt;/span&gt;「渐进式披露」说的是什么？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;c&quot; data-explain=&quot;渐进式披露 = 平时只记封面简介，命中任务才读正文，遇到细节才翻附录。好处：不占脑子、不爆上下文、干扰少——正如好公司不会让新人第一天背完整本员工手册。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. AI 看你充值少，就慢慢回复你&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 把所有手册全文一次性塞给 AI&lt;/button&gt;&lt;button data-v=&quot;c&quot;&gt;C. 平时只记封面，用到才翻正文和附录&lt;/button&gt;&lt;button data-v=&quot;d&quot;&gt;D. 技能加载条，走满才能用&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;q-item&quot;&gt;&lt;div class=&quot;q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;3&lt;/span&gt;下面哪个写法，最容易让技能翻车？&lt;/div&gt;&lt;div class=&quot;opts&quot; data-answer=&quot;d&quot; data-explain=&quot;触发条件是技能的大门。大门含糊，AI 根本不知道什么时候该翻开这本手册，写得再好也是压箱底。其余三条——步骤像菜谱、坑写清楚、脚本化重复劳动——全是加分项。&quot;&gt;&lt;button data-v=&quot;a&quot;&gt;A. 步骤写得像菜谱一样清晰&lt;/button&gt;&lt;button data-v=&quot;b&quot;&gt;B. 把容易踩的坑提前写明&lt;/button&gt;&lt;button data-v=&quot;c&quot;&gt;C. 重复计算交给脚本去做&lt;/button&gt;&lt;button data-v=&quot;d&quot;&gt;D. 触发条件写得含糊，让 AI 自己悟&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;q-explain&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;final-cta reveal&quot;&gt;&lt;div class=&quot;emoji&quot;&gt;🎓&lt;/div&gt;&lt;h2&gt;技能篇 1/4 · 完&lt;/h2&gt;&lt;p style=&quot;color: var(--ink-soft)&quot;&gt;前传「AI 三部曲」讲完了 AI 的脑、手脚和饭碗，&lt;br/&gt;技能篇讲它的&lt;span class=&quot;em&quot;&gt;岗前培训&lt;/span&gt;——这是第一课：认识手册。&lt;br/&gt;&lt;br/&gt;下一篇：手册到手了，怎么给 AI 装上？&lt;br/&gt;「装技能：给 AI 办入职装备」&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;/main&gt;&lt;script&gt;(function () {
  var root = document.currentScript.closest(&#039;.ai-tri&#039;);
  
  // ---- 滚动显现 ----
  const io = new IntersectionObserver((entries) =&gt; {
    entries.forEach(e =&gt; { if (e.isIntersecting) { e.target.classList.add(&#039;in&#039;); io.unobserve(e.target); } });
  }, { threshold: 0.12 });
  root.querySelectorAll(&#039;.reveal&#039;).forEach(el =&gt; io.observe(el));

  // ---- 目录高亮 ----
  const links = root.querySelectorAll(&#039;.toc a&#039;);
  const secs = [...links].map(a =&gt; root.querySelector(a.getAttribute(&#039;href&#039;)));
  const spy = new IntersectionObserver((entries) =&gt; {
    entries.forEach(e =&gt; {
      if (e.isIntersecting) {
        links.forEach(l =&gt; l.classList.remove(&#039;active&#039;));
        const hit = links.find(l =&gt; l.getAttribute(&#039;href&#039;) === &#039;#&#039; + e.target.id);
        if (hit) hit.classList.add(&#039;active&#039;);
      }
    });
  }, { rootMargin: &#039;-30% 0px -60% 0px&#039; });
  secs.forEach(s =&gt; s &amp;&amp; spy.observe(s));

  // ---- S1：装载前后对比 ----
  const badReply = &#039;您好！很抱歉，我无法直接读取或处理 PDF 文件哦～&lt;br&gt;&lt;br&gt;建议您可以：&lt;br&gt;1️⃣ 使用在线 PDF 转 Word 工具（注意信息安全哦）&lt;br&gt;2️⃣ 手动将发票内容复制到 Excel 中&lt;br&gt;3️⃣ 参考我为您提供的表格模板格式&lt;br&gt;&lt;br&gt;希望对您有帮助！还有什么可以为您效劳的吗？😊&#039;;
  const goodReply = &#039;&lt;ol&gt;&lt;li&gt;📦 调用 &lt;b&gt;scripts/extract_pdf.py&lt;/b&gt; 提取 PDF —— 识别出 14 张发票&lt;/li&gt;&lt;li&gt;🔍 逐张核对关键字段：发票号、抬头、金额、税额，标记出 2 张抬头写错需要退回的&lt;/li&gt;&lt;li&gt;📊 按 &lt;b&gt;references/报销制度2026.md&lt;/b&gt; 的新税率分类汇总，套用 &lt;b&gt;assets/报销模板.xlsx&lt;/b&gt;&lt;/li&gt;&lt;li&gt;✅ 交付：&lt;b&gt;报销汇总表.xlsx&lt;/b&gt;（14 条记录，2 条标红待处理）+ 一段给财务的备注说明&lt;/li&gt;&lt;/ol&gt;&lt;span class=&quot;dim&quot;&gt;全程没跟你要一句废话——手册里全写了。&lt;/span&gt;&#039;;
  const btnBad = root.querySelector(&#039;#btnBad&#039;);
  const btnGood = root.querySelector(&#039;#btnGood&#039;);
  const replyBox = root.querySelector(&#039;#replyBox&#039;);
  const replyBody = root.querySelector(&#039;#replyBody&#039;);
  const replyNote = root.querySelector(&#039;#replyNote&#039;);

  function setMode(mode) {
    const bad = mode === &#039;bad&#039;;
    btnBad.classList.toggle(&#039;on&#039;, bad);
    btnGood.classList.toggle(&#039;on&#039;, !bad);
    replyBox.className = &#039;ai-reply &#039; + (bad ? &#039;bad&#039; : &#039;good&#039;);
    replyBody.innerHTML = bad ? badReply : goodReply;
    replyNote.textContent = bad
      ? &#039;👆 态度满分，行动零分——它不是不想帮，是真不会。&#039;
      : &#039;👆 同一个模型，只是多了一本手册——&quot;熟练工&quot;就是熟练在流程和工具上。&#039;;
  }
  btnBad.onclick = () =&gt; setMode(&#039;bad&#039;);
  btnGood.onclick = () =&gt; setMode(&#039;good&#039;);

  // ---- S3：文件树 ----
  const fdata = {
    root: { tag: &#039;技能文件夹&#039;, title: &#039;📁 skill-invoice/&#039;, desc: &#039;一个技能 = 一个文件夹。整个文件夹描述同一门手艺：「发票报销整理」。装进 AI 后，这门手艺就归它了。&#039; },
    skillmd: { tag: &#039;灵魂文件&#039;, title: &#039;📄 SKILL.md —— 手册正文&#039;, desc: &#039;开头写名字和触发条件（什么时候该翻开我），正文写干活步骤。AI 平时只记它的封面简介，命中任务才细读。写得越像给实习生的带教文档，效果越好。&#039; },
    scripts: { tag: &#039;工具箱&#039;, title: &#039;📂 scripts/ —— AI 的&quot;手&quot;&#039;, desc: &#039;放可执行脚本。AI 的嘴再溜，心算 300 行发票也容易错；让它调用脚本，又快又稳。说到，就做到。&#039; },
    py: { tag: &#039;脚本示例&#039;, title: &#039;🐍 extract_pdf.py&#039;, desc: &#039;一个具体的脚本：负责把 PDF 里的发票内容提取出来。AI 不需要&quot;会&quot;提取，它只需要知道&quot;这一步该叫这个脚本&quot;。&#039; },
    refs: { tag: &#039;资料柜&#039;, title: &#039;📂 references/ —— 参考资料库&#039;, desc: &#039;大块头资料放这里：报销新规、税率表、历史案例。平时一点不占 AI 的脑子，遇到具体问题才翻——这就是&quot;渐进式披露&quot;的附录层。&#039; },
    rule: { tag: &#039;资料示例&#039;, title: &#039;📋 报销制度2026.md&#039;, desc: &#039;今年最新的报销规定和税率表。政策一变，只改这一个文件，技能就自动&quot;学会&quot;了新政策——比给每个员工发培训通知省事多了。&#039; },
    assets: { tag: &#039;附件袋&#039;, title: &#039;📂 assets/ —— 模板与附件&#039;, desc: &#039;放现成的模板、示例文件。AI 交作业时直接套用，保证格式和你公司的一模一样——不用你每次都在 prompt 里描述半天表格长啥样。&#039; },
    xlsx: { tag: &#039;附件示例&#039;, title: &#039;📊 报销模板.xlsx&#039;, desc: &#039;财务认可的报销表模板。AI 填这个模板，交出去就能过——这就是&quot;老员工才知道的门道&quot;。&#039; }
  };
  const fpanelTitle = root.querySelector(&#039;#fpTitle&#039;);
  const fpanelDesc = root.querySelector(&#039;#fpDesc&#039;);
  const fpanelTag = fpanel.querySelector(&#039;.tag&#039;);
  root.querySelectorAll(&#039;#ftree .f-item&#039;).forEach(item =&gt; {
    item.onclick = () =&gt; {
      root.querySelectorAll(&#039;#ftree .f-item&#039;).forEach(x =&gt; x.classList.remove(&#039;on&#039;));
      item.classList.add(&#039;on&#039;);
      const d = fdata[item.dataset.k];
      if (d) {
        fpanelTag.textContent = d.tag;
        fpanelTitle.textContent = d.title;
        fpanelDesc.textContent = d.desc;
      }
    };
  });

  // ---- S4：渐进式披露动画 ----
  const pdRun = root.querySelector(&#039;#pdRun&#039;);
  const pdTotal = root.querySelector(&#039;#pdTotal&#039;);
  const steps = [&#039;pd1&#039;, &#039;pd2&#039;, &#039;pd3&#039;].map(id =&gt; document.getElementById(id));
  const notes = [
    &#039;✅ 封面已就位 —— 此刻 AI 同时&quot;惦记&quot;着几十本技能，也才花几百字，毫无压力。&#039;,
    &#039;✅ 正文加载完成 —— SKILL.md 里的菜谱式步骤已就位，脚本随时待命。&#039;,
    &#039;🎉 任务完成！全程只读了真正用到的部分：&lt;b&gt;封面常驻 + 正文按需 + 附录精确取用&lt;/b&gt;。这就是技能既聪明又不撑爆脑子的秘密。&#039;
  ];
  let pdBusy = false;
  pdRun.onclick = () =&gt; {
    if (pdBusy) return;
    pdBusy = true;
    pdRun.disabled = true;
    steps.forEach(s =&gt; s.classList.remove(&#039;lit&#039;));
    pdTotal.innerHTML = &#039;&#039;;
    steps.forEach((s, i) =&gt; {
      setTimeout(() =&gt; {
        s.classList.add(&#039;lit&#039;);
        pdTotal.innerHTML = notes[i];
        if (i === steps.length - 1) {
          setTimeout(() =&gt; { pdRun.disabled = false; pdRun.textContent = &#039;🔁 再演示一遍&#039;; pdBusy = false; }, 900);
        }
      }, 800 * (i + 1));
    });
  };

  // ---- Quiz ----
  root.querySelectorAll(&#039;.quiz .q-item&#039;).forEach(qi =&gt; {
    const opts = qi.querySelector(&#039;.opts&#039;);
    const explain = qi.querySelector(&#039;.q-explain&#039;);
    const answer = opts.dataset.answer;
    let done = false;
    opts.querySelectorAll(&#039;button&#039;).forEach(btn =&gt; {
      btn.onclick = () =&gt; {
        if (done) return;
        done = true;
        const pick = btn.dataset.v;
        opts.querySelectorAll(&#039;button&#039;).forEach(b =&gt; {
          if (b.dataset.v === answer) b.classList.add(&#039;right&#039;);
          else if (b === btn) b.classList.add(&#039;wrong&#039;);
        });
        explain.textContent = opts.dataset.explain;
        explain.classList.add(&#039;show&#039;);
      };
    });
  });

  // 兜底：2 秒后强制显示所有 reveal 元素，避免任何环境下内容被隐藏
  setTimeout(function () {
    root.querySelectorAll(&#039;.reveal&#039;).forEach(function (el) { el.classList.add(&#039;in&#039;); });
  }, 2000);
})();&lt;/script&gt;&lt;/div&gt;&lt;!-- AI 打工日志 · 技能篇 · 第4篇 · 结束 --&gt;</description><pubDate>Mon, 07 Sep 2026 22:00:07 +0800</pubDate></item><item><title>当 AI 搬进你的工位：打工人自救指南 | AI 三部曲③</title><link>https://imwen.com/post/369.html</link><description>&lt;!-- AI 三部曲 · 第3篇 · 交互完整版（样式已隔离，勿在可视化编辑器中编辑源码模式之外的内容） --&gt;&lt;div class=&quot;ai-tri ai-tri-3&quot;&gt;&lt;style&gt;.ai-tri-3 {
    --primary: #6741D9;
    --primary-light: #F3F0FF;
    --primary-soft: #E5DBFF;
    --primary-deep: #5F3DC4;
    --accent: #845EF7;
    --bg: #FAF7F2;
    --card: #FFFFFF;
    --ink: #2B2724;
    --ink-soft: #6B6259;
    --line: #EDE5DA;
    --radius: 20px;
    --serif: &quot;Songti SC&quot;, &quot;STSong&quot;, &quot;SimSun&quot;, Georgia, serif;
    --sans: -apple-system, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Segoe UI&quot;, sans-serif;
  }
  .ai-tri-3 * { margin: 0; padding: 0; box-sizing: border-box; }
  .ai-tri-3 {
    font-family: var(--sans);
    background: var(--bg);
    color: var(--ink);
    line-height: 1.85;
    font-size: 17px;
  }
  .ai-tri-3 .wrap { max-width: 760px; margin: 0 auto; padding: 0 22px; }

  /* ===== Hero ===== */
  .ai-tri-3 .hero {
    background: linear-gradient(160deg, var(--primary) 0%, var(--accent) 100%);
    color: #fff;
    padding: 72px 0 88px;
    position: relative;
    overflow: hidden;
  }
  .ai-tri-3 .hero::after {
    content: &quot;&quot;;
    position: absolute; bottom: -2px; left: 0; right: 0;
    height: 44px;
    background: var(--bg);
    border-radius: 44px 44px 0 0;
  }
  .ai-tri-3 .series-tag {
    display: inline-block;
    background: rgba(255,255,255,.18);
    border: 1px solid rgba(255,255,255,.4);
    border-radius: 999px;
    padding: 5px 16px;
    font-size: 13px;
    letter-spacing: 2px;
    margin-bottom: 26px;
  }
  .ai-tri-3 .hero .ep { font-size: 14px; letter-spacing: 6px; opacity: .85; margin-bottom: 10px; }
  .ai-tri-3 .hero h1 {
    font-family: var(--serif);
    font-size: clamp(30px, 5.6vw, 46px);
    line-height: 1.35;
    font-weight: 700;
    margin-bottom: 18px;
  }
  .ai-tri-3 .hero .sub { font-size: 18px; opacity: .92; }
  .ai-tri-3 .hero .meta { margin-top: 30px; font-size: 13px; opacity: .75; }

  /* ===== Sticky nav ===== */
  .ai-tri-3 .toc {
    position: sticky; top: 0; z-index: 50;
    background: rgba(250,247,242,.92);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--line);
    padding: 10px 0;
  }
  .ai-tri-3 .toc .wrap {
    display: flex; gap: 8px;
    overflow-x: auto; white-space: nowrap;
    scrollbar-width: none;
  }
  .ai-tri-3 .toc .wrap::-webkit-scrollbar { display: none; }
  .ai-tri-3 .toc a {
    flex: 0 0 auto;
    text-decoration: none;
    color: var(--ink-soft);
    font-size: 14px;
    padding: 6px 14px;
    border-radius: 999px;
    border: 1px solid transparent;
    transition: all .25s;
  }
  .ai-tri-3 .toc a:hover, .ai-tri-3 .toc a.active {
    color: var(--primary-deep);
    background: var(--primary-soft);
    border-color: var(--primary-soft);
  }

  /* ===== Sections ===== */
  .ai-tri-3 section { padding: 64px 0 8px; }
  .ai-tri-3 .sec-head {
    display: flex; align-items: center; gap: 14px;
    margin-bottom: 26px;
  }
  .ai-tri-3 .sec-num {
    width: 52px; height: 52px; flex: 0 0 52px;
    border-radius: 16px;
    background: var(--primary-soft);
    display: flex; align-items: center; justify-content: center;
    font-size: 26px;
  }
  .ai-tri-3 .sec-head h2 {
    font-family: var(--serif);
    font-size: clamp(22px, 3.6vw, 28px);
    line-height: 1.4;
  }
  .ai-tri-3 .sec-head .sec-sub { font-size: 13px; color: var(--ink-soft); display: block; font-family: var(--sans); font-weight: 400; margin-top: 2px; }

  .ai-tri-3 .card {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 28px 26px;
    margin-bottom: 22px;
    box-shadow: 0 2px 10px rgba(43,39,36,.04);
  }
  .ai-tri-3 p + p { margin-top: 16px; }
  .ai-tri-3 .card h3 {
    font-size: 18px; margin-bottom: 12px;
    display: flex; align-items: center; gap: 8px;
  }
  .ai-tri-3 .em { color: var(--primary-deep); font-weight: 700; }
  .ai-tri-3 strong { font-weight: 700; }

  .ai-tri-3 .quote {
    margin: 34px 0;
    background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);
    color: #fff;
    border-radius: var(--radius);
    padding: 34px 30px;
    font-family: var(--serif);
    font-size: clamp(19px, 3vw, 23px);
    line-height: 1.7;
    position: relative;
  }
  .ai-tri-3 .quote::before {
    content: &quot;❝&quot;;
    position: absolute; top: 10px; left: 18px;
    font-size: 44px; opacity: .3;
  }
  .ai-tri-3 .quote .who {
    display: block; margin-top: 14px;
    font-family: var(--sans); font-size: 13px; opacity: .8;
  }

  /* ===== 场景卡 ===== */
  .ai-tri-3 .scene-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 22px 0; }
  .ai-tri-3 .scene {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 20px 16px;
    text-align: center;
    transition: all .25s;
  }
  .ai-tri-3 .scene:hover { border-color: var(--primary); transform: translateY(-3px); box-shadow: 0 8px 20px rgba(43,39,36,.07); }
  .ai-tri-3 .scene .emoji { font-size: 30px; }
  .ai-tri-3 .scene h4 { font-size: 15px; margin: 8px 0 4px; }
  .ai-tri-3 .scene p { font-size: 12.5px; color: var(--ink-soft); line-height: 1.65; }

  /* ===== prompt 对比 ===== */
  .ai-tri-3 .demo {
    background: var(--card);
    border: 2px dashed var(--primary);
    border-radius: var(--radius);
    padding: 30px 24px;
    margin: 30px 0;
  }
  .ai-tri-3 .demo-title {
    text-align: center; font-weight: 700; font-size: 16px;
    color: var(--primary-deep);
    letter-spacing: 1px; margin-bottom: 6px;
  }
  .ai-tri-3 .demo-hint { text-align: center; font-size: 13px; color: var(--ink-soft); margin-bottom: 20px; }
  .ai-tri-3 .toggle {
    display: flex;
    width: 100%; max-width: 320px;
    margin: 0 auto 22px;
    background: var(--primary-soft);
    border-radius: 999px;
    padding: 5px;
    position: relative;
  }
  .ai-tri-3 .toggle button {
    flex: 1;
    font-family: var(--sans);
    font-size: 15px; font-weight: 700;
    padding: 9px 0;
    border: none;
    border-radius: 999px;
    background: transparent;
    color: var(--primary-deep);
    cursor: pointer;
    transition: all .25s;
    z-index: 1;
  }
  .ai-tri-3 .toggle button.on { background: #fff; box-shadow: 0 2px 8px rgba(43,39,36,.12); }
  .ai-tri-3 .prompt-box {
    border-radius: 16px;
    padding: 22px 24px;
    font-size: 16px;
    line-height: 1.9;
    animation: fadeSwap .35s;
  }
  @keyframes fadeSwap { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
  .ai-tri-3 .pb-bad { background: #FFF5F5; border: 1px solid #FFC9C9; }
  .ai-tri-3 .pb-good { background: #F0FFF4; border: 1px solid #B2F2BB; }
  .ai-tri-3 .pb-label {
    display: inline-block;
    font-size: 12px; font-weight: 700;
    padding: 3px 12px; border-radius: 999px;
    margin-bottom: 12px;
  }
  .ai-tri-3 .pb-bad .pb-label { background: #FFE3E3; color: #C92A2A; }
  .ai-tri-3 .pb-good .pb-label { background: #D3F9D8; color: #2B8A3E; }
  .ai-tri-3 .pb-result {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px dashed rgba(43,39,36,.15);
    font-size: 14px;
    color: var(--ink-soft);
  }
  .ai-tri-3 .pb-result b { color: var(--ink); }

  /* ===== 公式卡 ===== */
  .ai-tri-3 .formula {
    background: var(--primary-light);
    border: 1px solid var(--primary-soft);
    border-radius: 18px;
    padding: 26px 24px;
    text-align: center;
    margin: 26px 0;
    font-size: 17px;
    line-height: 2.1;
  }
  .ai-tri-3 .formula b { color: var(--primary-deep); font-size: 18px; }

  /* ===== 擅长/不擅长 ===== */
  .ai-tri-3 .duo { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 24px 0; }
  .ai-tri-3 .duo .col { border-radius: 18px; padding: 22px 20px; }
  .ai-tri-3 .duo .good { background: #F0FFF4; border: 1px solid #B2F2BB; }
  .ai-tri-3 .duo .bad { background: #FFF5F5; border: 1px solid #FFC9C9; }
  .ai-tri-3 .duo h4 { font-size: 16px; margin-bottom: 10px; }
  .ai-tri-3 .duo ul { list-style: none; }
  .ai-tri-3 .duo li { font-size: 14px; color: var(--ink-soft); padding: 5px 0; }

  /* ===== 测试 ===== */
  .ai-tri-3 .quiz {
    background: var(--card);
    border: 2px dashed var(--primary);
    border-radius: var(--radius);
    padding: 34px 26px;
    margin: 30px 0;
  }
  .ai-tri-3 .quiz-q {
    font-weight: 700;
    font-size: 16.5px;
    margin: 22px 0 12px;
    padding-left: 34px;
    position: relative;
  }
  .ai-tri-3 .quiz-q .qn {
    position: absolute; left: 0; top: 1px;
    width: 25px; height: 25px;
    background: var(--primary-soft); color: var(--primary-deep);
    border-radius: 8px;
    font-size: 13px;
    display: flex; align-items: center; justify-content: center;
  }
  .ai-tri-3 .quiz-opts { display: flex; gap: 10px; flex-wrap: wrap; }
  .ai-tri-3 .quiz-opts button {
    font-family: var(--sans);
    font-size: 14.5px;
    padding: 9px 20px;
    border-radius: 999px;
    border: 1.5px solid var(--line);
    background: #fff;
    color: var(--ink);
    cursor: pointer;
    transition: all .2s;
  }
  .ai-tri-3 .quiz-opts button:hover { border-color: var(--primary); color: var(--primary-deep); }
  .ai-tri-3 .quiz-opts button.sel { background: var(--primary); border-color: var(--primary); color: #fff; }
  .ai-tri-3 .quiz-res {
    display: none;
    margin-top: 28px;
    background: var(--primary-light);
    border: 1px solid var(--primary-soft);
    border-radius: 16px;
    padding: 24px;
    text-align: center;
    animation: fadeSwap .4s;
  }
  .ai-tri-3 .quiz-res .emoji { font-size: 38px; }
  .ai-tri-3 .quiz-res h4 { font-size: 19px; margin: 10px 0 8px; font-family: var(--serif); }
  .ai-tri-3 .quiz-res p { font-size: 14.5px; color: var(--ink-soft); }

  /* ===== 结尾 ===== */
  .ai-tri-3 .final-cta {
    margin: 50px 0 10px;
    text-align: center;
    padding: 44px 26px;
    background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);
    color: #fff;
    border-radius: var(--radius);
  }
  .ai-tri-3 .final-cta .emoji { font-size: 40px; }
  .ai-tri-3 .final-cta h2 { font-family: var(--serif); font-size: 24px; margin: 12px 0 10px; }
  .ai-tri-3 .final-cta p { font-size: 15px; opacity: .9; }

  /* ===== series nav ===== */
  .ai-tri-3 .series-nav {
    margin: 40px 0 60px;
    display: grid; grid-template-columns: 1fr; gap: 14px;
  }
  .ai-tri-3 .snav-card {
    display: flex; align-items: center; gap: 16px;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
    text-decoration: none;
    color: var(--ink);
    transition: all .25s;
  }
  .ai-tri-3 .snav-card:hover { transform: translateY(-3px); box-shadow: 0 8px 22px rgba(43,39,36,.09); border-color: var(--primary); }
  .ai-tri-3 .snav-card .arrow { font-size: 22px; color: var(--primary); }
  .ai-tri-3 .snav-card b { display: block; font-size: 16px; }
  .ai-tri-3 .snav-card span { font-size: 13px; color: var(--ink-soft); }

  .ai-tri-3 footer {
    text-align: center;
    padding: 30px 0 50px;
    color: var(--ink-soft);
    font-size: 13px;
  }

  .ai-tri-3 .reveal { opacity: 0; transform: translateY(26px); transition: all .7s cubic-bezier(.22,.61,.36,1); }
  .ai-tri-3 .reveal.in { opacity: 1; transform: none; }

  @media (max-width: 560px) {
  .ai-tri-3 { font-size: 16px; }
  .ai-tri-3 .scene-grid { grid-template-columns: 1fr; }
  .ai-tri-3 .duo { grid-template-columns: 1fr; }
  }


  /* === Z-Blog 正文适配层 === */
  .ai-tri { font-size: 17px; line-height: 1.85; color: #2B2724; }
  .ai-tri .tri-banner { text-align: center; padding: 8px 0 4px; margin-bottom: 18px; }
  .ai-tri .tri-banner .tri-title {
    font-family: &quot;Songti SC&quot;, &quot;STSong&quot;, &quot;SimSun&quot;, Georgia, serif;
    font-size: clamp(22px, 3.4vw, 30px); line-height: 1.45; margin: 16px 0 8px; font-weight: 700;
  }
  .ai-tri .tri-banner .tri-sub { font-size: 15px; color: #6B6259; }
  .ai-tri .tri-banner .series-tag {
    background: var(--primary-soft); border: 1px solid var(--primary);
    color: var(--primary-deep); margin-bottom: 0;
  }
  .ai-tri main { display: block; }&lt;/style&gt;&lt;header class=&quot;tri-banner&quot;&gt;&lt;span class=&quot;series-tag&quot;&gt;AI 三部曲 · 从话痨到打工人&lt;/span&gt;
 &amp;nbsp;&lt;h2 class=&quot;tri-title&quot;&gt;《当 AI 搬进你的工位：打工人自救指南》&lt;/h2&gt;&lt;p class=&quot;tri-sub&quot;&gt;不会被 AI 淘汰的，是会用 AI 的人 · 阅读约 9 分钟 · 无需技术背景&lt;/p&gt;&lt;p class=&quot;tri-sub&quot;&gt;&lt;img src=&quot;https://imwen.com/zb_users/upload/2026/09/202609061788703688325089.jpg&quot; alt=&quot;cover-3.jpg&quot; width=&quot;768&quot; height=&quot;512&quot; border=&quot;0&quot; vspace=&quot;0&quot; title=&quot;cover-3.jpg&quot; style=&quot;width: 768px; height: 512px;&quot;/&gt;&lt;/p&gt;&lt;/header&gt;&lt;main class=&quot;wrap&quot;&gt;&lt;!-- S1 --&gt;&lt;section id=&quot;s1&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🏭&lt;/div&gt;&lt;h2&gt;一位新同事，正式入职&lt;span class=&quot;sec-sub&quot;&gt;24 小时不喊累的实习生&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;前两篇我们认识了这位新同事：一个读完了整个互联网的&lt;span class=&quot;em&quot;&gt;超级话痨&lt;/span&gt;（大模型），后来还配上了手脚和待办清单（Agent）。&lt;/p&gt;&lt;p&gt;现在，它搬进了你的工位隔壁。它的简历大概是这样：&lt;/p&gt;&lt;p&gt;&lt;strong&gt;优点：&lt;/strong&gt;24 小时在线，从不喊累，不要五险一金，秒回消息，会的技能横跨写作、编程、翻译、画图、做表……&lt;/p&gt;&lt;p&gt;&lt;strong&gt;缺点：&lt;/strong&gt;偶尔一本正经地胡说八道，没有真正的责任心，不认识你老板，也背不动任何锅。&lt;/p&gt;&lt;p&gt;把它当成一个&lt;span class=&quot;em&quot;&gt;&amp;quot;能力惊人但需要清晰指令的实习生&amp;quot;&lt;/span&gt;，就是和它相处的正确起点。它很强，但&lt;span class=&quot;em&quot;&gt;方向得你来定，验收得你来把&lt;/span&gt;。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;scene-grid reveal&quot;&gt;&lt;div class=&quot;scene&quot;&gt;&lt;div class=&quot;emoji&quot;&gt;✍️&lt;/div&gt;&lt;h4&gt;文字工作&lt;/h4&gt;&lt;p&gt;周报、邮件、文案初稿&lt;br/&gt;它十分钟，你只管改&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;scene&quot;&gt;&lt;div class=&quot;emoji&quot;&gt;💻&lt;/div&gt;&lt;h4&gt;编程辅助&lt;/h4&gt;&lt;p&gt;写脚本、找 bug、解释祖传代码&lt;br/&gt;程序员的生产力外挂&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;scene&quot;&gt;&lt;div class=&quot;emoji&quot;&gt;📊&lt;/div&gt;&lt;h4&gt;数据整理&lt;/h4&gt;&lt;p&gt;清洗表格、做图、写分析初稿&lt;br/&gt;Excel 苦手的救星&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;quote reveal&quot;&gt;AI 是&amp;quot;24 小时不喊累的实习生&amp;quot;，但实习生的产出质量，取决于你写的需求说明书。 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;who&quot;&gt;—— 本篇最重要的一句话&lt;/span&gt;&lt;/div&gt;&lt;/section&gt;&lt;!-- S2 --&gt;&lt;section id=&quot;s2&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;💬&lt;/div&gt;&lt;h2&gt;说明书魔法：会提需求的人赢麻了&lt;span class=&quot;sec-sub&quot;&gt;同一个 AI，天壤之别的产出&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;很多人用 AI 的方式是：&amp;quot;帮我写个文案。&amp;quot;——然后得到一坨平平无奇的正确废话，于是得出结论：&amp;quot;AI 不行。&amp;quot;&lt;/p&gt;&lt;p&gt;真相是：&lt;span class=&quot;em&quot;&gt;不是 AI 不行，是你的需求说明书没写清楚&lt;/span&gt;。你给老板发&amp;quot;帮我做个方案&amp;quot;这五个字，老板也会想开除你。&lt;/p&gt;&lt;p&gt;一份合格的&amp;quot;AI 需求说明书&amp;quot;包含四要素：&lt;/p&gt;&lt;div class=&quot;formula reveal&quot;&gt;&lt;strong&gt;身份&lt;/strong&gt;（你是谁）＋ &lt;strong&gt;任务&lt;/strong&gt;（干什么）&lt;br/&gt;＋ &lt;strong&gt;要求&lt;/strong&gt;（风格/格式/长度）＋ &lt;strong&gt;背景&lt;/strong&gt;（给谁看、为什么）&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;demo reveal&quot;&gt;&lt;div class=&quot;demo-title&quot;&gt;🔬 对照实验：烂需求 vs 好需求&lt;/div&gt;&lt;div class=&quot;demo-hint&quot;&gt;切换开关，看同一个任务能差出多少条街&lt;/div&gt;&lt;div class=&quot;toggle&quot;&gt;&lt;button id=&quot;tBad&quot; class=&quot;on&quot;&gt;😵 烂需求&lt;/button&gt;&lt;button id=&quot;tGood&quot;&gt;😎 好需求&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;prompt-box pb-bad&quot; id=&quot;pBox&quot;&gt;&lt;span class=&quot;pb-label&quot;&gt;❌ 你输入的&lt;/span&gt;&lt;br/&gt;&amp;quot;帮我写个咖啡广告。&amp;quot;&lt;div class=&quot;pb-result&quot;&gt;&lt;strong&gt;AI 交出的：&lt;/strong&gt;&amp;quot;我们的咖啡香浓可口，品质卓越，是您生活的完美伴侣……&amp;quot;&lt;br/&gt; &amp;nbsp;—— 每个字都对，每句都像上个世纪写的。&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;三个立竿见影的小技巧：&lt;/p&gt;&lt;p&gt;1️⃣ &lt;span class=&quot;em&quot;&gt;给角色&lt;/span&gt;：&amp;quot;你是一个毒舌广告文案&amp;quot;比&amp;quot;帮我写文案&amp;quot;强十倍。&lt;/p&gt;&lt;p&gt;2️⃣ &lt;span class=&quot;em&quot;&gt;给例子&lt;/span&gt;：贴一段你喜欢的风格样本，让它照着来——它最擅长模仿。&lt;/p&gt;&lt;p&gt;3️⃣ &lt;span class=&quot;em&quot;&gt;让它先问&lt;/span&gt;：加一句&amp;quot;开始前，先问我三个关键问题&amp;quot;，需求瞬间清晰。&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;!-- S3 --&gt;&lt;section id=&quot;s3&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;⚖️&lt;/div&gt;&lt;h2&gt;它真能干与真不能干&lt;span class=&quot;sec-sub&quot;&gt;用人所长，避人所短&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;duo reveal&quot;&gt;&lt;div class=&quot;col good&quot;&gt;&lt;h4&gt;✅ 放心交给它&lt;/h4&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;💨 初稿和草稿（最难的是从 0 到 1，它最擅长）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;🔁 重复性劳动（改格式、翻译、批量整理）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;🧠 头脑风暴（一秒给你 20 个点子，烂的不少，但总有金的）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;📚 知识扫盲（快速入门陌生领域的陪读员）&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;col bad&quot;&gt;&lt;h4&gt;⛔ 千万别全信&lt;/h4&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;🔢 精确数字和事实（幻觉重灾区，务必核对）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;🆕 最新信息（它有知识截止日期）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;🎯 最终决策（背锅的必须是活人）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;❤️ 人情世故（它不懂你老板的言外之意）&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;一句话总结分工：&lt;span class=&quot;em&quot;&gt;它负责快，你负责对；它负责量，你负责准。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;所有&amp;quot;AI 取代人类&amp;quot;的焦虑，到这里可以翻译成一句大实话：AI 取代的不是人，是&amp;quot;只做 AI 也能做的那部分工作&amp;quot;的人。&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;!-- S4 --&gt;&lt;section id=&quot;s4&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🤝&lt;/div&gt;&lt;h2&gt;高手的人机协作姿势&lt;span class=&quot;sec-sub&quot;&gt;让 AI 打草稿，你当主编&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;观察那些用 AI 用得飞起的人，工作流惊人地一致：&lt;/p&gt;&lt;p&gt;&lt;strong&gt;第一步：粗对粗。&lt;/strong&gt;把想法丢给 AI，先要一版粗糙的草稿——不求好，只求从 0 到 1。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;第二步：改着聊。&lt;/strong&gt;把 AI 当成可以反复修改还不闹情绪的乙方：&amp;quot;这里太正式了&amp;quot;&amp;quot;换个开头&amp;quot;&amp;quot;再短一半&amp;quot;。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;第三步：人来终审。&lt;/strong&gt;事实、数字、语气分寸，自己过一遍再出手。&lt;span class=&quot;em&quot;&gt;署你名字的东西，责任就是你的。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;这个流程里，AI 承包了最耗时间的 80%，你只做最值钱的 20%：&lt;span class=&quot;em&quot;&gt;判断、取舍、和拍板&lt;/span&gt;。&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;!-- S5 --&gt;&lt;section id=&quot;s5&quot;&gt;&lt;div class=&quot;sec-head reveal&quot;&gt;&lt;div class=&quot;sec-num&quot;&gt;🧭&lt;/div&gt;&lt;h2&gt;终极测试：你的工作会被 AI 取代吗？&lt;span class=&quot;sec-sub&quot;&gt;纯属娱乐，但结果值得琢磨&lt;/span&gt; &amp;nbsp;&lt;/h2&gt;&lt;/div&gt;&lt;div class=&quot;quiz reveal&quot; id=&quot;quizBox&quot;&gt;&lt;div class=&quot;demo-title&quot;&gt;🎮 三道题，测出你的&amp;quot;AI 韧性指数&amp;quot;&lt;/div&gt;&lt;div class=&quot;quiz-q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;1&lt;/span&gt;你的日常工作里，重复性、有固定套路的活占比？&lt;/div&gt;&lt;div class=&quot;quiz-opts&quot; data-q=&quot;0&quot;&gt;&lt;button data-s=&quot;2&quot;&gt;🫠 大部分&lt;/button&gt;&lt;button data-s=&quot;1&quot;&gt;🙂 一半一半&lt;/button&gt;&lt;button data-s=&quot;0&quot;&gt;😎 很少，天天不重样&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;quiz-q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;2&lt;/span&gt;工作中最需要你的是？&lt;/div&gt;&lt;div class=&quot;quiz-opts&quot; data-q=&quot;1&quot;&gt;&lt;button data-s=&quot;2&quot;&gt;📋 按流程执行&lt;/button&gt;&lt;button data-s=&quot;1&quot;&gt;🔍 经验和判断&lt;/button&gt;&lt;button data-s=&quot;0&quot;&gt;🤝 人和人的信任&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;quiz-q&quot;&gt;&lt;span class=&quot;qn&quot;&gt;3&lt;/span&gt;面对新工具（比如 AI），你的态度是？&lt;/div&gt;&lt;div class=&quot;quiz-opts&quot; data-q=&quot;2&quot;&gt;&lt;button data-s=&quot;2&quot;&gt;😩 能躲就躲&lt;/button&gt;&lt;button data-s=&quot;1&quot;&gt;👀 看看再说&lt;/button&gt;&lt;button data-s=&quot;0&quot;&gt;🔥 立刻上手玩&lt;/button&gt;&lt;/div&gt;&lt;div class=&quot;quiz-res&quot; id=&quot;quizRes&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;card reveal&quot;&gt;&lt;p&gt;得分不重要（毕竟这是三道题的娱乐测试），但方向是真的：&lt;/p&gt;&lt;p&gt;1️⃣ &lt;span class=&quot;em&quot;&gt;套路越少，越难被替代&lt;/span&gt;——AI 最爱吞的就是标准化流程。&lt;/p&gt;&lt;p&gt;2️⃣ &lt;span class=&quot;em&quot;&gt;判断和信任越值钱&lt;/span&gt;——拍板和背锅，暂时还得是活人。&lt;/p&gt;&lt;p&gt;3️⃣ &lt;span class=&quot;em&quot;&gt;会用工具的人赢过不会用的&lt;/span&gt;——这条从石器时代就没变过。&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;final-cta reveal&quot;&gt;&lt;div class=&quot;emoji&quot;&gt;🎉&lt;/div&gt;&lt;h2&gt;三部曲，完&lt;/h2&gt;&lt;p&gt;话痨的大脑（①）+ 手脚和清单（②）+ 会指挥它的你（③）&lt;br/&gt;——这才是 AI 时代的完整拼图。&lt;/p&gt;&lt;/div&gt;&lt;/section&gt;&lt;/main&gt;&lt;script&gt;(function () {
  var root = document.currentScript.closest(&#039;.ai-tri&#039;);
  
  // ---- 滚动显现 ----
  const io = new IntersectionObserver((entries) =&gt; {
    entries.forEach(e =&gt; { if (e.isIntersecting) { e.target.classList.add(&#039;in&#039;); io.unobserve(e.target); } });
  }, { threshold: 0.12 });
  root.querySelectorAll(&#039;.reveal&#039;).forEach(el =&gt; io.observe(el));

  // ---- 目录高亮 ----
  const links = root.querySelectorAll(&#039;.toc a&#039;);
  const secs = [...links].map(a =&gt; root.querySelector(a.getAttribute(&#039;href&#039;)));
  const spy = new IntersectionObserver((entries) =&gt; {
    entries.forEach(e =&gt; {
      if (e.isIntersecting) {
        links.forEach(l =&gt; l.classList.remove(&#039;active&#039;));
        const hit = links.find(l =&gt; l.getAttribute(&#039;href&#039;) === &#039;#&#039; + e.target.id);
        if (hit) hit.classList.add(&#039;active&#039;);
      }
    });
  }, { rootMargin: &#039;-30% 0px -60% 0px&#039; });
  secs.forEach(s =&gt; s &amp;&amp; spy.observe(s));

  // ---- prompt 对比开关 ----
  const tBad = root.querySelector(&#039;#tBad&#039;);
  const tGood = root.querySelector(&#039;#tGood&#039;);
  const pBox = root.querySelector(&#039;#pBox&#039;);

  const badHTML = &#039;&lt;span class=&quot;pb-label&quot;&gt;❌ 你输入的&lt;/span&gt;&lt;br&gt;&quot;帮我写个咖啡广告。&quot;&#039; +
    &#039;&lt;div class=&quot;pb-result&quot;&gt;&lt;b&gt;AI 交出的：&lt;/b&gt;&quot;我们的咖啡香浓可口，品质卓越，是您生活的完美伴侣……&quot;&lt;br&gt;—— 每个字都对，每句都像上个世纪写的。&lt;/div&gt;&#039;;
  const goodHTML = &#039;&lt;span class=&quot;pb-label&quot;&gt;✅ 你输入的&lt;/span&gt;&lt;br&gt;&quot;你是一个擅长社交媒体的咖啡品牌文案。我们的新品是桂花拿铁，目标客户是 25-35 岁的上班族，风格要幽默、带点自嘲，控制在 50 字以内，突出\&#039;秋天的第一杯\&#039;的梗。&quot;&#039; +
    &#039;&lt;div class=&quot;pb-result&quot;&gt;&lt;b&gt;AI 交出的：&lt;/b&gt;&quot;打工人的秋天，是从一杯桂花拿铁开始认怂的。老板画的饼就着桂花的甜，居然也能咽下去了。☕🍂&quot;&lt;br&gt;—— 有点东西，改两个字就能发。&lt;/div&gt;&#039;;

  function switchTo(which) {
    if (which === &#039;bad&#039;) {
      tBad.classList.add(&#039;on&#039;); tGood.classList.remove(&#039;on&#039;);
      pBox.className = &#039;prompt-box pb-bad&#039;;
      pBox.innerHTML = badHTML;
    } else {
      tGood.classList.add(&#039;on&#039;); tBad.classList.remove(&#039;on&#039;);
      pBox.className = &#039;prompt-box pb-good&#039;;
      pBox.innerHTML = goodHTML;
    }
  }
  tBad.onclick = () =&gt; switchTo(&#039;bad&#039;);
  tGood.onclick = () =&gt; switchTo(&#039;good&#039;);

  // ---- 自救测试 ----
  const answers = new Array(3).fill(null);
  root.querySelectorAll(&#039;.quiz-opts&#039;).forEach(group =&gt; {
    const qi = parseInt(group.dataset.q);
    group.querySelectorAll(&#039;button&#039;).forEach(btn =&gt; {
      btn.onclick = () =&gt; {
        group.querySelectorAll(&#039;button&#039;).forEach(b =&gt; b.classList.remove(&#039;sel&#039;));
        btn.classList.add(&#039;sel&#039;);
        answers[qi] = parseInt(btn.dataset.s);
        if (answers.every(a =&gt; a !== null)) showResult();
      };
    });
  });

  function showResult() {
    const score = answers.reduce((a, b) =&gt; a + b, 0);
    const res = root.querySelector(&#039;#quizRes&#039;);
    let emoji, title, desc;
    if (score &lt;= 1) {
      emoji = &#039;🚀&#039;;
      title = &#039;AI 时代的头等舱乘客&#039;;
      desc = &#039;你的工作套路少、判断多、还爱尝鲜——AI 不但取代不了你，还会成为你的外挂。继续保持，顺便教教旁边的同事。&#039;;
    } else if (score &lt;= 4) {
      emoji = &#039;🧗&#039;;
      title = &#039;爬坡区选手：机会与危险各半&#039;;
      desc = &#039;你有一部分可标准化的工作，AI 正好能替你扛掉；另一半靠你的经验和判断。下一步：把重复的部分交给 AI，把自己往&quot;拍板的人&quot;那侧靠。&#039;;
    } else {
      emoji = &#039;🚨&#039;;
      title = &#039;红色警报：舒适区正在缩小&#039;;
      desc = &#039;你的工作流程化程度高，且对新工具还在观望——这正是 AI 最爱下嘴的地方。好消息：警报响了就还来得及。从今天起，每天用 AI 干一件重复的活。&#039;;
    }
    res.innerHTML = &#039;&lt;div class=&quot;emoji&quot;&gt;&#039; + emoji + &#039;&lt;/div&gt;&lt;h4&gt;&#039; + title + &#039;&lt;/h4&gt;&lt;p&gt;&#039; + desc + &#039;&lt;/p&gt;&#039;;
    res.style.display = &#039;block&#039;;
  }

  // 兜底：2 秒后强制显示所有 reveal 元素，避免任何环境下内容被隐藏
  setTimeout(function () {
    root.querySelectorAll(&#039;.reveal&#039;).forEach(function (el) { el.classList.add(&#039;in&#039;); });
  }, 2000);
})();&lt;/script&gt;&lt;/div&gt;&lt;!-- AI 三部曲 · 第3篇 · 结束 --&gt;</description><pubDate>Sat, 05 Sep 2026 22:23:53 +0800</pubDate></item></channel></rss>