[{"data":1,"prerenderedAt":2995},["ShallowReactive",2],{"doc-page:\u002Fdocs\u002Fopenclaw":3},{"doc":4,"prev":2958,"next":2962,"resolvedType":8,"readingMinutes":520,"audience":2969,"checklist":2973,"related":2977},{"path":5,"title":6,"description":7,"docType":8,"resourceKind":9,"categoryId":10,"categoryLabel":11,"updatedAt":12,"publishedAt":12,"icon":13,"body":14},"\u002Fdocs\u002Fopenclaw","OpenClaw - 个人 AI 助手网关","自托管的 AI 助手，连接 WhatsApp、Telegram、Discord 等平台，支持浏览器控制和语音交互","article",null,"ai-tools","AI 工具","2026-02-28","i-carbon-chat-bot",{"type":15,"value":16,"toc":2906},"minimark",[17,21,25,29,76,79,83,94,97,165,169,176,181,184,216,219,223,234,241,262,265,279,282,286,289,308,311,342,346,349,361,364,368,402,406,418,421,435,439,460,464,528,531,537,629,632,636,639,655,658,711,714,718,772,775,840,842,846,849,887,890,947,951,967,1044,1048,1064,1138,1142,1145,1210,1214,1217,1283,1286,1290,1293,1301,1304,1425,1428,1431,1494,1500,1502,1505,1562,1565,1582,1586,1589,1633,1636,1647,1649,1653,1671,1674,1688,1692,1695,1715,1717,1730,1732,1736,1739,1794,1797,1803,1991,1994,1998,2112,2116,2222,2226,2229,2286,2292,2295,2298,2337,2340,2344,2397,2400,2482,2485,2488,2526,2529,2549,2553,2593,2595,2611,2614,2687,2690,2693,2711,2714,2734,2737,2745,2749,2855,2858,2902],[18,19,6],"h1",{"id":20},"openclaw-个人-ai-助手网关",[22,23,24],"p",{},"OpenClaw 是一个自托管的个人 AI 助手网关，将你常用的聊天应用（WhatsApp、Telegram、Discord、iMessage 等）连接到 AI 编程代理。前身为 Clawdbot \u002F Moltbot。",[26,27,28],"h2",{"id":28},"核心特性",[30,31,32,40,46,52,58,64,70],"ul",{},[33,34,35,39],"li",{},[36,37,38],"strong",{},"多平台集成","：WhatsApp、Telegram、Slack、Discord、Google Chat、Signal、iMessage、Microsoft Teams、WebChat",[33,41,42,45],{},[36,43,44],{},"本地优先","：在自己的设备上运行，数据不离开你的控制",[33,47,48,51],{},[36,49,50],{},"浏览器控制","：专用 Chrome 实例，支持截图、操作、上传",[33,53,54,57],{},[36,55,56],{},"语音交互","：macOS\u002FiOS\u002FAndroid 支持语音唤醒和对话模式",[33,59,60,63],{},[36,61,62],{},"Canvas","：实时可视化工作区（A2UI）",[33,65,66,69],{},[36,67,68],{},"多代理路由","：不同频道\u002F账号路由到隔离的代理工作区",[33,71,72,75],{},[36,73,74],{},"技能系统","：ClawHub 技能注册表，自动搜索和安装技能",[26,77,78],{"id":78},"快速开始",[80,81,82],"h3",{"id":82},"系统要求",[30,84,85,88,91],{},[33,86,87],{},"Node.js ≥22",[33,89,90],{},"macOS、Linux 或 Windows（WSL2 推荐）",[33,92,93],{},"支持 npm、pnpm 或 bun",[80,95,96],{"id":96},"部署方式怎么选",[98,99,100,119],"table",{},[101,102,103],"thead",{},[104,105,106,110,113,116],"tr",{},[107,108,109],"th",{},"方式",[107,111,112],{},"适合人群",[107,114,115],{},"优点",[107,117,118],{},"注意事项",[120,121,122,137,151],"tbody",{},[104,123,124,128,131,134],{},[125,126,127],"td",{},"原生 macOS \u002F Linux",[125,129,130],{},"自托管主力机用户",[125,132,133],{},"守护进程、权限模型、浏览器控制体验最自然",[125,135,136],{},"需要本机长期在线",[104,138,139,142,145,148],{},[125,140,141],{},"Windows + WSL2",[125,143,144],{},"Windows 主力机用户",[125,146,147],{},"兼容性更接近 Linux，适合 CLI 与后台服务",[125,149,150],{},"建议把工作目录放在 WSL 的 Linux 文件系统内",[104,152,153,156,159,162],{},[125,154,155],{},"Docker",[125,157,158],{},"想隔离依赖、方便迁移的人",[125,160,161],{},"环境更干净，迁移和回滚方便",[125,163,164],{},"桌面集成、浏览器控制和语音链路通常需要额外处理",[80,166,168],{"id":167},"windows-wsl2-部署推荐","Windows \u002F WSL2 部署（推荐）",[22,170,171,172,175],{},"OpenClaw 官方 Windows 平台文档更偏向 ",[36,173,174],{},"WSL2 + Ubuntu"," 路线，因为守护进程、CLI 工具链、文件权限以及大多数自动化能力在 Linux 兼容层里更稳定。",[177,178,180],"h4",{"id":179},"_1安装-wsl2","1）安装 WSL2",[22,182,183],{},"在管理员 PowerShell 中执行：",[185,186,191],"pre",{"className":187,"code":188,"language":189,"meta":190,"style":190},"language-powershell shiki shiki-themes github-light github-dark","wsl --install -d Ubuntu\n","powershell","",[192,193,194],"code",{"__ignoreMap":190},[195,196,199,203,207,210,213],"span",{"class":197,"line":198},"line",1,[195,200,202],{"class":201},"sVt8B","wsl ",[195,204,206],{"class":205},"szBVR","--",[195,208,209],{"class":201},"install ",[195,211,212],{"class":205},"-",[195,214,215],{"class":201},"d Ubuntu\n",[22,217,218],{},"安装完成后重启系统，并完成 Ubuntu 用户初始化。",[177,220,222],{"id":221},"_2启用-systemd","2）启用 systemd",[22,224,225,226,229,230,233],{},"如果你希望 ",[192,227,228],{},"openclaw onboard --install-daemon"," 能更自然地管理后台服务，建议在 WSL2 中启用 ",[192,231,232],{},"systemd","。",[22,235,236,237,240],{},"编辑 ",[192,238,239],{},"\u002Fetc\u002Fwsl.conf","：",[185,242,246],{"className":243,"code":244,"language":245,"meta":190,"style":190},"language-ini shiki shiki-themes github-light github-dark","[boot]\nsystemd=true\n","ini",[192,247,248,254],{"__ignoreMap":190},[195,249,250],{"class":197,"line":198},[195,251,253],{"class":252},"sScJk","[boot]\n",[195,255,257,259],{"class":197,"line":256},2,[195,258,232],{"class":205},[195,260,261],{"class":201},"=true\n",[22,263,264],{},"然后在 Windows 中执行：",[185,266,268],{"className":187,"code":267,"language":189,"meta":190,"style":190},"wsl --shutdown\n",[192,269,270],{"__ignoreMap":190},[195,271,272,274,276],{"class":197,"line":198},[195,273,202],{"class":201},[195,275,206],{"class":205},[195,277,278],{"class":201},"shutdown\n",[22,280,281],{},"重新打开 Ubuntu 终端使配置生效。",[177,283,285],{"id":284},"_3在-wsl2-内安装-openclaw","3）在 WSL2 内安装 OpenClaw",[22,287,288],{},"先确认 Node.js 22 已可用，再执行：",[185,290,294],{"className":291,"code":292,"language":293,"meta":190,"style":190},"language-bash shiki shiki-themes github-light github-dark","npx openclaw onboard\n","bash",[192,295,296],{"__ignoreMap":190},[195,297,298,301,305],{"class":197,"line":198},[195,299,300],{"class":252},"npx",[195,302,304],{"class":303},"sZZnC"," openclaw",[195,306,307],{"class":303}," onboard\n",[22,309,310],{},"或者：",[185,312,314],{"className":291,"code":313,"language":293,"meta":190,"style":190},"npm install -g openclaw\nopenclaw onboard --install-daemon\n",[192,315,316,331],{"__ignoreMap":190},[195,317,318,321,324,328],{"class":197,"line":198},[195,319,320],{"class":252},"npm",[195,322,323],{"class":303}," install",[195,325,327],{"class":326},"sj4cs"," -g",[195,329,330],{"class":303}," openclaw\n",[195,332,333,336,339],{"class":197,"line":256},[195,334,335],{"class":252},"openclaw",[195,337,338],{"class":303}," onboard",[195,340,341],{"class":326}," --install-daemon\n",[177,343,345],{"id":344},"_4从-windows-侧访问控制界面","4）从 Windows 侧访问控制界面",[22,347,348],{},"优先使用：",[185,350,352],{"className":291,"code":351,"language":293,"meta":190,"style":190},"openclaw dashboard\n",[192,353,354],{"__ignoreMap":190},[195,355,356,358],{"class":197,"line":198},[195,357,335],{"class":252},[195,359,360],{"class":303}," dashboard\n",[22,362,363],{},"如果没有自动打开浏览器，就在 Windows 浏览器访问向导或日志中显示的本地地址。",[177,365,367],{"id":366},"_5wsl-部署实践建议","5）WSL 部署实践建议",[30,369,370,377,380,391],{},[33,371,372,373,376],{},"把 ",[192,374,375],{},"~\u002F.openclaw","、工作区和缓存优先放在 Linux 文件系统中",[33,378,379],{},"扫码配对频道时直接用 Windows 浏览器查看页面会更顺手",[33,381,382,383,386,387,390],{},"遇到异常先用 ",[192,384,385],{},"openclaw gateway status"," 与 ",[192,388,389],{},"openclaw doctor"," 检查状态",[33,392,393,394,397,398,401],{},"如需访问 Windows 文件，再通过 ",[192,395,396],{},"\u002Fmnt\u002Fc\u002F..."," 挂载访问，不建议把主工作目录直接放在 ",[192,399,400],{},"\u002Fmnt\u002Fc"," 下",[80,403,405],{"id":404},"安装推荐使用向导","安装（推荐使用向导）",[185,407,408],{"className":291,"code":292,"language":293,"meta":190,"style":190},[192,409,410],{"__ignoreMap":190},[195,411,412,414,416],{"class":197,"line":198},[195,413,300],{"class":252},[195,415,304],{"class":303},[195,417,307],{"class":303},[22,419,420],{},"向导会引导你完成：",[30,422,423,426,429,432],{},[33,424,425],{},"网关安装（launchd\u002Fsystemd 用户服务）",[33,427,428],{},"工作区设置",[33,430,431],{},"频道配置",[33,433,434],{},"技能安装",[80,436,438],{"id":437},"快速安装tldr","快速安装（TL;DR）",[185,440,442],{"className":291,"code":441,"language":293,"meta":190,"style":190},"npm install -g openclaw\nopenclaw onboard\n",[192,443,444,454],{"__ignoreMap":190},[195,445,446,448,450,452],{"class":197,"line":198},[195,447,320],{"class":252},[195,449,323],{"class":303},[195,451,327],{"class":326},[195,453,330],{"class":303},[195,455,456,458],{"class":197,"line":256},[195,457,335],{"class":252},[195,459,307],{"class":303},[80,461,463],{"id":462},"从源码安装开发","从源码安装（开发）",[185,465,467],{"className":291,"code":466,"language":293,"meta":190,"style":190},"git clone https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\ncd openclaw\npnpm install\npnpm build\n\n# 运行\npnpm openclaw gateway\n",[192,468,469,480,487,496,504,511,518],{"__ignoreMap":190},[195,470,471,474,477],{"class":197,"line":198},[195,472,473],{"class":252},"git",[195,475,476],{"class":303}," clone",[195,478,479],{"class":303}," https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\n",[195,481,482,485],{"class":197,"line":256},[195,483,484],{"class":326},"cd",[195,486,330],{"class":303},[195,488,490,493],{"class":197,"line":489},3,[195,491,492],{"class":252},"pnpm",[195,494,495],{"class":303}," install\n",[195,497,499,501],{"class":197,"line":498},4,[195,500,492],{"class":252},[195,502,503],{"class":303}," build\n",[195,505,507],{"class":197,"line":506},5,[195,508,510],{"emptyLinePlaceholder":509},true,"\n",[195,512,514],{"class":197,"line":513},6,[195,515,517],{"class":516},"sJ8bj","# 运行\n",[195,519,521,523,525],{"class":197,"line":520},7,[195,522,492],{"class":252},[195,524,304],{"class":303},[195,526,527],{"class":303}," gateway\n",[26,529,530],{"id":530},"配置",[22,532,533,534,240],{},"最小配置 ",[192,535,536],{},"~\u002F.openclaw\u002Fopenclaw.json",[185,538,542],{"className":539,"code":540,"language":541,"meta":190,"style":190},"language-json shiki shiki-themes github-light github-dark","{\n  \"model\": {\n    \"provider\": \"anthropic\",\n    \"model\": \"claude-opus-4.6-20250514\"\n  },\n  \"agents\": {\n    \"defaults\": {\n      \"systemPrompt\": \"你是 Molty，一只太空龙虾 AI 助手 🦞\"\n    }\n  }\n}\n","json",[192,543,544,549,557,571,581,586,593,600,611,617,623],{"__ignoreMap":190},[195,545,546],{"class":197,"line":198},[195,547,548],{"class":201},"{\n",[195,550,551,554],{"class":197,"line":256},[195,552,553],{"class":326},"  \"model\"",[195,555,556],{"class":201},": {\n",[195,558,559,562,565,568],{"class":197,"line":489},[195,560,561],{"class":326},"    \"provider\"",[195,563,564],{"class":201},": ",[195,566,567],{"class":303},"\"anthropic\"",[195,569,570],{"class":201},",\n",[195,572,573,576,578],{"class":197,"line":498},[195,574,575],{"class":326},"    \"model\"",[195,577,564],{"class":201},[195,579,580],{"class":303},"\"claude-opus-4.6-20250514\"\n",[195,582,583],{"class":197,"line":506},[195,584,585],{"class":201},"  },\n",[195,587,588,591],{"class":197,"line":513},[195,589,590],{"class":326},"  \"agents\"",[195,592,556],{"class":201},[195,594,595,598],{"class":197,"line":520},[195,596,597],{"class":326},"    \"defaults\"",[195,599,556],{"class":201},[195,601,603,606,608],{"class":197,"line":602},8,[195,604,605],{"class":326},"      \"systemPrompt\"",[195,607,564],{"class":201},[195,609,610],{"class":303},"\"你是 Molty，一只太空龙虾 AI 助手 🦞\"\n",[195,612,614],{"class":197,"line":613},9,[195,615,616],{"class":201},"    }\n",[195,618,620],{"class":197,"line":619},10,[195,621,622],{"class":201},"  }\n",[195,624,626],{"class":197,"line":625},11,[195,627,628],{"class":201},"}\n",[26,630,631],{"id":631},"模型配置",[80,633,635],{"id":634},"anthropic-claude推荐","Anthropic Claude（推荐）",[22,637,638],{},"订阅方式（OAuth）：",[185,640,642],{"className":291,"code":641,"language":293,"meta":190,"style":190},"openclaw onboard\n# 选择 Anthropic Pro\u002FMax 订阅\n",[192,643,644,650],{"__ignoreMap":190},[195,645,646,648],{"class":197,"line":198},[195,647,335],{"class":252},[195,649,307],{"class":303},[195,651,652],{"class":197,"line":256},[195,653,654],{"class":516},"# 选择 Anthropic Pro\u002FMax 订阅\n",[22,656,657],{},"API Key 方式：",[185,659,661],{"className":539,"code":660,"language":541,"meta":190,"style":190},"{\n  \"model\": {\n    \"provider\": \"anthropic\",\n    \"apiKey\": \"sk-ant-xxx\",\n    \"model\": \"claude-opus-4.6-20250514\"\n  }\n}\n",[192,662,663,667,673,683,695,703,707],{"__ignoreMap":190},[195,664,665],{"class":197,"line":198},[195,666,548],{"class":201},[195,668,669,671],{"class":197,"line":256},[195,670,553],{"class":326},[195,672,556],{"class":201},[195,674,675,677,679,681],{"class":197,"line":489},[195,676,561],{"class":326},[195,678,564],{"class":201},[195,680,567],{"class":303},[195,682,570],{"class":201},[195,684,685,688,690,693],{"class":197,"line":498},[195,686,687],{"class":326},"    \"apiKey\"",[195,689,564],{"class":201},[195,691,692],{"class":303},"\"sk-ant-xxx\"",[195,694,570],{"class":201},[195,696,697,699,701],{"class":197,"line":506},[195,698,575],{"class":326},[195,700,564],{"class":201},[195,702,580],{"class":303},[195,704,705],{"class":197,"line":513},[195,706,622],{"class":201},[195,708,709],{"class":197,"line":520},[195,710,628],{"class":201},[22,712,713],{},"推荐使用 Opus 4.6 以获得更好的长上下文能力和提示注入抵抗。",[80,715,717],{"id":716},"openai","OpenAI",[185,719,721],{"className":539,"code":720,"language":541,"meta":190,"style":190},"{\n  \"model\": {\n    \"provider\": \"openai\",\n    \"apiKey\": \"sk-xxx\",\n    \"model\": \"gpt-4o\"\n  }\n}\n",[192,722,723,727,733,744,755,764,768],{"__ignoreMap":190},[195,724,725],{"class":197,"line":198},[195,726,548],{"class":201},[195,728,729,731],{"class":197,"line":256},[195,730,553],{"class":326},[195,732,556],{"class":201},[195,734,735,737,739,742],{"class":197,"line":489},[195,736,561],{"class":326},[195,738,564],{"class":201},[195,740,741],{"class":303},"\"openai\"",[195,743,570],{"class":201},[195,745,746,748,750,753],{"class":197,"line":498},[195,747,687],{"class":326},[195,749,564],{"class":201},[195,751,752],{"class":303},"\"sk-xxx\"",[195,754,570],{"class":201},[195,756,757,759,761],{"class":197,"line":506},[195,758,575],{"class":326},[195,760,564],{"class":201},[195,762,763],{"class":303},"\"gpt-4o\"\n",[195,765,766],{"class":197,"line":513},[195,767,622],{"class":201},[195,769,770],{"class":197,"line":520},[195,771,628],{"class":201},[80,773,774],{"id":774},"本地模型",[185,776,778],{"className":539,"code":777,"language":541,"meta":190,"style":190},"{\n  \"model\": {\n    \"provider\": \"openai\",\n    \"apiBase\": \"http:\u002F\u002Flocalhost:11434\u002Fv1\",\n    \"apiKey\": \"ollama\",\n    \"model\": \"qwen2.5:14b\"\n  }\n}\n",[192,779,780,784,790,800,812,823,832,836],{"__ignoreMap":190},[195,781,782],{"class":197,"line":198},[195,783,548],{"class":201},[195,785,786,788],{"class":197,"line":256},[195,787,553],{"class":326},[195,789,556],{"class":201},[195,791,792,794,796,798],{"class":197,"line":489},[195,793,561],{"class":326},[195,795,564],{"class":201},[195,797,741],{"class":303},[195,799,570],{"class":201},[195,801,802,805,807,810],{"class":197,"line":498},[195,803,804],{"class":326},"    \"apiBase\"",[195,806,564],{"class":201},[195,808,809],{"class":303},"\"http:\u002F\u002Flocalhost:11434\u002Fv1\"",[195,811,570],{"class":201},[195,813,814,816,818,821],{"class":197,"line":506},[195,815,687],{"class":326},[195,817,564],{"class":201},[195,819,820],{"class":303},"\"ollama\"",[195,822,570],{"class":201},[195,824,825,827,829],{"class":197,"line":513},[195,826,575],{"class":326},[195,828,564],{"class":201},[195,830,831],{"class":303},"\"qwen2.5:14b\"\n",[195,833,834],{"class":197,"line":520},[195,835,622],{"class":201},[195,837,838],{"class":197,"line":602},[195,839,628],{"class":201},[26,841,431],{"id":431},[80,843,845],{"id":844},"whatsapp","WhatsApp",[22,847,848],{},"使用 Baileys 库，类似 WhatsApp Web：",[185,850,852],{"className":291,"code":851,"language":293,"meta":190,"style":190},"# 启动网关\nopenclaw gateway\n\n# 扫描二维码链接设备\nopenclaw channels pair whatsapp\n",[192,853,854,859,865,869,874],{"__ignoreMap":190},[195,855,856],{"class":197,"line":198},[195,857,858],{"class":516},"# 启动网关\n",[195,860,861,863],{"class":197,"line":256},[195,862,335],{"class":252},[195,864,527],{"class":303},[195,866,867],{"class":197,"line":489},[195,868,510],{"emptyLinePlaceholder":509},[195,870,871],{"class":197,"line":498},[195,872,873],{"class":516},"# 扫描二维码链接设备\n",[195,875,876,878,881,884],{"class":197,"line":506},[195,877,335],{"class":252},[195,879,880],{"class":303}," channels",[195,882,883],{"class":303}," pair",[195,885,886],{"class":303}," whatsapp\n",[22,888,889],{},"配置：",[185,891,893],{"className":539,"code":892,"language":541,"meta":190,"style":190},"{\n  \"channels\": {\n    \"whatsapp\": {\n      \"enabled\": true,\n      \"dmPolicy\": \"owner-only\"\n    }\n  }\n}\n",[192,894,895,899,906,913,925,935,939,943],{"__ignoreMap":190},[195,896,897],{"class":197,"line":198},[195,898,548],{"class":201},[195,900,901,904],{"class":197,"line":256},[195,902,903],{"class":326},"  \"channels\"",[195,905,556],{"class":201},[195,907,908,911],{"class":197,"line":489},[195,909,910],{"class":326},"    \"whatsapp\"",[195,912,556],{"class":201},[195,914,915,918,920,923],{"class":197,"line":498},[195,916,917],{"class":326},"      \"enabled\"",[195,919,564],{"class":201},[195,921,922],{"class":326},"true",[195,924,570],{"class":201},[195,926,927,930,932],{"class":197,"line":506},[195,928,929],{"class":326},"      \"dmPolicy\"",[195,931,564],{"class":201},[195,933,934],{"class":303},"\"owner-only\"\n",[195,936,937],{"class":197,"line":513},[195,938,616],{"class":201},[195,940,941],{"class":197,"line":520},[195,942,622],{"class":201},[195,944,945],{"class":197,"line":602},[195,946,628],{"class":201},[80,948,950],{"id":949},"telegram","Telegram",[952,953,954,965],"ol",{},[33,955,956,957,964],{},"向 ",[958,959,963],"a",{"href":960,"rel":961},"https:\u002F\u002Ft.me\u002FBotFather",[962],"nofollow","@BotFather"," 创建机器人",[33,966,889],{},[185,968,970],{"className":539,"code":969,"language":541,"meta":190,"style":190},"{\n  \"channels\": {\n    \"telegram\": {\n      \"enabled\": true,\n      \"botToken\": \"123456:ABC-DEF...\",\n      \"dmPolicy\": \"owner-only\",\n      \"ownerUserId\": \"your_user_id\"\n    }\n  }\n}\n",[192,971,972,976,982,989,999,1011,1022,1032,1036,1040],{"__ignoreMap":190},[195,973,974],{"class":197,"line":198},[195,975,548],{"class":201},[195,977,978,980],{"class":197,"line":256},[195,979,903],{"class":326},[195,981,556],{"class":201},[195,983,984,987],{"class":197,"line":489},[195,985,986],{"class":326},"    \"telegram\"",[195,988,556],{"class":201},[195,990,991,993,995,997],{"class":197,"line":498},[195,992,917],{"class":326},[195,994,564],{"class":201},[195,996,922],{"class":326},[195,998,570],{"class":201},[195,1000,1001,1004,1006,1009],{"class":197,"line":506},[195,1002,1003],{"class":326},"      \"botToken\"",[195,1005,564],{"class":201},[195,1007,1008],{"class":303},"\"123456:ABC-DEF...\"",[195,1010,570],{"class":201},[195,1012,1013,1015,1017,1020],{"class":197,"line":513},[195,1014,929],{"class":326},[195,1016,564],{"class":201},[195,1018,1019],{"class":303},"\"owner-only\"",[195,1021,570],{"class":201},[195,1023,1024,1027,1029],{"class":197,"line":520},[195,1025,1026],{"class":326},"      \"ownerUserId\"",[195,1028,564],{"class":201},[195,1030,1031],{"class":303},"\"your_user_id\"\n",[195,1033,1034],{"class":197,"line":602},[195,1035,616],{"class":201},[195,1037,1038],{"class":197,"line":613},[195,1039,622],{"class":201},[195,1041,1042],{"class":197,"line":619},[195,1043,628],{"class":201},[80,1045,1047],{"id":1046},"discord","Discord",[952,1049,1050,1059,1062],{},[33,1051,1052,1053,1058],{},"在 ",[958,1054,1057],{"href":1055,"rel":1056},"https:\u002F\u002Fdiscord.com\u002Fdevelopers\u002Fapplications",[962],"Discord Developer Portal"," 创建应用",[33,1060,1061],{},"启用 Message Content Intent 和 Server Members Intent",[33,1063,889],{},[185,1065,1067],{"className":539,"code":1066,"language":541,"meta":190,"style":190},"{\n  \"channels\": {\n    \"discord\": {\n      \"enabled\": true,\n      \"botToken\": \"MTIzNDU2...\",\n      \"dmPolicy\": \"owner-only\",\n      \"ownerId\": \"your_user_id\"\n    }\n  }\n}\n",[192,1068,1069,1073,1079,1086,1096,1107,1117,1126,1130,1134],{"__ignoreMap":190},[195,1070,1071],{"class":197,"line":198},[195,1072,548],{"class":201},[195,1074,1075,1077],{"class":197,"line":256},[195,1076,903],{"class":326},[195,1078,556],{"class":201},[195,1080,1081,1084],{"class":197,"line":489},[195,1082,1083],{"class":326},"    \"discord\"",[195,1085,556],{"class":201},[195,1087,1088,1090,1092,1094],{"class":197,"line":498},[195,1089,917],{"class":326},[195,1091,564],{"class":201},[195,1093,922],{"class":326},[195,1095,570],{"class":201},[195,1097,1098,1100,1102,1105],{"class":197,"line":506},[195,1099,1003],{"class":326},[195,1101,564],{"class":201},[195,1103,1104],{"class":303},"\"MTIzNDU2...\"",[195,1106,570],{"class":201},[195,1108,1109,1111,1113,1115],{"class":197,"line":513},[195,1110,929],{"class":326},[195,1112,564],{"class":201},[195,1114,1019],{"class":303},[195,1116,570],{"class":201},[195,1118,1119,1122,1124],{"class":197,"line":520},[195,1120,1121],{"class":326},"      \"ownerId\"",[195,1123,564],{"class":201},[195,1125,1031],{"class":303},[195,1127,1128],{"class":197,"line":602},[195,1129,616],{"class":201},[195,1131,1132],{"class":197,"line":613},[195,1133,622],{"class":201},[195,1135,1136],{"class":197,"line":619},[195,1137,628],{"class":201},[80,1139,1141],{"id":1140},"slack","Slack",[22,1143,1144],{},"使用 Socket Mode，无需公网 URL：",[185,1146,1148],{"className":539,"code":1147,"language":541,"meta":190,"style":190},"{\n  \"channels\": {\n    \"slack\": {\n      \"enabled\": true,\n      \"botToken\": \"xoxb-...\",\n      \"appToken\": \"xapp-...\"\n    }\n  }\n}\n",[192,1149,1150,1154,1160,1167,1177,1188,1198,1202,1206],{"__ignoreMap":190},[195,1151,1152],{"class":197,"line":198},[195,1153,548],{"class":201},[195,1155,1156,1158],{"class":197,"line":256},[195,1157,903],{"class":326},[195,1159,556],{"class":201},[195,1161,1162,1165],{"class":197,"line":489},[195,1163,1164],{"class":326},"    \"slack\"",[195,1166,556],{"class":201},[195,1168,1169,1171,1173,1175],{"class":197,"line":498},[195,1170,917],{"class":326},[195,1172,564],{"class":201},[195,1174,922],{"class":326},[195,1176,570],{"class":201},[195,1178,1179,1181,1183,1186],{"class":197,"line":506},[195,1180,1003],{"class":326},[195,1182,564],{"class":201},[195,1184,1185],{"class":303},"\"xoxb-...\"",[195,1187,570],{"class":201},[195,1189,1190,1193,1195],{"class":197,"line":513},[195,1191,1192],{"class":326},"      \"appToken\"",[195,1194,564],{"class":201},[195,1196,1197],{"class":303},"\"xapp-...\"\n",[195,1199,1200],{"class":197,"line":520},[195,1201,616],{"class":201},[195,1203,1204],{"class":197,"line":602},[195,1205,622],{"class":201},[195,1207,1208],{"class":197,"line":613},[195,1209,628],{"class":201},[80,1211,1213],{"id":1212},"imessagebluebubbles推荐","iMessage（BlueBubbles，推荐）",[22,1215,1216],{},"需要 macOS 设备运行 BlueBubbles 服务器：",[185,1218,1220],{"className":539,"code":1219,"language":541,"meta":190,"style":190},"{\n  \"channels\": {\n    \"bluebubbles\": {\n      \"enabled\": true,\n      \"url\": \"http:\u002F\u002Flocalhost:1234\",\n      \"password\": \"your-password\"\n    }\n  }\n}\n",[192,1221,1222,1226,1232,1239,1249,1261,1271,1275,1279],{"__ignoreMap":190},[195,1223,1224],{"class":197,"line":198},[195,1225,548],{"class":201},[195,1227,1228,1230],{"class":197,"line":256},[195,1229,903],{"class":326},[195,1231,556],{"class":201},[195,1233,1234,1237],{"class":197,"line":489},[195,1235,1236],{"class":326},"    \"bluebubbles\"",[195,1238,556],{"class":201},[195,1240,1241,1243,1245,1247],{"class":197,"line":498},[195,1242,917],{"class":326},[195,1244,564],{"class":201},[195,1246,922],{"class":326},[195,1248,570],{"class":201},[195,1250,1251,1254,1256,1259],{"class":197,"line":506},[195,1252,1253],{"class":326},"      \"url\"",[195,1255,564],{"class":201},[195,1257,1258],{"class":303},"\"http:\u002F\u002Flocalhost:1234\"",[195,1260,570],{"class":201},[195,1262,1263,1266,1268],{"class":197,"line":513},[195,1264,1265],{"class":326},"      \"password\"",[195,1267,564],{"class":201},[195,1269,1270],{"class":303},"\"your-password\"\n",[195,1272,1273],{"class":197,"line":520},[195,1274,616],{"class":201},[195,1276,1277],{"class":197,"line":602},[195,1278,622],{"class":201},[195,1280,1281],{"class":197,"line":613},[195,1282,628],{"class":201},[26,1284,1285],{"id":1285},"安全配置",[80,1287,1289],{"id":1288},"dm-访问策略","DM 访问策略",[22,1291,1292],{},"默认行为：",[30,1294,1295,1298],{},[33,1296,1297],{},"主会话（owner DM）：完全访问，工具在主机上运行",[33,1299,1300],{},"群组\u002F其他用户：受限访问",[22,1302,1303],{},"配置选项：",[185,1305,1307],{"className":539,"code":1306,"language":541,"meta":190,"style":190},"{\n  \"agents\": {\n    \"defaults\": {\n      \"dmPolicy\": \"owner-only\",\n      \"sandbox\": {\n        \"mode\": \"non-main\",\n        \"allowlist\": [\"bash\", \"read\", \"write\", \"edit\"],\n        \"denylist\": [\"browser\", \"canvas\", \"nodes\"]\n      }\n    }\n  }\n}\n",[192,1308,1309,1313,1319,1325,1335,1342,1354,1384,1407,1412,1416,1420],{"__ignoreMap":190},[195,1310,1311],{"class":197,"line":198},[195,1312,548],{"class":201},[195,1314,1315,1317],{"class":197,"line":256},[195,1316,590],{"class":326},[195,1318,556],{"class":201},[195,1320,1321,1323],{"class":197,"line":489},[195,1322,597],{"class":326},[195,1324,556],{"class":201},[195,1326,1327,1329,1331,1333],{"class":197,"line":498},[195,1328,929],{"class":326},[195,1330,564],{"class":201},[195,1332,1019],{"class":303},[195,1334,570],{"class":201},[195,1336,1337,1340],{"class":197,"line":506},[195,1338,1339],{"class":326},"      \"sandbox\"",[195,1341,556],{"class":201},[195,1343,1344,1347,1349,1352],{"class":197,"line":513},[195,1345,1346],{"class":326},"        \"mode\"",[195,1348,564],{"class":201},[195,1350,1351],{"class":303},"\"non-main\"",[195,1353,570],{"class":201},[195,1355,1356,1359,1362,1365,1368,1371,1373,1376,1378,1381],{"class":197,"line":520},[195,1357,1358],{"class":326},"        \"allowlist\"",[195,1360,1361],{"class":201},": [",[195,1363,1364],{"class":303},"\"bash\"",[195,1366,1367],{"class":201},", ",[195,1369,1370],{"class":303},"\"read\"",[195,1372,1367],{"class":201},[195,1374,1375],{"class":303},"\"write\"",[195,1377,1367],{"class":201},[195,1379,1380],{"class":303},"\"edit\"",[195,1382,1383],{"class":201},"],\n",[195,1385,1386,1389,1391,1394,1396,1399,1401,1404],{"class":197,"line":602},[195,1387,1388],{"class":326},"        \"denylist\"",[195,1390,1361],{"class":201},[195,1392,1393],{"class":303},"\"browser\"",[195,1395,1367],{"class":201},[195,1397,1398],{"class":303},"\"canvas\"",[195,1400,1367],{"class":201},[195,1402,1403],{"class":303},"\"nodes\"",[195,1405,1406],{"class":201},"]\n",[195,1408,1409],{"class":197,"line":613},[195,1410,1411],{"class":201},"      }\n",[195,1413,1414],{"class":197,"line":619},[195,1415,616],{"class":201},[195,1417,1418],{"class":197,"line":625},[195,1419,622],{"class":201},[195,1421,1423],{"class":197,"line":1422},12,[195,1424,628],{"class":201},[80,1426,1427],{"id":1427},"沙箱模式",[22,1429,1430],{},"为非主会话启用 Docker 沙箱：",[185,1432,1434],{"className":539,"code":1433,"language":541,"meta":190,"style":190},"{\n  \"agents\": {\n    \"defaults\": {\n      \"sandbox\": {\n        \"mode\": \"non-main\",\n        \"image\": \"openclaw-sandbox:latest\"\n      }\n    }\n  }\n}\n",[192,1435,1436,1440,1446,1452,1458,1468,1478,1482,1486,1490],{"__ignoreMap":190},[195,1437,1438],{"class":197,"line":198},[195,1439,548],{"class":201},[195,1441,1442,1444],{"class":197,"line":256},[195,1443,590],{"class":326},[195,1445,556],{"class":201},[195,1447,1448,1450],{"class":197,"line":489},[195,1449,597],{"class":326},[195,1451,556],{"class":201},[195,1453,1454,1456],{"class":197,"line":498},[195,1455,1339],{"class":326},[195,1457,556],{"class":201},[195,1459,1460,1462,1464,1466],{"class":197,"line":506},[195,1461,1346],{"class":326},[195,1463,564],{"class":201},[195,1465,1351],{"class":303},[195,1467,570],{"class":201},[195,1469,1470,1473,1475],{"class":197,"line":513},[195,1471,1472],{"class":326},"        \"image\"",[195,1474,564],{"class":201},[195,1476,1477],{"class":303},"\"openclaw-sandbox:latest\"\n",[195,1479,1480],{"class":197,"line":520},[195,1481,1411],{"class":201},[195,1483,1484],{"class":197,"line":602},[195,1485,616],{"class":201},[195,1487,1488],{"class":197,"line":613},[195,1489,622],{"class":201},[195,1491,1492],{"class":197,"line":619},[195,1493,628],{"class":201},[22,1495,1496,1497,1499],{},"运行 ",[192,1498,389],{}," 检查安全配置。",[26,1501,50],{"id":50},[22,1503,1504],{},"OpenClaw 可以控制专用的 Chrome\u002FChromium 实例：",[185,1506,1508],{"className":539,"code":1507,"language":541,"meta":190,"style":190},"{\n  \"browser\": {\n    \"enabled\": true,\n    \"executablePath\": \"\u002Fusr\u002Fbin\u002Fchromium\",\n    \"userDataDir\": \"~\u002F.openclaw\u002Fbrowser-profiles\u002Fdefault\"\n  }\n}\n",[192,1509,1510,1514,1521,1532,1544,1554,1558],{"__ignoreMap":190},[195,1511,1512],{"class":197,"line":198},[195,1513,548],{"class":201},[195,1515,1516,1519],{"class":197,"line":256},[195,1517,1518],{"class":326},"  \"browser\"",[195,1520,556],{"class":201},[195,1522,1523,1526,1528,1530],{"class":197,"line":489},[195,1524,1525],{"class":326},"    \"enabled\"",[195,1527,564],{"class":201},[195,1529,922],{"class":326},[195,1531,570],{"class":201},[195,1533,1534,1537,1539,1542],{"class":197,"line":498},[195,1535,1536],{"class":326},"    \"executablePath\"",[195,1538,564],{"class":201},[195,1540,1541],{"class":303},"\"\u002Fusr\u002Fbin\u002Fchromium\"",[195,1543,570],{"class":201},[195,1545,1546,1549,1551],{"class":197,"line":506},[195,1547,1548],{"class":326},"    \"userDataDir\"",[195,1550,564],{"class":201},[195,1552,1553],{"class":303},"\"~\u002F.openclaw\u002Fbrowser-profiles\u002Fdefault\"\n",[195,1555,1556],{"class":197,"line":513},[195,1557,622],{"class":201},[195,1559,1560],{"class":197,"line":520},[195,1561,628],{"class":201},[22,1563,1564],{},"代理可以：",[30,1566,1567,1570,1573,1576,1579],{},[33,1568,1569],{},"访问网页并截图",[33,1571,1572],{},"填写表单",[33,1574,1575],{},"点击按钮",[33,1577,1578],{},"上传文件",[33,1580,1581],{},"执行 JavaScript",[26,1583,1585],{"id":1584},"canvas实时可视化","Canvas（实时可视化）",[22,1587,1588],{},"A2UI 驱动的可视化工作区：",[185,1590,1592],{"className":539,"code":1591,"language":541,"meta":190,"style":190},"{\n  \"canvas\": {\n    \"enabled\": true,\n    \"port\": 3000\n  }\n}\n",[192,1593,1594,1598,1605,1615,1625,1629],{"__ignoreMap":190},[195,1595,1596],{"class":197,"line":198},[195,1597,548],{"class":201},[195,1599,1600,1603],{"class":197,"line":256},[195,1601,1602],{"class":326},"  \"canvas\"",[195,1604,556],{"class":201},[195,1606,1607,1609,1611,1613],{"class":197,"line":489},[195,1608,1525],{"class":326},[195,1610,564],{"class":201},[195,1612,922],{"class":326},[195,1614,570],{"class":201},[195,1616,1617,1620,1622],{"class":197,"line":498},[195,1618,1619],{"class":326},"    \"port\"",[195,1621,564],{"class":201},[195,1623,1624],{"class":326},"3000\n",[195,1626,1627],{"class":197,"line":506},[195,1628,622],{"class":201},[195,1630,1631],{"class":197,"line":513},[195,1632,628],{"class":201},[22,1634,1635],{},"代理可以推送实时更新到 Canvas，用于：",[30,1637,1638,1641,1644],{},[33,1639,1640],{},"数据可视化",[33,1642,1643],{},"UI 原型",[33,1645,1646],{},"交互式演示",[26,1648,56],{"id":56},[80,1650,1652],{"id":1651},"macos-应用","macOS 应用",[185,1654,1656],{"className":291,"code":1655,"language":293,"meta":190,"style":190},"# 下载并安装 OpenClaw.app\nopen https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Freleases\n",[192,1657,1658,1663],{"__ignoreMap":190},[195,1659,1660],{"class":197,"line":198},[195,1661,1662],{"class":516},"# 下载并安装 OpenClaw.app\n",[195,1664,1665,1668],{"class":197,"line":256},[195,1666,1667],{"class":252},"open",[195,1669,1670],{"class":303}," https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Freleases\n",[22,1672,1673],{},"功能：",[30,1675,1676,1679,1682,1685],{},[33,1677,1678],{},"语音唤醒（\"Hey Molty\"）",[33,1680,1681],{},"按键对话（PTT）",[33,1683,1684],{},"对话模式覆盖层",[33,1686,1687],{},"菜单栏控制",[80,1689,1691],{"id":1690},"iosandroid-节点","iOS\u002FAndroid 节点",[22,1693,1694],{},"通过 Bonjour 配对连接到网关：",[185,1696,1698],{"className":291,"code":1697,"language":293,"meta":190,"style":190},"# 在网关设备上\nopenclaw nodes pair\n",[192,1699,1700,1705],{"__ignoreMap":190},[195,1701,1702],{"class":197,"line":198},[195,1703,1704],{"class":516},"# 在网关设备上\n",[195,1706,1707,1709,1712],{"class":197,"line":256},[195,1708,335],{"class":252},[195,1710,1711],{"class":303}," nodes",[195,1713,1714],{"class":303}," pair\n",[22,1716,1673],{},[30,1718,1719,1722,1724,1727],{},[33,1720,1721],{},"Canvas 渲染",[33,1723,56],{},[33,1725,1726],{},"相机\u002F屏幕录制",[33,1728,1729],{},"位置服务",[26,1731,74],{"id":74},[80,1733,1735],{"id":1734},"clawhub","ClawHub",[22,1737,1738],{},"技能注册表，代理可以自动搜索和安装：",[185,1740,1742],{"className":539,"code":1741,"language":541,"meta":190,"style":190},"{\n  \"skills\": {\n    \"clawhub\": {\n      \"enabled\": true,\n      \"autoInstall\": false\n    }\n  }\n}\n",[192,1743,1744,1748,1755,1762,1772,1782,1786,1790],{"__ignoreMap":190},[195,1745,1746],{"class":197,"line":198},[195,1747,548],{"class":201},[195,1749,1750,1753],{"class":197,"line":256},[195,1751,1752],{"class":326},"  \"skills\"",[195,1754,556],{"class":201},[195,1756,1757,1760],{"class":197,"line":489},[195,1758,1759],{"class":326},"    \"clawhub\"",[195,1761,556],{"class":201},[195,1763,1764,1766,1768,1770],{"class":197,"line":498},[195,1765,917],{"class":326},[195,1767,564],{"class":201},[195,1769,922],{"class":326},[195,1771,570],{"class":201},[195,1773,1774,1777,1779],{"class":197,"line":506},[195,1775,1776],{"class":326},"      \"autoInstall\"",[195,1778,564],{"class":201},[195,1780,1781],{"class":326},"false\n",[195,1783,1784],{"class":197,"line":513},[195,1785,616],{"class":201},[195,1787,1788],{"class":197,"line":520},[195,1789,622],{"class":201},[195,1791,1792],{"class":197,"line":602},[195,1793,628],{"class":201},[80,1795,1796],{"id":1796},"工作区技能",[22,1798,1052,1799,1802],{},[192,1800,1801],{},"~\u002F.openclaw\u002Fworkspace\u002Fskills\u002F"," 创建自定义技能：",[185,1804,1808],{"className":1805,"code":1806,"language":1807,"meta":190,"style":190},"language-typescript shiki shiki-themes github-light github-dark","\u002F\u002F skills\u002Fmy-skill\u002Findex.ts\nexport default {\n  name: \"my-skill\",\n  description: \"自定义技能\",\n  tools: [\n    {\n      name: \"my_tool\",\n      description: \"执行自定义操作\",\n      parameters: {\n        type: \"object\",\n        properties: {\n          input: { type: \"string\" },\n        },\n      },\n      execute: async (params) => {\n        return `处理: ${params.input}`;\n      },\n    },\n  ],\n};\n","typescript",[192,1809,1810,1815,1826,1836,1846,1851,1856,1866,1876,1881,1891,1896,1907,1913,1919,1945,1968,1973,1979,1985],{"__ignoreMap":190},[195,1811,1812],{"class":197,"line":198},[195,1813,1814],{"class":516},"\u002F\u002F skills\u002Fmy-skill\u002Findex.ts\n",[195,1816,1817,1820,1823],{"class":197,"line":256},[195,1818,1819],{"class":205},"export",[195,1821,1822],{"class":205}," default",[195,1824,1825],{"class":201}," {\n",[195,1827,1828,1831,1834],{"class":197,"line":489},[195,1829,1830],{"class":201},"  name: ",[195,1832,1833],{"class":303},"\"my-skill\"",[195,1835,570],{"class":201},[195,1837,1838,1841,1844],{"class":197,"line":498},[195,1839,1840],{"class":201},"  description: ",[195,1842,1843],{"class":303},"\"自定义技能\"",[195,1845,570],{"class":201},[195,1847,1848],{"class":197,"line":506},[195,1849,1850],{"class":201},"  tools: [\n",[195,1852,1853],{"class":197,"line":513},[195,1854,1855],{"class":201},"    {\n",[195,1857,1858,1861,1864],{"class":197,"line":520},[195,1859,1860],{"class":201},"      name: ",[195,1862,1863],{"class":303},"\"my_tool\"",[195,1865,570],{"class":201},[195,1867,1868,1871,1874],{"class":197,"line":602},[195,1869,1870],{"class":201},"      description: ",[195,1872,1873],{"class":303},"\"执行自定义操作\"",[195,1875,570],{"class":201},[195,1877,1878],{"class":197,"line":613},[195,1879,1880],{"class":201},"      parameters: {\n",[195,1882,1883,1886,1889],{"class":197,"line":619},[195,1884,1885],{"class":201},"        type: ",[195,1887,1888],{"class":303},"\"object\"",[195,1890,570],{"class":201},[195,1892,1893],{"class":197,"line":625},[195,1894,1895],{"class":201},"        properties: {\n",[195,1897,1898,1901,1904],{"class":197,"line":1422},[195,1899,1900],{"class":201},"          input: { type: ",[195,1902,1903],{"class":303},"\"string\"",[195,1905,1906],{"class":201}," },\n",[195,1908,1910],{"class":197,"line":1909},13,[195,1911,1912],{"class":201},"        },\n",[195,1914,1916],{"class":197,"line":1915},14,[195,1917,1918],{"class":201},"      },\n",[195,1920,1922,1925,1927,1930,1933,1937,1940,1943],{"class":197,"line":1921},15,[195,1923,1924],{"class":252},"      execute",[195,1926,564],{"class":201},[195,1928,1929],{"class":205},"async",[195,1931,1932],{"class":201}," (",[195,1934,1936],{"class":1935},"s4XuR","params",[195,1938,1939],{"class":201},") ",[195,1941,1942],{"class":205},"=>",[195,1944,1825],{"class":201},[195,1946,1948,1951,1954,1956,1959,1962,1965],{"class":197,"line":1947},16,[195,1949,1950],{"class":205},"        return",[195,1952,1953],{"class":303}," `处理: ${",[195,1955,1936],{"class":201},[195,1957,1958],{"class":303},".",[195,1960,1961],{"class":201},"input",[195,1963,1964],{"class":303},"}`",[195,1966,1967],{"class":201},";\n",[195,1969,1971],{"class":197,"line":1970},17,[195,1972,1918],{"class":201},[195,1974,1976],{"class":197,"line":1975},18,[195,1977,1978],{"class":201},"    },\n",[195,1980,1982],{"class":197,"line":1981},19,[195,1983,1984],{"class":201},"  ],\n",[195,1986,1988],{"class":197,"line":1987},20,[195,1989,1990],{"class":201},"};\n",[26,1992,1993],{"id":1993},"定时任务",[80,1995,1997],{"id":1996},"cron-任务","Cron 任务",[185,1999,2001],{"className":539,"code":2000,"language":541,"meta":190,"style":190},"{\n  \"cron\": {\n    \"enabled\": true,\n    \"jobs\": [\n      {\n        \"name\": \"daily-summary\",\n        \"schedule\": \"0 8 * * *\",\n        \"action\": \"send\",\n        \"channel\": \"telegram\",\n        \"message\": \"总结昨天的活动\"\n      }\n    ]\n  }\n}\n",[192,2002,2003,2007,2014,2024,2032,2037,2049,2061,2073,2085,2095,2099,2104,2108],{"__ignoreMap":190},[195,2004,2005],{"class":197,"line":198},[195,2006,548],{"class":201},[195,2008,2009,2012],{"class":197,"line":256},[195,2010,2011],{"class":326},"  \"cron\"",[195,2013,556],{"class":201},[195,2015,2016,2018,2020,2022],{"class":197,"line":489},[195,2017,1525],{"class":326},[195,2019,564],{"class":201},[195,2021,922],{"class":326},[195,2023,570],{"class":201},[195,2025,2026,2029],{"class":197,"line":498},[195,2027,2028],{"class":326},"    \"jobs\"",[195,2030,2031],{"class":201},": [\n",[195,2033,2034],{"class":197,"line":506},[195,2035,2036],{"class":201},"      {\n",[195,2038,2039,2042,2044,2047],{"class":197,"line":513},[195,2040,2041],{"class":326},"        \"name\"",[195,2043,564],{"class":201},[195,2045,2046],{"class":303},"\"daily-summary\"",[195,2048,570],{"class":201},[195,2050,2051,2054,2056,2059],{"class":197,"line":520},[195,2052,2053],{"class":326},"        \"schedule\"",[195,2055,564],{"class":201},[195,2057,2058],{"class":303},"\"0 8 * * *\"",[195,2060,570],{"class":201},[195,2062,2063,2066,2068,2071],{"class":197,"line":602},[195,2064,2065],{"class":326},"        \"action\"",[195,2067,564],{"class":201},[195,2069,2070],{"class":303},"\"send\"",[195,2072,570],{"class":201},[195,2074,2075,2078,2080,2083],{"class":197,"line":613},[195,2076,2077],{"class":326},"        \"channel\"",[195,2079,564],{"class":201},[195,2081,2082],{"class":303},"\"telegram\"",[195,2084,570],{"class":201},[195,2086,2087,2090,2092],{"class":197,"line":619},[195,2088,2089],{"class":326},"        \"message\"",[195,2091,564],{"class":201},[195,2093,2094],{"class":303},"\"总结昨天的活动\"\n",[195,2096,2097],{"class":197,"line":625},[195,2098,1411],{"class":201},[195,2100,2101],{"class":197,"line":1422},[195,2102,2103],{"class":201},"    ]\n",[195,2105,2106],{"class":197,"line":1909},[195,2107,622],{"class":201},[195,2109,2110],{"class":197,"line":1915},[195,2111,628],{"class":201},[80,2113,2115],{"id":2114},"webhooks","Webhooks",[185,2117,2119],{"className":539,"code":2118,"language":541,"meta":190,"style":190},"{\n  \"webhooks\": {\n    \"enabled\": true,\n    \"port\": 3001,\n    \"endpoints\": [\n      {\n        \"path\": \"\u002Fgithub\",\n        \"action\": \"send\",\n        \"channel\": \"telegram\",\n        \"template\": \"GitHub 事件: {{event}}\"\n      }\n    ]\n  }\n}\n",[192,2120,2121,2125,2132,2142,2153,2160,2164,2176,2186,2196,2206,2210,2214,2218],{"__ignoreMap":190},[195,2122,2123],{"class":197,"line":198},[195,2124,548],{"class":201},[195,2126,2127,2130],{"class":197,"line":256},[195,2128,2129],{"class":326},"  \"webhooks\"",[195,2131,556],{"class":201},[195,2133,2134,2136,2138,2140],{"class":197,"line":489},[195,2135,1525],{"class":326},[195,2137,564],{"class":201},[195,2139,922],{"class":326},[195,2141,570],{"class":201},[195,2143,2144,2146,2148,2151],{"class":197,"line":498},[195,2145,1619],{"class":326},[195,2147,564],{"class":201},[195,2149,2150],{"class":326},"3001",[195,2152,570],{"class":201},[195,2154,2155,2158],{"class":197,"line":506},[195,2156,2157],{"class":326},"    \"endpoints\"",[195,2159,2031],{"class":201},[195,2161,2162],{"class":197,"line":513},[195,2163,2036],{"class":201},[195,2165,2166,2169,2171,2174],{"class":197,"line":520},[195,2167,2168],{"class":326},"        \"path\"",[195,2170,564],{"class":201},[195,2172,2173],{"class":303},"\"\u002Fgithub\"",[195,2175,570],{"class":201},[195,2177,2178,2180,2182,2184],{"class":197,"line":602},[195,2179,2065],{"class":326},[195,2181,564],{"class":201},[195,2183,2070],{"class":303},[195,2185,570],{"class":201},[195,2187,2188,2190,2192,2194],{"class":197,"line":613},[195,2189,2077],{"class":326},[195,2191,564],{"class":201},[195,2193,2082],{"class":303},[195,2195,570],{"class":201},[195,2197,2198,2201,2203],{"class":197,"line":619},[195,2199,2200],{"class":326},"        \"template\"",[195,2202,564],{"class":201},[195,2204,2205],{"class":303},"\"GitHub 事件: {{event}}\"\n",[195,2207,2208],{"class":197,"line":625},[195,2209,1411],{"class":201},[195,2211,2212],{"class":197,"line":1422},[195,2213,2103],{"class":201},[195,2215,2216],{"class":197,"line":1909},[195,2217,622],{"class":201},[195,2219,2220],{"class":197,"line":1915},[195,2221,628],{"class":201},[26,2223,2225],{"id":2224},"tailscale-访问","Tailscale 访问",[22,2227,2228],{},"自动配置 Tailscale Serve\u002FFunnel：",[185,2230,2232],{"className":539,"code":2231,"language":541,"meta":190,"style":190},"{\n  \"gateway\": {\n    \"tailscale\": {\n      \"mode\": \"serve\",\n      \"hostname\": \"openclaw\"\n    }\n  }\n}\n",[192,2233,2234,2238,2245,2252,2264,2274,2278,2282],{"__ignoreMap":190},[195,2235,2236],{"class":197,"line":198},[195,2237,548],{"class":201},[195,2239,2240,2243],{"class":197,"line":256},[195,2241,2242],{"class":326},"  \"gateway\"",[195,2244,556],{"class":201},[195,2246,2247,2250],{"class":197,"line":489},[195,2248,2249],{"class":326},"    \"tailscale\"",[195,2251,556],{"class":201},[195,2253,2254,2257,2259,2262],{"class":197,"line":498},[195,2255,2256],{"class":326},"      \"mode\"",[195,2258,564],{"class":201},[195,2260,2261],{"class":303},"\"serve\"",[195,2263,570],{"class":201},[195,2265,2266,2269,2271],{"class":197,"line":506},[195,2267,2268],{"class":326},"      \"hostname\"",[195,2270,564],{"class":201},[195,2272,2273],{"class":303},"\"openclaw\"\n",[195,2275,2276],{"class":197,"line":513},[195,2277,616],{"class":201},[195,2279,2280],{"class":197,"line":520},[195,2281,622],{"class":201},[195,2283,2284],{"class":197,"line":602},[195,2285,628],{"class":201},[22,2287,2288,2289],{},"访问：",[192,2290,2291],{},"https:\u002F\u002Fopenclaw.tailnet-name.ts.net",[26,2293,2294],{"id":2294},"远程网关",[22,2296,2297],{},"在 Linux VPS 上运行网关：",[185,2299,2301],{"className":291,"code":2300,"language":293,"meta":190,"style":190},"# VPS 上\nopenclaw gateway\n\n# 本地通过 SSH 隧道连接\nssh -L 8080:localhost:8080 user@vps\n",[192,2302,2303,2308,2314,2318,2323],{"__ignoreMap":190},[195,2304,2305],{"class":197,"line":198},[195,2306,2307],{"class":516},"# VPS 上\n",[195,2309,2310,2312],{"class":197,"line":256},[195,2311,335],{"class":252},[195,2313,527],{"class":303},[195,2315,2316],{"class":197,"line":489},[195,2317,510],{"emptyLinePlaceholder":509},[195,2319,2320],{"class":197,"line":498},[195,2321,2322],{"class":516},"# 本地通过 SSH 隧道连接\n",[195,2324,2325,2328,2331,2334],{"class":197,"line":506},[195,2326,2327],{"class":252},"ssh",[195,2329,2330],{"class":326}," -L",[195,2332,2333],{"class":303}," 8080:localhost:8080",[195,2335,2336],{"class":303}," user@vps\n",[22,2338,2339],{},"或使用 Tailscale Funnel 公开访问。",[26,2341,2343],{"id":2342},"docker-部署","Docker 部署",[185,2345,2347],{"className":291,"code":2346,"language":293,"meta":190,"style":190},"docker run -d \\\n  --name openclaw \\\n  -v ~\u002F.openclaw:\u002Froot\u002F.openclaw \\\n  -p 8080:8080 \\\n  ghcr.io\u002Fopenclaw\u002Fopenclaw:latest\n",[192,2348,2349,2363,2372,2382,2392],{"__ignoreMap":190},[195,2350,2351,2354,2357,2360],{"class":197,"line":198},[195,2352,2353],{"class":252},"docker",[195,2355,2356],{"class":303}," run",[195,2358,2359],{"class":326}," -d",[195,2361,2362],{"class":326}," \\\n",[195,2364,2365,2368,2370],{"class":197,"line":256},[195,2366,2367],{"class":326},"  --name",[195,2369,304],{"class":303},[195,2371,2362],{"class":326},[195,2373,2374,2377,2380],{"class":197,"line":489},[195,2375,2376],{"class":326},"  -v",[195,2378,2379],{"class":303}," ~\u002F.openclaw:\u002Froot\u002F.openclaw",[195,2381,2362],{"class":326},[195,2383,2384,2387,2390],{"class":197,"line":498},[195,2385,2386],{"class":326},"  -p",[195,2388,2389],{"class":303}," 8080:8080",[195,2391,2362],{"class":326},[195,2393,2394],{"class":197,"line":506},[195,2395,2396],{"class":303},"  ghcr.io\u002Fopenclaw\u002Fopenclaw:latest\n",[22,2398,2399],{},"Docker Compose：",[185,2401,2405],{"className":2402,"code":2403,"language":2404,"meta":190,"style":190},"language-yaml shiki shiki-themes github-light github-dark","services:\n  openclaw:\n    image: ghcr.io\u002Fopenclaw\u002Fopenclaw:latest\n    container_name: openclaw\n    volumes:\n      - ~\u002F.openclaw:\u002Froot\u002F.openclaw\n    ports:\n      - \"8080:8080\"\n    restart: unless-stopped\n","yaml",[192,2406,2407,2416,2423,2433,2443,2450,2458,2465,2472],{"__ignoreMap":190},[195,2408,2409,2413],{"class":197,"line":198},[195,2410,2412],{"class":2411},"s9eBZ","services",[195,2414,2415],{"class":201},":\n",[195,2417,2418,2421],{"class":197,"line":256},[195,2419,2420],{"class":2411},"  openclaw",[195,2422,2415],{"class":201},[195,2424,2425,2428,2430],{"class":197,"line":489},[195,2426,2427],{"class":2411},"    image",[195,2429,564],{"class":201},[195,2431,2432],{"class":303},"ghcr.io\u002Fopenclaw\u002Fopenclaw:latest\n",[195,2434,2435,2438,2440],{"class":197,"line":498},[195,2436,2437],{"class":2411},"    container_name",[195,2439,564],{"class":201},[195,2441,2442],{"class":303},"openclaw\n",[195,2444,2445,2448],{"class":197,"line":506},[195,2446,2447],{"class":2411},"    volumes",[195,2449,2415],{"class":201},[195,2451,2452,2455],{"class":197,"line":513},[195,2453,2454],{"class":201},"      - ",[195,2456,2457],{"class":303},"~\u002F.openclaw:\u002Froot\u002F.openclaw\n",[195,2459,2460,2463],{"class":197,"line":520},[195,2461,2462],{"class":2411},"    ports",[195,2464,2415],{"class":201},[195,2466,2467,2469],{"class":197,"line":602},[195,2468,2454],{"class":201},[195,2470,2471],{"class":303},"\"8080:8080\"\n",[195,2473,2474,2477,2479],{"class":197,"line":613},[195,2475,2476],{"class":2411},"    restart",[195,2478,564],{"class":201},[195,2480,2481],{"class":303},"unless-stopped\n",[26,2483,2484],{"id":2484},"聊天命令",[22,2486,2487],{},"在聊天中发送：",[30,2489,2490,2496,2502,2508,2514,2520],{},[33,2491,2492,2495],{},[192,2493,2494],{},"\u002Fhelp"," - 显示帮助",[33,2497,2498,2501],{},[192,2499,2500],{},"\u002Freset"," - 重置会话",[33,2503,2504,2507],{},[192,2505,2506],{},"\u002Fmode auto|suggest"," - 切换模式",[33,2509,2510,2513],{},[192,2511,2512],{},"\u002Ftools"," - 列出可用工具",[33,2515,2516,2519],{},[192,2517,2518],{},"\u002Fstatus"," - 显示网关状态",[33,2521,2522,2525],{},[192,2523,2524],{},"\u002Fping"," - 测试连接",[22,2527,2528],{},"群组命令（仅所有者）：",[30,2530,2531,2537,2543],{},[33,2532,2533,2536],{},[192,2534,2535],{},"\u002Factivate"," - 激活群组",[33,2538,2539,2542],{},[192,2540,2541],{},"\u002Fdeactivate"," - 停用群组",[33,2544,2545,2548],{},[192,2546,2547],{},"\u002Fqueue on|off"," - 队列模式",[26,2550,2552],{"id":2551},"macos-应用可选","macOS 应用（可选）",[185,2554,2556],{"className":291,"code":2555,"language":293,"meta":190,"style":190},"cd apps\u002Fmacos\npnpm install\npnpm build\n\n# 签名构建（需要开发者证书）\npnpm sign\n",[192,2557,2558,2565,2571,2577,2581,2586],{"__ignoreMap":190},[195,2559,2560,2562],{"class":197,"line":198},[195,2561,484],{"class":326},[195,2563,2564],{"class":303}," apps\u002Fmacos\n",[195,2566,2567,2569],{"class":197,"line":256},[195,2568,492],{"class":252},[195,2570,495],{"class":303},[195,2572,2573,2575],{"class":197,"line":489},[195,2574,492],{"class":252},[195,2576,503],{"class":303},[195,2578,2579],{"class":197,"line":498},[195,2580,510],{"emptyLinePlaceholder":509},[195,2582,2583],{"class":197,"line":506},[195,2584,2585],{"class":516},"# 签名构建（需要开发者证书）\n",[195,2587,2588,2590],{"class":197,"line":513},[195,2589,492],{"class":252},[195,2591,2592],{"class":303}," sign\n",[22,2594,1673],{},[30,2596,2597,2599,2602,2605,2608],{},[33,2598,1687],{},[33,2600,2601],{},"语音唤醒\u002FPTT",[33,2603,2604],{},"对话模式",[33,2606,2607],{},"WebChat",[33,2609,2610],{},"调试工具",[26,2612,2613],{"id":2613},"故障排除",[185,2615,2617],{"className":291,"code":2616,"language":293,"meta":190,"style":190},"# 检查配置和安全\nopenclaw doctor\n\n# 查看日志\nopenclaw logs\n\n# 测试频道\nopenclaw channels test telegram\n\n# 重启网关\nopenclaw gateway restart\n",[192,2618,2619,2624,2631,2635,2640,2647,2651,2656,2668,2672,2677],{"__ignoreMap":190},[195,2620,2621],{"class":197,"line":198},[195,2622,2623],{"class":516},"# 检查配置和安全\n",[195,2625,2626,2628],{"class":197,"line":256},[195,2627,335],{"class":252},[195,2629,2630],{"class":303}," doctor\n",[195,2632,2633],{"class":197,"line":489},[195,2634,510],{"emptyLinePlaceholder":509},[195,2636,2637],{"class":197,"line":498},[195,2638,2639],{"class":516},"# 查看日志\n",[195,2641,2642,2644],{"class":197,"line":506},[195,2643,335],{"class":252},[195,2645,2646],{"class":303}," logs\n",[195,2648,2649],{"class":197,"line":513},[195,2650,510],{"emptyLinePlaceholder":509},[195,2652,2653],{"class":197,"line":520},[195,2654,2655],{"class":516},"# 测试频道\n",[195,2657,2658,2660,2662,2665],{"class":197,"line":602},[195,2659,335],{"class":252},[195,2661,880],{"class":303},[195,2663,2664],{"class":303}," test",[195,2666,2667],{"class":303}," telegram\n",[195,2669,2670],{"class":197,"line":613},[195,2671,510],{"emptyLinePlaceholder":509},[195,2673,2674],{"class":197,"line":619},[195,2675,2676],{"class":516},"# 重启网关\n",[195,2678,2679,2681,2684],{"class":197,"line":625},[195,2680,335],{"class":252},[195,2682,2683],{"class":303}," gateway",[195,2685,2686],{"class":303}," restart\n",[26,2688,2689],{"id":2689},"开发频道",[22,2691,2692],{},"切换到 beta\u002Fdev 频道获取最新功能：",[185,2694,2696],{"className":291,"code":2695,"language":293,"meta":190,"style":190},"openclaw update --channel beta\n",[192,2697,2698],{"__ignoreMap":190},[195,2699,2700,2702,2705,2708],{"class":197,"line":198},[195,2701,335],{"class":252},[195,2703,2704],{"class":303}," update",[195,2706,2707],{"class":326}," --channel",[195,2709,2710],{"class":303}," beta\n",[22,2712,2713],{},"频道：",[30,2715,2716,2722,2728],{},[33,2717,2718,2721],{},[192,2719,2720],{},"stable"," - 稳定版本",[33,2723,2724,2727],{},[192,2725,2726],{},"beta"," - 测试版本",[33,2729,2730,2733],{},[192,2731,2732],{},"dev"," - 开发版本",[26,2735,2736],{"id":2736},"架构",[185,2738,2743],{"className":2739,"code":2741,"language":2742},[2740],"language-text","OpenClaw Gateway\n├── Control Plane (WebSocket)\n│   ├── Sessions\n│   ├── Presence\n│   ├── Config\n│   └── Events\n├── Channels\n│   ├── WhatsApp (Baileys)\n│   ├── Telegram (grammY)\n│   ├── Discord (discord.js)\n│   └── ...\n├── Agent Runtime (Pi RPC)\n│   ├── Tool Streaming\n│   └── Block Streaming\n└── Apps (Optional)\n    ├── macOS\n    ├── iOS\n    └── Android\n","text",[192,2744,2741],{"__ignoreMap":190},[26,2746,2748],{"id":2747},"对比-nanobot","对比 nanobot",[98,2750,2751,2764],{},[101,2752,2753],{},[104,2754,2755,2758,2761],{},[107,2756,2757],{},"特性",[107,2759,2760],{},"OpenClaw",[107,2762,2763],{},"nanobot",[120,2765,2766,2777,2788,2799,2810,2820,2828,2836,2844],{},[104,2767,2768,2771,2774],{},[125,2769,2770],{},"代码量",[125,2772,2773],{},"~430,000 行",[125,2775,2776],{},"~4,000 行",[104,2778,2779,2782,2785],{},[125,2780,2781],{},"语言",[125,2783,2784],{},"TypeScript",[125,2786,2787],{},"Python",[104,2789,2790,2793,2796],{},[125,2791,2792],{},"复杂度",[125,2794,2795],{},"高",[125,2797,2798],{},"低",[104,2800,2801,2804,2807],{},[125,2802,2803],{},"功能丰富度",[125,2805,2806],{},"极高",[125,2808,2809],{},"基础",[104,2811,2812,2814,2817],{},[125,2813,62],{},[125,2815,2816],{},"✅",[125,2818,2819],{},"❌",[104,2821,2822,2824,2826],{},[125,2823,56],{},[125,2825,2816],{},[125,2827,2819],{},[104,2829,2830,2832,2834],{},[125,2831,50],{},[125,2833,2816],{},[125,2835,2819],{},[104,2837,2838,2840,2842],{},[125,2839,68],{},[125,2841,2816],{},[125,2843,2819],{},[104,2845,2846,2849,2852],{},[125,2847,2848],{},"适用场景",[125,2850,2851],{},"生产\u002F企业",[125,2853,2854],{},"个人\u002F研究",[26,2856,2857],{"id":2857},"参考链接",[30,2859,2860,2867,2874,2881,2888,2895],{},[33,2861,2862],{},[958,2863,2866],{"href":2864,"rel":2865},"https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw",[962],"GitHub 仓库",[33,2868,2869],{},[958,2870,2873],{"href":2871,"rel":2872},"https:\u002F\u002Fdocs.molt.bot\u002F",[962],"官方文档",[33,2875,2876],{},[958,2877,2880],{"href":2878,"rel":2879},"https:\u002F\u002Fdocs.molt.bot\u002Fgetting-started",[962],"入门指南",[33,2882,2883],{},[958,2884,2887],{"href":2885,"rel":2886},"https:\u002F\u002Fdocs.molt.bot\u002Fsecurity",[962],"安全指南",[33,2889,2890],{},[958,2891,2894],{"href":2892,"rel":2893},"https:\u002F\u002Fdocs.molt.bot\u002Fskills",[962],"技能开发",[33,2896,2897],{},[958,2898,2901],{"href":2899,"rel":2900},"https:\u002F\u002Fdiscord.gg\u002Fopenclaw",[962],"Discord 社区",[2903,2904,2905],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":190,"searchDepth":256,"depth":256,"links":2907},[2908,2909,2917,2918,2923,2930,2934,2935,2936,2940,2944,2948,2949,2950,2951,2952,2953,2954,2955,2956,2957],{"id":28,"depth":256,"text":28},{"id":78,"depth":256,"text":78,"children":2910},[2911,2912,2913,2914,2915,2916],{"id":82,"depth":489,"text":82},{"id":96,"depth":489,"text":96},{"id":167,"depth":489,"text":168},{"id":404,"depth":489,"text":405},{"id":437,"depth":489,"text":438},{"id":462,"depth":489,"text":463},{"id":530,"depth":256,"text":530},{"id":631,"depth":256,"text":631,"children":2919},[2920,2921,2922],{"id":634,"depth":489,"text":635},{"id":716,"depth":489,"text":717},{"id":774,"depth":489,"text":774},{"id":431,"depth":256,"text":431,"children":2924},[2925,2926,2927,2928,2929],{"id":844,"depth":489,"text":845},{"id":949,"depth":489,"text":950},{"id":1046,"depth":489,"text":1047},{"id":1140,"depth":489,"text":1141},{"id":1212,"depth":489,"text":1213},{"id":1285,"depth":256,"text":1285,"children":2931},[2932,2933],{"id":1288,"depth":489,"text":1289},{"id":1427,"depth":489,"text":1427},{"id":50,"depth":256,"text":50},{"id":1584,"depth":256,"text":1585},{"id":56,"depth":256,"text":56,"children":2937},[2938,2939],{"id":1651,"depth":489,"text":1652},{"id":1690,"depth":489,"text":1691},{"id":74,"depth":256,"text":74,"children":2941},[2942,2943],{"id":1734,"depth":489,"text":1735},{"id":1796,"depth":489,"text":1796},{"id":1993,"depth":256,"text":1993,"children":2945},[2946,2947],{"id":1996,"depth":489,"text":1997},{"id":2114,"depth":489,"text":2115},{"id":2224,"depth":256,"text":2225},{"id":2294,"depth":256,"text":2294},{"id":2342,"depth":256,"text":2343},{"id":2484,"depth":256,"text":2484},{"id":2551,"depth":256,"text":2552},{"id":2613,"depth":256,"text":2613},{"id":2689,"depth":256,"text":2689},{"id":2736,"depth":256,"text":2736},{"id":2747,"depth":256,"text":2748},{"id":2857,"depth":256,"text":2857},{"path":2959,"title":2960,"description":2961,"docType":8,"resourceKind":9,"categoryId":10,"categoryLabel":11,"updatedAt":12,"publishedAt":12,"icon":13},"\u002Fdocs\u002Fnanobot","nanobot - 超轻量级 AI 助手","香港大学开发的 4000 行代码实现的个人 AI 助手，支持多平台聊天集成",{"path":2963,"title":2964,"description":2965,"docType":8,"resourceKind":9,"categoryId":2966,"categoryLabel":2967,"updatedAt":12,"publishedAt":12,"icon":2968},"\u002Fdocs\u002Fpnpm-monorepo","pnpm 与 Monorepo","pnpm 使用技巧、workspace 配置、Monorepo 项目管理与 Turborepo","dev-environment","开发环境","i-carbon-code",[2970,2971,2972],"希望把零散经验整理成长期可复用工作流的人","正在使用 AI 工具、Agent 或自动化工作流的人","希望阅读时顺手建立自己的操作清单或收藏体系的人",[2974,2975,2976],"先浏览标题、摘要和目录，带着问题阅读会更高效","确认模型供应商、API Key、CLI 工具链与本地资源是否已准备好","如果页面里提到相关文档，尽量一起打开对照，效果通常更完整",[2978,2983,2987,2991],{"path":2979,"title":2980,"description":2981,"docType":8,"resourceKind":9,"categoryId":10,"categoryLabel":11,"updatedAt":2982,"publishedAt":2982,"icon":13},"\u002Fdocs\u002Fskills-guide","AI Agent Skills 指南","理解 skills 的作用、目录结构、编写方式，以及它与 MCP 的关系","2026-03-08",{"path":2984,"title":2985,"description":2986,"docType":8,"resourceKind":9,"categoryId":10,"categoryLabel":11,"updatedAt":12,"publishedAt":12,"icon":13},"\u002Fdocs\u002Fai-local-models","本地 AI 模型部署","Ollama、LM Studio、vLLM 本地大模型运行与 API 调用",{"path":2988,"title":2989,"description":2990,"docType":8,"resourceKind":9,"categoryId":10,"categoryLabel":11,"updatedAt":12,"publishedAt":12,"icon":13},"\u002Fdocs\u002Flocal-llm-deployment","本地 LLM 部署指南","使用 Ollama、vLLM、LM Studio 在本地运行大语言模型",{"path":2992,"title":2993,"description":2994,"docType":8,"resourceKind":9,"categoryId":10,"categoryLabel":11,"updatedAt":12,"publishedAt":12,"icon":13},"\u002Fdocs\u002Fai-coding-rules","AI 编程助手规则配置","Cursor Rules、Claude Projects、Kiro Steering 等 AI 编程助手的规则与上下文配置",1776215713920]