PageSourceSearch

https://openclaw.club/archives/post

html openclaw.club collected 2026-10-08 04:52:51 UTC 60,496 bytes, 1,607 lines download raw bytes

1<!doctype html>
2<html
3  lang="zh-CN"
4  data-page-transition="fade-scale"
5  data-nav-active="true"
6>
7  <head>
8    
9  <meta charset="UTF-8" />
10  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
11  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
12  
13  <title
14  >字节“豆包工作“正式亮相:办公AI从“写东西“到“干完活“的范式跃迁 | OpenClaw 俱乐部</title>
15  
16  
17  
18  <meta name="description" content="本文深度解读字节跳动最新发布的企业级 Agent 产品&quot;豆包工作&quot;。文章从一句话理解切入,拆解其内容生成、AI 协作编辑、操作电脑与浏览器、多 Agent 协作、技能生态五大核心能力,重点分析其与飞书深度打通形成的竞争壁垒,并梳理安全合规体系、行业背景与竞品对比。" />
19  
20  
21  
22  
23    <meta name="keywords" content="字节跳动, 豆包工作, AI办公, AI Agent" />
24  
25  <meta name="author" content="🦞n-openclaw" />
26  
27  
28  <link rel="canonical" href="http://localhost:8090/archives/post" />
29  
30  
31  
32  <link rel="icon" href="/upload/OpenClaw%20(29).png" />
33  <link rel="apple-touch-icon" href="/upload/OpenClaw%20(29).png" />
34  <link
35    rel="alternate"
36    type="application/rss+xml"
37    href="http://localhost:8090/rss.xml"
38    title="OpenClaw 俱乐部 - RSS Feed"
39  />
40  <meta property="og:site_name" content="OpenClaw 俱乐部" />
41  <meta property="og:locale" content="zh_CN" />
42  
43    <meta property="og:type" content="article" />
44    <meta property="og:title" content="字节“豆包工作“正式亮相:办公AI从“写东西“到“干完活“的范式跃迁" />
45    <meta property="og:description" content="本文深度解读字节跳动最新发布的企业级 Agent 产品&quot;豆包工作&quot;。文章从一句话理解切入,拆解其内容生成、AI 协作编辑、操作电脑与浏览器、多 Agent 协作、技能生态五大核心能力,重点分析其与飞书深度打通形成的竞争壁垒,并梳理安全合规体系、行业背景与竞品对比。" />
46    <meta property="og:url" content="http://localhost:8090/archives/post" />
47    <meta property="og:image" content="/upload/ChatGPT%20Image%202026%E5%B9%B48%E6%9C%8826%E6%97%A5%2010_59_06-jPVI.png" />
48    
49    <meta
50      property="article:published_time"
51      content="2026-08-26T11:22:00+08:00"
52    />
53    <meta
54      property="article:modified_time"
55      content="2026-08-26T11:42:43+08:00"
56    />
57    <meta property="article:author" content="🦞n-openclaw" />
58    <meta
59      property="article:section"
60      content="技术前沿"
61    />
62    
63      <meta property="article:tag" content="字节跳动" /><meta property="article:tag" content="豆包工作" /><meta property="article:tag" content="AI办公" /><meta property="article:tag" content="AI Agent" />
64    
65  
66  
67  
68  
69  <meta name="twitter:card" content="summary_large_image" />
70  <meta name="twitter:title" content="字节“豆包工作“正式亮相:办公AI从“写东西“到“干完活“的范式跃迁" />
71  
72  
73  
74
75  <meta name="twitter:description" content="本文深度解读字节跳动最新发布的企业级 Agent 产品&quot;豆包工作&quot;。文章从一句话理解切入,拆解其内容生成、AI 协作编辑、操作电脑与浏览器、多 Agent 协作、技能生态五大核心能力,重点分析其与飞书深度打通形成的竞争壁垒,并梳理安全合规体系、行业背景与竞品对比。" />
76  
77  
78  
79
80  
81    <meta name="twitter:image" content="/upload/ChatGPT%20Image%202026%E5%B9%B48%E6%9C%8826%E6%97%A5%2010_59_06-jPVI.png" />
82    
83  
84  
85  
86  
87
88
89    
90
91    
92
93    <link
94      rel="preload"
95      href="/themes/theme-clarity/assets/fonts/JetBrainsMono-Regular/6096f8ea8ec1ddec37a08da471025894.woff2"
96      as="font"
97      type="font/woff2"
98      crossorigin
99    />
100    <link
101      rel="stylesheet"
102      href="/themes/theme-clarity/assets/fonts/JetBrainsMono-Regular/jetBrainsMonoRegular.css?v=1.5.3"
103      media="print"
104      onload="this.media = 'all'"
105    />
106    <link
107      rel="stylesheet"
108      href="/themes/theme-clarity/assets/fonts/JetBrainsMono-Italic/jetBrainsMonoItalic.css?v=1.5.3"
109      media="print"
110      onload="this.media = 'all'"
111    />
112
113    
114
115    
116
117    
118
119    
120      
121      
122      <link rel="stylesheet" href="/themes/theme-clarity/assets/dist/main.css?v=1.5.3" />
123      
123<script type="module" src="/themes/theme-clarity/assets/dist/main.js?v=1.5.3"></script>
123
124    
125    <style>
126      :root,
127      :root.light,
128      :root.dark {
129        --c-primary: #000000 !important;
130        --c-primary-soft: color-mix(in srgb, #000000, transparent 85%) !important;
131        --c-accent: #D0021B !important;
132      }
133    </style>
134    
134<script data-theme-config>
135      window.themeConfig = window.themeConfig || {};
136      window.themeConfig.custom = window.themeConfig.custom || {};
137      window.themeConfig.custom.img_alt = true;
138      window.themeConfig.custom.enable_fancybox = false;
139      window.themeConfig.custom.enable_pjax = false;
140      window.themeConfig.custom.pjax_timeout = 5000;
141      window.themeConfig.custom.enable_page_jump = false;
142      window.themeConfig.custom.caption_blacklist = [];
143      window.themeConfig.style = window.themeConfig.style || {};
144      window.themeConfig.style.theme_mode = "light";
145      window.themeConfig.header = window.themeConfig.header || {};
146      window.themeConfig.header.menu_mouse_hover = true;
147    </script>
147
148    
148<script>
149      (function () {
150        const theme = localStorage.getItem("theme") || window.themeConfig?.style?.theme_mode || "system";
151
152        const isDark =
153          theme === "dark" || (theme === "system" && window.matchMedia("(prefers-color-scheme: dark)").matches);
154
155        if (isDark) {
156          document.documentElement.classList.add("dark");
157        }
158      })();
159    </script>
159
160  <meta content="Halo 2.23.2" name="generator"/><meta name="description" content="本文深度解读字节跳动最新发布的企业级 Agent 产品&quot;豆包工作&quot;。文章从一句话理解切入,拆解其内容生成、AI 协作编辑、操作电脑与浏览器、多 Agent 协作、技能生态五大核心能力,重点分析其与飞书深度打通形成的竞争壁垒,并梳理安全合规体系、行业背景与竞品对比。"/><!-- plugin-editor-hyperlink-card start -->
161<script src="/plugins/editor-hyperlink-card/assets/static/hyperlink-card.iife.js?version=1.6.0"></script>
161
162<link rel="stylesheet" href="/plugins/editor-hyperlink-card/assets/static/var.css?version=1.6.0" />
163<!-- plugin-editor-hyperlink-card end -->
164<!-- plugin-comment-widget start -->
165<link rel="modulepreload" href="/plugins/PluginCommentWidget/assets/static/comment-widget.js?version=3.0.0">
166<link rel="stylesheet" href="/plugins/PluginCommentWidget/assets/static/index.css?version=3.0.0" />
167<!-- plugin-comment-widget end -->
168<!-- PluginSearchWidget start -->
169<script src="/plugins/PluginSearchWidget/assets/static/search-widget.iife.js?version=1.7.0" defer></script>
169
170<link rel="stylesheet" href="/plugins/PluginSearchWidget/assets/static/style.css?version=1.7.0" />
171<!-- PluginSearchWidget end -->
172<!-- plugin-shiki start -->
173<script type="module" src="/plugins/shiki/assets/static/shiki-code.js?version=1.0.11"></script>
173
174<!-- plugin-shiki end -->
175<!-- announcement start -->
176<link rel="stylesheet" href="/plugins/announcement/assets/static/announcement.css?version=2.0.1" />
177<script defer src="/plugins/announcement/assets/static/announcement.umd.cjs?version=2.0.1"></script>
177
178<!-- announcement end -->
179<!-- data-statistics start -->
180<script defer src="/plugins/data-statistics/assets/static/min/chart.umd.min.js?version=1.0.5"></script>
180
181<link rel="stylesheet" href="/plugins/data-statistics/assets/static/min/siteCharts.min.css?version=1.0.5" />
182<script defer src="/plugins/data-statistics/assets/static/min/siteCharts.min.js?version=1.0.5"></script>
vendor: 1 bytes, line 182
182
183<script defer src="/plugins/data-statistics/assets/static/min/dataStatistics.min.js?version=1.0.5"></script>
183
184<link rel="stylesheet" href="/plugins/data-statistics/assets/static/min/dataStatistics.min.css?version=1.0.5" />
185<!-- data-statistics end -->
186<meta content="codeva-72zScPfTfX" name="baidu-site-verification"/><meta content="7loVlnm0-Jb1b4oGOQe1KfPBtQiXYSyEOybwWfYiywc" name="google-site-verification"/><meta content="5D3F3D2FF73FF2C9318AAAB0979DEC78" name="msvalidate.01"/><meta content="" name="sogou_site_verification"/><link rel="icon" href="/upload/OpenClaw%20(29).png" />
187<script async defer src="/halo-tracker.js" data-group="content.halo.run" data-plural="posts" data-name="e8f0d6fc-c6fc-48e5-bdc7-5c90511a3625"></script>
187
188</head>
189  <body id="clarity-root">
190    <div
191      id="z-sidebar-bgmask"
192      class="hidden"
193      onclick="
194        document.getElementById('z-sidebar').classList.remove('show');
195        this.classList.add('hidden');
196        document.getElementById('toggle-sidebar')?.classList.remove('active');
197      "
198    ></div>
199
200    <div
201      id="z-aside-bgmask"
202      class="hidden"
203      onclick="
204        document.getElementById('z-aside').classList.remove('show');
205        this.classList.add('hidden');
206        document.getElementById('toggle-aside')?.classList.remove('active');
207      "
208    ></div>
209
210    <aside
211  id="z-sidebar" class="menu-icon-invert"
212>
213  <div class="clarity-header">
214  <div class="emoji-tail">
215    <span
216      class="split-char"
217      style="--delay: -3.0s"
218    >📄</span><span
219      class="split-char"
220      style="--delay: -2.4s"
221    >🦌</span><span
222      class="split-char"
223      style="--delay: -1.8s"
224    >🙌</span><span
225      class="split-char"
226      style="--delay: -1.2000000000000002s"
227    >🐟</span><span
228      class="split-char"
229      style="--delay: -0.6000000000000001s"
230    >🏖️</span>
231  </div>
232
233  <a href="/">
234    <img
235      src="/upload/%E6%9C%AC%E5%9C%B0%20AI%20%E6%89%A7%E8%A1%8C%E5%BC%95%E6%93%8E%EF%BC%8C%E8%AE%A9%20AI%20%E7%9C%9F%E6%AD%A3%E5%B8%AE%E4%BD%A0%E5%B9%B2%E6%B4%BB%20(51).png"
236      class="clarity-logo"
237      alt="OpenClaw 俱乐部" sizes="(max-width: 640px) 94vw, (max-width: 768px) 92vw, (max-width: 1024px) 88vw, min(800px, 85vw)" srcset="/upload/%E6%9C%AC%E5%9C%B0%20AI%20%E6%89%A7%E8%A1%8C%E5%BC%95%E6%93%8E%EF%BC%8C%E8%AE%A9%20AI%20%E7%9C%9F%E6%AD%A3%E5%B8%AE%E4%BD%A0%E5%B9%B2%E6%B4%BB%20(51).png?width=1200 1200w, /upload/%E6%9C%AC%E5%9C%B0%20AI%20%E6%89%A7%E8%A1%8C%E5%BC%95%E6%93%8E%EF%BC%8C%E8%AE%A9%20AI%20%E7%9C%9F%E6%AD%A3%E5%B8%AE%E4%BD%A0%E5%B9%B2%E6%B4%BB%20(51).png?width=400 400w, /upload/%E6%9C%AC%E5%9C%B0%20AI%20%E6%89%A7%E8%A1%8C%E5%BC%95%E6%93%8E%EF%BC%8C%E8%AE%A9%20AI%20%E7%9C%9F%E6%AD%A3%E5%B8%AE%E4%BD%A0%E5%B9%B2%E6%B4%BB%20(51).png?width=800 800w, /upload/%E6%9C%AC%E5%9C%B0%20AI%20%E6%89%A7%E8%A1%8C%E5%BC%95%E6%93%8E%EF%BC%8C%E8%AE%A9%20AI%20%E7%9C%9F%E6%AD%A3%E5%B8%AE%E4%BD%A0%E5%B9%B2%E6%B4%BB%20(51).png?width=1600 1600w"
238    />
239  </a>
240
241  
242</div>
243
244  <nav class="sidebar-nav scrollcheck-y">
245    <!-- 搜索组件 -->
246    <div
247  class="search-btn sidebar-nav-item gradient-card"
248  onclick="SearchWidget.open()"
249>
250  <span class="icon-[ph--magnifying-glass-bold]"></span>
251  <span class="nav-text">搜索</span>
252  <kbd class="search-shortcut" x-data x-text="navigator.platform.includes('Mac') ? '⌘K' : 'Ctrl+K'"></kbd>
253</div>
254    <!-- 导航菜单组件 -->
255    
256  <menu>
257    <li
258    >
259      
260      <a
261        href="/"
262        class="sidebar-nav-item"
263      >
264        
265        <span class="nav-text">首页</span>
266        
267      </a>
268    </li>
269    <li
270    >
271      
272      <a
273        href="/categories/aida-mo-xing"
274        class="sidebar-nav-item" target="_self"
275      >
276        
277        <span class="nav-text">AI大模型</span>
278        
279      </a>
280    </li>
281    <li
282    >
283      
284      <a
285        href="/categories/anbs"
286        class="sidebar-nav-item" target="_self"
287      >
288        
289        <span class="nav-text">安装部署</span>
290        
291      </a>
292    </li>
293    <li
294    >
295      
296      <a
297        href="/categories/qddj"
298        class="sidebar-nav-item" target="_self"
299      >
300        
301        <span class="nav-text">渠道对接</span>
302        
303      </a>
304    </li>
305    <li
306    >
307      
308      <a
309        href="/categories/skills"
310        class="sidebar-nav-item" target="_self"
311      >
312        
313        <span class="nav-text">Skills技能</span>
314        
315      </a>
316    </li>
317    <li
318    >
319      
320      <a
321        href="/categories/yycj"
322        class="sidebar-nav-item" target="_self"
323      >
324        
325        <span class="nav-text">应用场景</span>
326        
327      </a>
328    </li>
329    <li
330    >
331      
332      <a
333        href="/categories/hhgl"
334        class="sidebar-nav-item" target="_self"
335      >
336        
337        <span class="nav-text">会话管理</span>
338        
339      </a>
340    </li>
341    <li
342    >
343      
344      <a
345        href="/categories/jygl"
346        class="sidebar-nav-item" target="_self"
347      >
348        
349        <span class="nav-text">记忆管理</span>
350        
351      </a>
352    </li>
353    <li
354    >
355      
356      <a
357        href="/categories/agent"
358        class="sidebar-nav-item" target="_self"
359      >
360        
361        <span class="nav-text">多Agent协作</span>
362        
363      </a>
364    </li>
365    <li
366    >
367      
368      <a
369        href="/categories/ywgl"
370        class="sidebar-nav-item" target="_self"
371      >
372        
373        <span class="nav-text">运维管理</span>
374        
375      </a>
376    </li>
377    <li
378    >
379      
380      <a
381        href="/categories/aqgf"
382        class="sidebar-nav-item" target="_self"
383      >
384        
385        <span class="nav-text">安全审计</span>
386        
387      </a>
388    </li>
389    <li
390    >
391      
392      <a
393        href="/categories/release"
394        class="sidebar-nav-item" target="_self"
395      >
396        
397        <span class="nav-text">发布日志</span>
398        
399      </a>
400    </li>
401  </menu>
402
403  </nav>
404
405  <footer class="sidebar-footer">
406    <!-- 用户认证组件 -->
407    <div
408  class="user-auth"
409  x-data="userAuth()"
410  @click.outside="showMenu = false"
411>
412  <div x-show="!ready" class="user-entry loading">
413    <div class="avatar-wrapper">
414      <span class="icon-[ph--spinner] animate-spin"></span>
415    </div>
416    <div class="user-info">
417      <span class="user-name">加载中...</span>
418    </div>
419  </div>
420
421  <a x-show="ready && !currentUser" x-cloak href="/login" class="user-entry">
422    <div class="avatar-wrapper">
423      <span class="icon-[ph--user-circle-bold] default-avatar-icon"></span>
424    </div>
425    <div class="user-info">
426      <span class="user-name">登录</span>
427      <span class="user-desc">点击登录账号</span>
428    </div>
429  </a>
430
431  <div x-show="ready && currentUser" x-cloak class="user-entry" @click="handleClick()">
432    <div class="avatar-wrapper">
433      <img :src="currentUser?.avatar" :alt="currentUser?.name" class="user-avatar" />
434    </div>
435    <div class="user-info">
436      <span class="user-name" x-text="currentUser?.name"></span>
437      <span class="user-desc" x-text="currentUser?.roleDisplayName || '用户角色'"></span>
438    </div>
439    <span class="icon-[ph--caret-down-bold] menu-arrow" :class="{ 'rotate': showMenu }"></span>
440  </div>
441
442  <div x-show="ready && showMenu" x-cloak x-transition class="user-menu">
443    <a href="/uc" class="user-menu-item" data-no-pjax>
444      <span class="icon-[ph--user-bold]"></span>
445      <span>个人中心</span>
446    </a>
447    
448    <a href="/logout" class="user-menu-item logout">
449      <span class="icon-[ph--sign-out-bold]"></span>
450      <span>退出登录</span>
451    </a>
452  </div>
453</div>
454    <!-- 主题模式切换组件 -->
455    <div class="theme-toggle" x-data="themeToggle()">
456  <button :class="{ active: theme === 'light' }" @click="setTheme('light', $event)" title="浅色模式">
457    <span class="icon-[ph--sun-bold]"></span>
458  </button>
459  <button :class="{ active: theme === 'system' }" @click="setTheme('system', $event)" title="跟随系统">
460    <span class="icon-[ph--monitor-bold]"></span>
461  </button>
462  <button :class="{ active: theme === 'dark' }" @click="setTheme('dark', $event)" title="深色模式">
463    <span class="icon-[ph--moon-bold]"></span>
464  </button>
465</div>
466    <!-- 社交图标组件 -->
467    
468  </footer>
469</aside>
470
471    <div id="content">
472      <main id="main-content">
473        
474    <!-- 文章头部 -->
475    
476  <div
477    class="post-header has-cover "
478  >
479    <img
480      src="/upload/ChatGPT%20Image%202026%E5%B9%B48%E6%9C%8826%E6%97%A5%2010_59_06-jPVI.png"
481      class="post-cover"
482      alt="字节“豆包工作“正式亮相:办公AI从“写东西“到“干完活“的范式跃迁" sizes="(max-width: 640px) 94vw, (max-width: 768px) 92vw, (max-width: 1024px) 88vw, min(800px, 85vw)" srcset="/upload/ChatGPT%20Image%202026%E5%B9%B48%E6%9C%8826%E6%97%A5%2010_59_06-jPVI.png?width=1200 1200w, /upload/ChatGPT%20Image%202026%E5%B9%B48%E6%9C%8826%E6%97%A5%2010_59_06-jPVI.png?width=400 400w, /upload/ChatGPT%20Image%202026%E5%B9%B48%E6%9C%8826%E6%97%A5%2010_59_06-jPVI.png?width=800 800w, /upload/ChatGPT%20Image%202026%E5%B9%B48%E6%9C%8826%E6%97%A5%2010_59_06-jPVI.png?width=1600 1600w"
483    />
484
485    <div class="post-nav">
486      <div class="operations">
487        <button class="z-btn" id="share-btn" title="复制分享文本">
488          <span class="icon-[ph--share-bold]"></span>
489          <span>文字分享</span>
490        </button>
491        <button class="z-btn" id="poster-btn" title="生成分享海报">
492          <span class="icon-[ph--image-bold]"></span>
493          <span>海报分享</span>
494        </button>
495      </div>
496
497      <div class="post-info">
498        <a
499  href="/authors/n-openclaw"
500  class="author-capsule"
501>
502  
503  <span>🦞n-openclaw</span>
504</a>
505
506        <span>
507          <span class="icon-[ph--calendar-dots-bold]"></span>
508          <time>2026-08-26</time>
509        </span>
510
511        <span>
512          <span class="icon-[ph--chat-circle-dots-bold]"></span>
513          <span>0</span> 评论
514        </span>
515
516        <span
517        >
518          
519          <span class="icon-[ph--folder-bold]"></span>
520          <a href="/categories/%E6%8A%80%E6%9C%AF%E5%89%8D%E6%B2%BF">技术前沿</a>
521        </span>
522
523        <span>
524          <span class="icon-[ph--eye-bold]"></span>
525          <span>26</span> 阅读
526        </span>
527      </div>
528    </div>
529    <h1
530      class="post-title text-creative"
531    >字节“豆包工作“正式亮相:办公AI从“写东西“到“干完活“的范式跃迁</h1>
532  </div>
533
534    <!-- 文章摘要 -->
535    
536  
537  
537<script>
538    (function () {
539      const container = document.querySelector(".md-excerpt");
540      if (!container || container.dataset.animation === "false") return;
541      const el = document.getElementById("excerpt-text");
542      const caret = document.getElementById("excerpt-caret");
543      if (!el) return;
544      const text = el.dataset.text || "";
545      const speed = parseInt(container.dataset.speed) || 50;
546      let index = 0;
547      function type() {
548        if (index < text.length) {
549          el.textContent += text[index];
550          index++;
551          setTimeout(type, speed);
552        } else {
553          if (caret) caret.style.display = "none";
554        }
555      }
556      type();
557    })();
558  </script>
558
559
560    <!-- 文章过期提示 -->
561    
562  
563  
563<script>
564    (function () {
565      const notice = document.querySelector(".outdated-notice");
566      if (!notice) return;
567
568      const publishTime = new Date(notice.dataset.publishTime).getTime();
569      const threshold = parseInt(notice.dataset.threshold) || 180;
570      const messageTemplate = notice.dataset.message;
571
572      const now = Date.now();
573      const daysPassed = Math.floor((now - publishTime) / (1000 * 60 * 60 * 24));
574
575      if (daysPassed >= threshold) {
576        const text = messageTemplate.replace("{days}", daysPassed);
577        notice.querySelector(".notice-text").textContent = text;
578        notice.style.display = "";
579      }
580    })();
581  </script>
581
582
583    <!-- 文章 AI 提示 -->
584    
585  
586
587    <!-- 文章内容 -->
588    <article class="article">    <style class="pjax" data-pjax>
589    pre:has(code) {
590        filter: blur(10px) !important;
591        padding: 1rem !important;
592    }
593    </style>
594<blockquote>
595<p>8 月 25 日,字节跳动正式发布"豆包工作"——一款面向生产力场景的企业级 Agent 产品。它不只是"帮你写文档"的 AI 助手,而是一个能自主拆解任务、操作电脑浏览器、调用云电脑持续推进复杂工作流的智能体。本文深度解读这个产品的核心能力、设计哲学和行业意义。</p>
596</blockquote>
597<hr>
598<h2 id="一、一句话理解豆包工作">一、一句话理解"豆包工作"</h2>
599<p>如果用一个类比:之前的 AI 办公产品(包括早期的 ChatGPT、Kimi、豆包本身)更像是"超级文秘"——你给它一个指令,它帮你写出一段文字、一张表格;而<strong>豆包工作是"数字员工"</strong>——你给它一个目标,它自己拆任务、调工具、操作软件、跑完整个工作流,最终把活干完交付给你。</p>
600<p>它围绕三个核心词:<strong>自主拆解、工具调用、持续推进</strong>。</p>
601<hr>
602<h2 id="二、核心能力拆解">二、核心能力拆解</h2>
603<h3 id="内容生成:不止文字">1. 内容生成:不止文字</h3>
604<p>豆包工作能交付的工作成果覆盖:</p>
605<ul>
606<li><strong>文档类</strong>:方案撰写、会议纪要整理、报告起草、调研总结</li>
607<li><strong>数据类</strong>:表格制作、数据分析、数据可视化</li>
608<li><strong>多媒体类</strong>:图片生成与编辑、视频生成与编辑、网页生成、甚至简易应用</li>
609</ul>
610<p>能力覆盖范围在同类产品中处于第一梯队。</p>
611<h3 id="ai-协作编辑:指哪改哪">2. AI 协作编辑:“指哪改哪”</h3>
612<p>这是豆包工作区别于传统 AI 大模型整段重生成的关键设计。</p>
613<p>用户对生成的文档、表格、PPT 或网页中的任意部分,<strong>直接框选后进行针对性修改</strong>,而非"重新生成一版"。这带来两个实际好处:</p>
614<ul>
615<li>降低算力消耗(不用每次全文重写)</li>
616<li>提升人机协作效率(AI 做初稿,人做精修,反复打磨到成品交付)</li>
617</ul>
618<h3 id="操作电脑与浏览器:真正的干活">3. 操作电脑与浏览器:真正的"干活"</h3>
619<p>这是"Agent"区别于"Chatbot"的核心能力。获得用户授权后,豆包工作可以:</p>
620<ul>
621<li>跨软件完成任务(用专业软件处理数据)</li>
622<li>浏览网页收集信息</li>
623<li>填写表单</li>
624<li>比对资料</li>
625<li>调用<strong>云电脑</strong>继续执行长任务(本地电脑关机,任务不中断)</li>
626<li>通过<strong>手机远程操控电脑</strong>,外出时继续推进未完成工作</li>
627</ul>
628<p>这意味着你下班前交给它一个任务(比如"整理这份行业报告的所有数据源"),它可以整夜工作,第二天早上你直接看结果。</p>
629<h3 id="多-agent-协作:工作小队">4. 多 Agent 协作:“工作小队”</h3>
630<p>用户可以选择多个专业 Agent 组成"工作小队",分工协作。例如做一份数据调研报告时:</p>
631<ul>
632<li>数据 Agent 负责采集和清洗</li>
633<li>研究 Agent 负责分析归纳</li>
634<li>设计 Agent 负责排版输出</li>
635</ul>
636<p>各展所长、协同推进,类似一个迷你项目组。</p>
637<h3 id="技能--连接器生态">5. 技能 / 连接器生态</h3>
638<p>开放的技能(Skills)和连接器(Connectors)系统,覆盖数据分析、内容策划、科研、金融等多个专业方向的工具扩展。用户可以按任务需要调用不同外部能力。</p>
639<hr>
640<h2 id="三、最大差异化:飞书深度打通">三、最大差异化:飞书深度打通</h2>
641<p>这是豆包工作相比其他 Agent 产品<strong>最核心的竞争壁垒</strong>。</p>
642<p>使用飞书账号登录后,Agent 自动继承权限范围内的企业上下文:</p>
643<div class="table-wrapper"><table>
644<thead>
645<tr>
646<th>上下文类型</th>
647<th>说明</th>
648</tr>
649</thead>
650<tbody>
651<tr>
652<td>聊天记录</td>
653<td>团队日常沟通中的决策、讨论、结论</td>
654</tr>
655<tr>
656<td>文档</td>
657<td>项目文档、技术方案、流程规范</td>
658</tr>
659<tr>
660<td>会议纪要</td>
661<td>会议决议、待办、Action Item</td>
662</tr>
663<tr>
664<td>日程</td>
665<td>时间约束、会议安排</td>
666</tr>
667</tbody>
668</table>
669</div><p>这带来的实际效果是:<strong>Agent 不是"白纸"状态等你下指令,而是带着对你业务的理解来工作</strong>。它知道你的项目背景、团队分工、历史决策,输出更精准。</p>
670<p>更关键的是双向沉淀:人机协同产出的内容会<strong>回写飞书</strong>,形成可二次编辑、分享和复用的企业知识,让后续任务执行越来越精准。</p>
671<blockquote>
672<p>原飞书内部的"豆包企业版"入口已同步升级为"豆包工作"。</p>
673</blockquote>
674<hr>
675<h2 id="四、安全与合规">四、安全与合规</h2>
676<p>企业级产品,安全是底线。豆包工作构建了全链路 Agent 安全防护体系:</p>
677<ul>
678<li>设备接入管控</li>
679<li>权限设置(严格继承飞书权限体系)</li>
680<li>额度管控</li>
681<li>数据加密</li>
682<li>操作审计</li>
683<li><strong>个人数据与企业数据物理隔离</strong></li>
684</ul>
685<p>目前已是国内首批通过<strong>办公智能体能力 + 云端基准测试</strong>双项认证的办公智能体。</p>
686<hr>
687<h2 id="五、行业背景:为什么是现在?">五、行业背景:为什么是现在?</h2>
688<h3 id="agent-产品化元年">1. Agent 产品化元年</h3>
689<p>2026 年 8 月,Agent 产品密集落地:</p>
690<div class="table-wrapper"><table>
691<thead>
692<tr>
693<th>产品</th>
694<th>厂商</th>
695<th>定位</th>
696</tr>
697</thead>
698<tbody>
699<tr>
700<td>ChatGPT Work</td>
701<td>OpenAI</td>
702<td>将 Agent 能力降至 $20/月 Plus 档</td>
703</tr>
704<tr>
705<td>Gemini Spark</td>
706<td>Google</td>
707<td>$99.99/月云端 Agent,跨应用多步任务</td>
708</tr>
709<tr>
710<td>Claude Cowork</td>
711<td>Anthropic</td>
712<td>浏览器侧面板完整 Agent 会话</td>
713</tr>
714<tr>
715<td>Grok Bot</td>
716<td>xAI</td>
717<td>7×24 自主 AI"数字同事"</td>
718</tr>
719<tr>
720<td><strong>豆包工作</strong></td>
721<td><strong>字节跳动</strong></td>
722<td><strong>企业级办公 Agent + 飞书生态</strong></td>
723</tr>
724</tbody>
725</table>
726</div><p>Gartner 预测 2026 年底 40% 企业应用将内置 Task-specific AI Agent。这场"办公 Agent"竞赛已经全面开打。</p>
727<h3 id="字节的组织整合信号">2. 字节的组织整合信号</h3>
728<p>豆包工作发布前的组织调整值得注意:</p>
729<ul>
730<li><strong>7 月 30 日</strong>:飞书产品团队与豆包产品团队整合,飞书负责人谢欣向豆包负责人赵祺汇报</li>
731<li><strong>8 月 24 日</strong>:TRAE、扣子(Coze)团队整体并入豆包体系</li>
732</ul>
733<p>所有生产力 Agent 相关团队集中由赵祺统一领导,办公 AI 战略从多线并行转向<strong>单点突破</strong>。豆包工作就是这场整合的产物。</p>
734<h3 id="中国办公-ai-的飞书优势">
7343. 中国办公 AI 的"飞书优势"</h3>
735<p>相比 OpenAI(无企业 IM)、Google(有 Workspace 但中国不可用)、Anthropic(纯 API),字节的核心优势在于<strong>飞书天然沉淀了中国企业最完整的办公上下文</strong>。Agent 时代,谁掌握上下文,谁就掌握理解力。</p>
736<hr>
737<h2 id="六、与竞品对比">六、与竞品对比</h2>
738<div class="table-wrapper"><table>
739<thead>
740<tr>
741<th>维度</th>
742<th>豆包工作</th>
743<th>ChatGPT Work</th>
744<th>Claude Cowork</th>
745<th>Gemini Spark</th>
746</tr>
747</thead>
748<tbody>
749<tr>
750<td>企业上下文</td>
751<td>✅ 飞书深度打通</td>
752<td>❌</td>
753<td>❌</td>
754<td>⚠️ Workspace</td>
755</tr>
756<tr>
757<td>操作电脑</td>
758<td>✅ + 云电脑</td>
759<td>⚠️</td>
760<td>✅</td>
761<td>✅</td>
762</tr>
763<tr>
764<td>多 Agent 协作</td>
765<td>✅</td>
766<td>❌</td>
767<td>❌</td>
768<td>⚠️</td>
769</tr>
770<tr>
771<td>本地 + 云端</td>
772<td>✅ 云电脑 + 远程</td>
773<td>✅</td>
774<td>✅</td>
775<td>✅</td>
776</tr>
777<tr>
778<td>ä»·æ ¼</td>
779<td>30 天免费</td>
780<td>$20/月起</td>
781<td>$20/月起</td>
782<td>$99.99/月</td>
783</tr>
784<tr>
785<td>中国市场</td>
786<td>✅</td>
787<td>❌</td>
788<td>❌</td>
789<td>❌</td>
790</tr>
791<tr>
792<td>安全认证</td>
793<td>✅ 双项认证</td>
794<td>-</td>
795<td>-</td>
796<td>-</td>
797</tr>
798</tbody>
799</table>
800</div><hr>
801<h2 id="七、我的观察与思考">七、我的观察与思考</h2>
802<p><strong>1. "上下文"是 Agent 时代的真正护城河</strong></p>
803<p>模型能力在快速趋同(前沿模型价格战已经打到地板),但<strong>企业上下文</strong>——你的文档、聊天记录、会议决议、业务流程——是不可复制的资产。谁让 Agent 更好地"理解你的业务"ï¼
803Œè°å°±èµ¢ã€‚字节通过飞书天然拥有这个优势。</p>
804<p><strong>2. Agent 的"最后一公里"问题是操作能力</strong></p>
805<p>光会写文档的 AI 只是"高级秘书",能操作浏览器、打开 Excel、填完表单、跑完流程的才是"数字员工"。豆包工作强调的操作能力(浏览器 + 电脑 + 云电脑)直指这个痛点。</p>
806<p><strong>3. 多 Agent 协作是方向,但远未到</strong></p>
807<p>"工作小队"概念很好,但实际体验中多 Agent 的协调成本、冲突处理、结果一致性仍是难题。预计 1-2 年内会看到更成熟的协作范式。</p>
808<p><strong>4. 安全是企业落地的第一道门槛</strong></p>
809<p>"操作电脑"能力意味着巨大的安全风险。豆包工作的全链路安全防护和双项认证,是企业采购决策中的加分项。但 Agent 的权限边界、操作审计、回滚机制仍需持续打磨。</p>
810<hr>
811<h2 id="八、总结">八、总结</h2>
812<p>豆包工作的发布标志着中国办公 AI 进入<strong>"Agent 交付"时代</strong>——从"帮你写"到"帮你做完"。它的飞书上下文打通、操作电脑能力、多 Agent 协作设计,加上字节全组织整合的资源投入,使其成为中国市场办公 Agent 赛道最具竞争力的选手。</p>
813<p>对于飞书用户(国内数百万企业),这是一个值得立刻尝试的产品——尤其是那些每天花大量时间在"写-改-填-查"循环中的职场人。</p>
814<blockquote>
815<p><strong>下载地址</strong>
815:豆包工作电脑版官网(<a href="https://www.doubao.com/work?from=feishu_mobile">https://www.doubao.com/work?from=feishu_mobile</a> )已开放,下载登录可领 30 天免费订阅。飞书最新版底部也有入口。</p>
816</blockquote>
817</article>
818    <!-- 文章页脚 -->
819    
820  <div class="post-footer">
821    <section class="tags-section">
822      <div class="title text-creative">文章标签</div>
823      <div class="content tags-list">
824        <a
825          href="/tags/zi-jie-tiao-dong"
826          class="tag-item"
827        >#字节跳动</a><a
828          href="/tags/dou-bao-gong-zuo"
829          class="tag-item"
830        >#豆包工作</a><a
831          href="/tags/AI%E5%8A%9E%E5%85%AC"
832          class="tag-item"
833        >#AI办公</a><a
834          href="/tags/AI-Agent"
835          class="tag-item"
836        >#AI Agent</a>
837      </div>
838    </section>
839
840    <section class="license">
841      
842        
843          <div class="title text-creative">许可协议</div>
844          <div class="content">
845            本文采用
846            <a
847              href="https://github.com/openclaw/openclaw?tab=MIT-1-ov-file"
848              target="_blank"
849            >
850              <svg
851                xmlns="http://www.w3.org/2000/svg"
852                width="1em"
853                height="1em"
854                viewBox="0 0 24 24"
855                style="vertical-align: -0.125em; display: inline"
856              >
857                <path
858                  fill="currentColor"
859                  d="M9 8c1.104 0 2.105.448 2.829 1.173l-1.414 1.413a2 2 0 1 0 0 2.828l1.413 1.414A4.001 4.001 0 0 1 5 12c0-2.208 1.792-4 4-4m9.829 1.173A4.001 4.001 0 0 0 12 12a4.001 4.001 0 0 0 6.828 2.828l-1.414-1.414a2 2 0 1 1 0-2.828zM2 12C2 6.477 6.477 2 12 2s10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12m10-8a8 8 0 1 0 0 16a8 8 0 0 0 0-16"
860                />
861              </svg>
862              
863              
864                <span>OpenClaw 俱乐部-非商业性使用</span>
865              
866            </a>
867            许可协议,转载请注明出处。
868          </div>
869        
870        
871      
872    </section>
873  </div>
874
875    <!-- 文章导航 -->
876    
877  
878    <div
879      class="surround-post" data-prev-url="/archives/ai-llm-price-war" data-next-url="/archives/openclaw-2026-8-1-update"
880    >
881      <a href="/archives/ai-llm-price-war" class="surround-link">
882        <span class="icon-[solar--rewind-back-bold-duotone] rtl-flip"></span>
883        <div class="surround-text">
884          <strong class="title text-creative">DeepSeek 涨价 VS OpenAI、Anthropic集体降价</strong>
885          <span class="date">2026-08-23</span>
886        </div>
887      </a>
888      
889
890      <a href="/archives/openclaw-2026-8-1-update" class="surround-link align-end">
891        <span class="icon-[solar--rewind-forward-bold-duotone] rtl-flip"></span>
892        <div class="surround-text">
893          <strong class="title text-creative">🦞 OpenClaw 2026.8.1 更新</strong>
894          <span class="date">2026-09-01</span>
895        </div>
896      </a>
897      
898    </div>
899  
900
901    <!-- 评论区 -->
902    
903  <h3 class="comment-title">
904    <span class="icon-[ph--chat-circle-text-bold]"></span>
905    <span>评论区</span>
906  </h3>
907
908  
909    
910    
911      
912  <section class="z-comment" id="comment">
913    <div id="comment-content-halo-run-Post-e8f0d6fc-c6fc-48e5-bdc7-5c90511a3625"></div>
914<script type="module" data-pjax>
915  import { init } from "/plugins/PluginCommentWidget/assets/static/comment-widget.js?version=3.0.0";
916  init(
917    "#comment-content-halo-run-Post-e8f0d6fc-c6fc-48e5-bdc7-5c90511a3625",
918    {
919      group: "content.halo.run",
920      kind: "Post",
921      name: "e8f0d6fc-c6fc-48e5-bdc7-5c90511a3625",
922    }
923  );
924</script>
924
925
926  </section>
927
928    
929  
930
931    <!-- 编辑文章按钮 -->
932    
933    <!-- 文章海报弹窗 -->
934    
935  <div id="poster-modal" class="poster-modal" style="display: none">
936    <div class="poster-modal-overlay"></div>
937    <div class="poster-modal-content">
938      <button class="poster-close" id="poster-close">
939        <span class="icon-[ph--x-bold]"></span>
940      </button>
941      <div class="poster-preview">
942        <div class="poster-card" id="poster-card">
943          <div class="poster-header">
944            <img
945              src="/upload/ChatGPT%20Image%202026%E5%B9%B48%E6%9C%8826%E6%97%A5%2010_59_06-jPVI.png"
946              class="poster-cover"
947              alt="字节“豆包工作“正式亮相:办公AI从“写东西“到“干完活“的范式跃迁"
948              crossorigin="anonymous" sizes="(max-width: 640px) 94vw, (max-width: 768px) 92vw, (max-width: 1024px) 88vw, min(800px, 85vw)" srcset="/upload/ChatGPT%20Image%202026%E5%B9%B48%E6%9C%8826%E6%97%A5%2010_59_06-jPVI.png?width=1200 1200w, /upload/ChatGPT%20Image%202026%E5%B9%B48%E6%9C%8826%E6%97%A5%2010_59_06-jPVI.png?width=400 400w, /upload/ChatGPT%20Image%202026%E5%B9%B48%E6%9C%8826%E6%97%A5%2010_59_06-jPVI.png?width=800 800w, /upload/ChatGPT%20Image%202026%E5%B9%B48%E6%9C%8826%E6%97%A5%2010_59_06-jPVI.png?width=1600 1600w"
949            />
950            <div class="poster-gradient"></div>
951          </div>
952          <div class="poster-body">
953            <h2 class="poster-title">字节“豆包工作“正式亮相:办公AI从“写东西“到“干完活“的范式跃迁</h2>
954            <p class="poster-excerpt">本文深度解读字节跳动最新发布的企业级 Agent 产品&quot;豆包工作&quot;。文章从一句话理解切入,拆解其内容生成、AI 协作编辑、操作电脑与浏览器、多 Agent 协作、技能生态五大核心能力,重点分析其与飞书深度打通形成的竞争壁垒,并梳理安全合规体系、行业背景与竞品对比。</p>
955            <div class="poster-meta">
956              <span
957              >2026-08-26</span>
958              <span
959              >技术前沿</span>
960            </div>
961          </div>
962          <div class="poster-footer">
963            <div class="poster-qrcode" id="poster-qrcode"></div>
964            <div class="poster-site">
965              <div class="poster-site-name">OpenClaw 俱乐部</div>
966              <div class="poster-site-tip">扫码阅读全文</div>
967            </div>
968          </div>
969        </div>
970      </div>
971      <div class="poster-actions">
972        <button class="z-btn primary" id="poster-download">
973          <span class="icon-[ph--download-bold]"></span>
974          <span>保存海报</span>
975        </button>
976      </div>
977    </div>
978  </div>
979
980    <!-- 文章脚本 -->
981    
982  
982<script>
983    (function () {
984      const title = "\u5B57\u8282\u201C\u8C46\u5305\u5DE5\u4F5C\u201C\u6B63\u5F0F\u4EAE\u76F8\uFF1A\u529E\u516CAI\u4ECE\u201C\u5199\u4E1C\u897F\u201C\u5230\u201C\u5E72\u5B8C\u6D3B\u201C\u7684\u8303\u5F0F\u8DC3\u8FC1";
985      const excerpt = "\u672C\u6587\u6DF1\u5EA6\u89E3\u8BFB\u5B57\u8282\u8DF3\u52A8\u6700\u65B0\u53D1\u5E03\u7684\u4F01\u4E1A\u7EA7 Agent \u4EA7\u54C1\"\u8C46\u5305\u5DE5\u4F5C\"\u3002\u6587\u7AE0\u4ECE\u4E00\u53E5\u8BDD\u7406\u89E3\u5207\u5165\uFF0C\u62C6\u89E3\u5176\u5185\u5BB9\u751F\u6210\u3001AI \u534F\u4F5C\u7F16\u8F91\u3001\u64CD\u4F5C\u7535\u8111\u4E0E\u6D4F\u89C8\u5668\u3001\u591A Agent \u534F\u4F5C\u3001\u6280\u80FD\u751F\u6001\u4E94\u5927\u6838\u5FC3\u80FD\u529B\uFF0C\u91CD\u70B9\u5206\u6790\u5176\u4E0E\u98DE\u4E66\u6DF1\u5EA6\u6253\u901A\u5F62\u6210\u7684\u7ADE\u4E89\u58C1\u5792\uFF0C\u5E76\u68B3\u7406\u5B89\u5168\u5408\u89C4\u4F53\u7CFB\u3001\u884C\u4E1A\u80CC\u666F\u4E0E\u7ADE\u54C1\u5BF9\u6BD4\u3002";
986      const siteTitle = "OpenClaw \u4FF1\u4E50\u90E8";
987      const getUrl = () => window.location.href;
988      const defaultPosterCover = "\/upload\/%E6%9C%AC%E5%9C%B0%20AI%20%E6%89%A7%E8%A1%8C%E5%BC%95%E6%93%8E%EF%BC%8C%E8%AE%A9%20AI%20%E7%9C%9F%E6%AD%A3%E5%B8%AE%E4%BD%A0%E5%B9%B2%E6%B4%BB%20(3).png";
989
990      // 文字分享
991      const shareBtn = document.getElementById("share-btn");
992      if (shareBtn) {
993        shareBtn.addEventListener("click", async () => {
994          const url = getUrl();
995          const shareText = `【${siteTitle}】${title}\n\n${excerpt ? excerpt + "\n\n" : ""}${url}`;
996          try {
997            await navigator.clipboard.writeText(shareText);
998            const icon = shareBtn.querySelector("span:first-child");
999            const text = shareBtn.querySelector("span:last-child");
1000            icon.className = "icon-[ph--check-bold]";
1001            text.textContent = "已复制";
1002            setTimeout(() => {
1003              icon.className = "icon-[ph--share-bold]";
1004              text.textContent = "文字分享";
1005            }, 2000);
1006          } catch (err) {
1007            console.error("复制失败:", err);
1008          }
1009        });
1010      }
1011
1012      // 海报分享
1013      const posterBtn = document.getElementById("poster-btn");
1014      const posterModal = document.getElementById("poster-modal");
1015      const posterClose = document.getElementById("poster-close");
1016      const posterDownload = document.getElementById("poster-download");
1017      const posterQrcode = document.getElementById("poster-qrcode");
1018      const posterCard = document.getElementById("poster-card");
1019
1020      // 编辑文章
1021      const editPostBtn = document.getElementById("edit-post-btn");
1022      if (editPostBtn) {
1023        editPostBtn.addEventListener("click", () => {
1024          const editUrl = editPostBtn.dataset.url;
1025          if (editUrl) {
1026            window.location.href = editUrl;
1027          }
1028        });
1029      }
1030
1031      if (posterBtn && posterModal) {
1032        let qrGenerated = false;
1033
1034        // 打开弹窗
1035        posterBtn.addEventListener("click", () => {
1036          posterModal.style.display = "flex";
1037          document.body.style.overflow = "hidden";
1038
1039          // 生成二维码
1040          if (!qrGenerated && window.generateQRCode) {
1041            window.generateQRCode(posterQrcode, getUrl());
1042            qrGenerated = true;
1043          }
1044        });
1045
1046        // 关闭弹窗
1047        const closeModal = () => {
1048          posterModal.style.display = "none";
1049          document.body.style.overflow = "";
1050        };
1051
1052        posterClose.addEventListener("click", closeModal);
1053        posterModal.querySelector(".poster-modal-overlay").addEventListener("click", closeModal);
1054
1055        // 下载海报
1056        posterDownload.addEventListener("click", async () => {
1057          const icon = posterDownload.querySelector("span:first-child");
1058          const text = posterDownload.querySelector("span:last-child");
1059
1060          icon.className = "icon-[ph--spinner] animate-spin";
1061          text.textContent = "生成中...";
1062
1063          try {
1064            if (window.generatePoster) {
1065              await window.generatePoster(posterCard, title, defaultPosterCover);
1066              icon.className = "icon-[ph--check-bold]";
1067              text.textContent = "已保存";
1068            }
1069          } catch (err) {
1070            console.error("生成失败:", err);
1071            icon.className = "icon-[ph--warning-bold]";
1072            text.textContent = "生成失败";
1073          }
1074
1075          setTimeout(() => {
1076            icon.className = "icon-[ph--download-bold]";
1077            text.textContent = "保存海报";
1078          }, 2000);
1079        });
1080      }
1081    })();
1082  </script>
1082
1083
1084  
1085
1086        <footer class="z-footer">
1087  <nav class="footer-nav">
1088    <div
1089      class="footer-nav-group"
1090    >
1091      <h3>探索</h3>
1092      <menu>
1093        
1094        
1095        <li>
1096          <a href="https://openclaw.ai/" target="_blank">
1097            
1098            <span class="nav-text">🦞 OpenClaw 官网</span>
1099          </a>
1100        </li>
1101        <li>
1102          <a href="https://github.com/openclaw/openclaw" target="_blank">
1103            
1104              <img
1105                src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20fill%3D%22currentColor%22%20fill-rule%3D%22evenodd%22%20d%3D%22M7.976%200A7.977%207.977%200%200%200%200%207.976c0%203.522%202.3%206.507%205.431%207.584c.392.049.538-.196.538-.392v-1.37c-2.201.49-2.69-1.076-2.69-1.076c-.343-.93-.881-1.175-.881-1.175c-.734-.489.048-.489.048-.489c.783.049%201.224.832%201.224.832c.734%201.223%201.859.88%202.3.685c.048-.538.293-.88.489-1.076c-1.762-.196-3.621-.881-3.621-3.964c0-.88.293-1.566.832-2.153c-.05-.147-.343-.978.098-2.055c0%200%20.685-.196%202.201.832c.636-.196%201.322-.245%202.007-.245s1.37.098%202.006.245c1.517-1.027%202.202-.832%202.202-.832c.44%201.077.146%201.908.097%202.104a3.16%203.16%200%200%201%20.832%202.153c0%203.083-1.86%203.719-3.62%203.915c.293.244.538.733.538%201.467v2.202c0%20.196.146.44.538.392A7.98%207.98%200%200%200%2016%207.976C15.951%203.572%2012.38%200%207.976%200%22%20clip-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E"
1106                alt=""
1107                class="link-icon"
1108              />
1109            
1110            <span class="nav-text">GitHub 地址</span>
1111          </a>
1112        </li>
1113        <li>
1114          <a href="https://1panel.cn/" target="_blank">
1115            
1116              <img
1117                src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%20fill%3D%22none%22%3E%3Cpath%20stroke%3D%22%234A90E2%22%20stroke-linecap%3D%22round%22%20stroke-width%3D%222%22%20d%3D%22M8%208V6a2%202%200%200%201%202-2h4a2%202%200%200%201%202%202v2M4%2014l3.15.787a20%2020%200%200%200%209.7%200L20%2014%22%2F%3E%3Cpath%20stroke%3D%22%234A90E2%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222%22%20d%3D%22M4%2010a2%202%200%200%201%202-2h12a2%202%200%200%201%202%202v8a2%202%200%200%201-2%202H6a2%202%200%200%201-2-2z%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%221%22%20fill%3D%22%234A90E2%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"
1118                alt=""
1119                class="link-icon"
1120              />
1121            
1122            <span class="nav-text">1Panel 官网</span>
1123          </a>
1124        </li>
1125        <li>
1126          <a href="https://space.bilibili.com/3691010037123684?spm_id_from=333.1387.0.0" target="_blank">
1127            
1128              <img
1129                src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%201000%201000%22%3E%3Cpath%20fill%3D%22currentColor%22%20d%3D%22M196.031.063C88.252.063.062%2088.253.062%20196.032V804.22c0%20107.779%2088.19%20195.969%20195.969%20195.969h608.188c107.779%200%20195.969-88.19%20195.969-195.969V196.032c0-107.779-88.19-195.969-195.969-195.969zm112.188%20225.656H505.5c40.972%200%2072.094%201.499%2093.219%204.719c21.125%203.059%2040.968%209.616%2059.406%2019.594c19.953%2010.749%2034.941%2025.224%2044.813%2043.156c9.87%2018.038%2014.875%2038.771%2014.875%2062.344c0%2027.244-6.798%2051.461-20.5%2072.719c-13.57%2021.258-32.399%2036.89-56.344%2047v2.906c34.454%207.317%2062.087%2022.036%2082.813%2044.438c20.757%2022.428%2031.125%2052.618%2031.125%2090.531c0%2027.75-5.239%2052.227-15.75%2073.219c-10.507%2020.992-24.577%2038.29-42.375%2052.125c-20.992%2016.496-44.033%2028.137-69.281%2035.188c-25.089%207.024-56.959%2010.531-95.75%2010.531H308.22V225.72zM447.75%20328.094v118.188h17.656c23.945%200%2040.864-.246%2050.469-.75s19.601-3.077%2029.844-7.813c11.121-5.241%2018.953-12.518%2023.156-21.75c4.23-9.339%206.406-20.123%206.406-32.281c0-9.072-2.308-18.31-6.938-27.781c-4.603-9.472-11.754-16.395-21.625-20.625c-9.206-4.097-20.091-6.257-32.781-6.656c-12.664-.4-31.482-.531-56.438-.531zm0%202
112913.844v139.813h7.563c36.503%200%2061.715-.275%2075.656-.781c13.941-.504%2028.303-3.815%2042.75-10.094c12.824-5.507%2022.031-13.577%2027.938-24.219c5.88-10.616%208.813-22.658%208.813-36.094c0-17.294-3.418-30.731-10.469-40.469c-7.024-9.844-17.532-17.154-31.5-22.156c-8.461-3.326-20.248-5.128-35.094-5.5s-34.799-.5-59.781-.5z%22%2F%3E%3C%2Fsvg%3E"
1130                alt=""
1131                class="link-icon"
1132              />
1133            
1134            <span class="nav-text">Bilibili 视频</span>
1135          </a>
1136        </li>
1137      </menu>
1138    </div>
1139
1140    
1141
1142    <div class="footer-nav-group">
1143      <h3>信息</h3>
1144      <menu>
1145        <li>
1146          <a href="https://halo.run" target="_blank">
1147            <span class="icon-[ph--cube-bold]"></span>
1148            <span class="nav-text">架构于 Halo</span>
1149          </a>
1150        </li>
1151        <li>
1152          <a href="https://github.com/acanyo/theme-clarity" target="_blank">
1153            <span class="icon-[ph--mountains-bold]"></span>
1154            <span class="nav-text">驱动 Clarity 1.5.3</span>
1155          </a>
1156        </li>
1157        
1158        
1159        
1160      </menu>
1161    </div>
1162  </nav>
1163
1164  <div class="footer-inject">
1165    <meta name="sogou_site_verification" content="gZ3ZG62pkC" />
1166<script
1167async
1168defer
1169src="https://edu-maxkb2.fit2cloud.cn/chat/api/embed?protocol=https&host=edu-maxkb2.fit2cloud.cn&token=8317591bf1969954">
1170</script>
1170
1171
1172
1173  </div>
1174
1175  <p>© <span>2026</span> <span>OpenClaw 俱乐部</span></p>
1176</footer>
1177      </main>
1178
1179      
1180        <aside id="z-aside">
1181  
1182    <!-- 目录组件 -->
1183    <section
1184  class="widget toc-widget"
1185  id="catalog-widget"
1186  style="display: none"
1187>
1188  <hgroup class="widget-title">
1189    <span class="title-text">文章目录</span>
1190    <a
1191      onclick="return false;"
1192      aria-label="点赞文章"
1193      x-data="postLike()"
1194      x-init="init()"
1195      @click="toggleLike()"
1196      :data-title="liked ? '已点赞' : '点赞'"
1197      :class="{ 'liked': liked }"
1198      data-count="0"
1199      data-name="e8f0d6fc-c6fc-48e5-bdc7-5c90511a3625"
1200    >
1201      <span class="icon-[ph--heart-bold]" x-show="!liked"></span>
1202      <span class="icon-[ph--heart-fill]" x-show="liked"></span>
1203      <span class="like-count" x-show="count > 0" x-text="count"></span>
1204    </a>
1205    <a
1206      href="#content"
1207      aria-label="返回顶部"
1208      data-title="返回顶部"
1209      onclick="
1210        window.scrollTo({ top: 0, behavior: 'smooth' });
1211        return false;
1212      "
1213    >
1214      <span class="icon-[ph--arrow-circle-up-bold]"></span>
1215    </a>
1216    <a
1217      href="#comment"
1218      aria-label="评论区"
1219      data-title="评论区"
1220      onclick="
1221        document.getElementById('comment')?.scrollIntoView({ behavior: 'smooth' });
1222        return false;
1223      "
1224    >
1225      <span class="icon-[ph--chat-circle-text-bold]"></span>
1226    </a>
1227  </hgroup>
1228
1229  <div class="widget-body widget-card toc-body">
1230    <nav id="catalog-content" class="toc-nav"></nav>
1231    <p id="no-toc-tip" class="no-toc" style="display: none">暂无目录信息</p>
1232  </div>
1233
1234  
1234<script>
1235  (function () {
1236    function generateCatalog() {
1237      const article = document.querySelector(".article") || document.getElementById("article-content");
1238      const catalogWidget = document.getElementById("catalog-widget");
1239      const catalogContent = document.getElementById("catalog-content");
1240      const noTocTip = document.getElementById("no-toc-tip");
1241
1242      if (!article || !catalogWidget || !catalogContent) return;
1243
1244      const headers = Array.from(article.querySelectorAll("h1, h2, h3, h4, h5, h6"));
1245      if (headers.length === 0) {
1246        catalogWidget.style.display = "block";
1247        catalogContent.style.display = "none";
1248        noTocTip.style.display = "block";
1249        return;
1250      }
1251
1252      catalogWidget.style.display = "block";
1253      catalogContent.style.display = "block";
1254      noTocTip.style.display = "none";
1255      catalogContent.innerHTML = "";
1256
1257      const root = { children: [] };
1258      const stack = [root];
1259
1260      headers.forEach((header, index) => {
1261        if (!header.id) header.id = "heading-" + index;
1262
1263        const level = parseInt(header.tagName.substring(1));
1264        const item = {
1265          id: header.id,
1266          text: header.textContent,
1267          level: level,
1268          children: [],
1269        };
1270
1271        while (stack.length > 1 && stack[stack.length - 1].level >= level) {
1272          stack.pop();
1273        }
1274
1275        stack[stack.length - 1].children.push(item);
1276        stack.push(item);
1277      });
1278
1279      function renderTree(items) {
1280        if (!items.length) return null;
1281        const ol = document.createElement("ol");
1282        items.forEach((item) => {
1283          const li = document.createElement("li");
1284          li.dataset.id = item.id;
1285          li.dataset.level = String(item.level || 1);
1286
1287          const hasChildren = item.children && item.children.length > 0;
1288          if (hasChildren) {
1289            li.classList.add("toc-collapsed");
1290          }
1291
1292          const wrapper = document.createElement("div");
1293          wrapper.className = "toc-item-wrapper";
1294
1295          const a = document.createElement("a");
1296          a.href = "#" + item.id;
1297          a.textContent = item.text;
1298          a.title = item.text;
1299          a.onclick = (e) => {
1300            e.preventDefault();
1301            const target = document.getElementById(item.id);
1302            if (target) {
1303              target.scrollIntoView({ behavior: "smooth" });
1304              history.pushState(null, null, "#" + item.id);
1305              target.classList.remove("toc-highlight");
1306              void target.offsetWidth;
1307              target.classList.add("toc-highlight");
1308              setTimeout(() => target.classList.remove("toc-highlight"), 2000);
1309              setActiveById(item.id);
1310            }
1311          };
1312
1313          wrapper.appendChild(a);
1314
1315          if (hasChildren) {
1316            const toggle = document.createElement("span");
1317            toggle.className = "toc-toggle";
1318            toggle.innerHTML = '<span class="icon-[ph--caret-right-bold]"></span>';
1319            toggle.onclick = (e) => {
1320              e.preventDefault();
1321              e.stopPropagation();
1322              toggleCollapse(li);
1323            };
1324            wrapper.appendChild(toggle);
1325          }
1326          li.appendChild(wrapper);
1327
1328          const childrenOl = renderTree(item.children);
1329          if (childrenOl) {
1330            childrenOl.className = "toc-children";
1331            li.appendChild(childrenOl);
1332          }
1333          ol.appendChild(li);
1334        });
1335        return ol;
1336      }
1337
1338      function toggleCollapse(li) {
1339        if (li.classList.contains("toc-collapsed")) {
1340          li.classList.remove("toc-collapsed");
1341          li.classList.add("toc-expanded");
1342        } else {
1343          li.classList.remove("toc-expanded");
1344          li.classList.add("toc-collapsed");
1345        }
1346      }
1347
1348      function expandLi(li) {
1349        li.classList.remove("toc-collapsed");
1350        li.classList.add("toc-expanded");
1351      }
1352
1353      function collapseLi(li) {
1354        li.classList.remove("toc-expanded");
1355        li.classList.add("toc-collapsed");
1356      }
1357
1358      function getAllParentLis(currentLi) {
1359        const parents = [];
1360        let parent = currentLi.parentElement?.closest("li");
1361        while (parent) {
1362          parents.push(parent);
1363          parent = parent.parentElement?.closest("li");
1364        }
1365        return parents;
1366      }
1367
1368      function getVisibleHeaderRange() {
1369        const viewportTop = window.scrollY + 80;
1370        const viewportBottom = window.scrollY + window.innerHeight - 80;
1371
1372        let firstVisibleId = null;
1373        let lastVisibleId = null;
1374
1375        for (let i = 0; i < headers.length; i++) {
1376          const header = headers[i];
1377          const top = header.offsetTop;
1378          const bottom = top + header.offsetHeight;
1379
1380          if (top <= viewportBottom && bottom >= viewportTop) {
1381            if (firstVisibleId === null) {
1382              firstVisibleId = header.id;
1383            }
1384            lastVisibleId = header.id;
1385          }
1386        }
1387
1388        return { firstVisibleId, lastVisibleId };
1389      }
1390
1391      function autoCollapseByViewport() {
1392        let { firstVisibleId, lastVisibleId } = getVisibleHeaderRange();
1393
1394        if (firstVisibleId === null || lastVisibleId === null) {
1395          const currentId = resolveCurrentHeadingId();
1396          firstVisibleId = currentId;
1397          lastVisibleId = currentId;
1398        }
1399
1400        const firstLi = tocItemMap.get(firstVisibleId);
1401        const lastLi = tocItemMap.get(lastVisibleId);
1402
1403        const allParentIds = new Set();
1404
1405        if (firstLi) {
1406          allParentIds.add(firstLi.dataset.id);
1407          getAllParentLis(firstLi).forEach((li) => {
1408            if (li.dataset.id) allParentIds.add(li.dataset.id);
1409          });
1410        }
1411
1412        if (lastLi && lastLi !== firstLi) {
1413          allParentIds.add(lastLi.dataset.id);
1414          getAllParentLis(lastLi).forEach((li) => {
1415            if (li.dataset.id) allParentIds.add(li.dataset.id);
1416          });
1417        }
1418
1419        catalogContent.querySelectorAll("li.toc-expanded").forEach((li) => {
1420          const id = li.dataset.id;
1421          if (!allParentIds.has(id)) {
1422            const hasVisibleChildren = hasVisibleChildrenInViewport(li);
1423            if (!hasVisibleChildren) {
1424              collapseLi(li);
1425            }
1426          }
1427        });
1428
1429        allParentIds.forEach((id) => {
1430          const li = tocItemMap.get(id);
1431          if (li && !li.classList.contains("toc-expanded")) {
1432            expandLi(li);
1433          }
1434        });
1435      }
1436
1437      function hasVisibleChildrenInViewport(parentLi) {
1438        const children = parentLi.querySelectorAll(":scope > .toc-children > ol > li");
1439        if (children.length === 0) return false;
1440
1441        const viewportTop = window.scrollY + 80;
1442        const viewportBottom = window.scrollY + window.innerHeight - 80;
1443
1444        for (const child of children) {
1445          const childId = child.dataset.id;
1446          const header = document.getElementById(childId);
1447          if (header) {
1448            const top = header.offsetTop;
1449            const bottom = top + header.offsetHeight;
1450            if (top <= viewportBottom && bottom >= viewportTop) {
1451              return true;
1452            }
1453          }
1454        }
1455
1456        return false;
1457      }
1458
1459      const treeDom = renderTree(root.children);
1460      if (treeDom) catalogContent.appendChild(treeDom);
1461
1462      const tocItemMap = new Map();
1463      catalogContent.querySelectorAll("li[data-id]").forEach((li) => {
1464        tocItemMap.set(li.dataset.id, li);
1465      });
1466
1467      function ensureActiveVisible(currentLi) {
1468        if (!currentLi) return;
1469        const viewTop = catalogContent.scrollTop;
1470        const viewBottom = viewTop + catalogContent.clientHeight;
1471        const itemTop = currentLi.offsetTop;
1472        const itemBottom = itemTop + currentLi.offsetHeight;
1473        const padding = 24;
1474
1475        if (itemTop < viewTop + padding || itemBottom > viewBottom - padding) {
1476          const targetTop = Math.max(0, itemTop - catalogContent.clientHeight * 0.35);
1477          const distance = Math.abs(targetTop - catalogContent.scrollTop);
1478          catalogContent.scrollTo({
1479            top: targetTop,
1480            behavior: distance > 80 ? "smooth" : "auto",
1481          });
1482        }
1483      }
1484
1485      function setActiveById(id) {
1486        if (!id) return;
1487
1488        catalogContent.querySelectorAll("li.active, li.has-active").forEach((el) => {
1489          el.classList.remove("active", "has-active");
1490        });
1491
1492        const currentLi = tocItemMap.get(id);
1493        if (!currentLi) return;
1494
1495        currentLi.classList.add("active");
1496        let parent = currentLi.parentElement?.closest("li");
1497        while (parent) {
1498          parent.classList.add("has-active");
1499          expandLi(parent);
1500          parent = parent.parentElement?.closest("li");
1501        }
1502
1503        ensureActiveVisible(currentLi);
1504      }
1505
1506      function resolveCurrentHeadingId() {
1507        const marker = window.scrollY + 140;
1508        let currentId = headers[0].id;
1509
1510        for (let i = 0; i < headers.length; i++) {
1511          if (headers[i].offsetTop <= marker) {
1512            currentId = headers[i].id;
1513          } else {
1514            break;
1515          }
1516        }
1517        return currentId;
1518      }
1519
1520      function syncActiveByScroll() {
1521        setActiveById(resolveCurrentHeadingId());
1522      }
1523
1524      let rafId = 0;
1525      let lastViewportRange = null;
1526
1527      const onScroll = () => {
1528        if (rafId) return;
1529        rafId = window.requestAnimationFrame(() => {
1530          rafId = 0;
1531          syncActiveByScroll();
1532          autoCollapseByViewport();
1533        });
1534      };
1535
1536      window.addEventListener("scroll", onScroll, { passive: true });
1537      window.addEventListener("resize", onScroll);
1538      syncActiveByScroll();
1539    }
1540
1541    generateCatalog();
1542  })();
1543</script>
1543
1544</section>
1545  
1546
1547  <!-- 侧边栏组件 -->
1548  
1549</aside>
1550      
1551      
1552    </div>
1553
1554    <div id="z-panel">
1555      <button
1556        id="toggle-sidebar"
1557        aria-label="切换菜单"
1558        onclick="
1559          (function (btn) {
1560            var sb = document.getElementById('z-sidebar'),
1561              mk = document.getElementById('z-sidebar-bgmask');
1562            sb.classList.toggle('show');
1563            mk.classList.toggle('hidden');
1564            btn.classList.toggle('active');
1565          })(this)
1566        "
1567      >
1568        <span class="icon-[ph--sidebar-duotone] rtl-flip" style="display: block"></span>
1569      </button>
1570      <button
1571        id="toggle-aside"
1572        aria-label="切换侧边栏"
1573        onclick="
1574          (function (btn) {
1575            var as = document.getElementById('z-aside'),
1576              mk = document.getElementById('z-aside-bgmask');
1577            as.classList.toggle('show');
1578            mk.classList.toggle('hidden');
1579            btn.classList.toggle('active');
1580          })(this)
1581        "
1582      >
1583        <span class="icon-[ph--align-right-duotone] rtl-flip" style="display: block"></span>
1584      </button>
1585      
1586      
1587      <button id="back-to-top" aria-label="返回顶部" style="display: none">
1588        <span class="icon-[ph--arrow-up-bold]" style="display: block"></span>
1589      </button>
1590    </div>
1591
1592    <button id="pc-back-to-top" class="pc-back-to-top" onclick="window.scrollTo({ top: 0, behavior: 'smooth' })">
1593      <svg class="svgIcon" viewBox="0 0 384 512">
1594        <path
1595          d="M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2V448c0 17.7 14.3 32 32 32s32-14.3 32-32V141.2L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z"
1596        ></path>
1597      </svg>
1598    </button>
1599
1600    
1601  
1602
1603  
1604
1605  
1605<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"a092d8e40f0a476f9abd5e996f61369f","r":1,"spa":2}' crossorigin="anonymous"></script>
1605
1606</body>
1607</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.