[{"data":1,"prerenderedAt":13407},["ShallowReactive",2],{"header-counts":3,"home-counts":6,"footer-counts":4618,"home-hot-tools":4619,"home-reviews":5152,"home-playbooks":6864,"home-news":9528},{"tools":4,"reviews":5},65,7,{"tools":4,"reviews":5,"playbooks":7,"news":8,"codingCount":9,"agentCount":10,"newTools":11},10,8,43,22,[12,1050,1812,2552,3324,3954],{"id":13,"title":14,"alternatives":15,"api_compatible":25,"body":26,"category":985,"chinese_friendly":282,"cover":986,"description":987,"domestic":988,"extension":989,"faq":990,"free":988,"github":946,"languages":1003,"meta":1005,"models":25,"navigation":322,"notSuitable":25,"opensource":322,"path":1006,"pillar":1007,"platforms":1008,"priceTable":1012,"pricing":1019,"published":1020,"relatedPlaybooks":1021,"relatedReviews":25,"score":1025,"self_host":322,"seo":1026,"slug":1027,"sources":1028,"stem":1040,"suitable":25,"tagline":1041,"tags":1042,"updated":1031,"verdict":1048,"website":938,"__hash__":1049},"tools\u002Ftools\u002Fagent\u002Fprotocol\u002Fmcp-toolbox.md","MCP Toolbox",[16,19,22],{"name":17,"url":18},"smithery","\u002Ftools\u002Fagent\u002Fprotocol\u002Fsmithery",{"name":20,"url":21},"composio","\u002Ftools\u002Fagent\u002Fprotocol\u002Fcomposio",{"name":23,"url":24},"langflow","\u002Ftools\u002Fagent\u002Fplatform\u002Flangflow",null,{"type":27,"value":28,"toc":973},"minimark",[29,34,60,63,66,161,164,178,184,188,193,222,227,258,262,604,611,614,801,804,871,875,906,909,927,930,969],[30,31,33],"h2",{"id":32},"tldr","TL;DR",[35,36,37,38,42,43,46,47,51,52,55,56,59],"p",{},"MCP Toolbox for Databases（前 ",[39,40,41],"code",{},"genai-toolbox","）是 Google 开源的 MCP 数据库网关，由 ",[39,44,45],{},"googleapis"," GitHub 组织维护，Apache 2.0 协议。它的差异点：",[48,49,50],"strong",{},"42+ 预置数据源","（AlloyDB \u002F BigQuery \u002F Cloud SQL PostgreSQL\u002FMySQL\u002FSQL Server \u002F Spanner \u002F Firestore \u002F Bigtable \u002F 自管 PostgreSQL \u002F MySQL \u002F SQL Server \u002F SQLite \u002F Oracle \u002F MongoDB \u002F Redis \u002F Elasticsearch \u002F Neo4j \u002F Snowflake \u002F ClickHouse \u002F Couchbase \u002F CockroachDB \u002F TiDB \u002F OceanBase \u002F Trino），外加 Looker \u002F Cloud Storage \u002F Cloud Monitoring \u002F Cloud Logging \u002F Dataproc \u002F Gemini Data Analytics。",[48,53,54],{},"双重角色","：(a) 即装即用的通用 MCP 服务器，让 Gemini CLI \u002F Claude Code \u002F Codex \u002F Antigravity 等 MCP 客户端 0 行代码连数据库；(b) 自定义工具框架，用 ",[39,57,58],{},"tools.yaml"," 声明参数化 SQL \u002F 语义搜索 \u002F NL2SQL，构建生产级 Agent 数据访问层。",[35,61,62],{},"适合：要让 AI Agent 安全读写企业数据库的团队；GCP 重度用户（AlloyDB \u002F Spanner \u002F BigQuery）；要审计 AI 数据库操作的合规场景；多 Agent 共享同一数据访问层的多框架团队。不适合：纯 SaaS 集成（用 Composio）；非数据库工具发现（用 Smithery）；不想引入 Go 二进制 \u002F Docker 的极简场景。",[30,64,65],{"id":65},"核心能力",[67,68,69,76,85,101,107,113,119,125,131,140,149,155],"ul",{},[70,71,72,75],"li",{},[48,73,74],{},"42+ 数据源","：GCP 全家桶 + 主流自管 DB + NoSQL + 图 DB + Lake\u002FOLAP",[70,77,78,81,82,84],{},[48,79,80],{},"声明式工具","：",[39,83,58],{}," 定义 name \u002F source \u002F 参数化 SQL \u002F 描述",[70,86,87,81,90,93,94,93,97,100],{},[48,88,89],{},"预置工具",[39,91,92],{},"execute_sql"," \u002F ",[39,95,96],{},"list_tables",[39,98,99],{},"get_table_info"," 开箱即用",[70,102,103,106],{},[48,104,105],{},"连接池","：高并发 Agent 不打挂数据库",[70,108,109,112],{},[48,110,111],{},"IAM \u002F OAuth2 \u002F OIDC","：按用户\u002F角色限制可调工具",[70,114,115,118],{},[48,116,117],{},"OpenTelemetry","：metrics + tracing 出厂集成",[70,120,121,124],{},[48,122,123],{},"多语言 SDK","：Python \u002F TypeScript \u002F Go \u002F Java（v1.0+）",[70,126,127,130],{},[48,128,129],{},"框架集成","：LangChain \u002F LlamaIndex \u002F Genkit \u002F Google ADK 原生",[70,132,133,136,137,139],{},[48,134,135],{},"动态热重载","：dev 模式改 ",[39,138,58],{}," 不需重启",[70,141,142,148],{},[48,143,144,147],{},[39,145,146],{},"--ui"," 交互模式","：本地调试 tool 的可视化界面",[70,150,151,154],{},[48,152,153],{},"MCP 协议兼容","：任何 MCP 客户端可接入",[70,156,157,160],{},[48,158,159],{},"Apache 2.0","：可商用、可自托管、可改",[30,162,163],{"id":163},"价格",[67,165,166,172],{},[70,167,168,171],{},[48,169,170],{},"OSS","：$0；完整功能 + 42+ 数据源",[70,173,174,177],{},[48,175,176],{},"GCP 托管","：只付 Cloud Run \u002F GKE \u002F DB 资源费，Toolbox 自身不收费",[179,180,181],"blockquote",{},[35,182,183],{},"对比：Composio 按 action 量收费、Smithery 托管按用量收费。Toolbox 完全自托管 → 长期成本最低，但要自己承担 ops。",[30,185,187],{"id":186},"实测gcp-alloydb-claude-code","实测（GCP + AlloyDB + Claude Code）",[35,189,190],{},[48,191,192],{},"亮点：",[67,194,195,202,207,210,213,216,219],{},[70,196,197,198,201],{},"5 分钟从 ",[39,199,200],{},"docker run"," 到 Claude Code 用 NL 查询数据库",[70,203,204,206],{},[39,205,58],{}," 声明式比写 LangChain Python tool 干净很多",[70,208,209],{},"连接池让 100 个并发 Agent 不会拖垮 PG",[70,211,212],{},"IAM 集成让生产环境合规过关",[70,214,215],{},"OpenTelemetry trace 直接连到 Cloud Trace，慢查询定位简单",[70,217,218],{},"兼容 Claude Code \u002F Gemini CLI \u002F Codex \u002F Antigravity 等多客户端，不锁定",[70,220,221],{},"Java SDK 让 Spring Boot 项目零外接",[35,223,224],{},[48,225,226],{},"踩坑：",[67,228,229,232,237,240,243,246,249,252],{},[70,230,231],{},"全英文文档，国内开发者要硬啃",[70,233,234,236],{},[39,235,58],{}," 语法有学习曲线，复杂 query 不如直接写代码",[70,238,239],{},"非 GCP 用户用不上一半预置 source",[70,241,242],{},"LLM 仍会 hallucinate 表名 \u002F 列名 → 要在 description 写清 schema",[70,244,245],{},"冷门数据源（OceanBase \u002F TiDB）prebuilt 工具浅，要写自定义",[70,247,248],{},"多客户端共享同一 Toolbox 时，权限粒度仍偏粗",[70,250,251],{},"Go binary + Docker 部署对纯 Python team 是新栈",[70,253,254,255,257],{},"改 ",[39,256,58],{}," 后 LLM context 会更新，要重启对话才彻底生效",[30,259,261],{"id":260},"上手postgresql-5-分钟","上手（PostgreSQL 5 分钟）",[263,264,269],"pre",{"className":265,"code":266,"language":267,"meta":268,"style":268},"language-bash shiki shiki-themes github-light github-dark","# 1. 拉镜像\ndocker run -p 5000:5000 -v $PWD\u002Ftools.yaml:\u002Fconfig\u002Ftools.yaml \\\n  us-central1-docker.pkg.dev\u002Fdatabase-toolbox\u002Ftoolbox\u002Ftoolbox:latest\n\n# 2. tools.yaml\nsources:\n  my-pg:\n    kind: postgres\n    host: localhost\n    port: 5432\n    database: shop\n    user: agent\n    password: ***\n\ntools:\n  search_products:\n    kind: postgres-sql\n    source: my-pg\n    description: \"Search products by name (case-insensitive, top 10)\"\n    parameters:\n      - name: name\n        type: string\n        description: Product name keyword\n    statement: |\n      SELECT id, name, price FROM products\n      WHERE name ILIKE '%' || $1 || '%' LIMIT 10\n\n# 3. 注册到 Claude Desktop（mcp config）\n{\n  \"mcpServers\": {\n    \"toolbox\": { \"url\": \"http:\u002F\u002Flocalhost:5000\u002Fmcp\" }\n  }\n}\n","bash","",[39,270,271,280,311,317,324,330,336,341,349,358,366,375,384,393,398,404,410,418,430,439,445,457,467,482,492,513,544,549,555,561,572,592,598],{"__ignoreMap":268},[272,273,276],"span",{"class":274,"line":275},"line",1,[272,277,279],{"class":278},"sJ8bj","# 1. 拉镜像\n",[272,281,283,287,291,295,298,301,305,308],{"class":274,"line":282},2,[272,284,286],{"class":285},"sScJk","docker",[272,288,290],{"class":289},"sZZnC"," run",[272,292,294],{"class":293},"sj4cs"," -p",[272,296,297],{"class":289}," 5000:5000",[272,299,300],{"class":293}," -v",[272,302,304],{"class":303},"sVt8B"," $PWD",[272,306,307],{"class":289},"\u002Ftools.yaml:\u002Fconfig\u002Ftools.yaml",[272,309,310],{"class":293}," \\\n",[272,312,314],{"class":274,"line":313},3,[272,315,316],{"class":289},"  us-central1-docker.pkg.dev\u002Fdatabase-toolbox\u002Ftoolbox\u002Ftoolbox:latest\n",[272,318,320],{"class":274,"line":319},4,[272,321,323],{"emptyLinePlaceholder":322},true,"\n",[272,325,327],{"class":274,"line":326},5,[272,328,329],{"class":278},"# 2. tools.yaml\n",[272,331,333],{"class":274,"line":332},6,[272,334,335],{"class":285},"sources:\n",[272,337,338],{"class":274,"line":5},[272,339,340],{"class":285},"  my-pg:\n",[272,342,343,346],{"class":274,"line":8},[272,344,345],{"class":285},"    kind:",[272,347,348],{"class":289}," postgres\n",[272,350,352,355],{"class":274,"line":351},9,[272,353,354],{"class":285},"    host:",[272,356,357],{"class":289}," localhost\n",[272,359,360,363],{"class":274,"line":7},[272,361,362],{"class":285},"    port:",[272,364,365],{"class":293}," 5432\n",[272,367,369,372],{"class":274,"line":368},11,[272,370,371],{"class":285},"    database:",[272,373,374],{"class":289}," shop\n",[272,376,378,381],{"class":274,"line":377},12,[272,379,380],{"class":285},"    user:",[272,382,383],{"class":289}," agent\n",[272,385,387,390],{"class":274,"line":386},13,[272,388,389],{"class":285},"    password:",[272,391,392],{"class":293}," ***\n",[272,394,396],{"class":274,"line":395},14,[272,397,323],{"emptyLinePlaceholder":322},[272,399,401],{"class":274,"line":400},15,[272,402,403],{"class":285},"tools:\n",[272,405,407],{"class":274,"line":406},16,[272,408,409],{"class":285},"  search_products:\n",[272,411,413,415],{"class":274,"line":412},17,[272,414,345],{"class":285},[272,416,417],{"class":289}," postgres-sql\n",[272,419,421,424,427],{"class":274,"line":420},18,[272,422,423],{"class":293},"    source",[272,425,426],{"class":289},":",[272,428,429],{"class":289}," my-pg\n",[272,431,433,436],{"class":274,"line":432},19,[272,434,435],{"class":285},"    description:",[272,437,438],{"class":289}," \"Search products by name (case-insensitive, top 10)\"\n",[272,440,442],{"class":274,"line":441},20,[272,443,444],{"class":285},"    parameters:\n",[272,446,448,451,454],{"class":274,"line":447},21,[272,449,450],{"class":285},"      -",[272,452,453],{"class":289}," name:",[272,455,456],{"class":289}," name\n",[272,458,459,462,464],{"class":274,"line":10},[272,460,461],{"class":293},"        type",[272,463,426],{"class":289},[272,465,466],{"class":289}," string\n",[272,468,470,473,476,479],{"class":274,"line":469},23,[272,471,472],{"class":285},"        description:",[272,474,475],{"class":289}," Product",[272,477,478],{"class":289}," name",[272,480,481],{"class":289}," keyword\n",[272,483,485,488],{"class":274,"line":484},24,[272,486,487],{"class":285},"    statement:",[272,489,491],{"class":490},"szBVR"," |\n",[272,493,495,498,501,504,507,510],{"class":274,"line":494},25,[272,496,497],{"class":285},"      SELECT",[272,499,500],{"class":289}," id,",[272,502,503],{"class":289}," name,",[272,505,506],{"class":289}," price",[272,508,509],{"class":289}," FROM",[272,511,512],{"class":289}," products\n",[272,514,516,519,521,524,527,530,534,536,538,541],{"class":274,"line":515},26,[272,517,518],{"class":285},"      WHERE",[272,520,478],{"class":289},[272,522,523],{"class":289}," ILIKE",[272,525,526],{"class":289}," '%'",[272,528,529],{"class":490}," ||",[272,531,533],{"class":532},"s4XuR"," $1",[272,535,529],{"class":490},[272,537,526],{"class":285},[272,539,540],{"class":289}," LIMIT",[272,542,543],{"class":293}," 10\n",[272,545,547],{"class":274,"line":546},27,[272,548,323],{"emptyLinePlaceholder":322},[272,550,552],{"class":274,"line":551},28,[272,553,554],{"class":278},"# 3. 注册到 Claude Desktop（mcp config）\n",[272,556,558],{"class":274,"line":557},29,[272,559,560],{"class":303},"{\n",[272,562,564,567,569],{"class":274,"line":563},30,[272,565,566],{"class":285},"  \"mcpServers\"",[272,568,426],{"class":293},[272,570,571],{"class":289}," {\n",[272,573,575,578,580,583,586,589],{"class":274,"line":574},31,[272,576,577],{"class":285},"    \"toolbox\"",[272,579,426],{"class":293},[272,581,582],{"class":289}," {",[272,584,585],{"class":289}," \"url\":",[272,587,588],{"class":289}," \"http:\u002F\u002Flocalhost:5000\u002Fmcp\"",[272,590,591],{"class":289}," }\n",[272,593,595],{"class":274,"line":594},32,[272,596,597],{"class":303},"  }\n",[272,599,601],{"class":274,"line":600},33,[272,602,603],{"class":303},"}\n",[35,605,606,607,610],{},"启动后 Claude 看到 ",[39,608,609],{},"search_products"," 工具，模型自然语言『查一下叫 iPhone 的产品』就会调用，绝不会暴露原始 DB connection。",[30,612,613],{"id":613},"对比",[615,616,617,638],"table",{},[618,619,620],"thead",{},[621,622,623,627,629,632,635],"tr",{},[624,625,626],"th",{},"维度",[624,628,14],{},[624,630,631],{},"Composio",[624,633,634],{},"Smithery",[624,636,637],{},"LangChain SQL Tool",[639,640,641,659,676,691,706,721,735,752,768,784],"tbody",{},[621,642,643,647,650,653,656],{},[644,645,646],"td",{},"焦点",[644,648,649],{},"DB + 数据源",[644,651,652],{},"SaaS 集成",[644,654,655],{},"MCP server 发现",[644,657,658],{},"DB only",[621,660,661,664,667,670,673],{},[644,662,663],{},"数据源数",[644,665,666],{},"42+",[644,668,669],{},"1000+ SaaS",[644,671,672],{},"3300+ MCP server",[644,674,675],{},"~10",[621,677,678,680,683,686,688],{},[644,679,105],{},[644,681,682],{},"✅ 内置",[644,684,685],{},"N\u002FA",[644,687,685],{},[644,689,690],{},"❌",[621,692,693,696,699,702,704],{},[644,694,695],{},"IAM",[644,697,698],{},"✅ OAuth2\u002FOIDC",[644,700,701],{},"✅ 托管 OAuth",[644,703,690],{},[644,705,690],{},[621,707,708,710,713,716,719],{},[644,709,117],{},[644,711,712],{},"✅ 原生",[644,714,715],{},"✅",[644,717,718],{},"部分",[644,720,690],{},[621,722,723,725,728,730,732],{},[644,724,80],{},[644,726,727],{},"✅ tools.yaml",[644,729,718],{},[644,731,690],{},[644,733,734],{},"代码",[621,736,737,740,743,746,749],{},[644,738,739],{},"MCP 客户端",[644,741,742],{},"✅ 全部",[644,744,745],{},"✅ + LC\u002FCrewAI\u002FAutogen",[644,747,748],{},"MCP only",[644,750,751],{},"LC only",[621,753,754,757,760,763,765],{},[644,755,756],{},"自托管",[644,758,759],{},"✅ Apache 2.0",[644,761,762],{},"❌ SaaS",[644,764,718],{},[644,766,767],{},"✅ MIT",[621,769,770,773,776,779,782],{},[644,771,772],{},"起价",[644,774,775],{},"$0",[644,777,778],{},"Free + 按 action",[644,780,781],{},"Free",[644,783,775],{},[621,785,786,789,792,795,798],{},[644,787,788],{},"适合",[644,790,791],{},"DB 重度 \u002F GCP",[644,793,794],{},"多 SaaS",[644,796,797],{},"server 发现",[644,799,800],{},"LC quick demo",[30,802,803],{"id":803},"避坑",[67,805,806,812,818,824,830,836,847,853,859,865],{},[70,807,808,811],{},[48,809,810],{},"description 写清 schema","：LLM 靠 description 决策，写好 column 名 + 业务含义",[70,813,814,817],{},[48,815,816],{},"参数化 SQL 必须用","：永远不要让 LLM 拼字符串",[70,819,820,823],{},[48,821,822],{},"最小权限 DB user","：给 Agent 专用 user + 只读 \u002F 表级权限",[70,825,826,829],{},[48,827,828],{},"OpenTelemetry 配上","：Cloud Trace 或 Grafana 接管，慢查询第一时间发现",[70,831,832,835],{},[48,833,834],{},"冷门 source","：先看 prebuilt 工具够不够，不够要自己写",[70,837,838,843,844,846],{},[48,839,840,842],{},[39,841,146],{}," 调 tool","：上线前用 ",[39,845,146],{}," 把每个 tool 跑一遍",[70,848,849,852],{},[48,850,851],{},"国内访问","：GCR 镜像国内拉慢 → 推到 ACR \u002F 阿里云镜像服务",[70,854,855,858],{},[48,856,857],{},"Spanner \u002F AlloyDB 锁定","：非 GCP 别选这两个 source",[70,860,861,864],{},[48,862,863],{},"多 Agent 共享","：用 IAM scope 隔离 prod \u002F dev \u002F 团队",[70,866,867,870],{},[48,868,869],{},"Java SDK 版本","：Spring Boot 项目锁定 toolbox-sdk-java 主版本号",[30,872,874],{"id":873},"适合-不适合","适合 \u002F 不适合",[67,876,877,880,883,886,889,892,895,898,901],{},[70,878,879],{},"✅ 要 Agent 安全读写企业数据库",[70,881,882],{},"✅ GCP 重度（AlloyDB \u002F Spanner \u002F BigQuery）",[70,884,885],{},"✅ 多 Agent 框架（LC + ADK + Claude Desktop）共享数据访问层",[70,887,888],{},"✅ 合规 \u002F 审计 \u002F 多租户",[70,890,891],{},"✅ Spring Boot \u002F Java 企业栈（Java SDK）",[70,893,894],{},"❌ 纯 SaaS 集成（Composio）",[70,896,897],{},"❌ MCP server 发现（Smithery）",[70,899,900],{},"❌ 不引入 Docker\u002FGo binary 的极简部署",[70,902,903,904],{},"❌ DB schema 频繁变动且不愿维护 ",[39,905,58],{},[30,907,908],{"id":908},"相关阅读",[67,910,911,917,922],{},[70,912,913],{},[914,915,916],"a",{"href":18},"Smithery 评测",[70,918,919],{},[914,920,921],{"href":21},"Composio 评测",[70,923,924],{},[914,925,926],{"href":24},"Langflow 评测",[30,928,929],{"id":929},"来源",[931,932,933,941,948,955,962],"ol",{},[70,934,935,936],{},"MCP Toolbox 官网 ",[914,937,938],{"href":938,"rel":939},"https:\u002F\u002Fmcp-toolbox.dev\u002F",[940],"nofollow",[70,942,943,944],{},"GitHub googleapis\u002Fmcp-toolbox（前 genai-toolbox） ",[914,945,946],{"href":946,"rel":947},"https:\u002F\u002Fgithub.com\u002Fgoogleapis\u002Fmcp-toolbox",[940],[70,949,950,951],{},"Google Cloud Blog — MCP Toolbox for Databases supports MCP ",[914,952,953],{"href":953,"rel":954},"https:\u002F\u002Fcloud.google.com\u002Fblog\u002Fproducts\u002Fai-machine-learning\u002Fmcp-toolbox-for-databases-now-supports-model-context-protocol",[940],[70,956,957,958],{},"Google Cloud Blog — MCP Toolbox Java SDK 公告 ",[914,959,960],{"href":960,"rel":961},"https:\u002F\u002Fcloud.google.com\u002Fblog\u002Ftopics\u002Fdevelopers-practitioners\u002Fannouncing-the-mcp-toolbox-java-sdk",[940],[70,963,964,965],{},"Google Codelabs — Install & Setup MCP Toolbox for AlloyDB ",[914,966,967],{"href":967,"rel":968},"https:\u002F\u002Fcodelabs.developers.google.com\u002Fgenai-toolbox-for-alloydb",[940],[970,971,972],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .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 pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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);}",{"title":268,"searchDepth":313,"depth":313,"links":974},[975,976,977,978,979,980,981,982,983,984],{"id":32,"depth":282,"text":33},{"id":65,"depth":282,"text":65},{"id":163,"depth":282,"text":163},{"id":186,"depth":282,"text":187},{"id":260,"depth":282,"text":261},{"id":613,"depth":282,"text":613},{"id":803,"depth":282,"text":803},{"id":873,"depth":282,"text":874},{"id":908,"depth":282,"text":908},{"id":929,"depth":282,"text":929},"protocol","\u002Fimg\u002Ftools\u002Fmcp-toolbox.webp","MCP Toolbox for Databases（前 GenAI Toolbox）真实评测：Google 开源的 MCP 数据库网关，让 AI Agent \u002F IDE \u002F 应用通过 MCP 协议安全访问企业数据库。差异点：42+ 数据源（AlloyDB \u002F BigQuery \u002F Cloud SQL \u002F Spanner \u002F Firestore \u002F Bigtable \u002F 自管 PG \u002F MySQL \u002F SQL Server \u002F MongoDB \u002F Redis \u002F Elasticsearch \u002F Neo4j \u002F Snowflake \u002F ClickHouse \u002F Trino 等）+ 内置连接池 + IAM 集成 + OpenTelemetry 可观测 + 声明式 tools.yaml + Python\u002FTS\u002FGo\u002FJava SDK + 兼容 LangChain \u002F LlamaIndex \u002F Genkit \u002F Google ADK + Apache 2.0。",false,"md",[991,994,997,1000],{"q":992,"a":993},"MCP Toolbox 解决什么问题？","Agent 直连数据库有三个痛点：(1) SQL 注入风险；(2) 权限控制（每个 LLM 用户能看到哪些表 \u002F 行）；(3) 工具定义重复。MCP Toolbox 用声明式 tools.yaml 把这些痛点封装：每个 tool 只能跑预定义的参数化 SQL，无法注入；IAM \u002F OAuth2 \u002F OIDC 决定哪些用户可调用哪些 tool；一次定义到处复用（LangChain \u002F ADK \u002F Claude Desktop 共享同一个 Toolbox server）。Google 给它当『企业 AI Agent 与数据库之间的 control plane』。",{"q":995,"a":996},"和直接用 MCP PostgreSQL Server 有什么区别？","MCP 官方 PostgreSQL server 是『裸 SQL 执行器』——你给它一个 connection string，Agent 直接发 SELECT。Toolbox 多了：声明式工具（不暴露原始 SQL 给 LLM）+ 连接池（高并发 Agent 不会打挂 DB）+ IAM\u002FOAuth2 鉴权 + OpenTelemetry tracing\u002Fmetrics + 多数据源 + 动态热重载工具配置。换言之 Toolbox = MCP server + 企业治理层。生产部署优先 Toolbox；开发阶段 quick demo 用裸 MCP server 就够。",{"q":998,"a":999},"必须用 GCP 吗？","不必须。Toolbox 是开源 Go 程序，能跑在任何 Docker\u002FVM 上，连任何 PostgreSQL \u002F MySQL \u002F SQL Server \u002F MongoDB \u002F Redis \u002F Elasticsearch \u002F Neo4j \u002F Snowflake \u002F ClickHouse \u002F Trino \u002F Oracle \u002F SQLite。但 Spanner \u002F AlloyDB \u002F BigQuery \u002F Bigtable \u002F Firestore \u002F Cloud Storage \u002F Cloud Monitoring 等专属源只有用 GCP 才能发挥价值。非 GCP 用户主要享受的是『连接池 + 声明式工具 + Auth + OTel』，依然有用但 GCP 用户回报最高。",{"q":1001,"a":1002},"和 Composio \u002F Smithery 怎么选？","Toolbox 专门面向『数据库 + 数据源』；Composio 是『SaaS 集成层』（GitHub \u002F Slack \u002F Gmail \u002F Notion 等 1000+ 工具）；Smithery 是『MCP server 注册中心』（去哪里发现 MCP server）。三者互补：Toolbox 解决『让 Agent 读写企业数据库』+ Composio 解决『让 Agent 用 SaaS』+ Smithery 解决『去哪儿找 MCP server』。GCP + 数据库重度场景必上 Toolbox。",[1004],"en",{},"\u002Ftools\u002Fagent\u002Fprotocol\u002Fmcp-toolbox","agent",[1009,1010,1011],"windows","macos","linux",[1013,1015],{"plan":170,"price":775,"features":1014,"notes":159},"完整功能 + 42+ 数据源 + Python\u002FTS\u002FGo\u002FJava SDK + Docker + OpenTelemetry",{"plan":176,"price":1016,"features":1017,"notes":1018},"GCP 资源费","在 Cloud Run \u002F GKE 上跑 Toolbox + 集成 IAM","无 Toolbox 单独收费","开源免费（Apache 2.0）","2026-06-21",[1022],{"name":1023,"url":1024},"Agent 数据库访问层选型","\u002Fplaybook\u002Fonboarding\u002Fagent-database-access-layer",{"power":326,"ux":313,"price":326,"cn_support":282,"stability":319},{"title":14,"description":987},"agent\u002Fprotocol\u002Fmcp-toolbox",[1029,1032,1034,1036,1038],{"name":1030,"url":938,"accessed":1031},"MCP Toolbox 官网","2026-06-24",{"name":1033,"url":946,"accessed":1031},"GitHub googleapis\u002Fmcp-toolbox",{"name":1035,"url":953,"accessed":1031},"Google Cloud Blog — MCP Toolbox 公告",{"name":1037,"url":960,"accessed":1031},"Google Cloud Blog — Java SDK 公告",{"name":1039,"url":967,"accessed":1031},"Google Codelabs — Install & Setup","tools\u002Fagent\u002Fprotocol\u002Fmcp-toolbox","Google 出品的 MCP 数据库网关——42+ 数据源 + 声明式工具 + 连接池 + IAM + OpenTelemetry",[1043,985,1044,1045,1046,1047],"mcp","database","google","opensource","apache-2.0","Google 出品的 MCP 数据库网关——42+ 数据源 + 连接池 + IAM + OpenTelemetry 一站式。GCP 用户首选；非 GCP 也能用，但价值打折。声明式 tools.yaml 学习曲线偏陡。","HHOS3sOsgzko-acUJAIuYZey47zdXqa-g31uUwfb-9o",{"id":1051,"title":634,"alternatives":1052,"api_compatible":25,"body":1059,"category":985,"chinese_friendly":313,"cover":1749,"description":1750,"domestic":988,"extension":989,"faq":1751,"free":988,"github":1704,"languages":1764,"meta":1765,"models":25,"navigation":322,"notSuitable":25,"opensource":322,"path":18,"pillar":1007,"platforms":1766,"priceTable":1768,"pricing":1784,"published":1020,"relatedPlaybooks":1785,"relatedReviews":25,"score":1789,"self_host":322,"seo":1790,"slug":1791,"sources":1792,"stem":1805,"suitable":25,"tagline":1806,"tags":1807,"updated":1031,"verdict":1810,"website":1697,"__hash__":1811},"tools\u002Ftools\u002Fagent\u002Fprotocol\u002Fsmithery.md",[1053,1054,1056],{"name":20,"url":21},{"name":1055,"url":1006},"mcp-toolbox",{"name":1057,"url":1058},"claude-desktop","\u002Ftools\u002Fagent\u002Fdesktop\u002Fclaude-desktop",{"type":27,"value":1060,"toc":1737},[1061,1063,1086,1089,1091,1163,1165,1190,1195,1199,1203,1234,1238,1264,1268,1393,1396,1398,1568,1570,1639,1641,1670,1672,1688,1690,1734],[30,1062,33],{"id":32},[35,1064,1065,1066,1069,1070,1073,1074,1077,1078,1081,1082,1085],{},"Smithery.ai 是 MCP server 的『npm registry + 一键安装器』，2024 年成立，2026 年已收录 3300+ MCP server。差异点：",[48,1067,1068],{},"一键 CLI 安装","（",[39,1071,1072],{},"npx @smithery\u002Fcli install \u003Cserver> --client claude"," 自动改配置文件）+ ",[48,1075,1076],{},"远程托管","（Smithery infra 跑 server，HTTP 直连，无需本地 Node.js）+ ",[48,1079,1080],{},"本地分发","（TypeScript bundle 一键 import）+ ",[48,1083,1084],{},"自托管注册","（用 Smithery 做 directory，server 跑你自己机器）+ TypeScript \u002F Python SDK（FastMCP v1\u002Fv2）+ STDIO\u002FHTTP 传输 + 安全扫描 + 社区评分（winnoai 4.0\u002F5，108 reviews）。",[35,1087,1088],{},"适合：Claude Desktop \u002F Cursor \u002F Windsurf \u002F Cline \u002F Codex 等 MCP 客户端用户；MCP server 开发者要发布 + 一键分发；想快速试一个 MCP server 不愿意手写 JSON 的；MCP 生态调研。不适合：极致安全 + 闭源场景（用官方 MCP Registry 或自建）；TypeScript 之外的 server 一键分发（本地 bundle 当前 TS only）；创作者要直接分成（Smithery 无 monetization）。",[30,1090,65],{"id":65},[67,1092,1093,1099,1107,1113,1119,1124,1129,1134,1139,1145,1151,1157],{},[70,1094,1095,1098],{},[48,1096,1097],{},"3300+ MCP server 注册中心","（业界最大之一）",[70,1100,1101,81,1104],{},[48,1102,1103],{},"CLI 一键安装",[39,1105,1106],{},"npx @smithery\u002Fcli install \u003Cserver> --client \u003Cclaude\u002Fcursor\u002Fwindsurf\u002Fcline\u002Fcodex>",[70,1108,1109,1112],{},[48,1110,1111],{},"三种部署","：远程托管 \u002F 本地分发 \u002F 自托管注册",[70,1114,1115,1118],{},[48,1116,1117],{},"多客户端兼容","：Claude Desktop \u002F Cursor \u002F Windsurf \u002F Cline \u002F Codex \u002F Continue 等",[70,1120,1121],{},[48,1122,1123],{},"TypeScript SDK + Python SDK（FastMCP v1\u002Fv2）",[70,1125,1126],{},[48,1127,1128],{},"STDIO + HTTP 传输",[70,1130,1131],{},[48,1132,1133],{},"安全扫描 + 版本管理 + 依赖解析",[70,1135,1136],{},[48,1137,1138],{},"社区评分 + reviews",[70,1140,1141,1144],{},[48,1142,1143],{},"分类浏览","：Development \u002F Productivity \u002F Data \u002F APIs",[70,1146,1147,1150],{},[48,1148,1149],{},"server 发布平台","：开发者 publish 自己的 server",[70,1152,1153,1156],{},[48,1154,1155],{},"基础分析","：调用量 \u002F 错误率",[70,1158,1159,1162],{},[48,1160,1161],{},"CLI 跨平台","：Win \u002F macOS \u002F Linux",[30,1164,163],{"id":163},[67,1166,1167,1172,1178,1184],{},[70,1168,1169,1171],{},[48,1170,781],{},"：$0；浏览全部 + 10 安装额度",[70,1173,1174,1177],{},[48,1175,1176],{},"Pro","：$19\u002Fmo；无限安装 + 自定义 server 托管 + 高级分析",[70,1179,1180,1183],{},[48,1181,1182],{},"Team","：$49\u002Fmo；SSO + 团队 server 注册",[70,1185,1186,1189],{},[48,1187,1188],{},"Hosted","：按用量；server 跑在 Smithery infra",[179,1191,1192],{},[35,1193,1194],{},"列出 server 永远免费、浏览永远免费；安装免费 server 有 10 次限额（Free 档）。Pro 主要解锁『无限安装 + 自定义 server 远程托管』。",[30,1196,1198],{"id":1197},"实测claude-desktop-5-个-server","实测（Claude Desktop + 5 个 server）",[35,1200,1201],{},[48,1202,192],{},[67,1204,1205,1208,1215,1218,1221,1228,1231],{},[70,1206,1207],{},"装 PostgreSQL \u002F GitHub \u002F Filesystem \u002F Slack \u002F Playwright server 全部 \u003C 30 秒",[70,1209,1210,1211,1214],{},"CLI 自动改 ",[39,1212,1213],{},"claude_desktop_config.json","，不用手写 JSON",[70,1216,1217],{},"远程托管让低配 Mac 也能跑重型 server",[70,1219,1220],{},"server 详情页有 README + 评分 + 示例 prompt，决策成本低",[70,1222,1223,1224,1227],{},"多客户端切换无痛（",[39,1225,1226],{},"--client cursor"," 换个 flag）",[70,1229,1230],{},"自托管 + 注册让企业既享发现又控运行",[70,1232,1233],{},"3300+ server 业界最广，长尾需求基本能找到",[35,1235,1236],{},[48,1237,226],{},[67,1239,1240,1243,1246,1249,1252,1255,1258,1261],{},[70,1241,1242],{},"2025-06 path traversal 漏洞（已修复，但提示要审 server）",[70,1244,1245],{},"server 质量参差，需自己看 GitHub star + 维护活跃度",[70,1247,1248],{},"部分 server 文档浅，参数靠猜",[70,1250,1251],{},"远程托管 server 偶有冷启动延迟",[70,1253,1254],{},"创作者无 monetization（开源情怀）",[70,1256,1257],{},"本地分发当前 TypeScript only",[70,1259,1260],{},"国内访问 Smithery infra 偶发慢",[70,1262,1263],{},"Free 档 10 次安装上限对长期用户太紧",[30,1265,1267],{"id":1266},"上手5-分钟","上手（5 分钟）",[263,1269,1271],{"className":265,"code":1270,"language":267,"meta":268,"style":268},"# 1. 安装 CLI\nnpm install -g @smithery\u002Fcli\n\n# 2. 搜索\nsmithery search postgres\n\n# 3. 装到 Claude Desktop\nsmithery install @modelcontextprotocol\u002Fserver-postgres --client claude\n\n# 4. 装到 Cursor\nsmithery install @modelcontextprotocol\u002Fserver-filesystem --client cursor\n\n# 5. 列出已装\nsmithery list --client claude\n\n# 发布自己的 server\nsmithery publish\n",[39,1272,1273,1278,1292,1296,1301,1310,1314,1319,1334,1338,1343,1357,1361,1366,1377,1381,1386],{"__ignoreMap":268},[272,1274,1275],{"class":274,"line":275},[272,1276,1277],{"class":278},"# 1. 安装 CLI\n",[272,1279,1280,1283,1286,1289],{"class":274,"line":282},[272,1281,1282],{"class":285},"npm",[272,1284,1285],{"class":289}," install",[272,1287,1288],{"class":293}," -g",[272,1290,1291],{"class":289}," @smithery\u002Fcli\n",[272,1293,1294],{"class":274,"line":313},[272,1295,323],{"emptyLinePlaceholder":322},[272,1297,1298],{"class":274,"line":319},[272,1299,1300],{"class":278},"# 2. 搜索\n",[272,1302,1303,1305,1308],{"class":274,"line":326},[272,1304,17],{"class":285},[272,1306,1307],{"class":289}," search",[272,1309,348],{"class":289},[272,1311,1312],{"class":274,"line":332},[272,1313,323],{"emptyLinePlaceholder":322},[272,1315,1316],{"class":274,"line":5},[272,1317,1318],{"class":278},"# 3. 装到 Claude Desktop\n",[272,1320,1321,1323,1325,1328,1331],{"class":274,"line":8},[272,1322,17],{"class":285},[272,1324,1285],{"class":289},[272,1326,1327],{"class":289}," @modelcontextprotocol\u002Fserver-postgres",[272,1329,1330],{"class":293}," --client",[272,1332,1333],{"class":289}," claude\n",[272,1335,1336],{"class":274,"line":351},[272,1337,323],{"emptyLinePlaceholder":322},[272,1339,1340],{"class":274,"line":7},[272,1341,1342],{"class":278},"# 4. 装到 Cursor\n",[272,1344,1345,1347,1349,1352,1354],{"class":274,"line":368},[272,1346,17],{"class":285},[272,1348,1285],{"class":289},[272,1350,1351],{"class":289}," @modelcontextprotocol\u002Fserver-filesystem",[272,1353,1330],{"class":293},[272,1355,1356],{"class":289}," cursor\n",[272,1358,1359],{"class":274,"line":377},[272,1360,323],{"emptyLinePlaceholder":322},[272,1362,1363],{"class":274,"line":386},[272,1364,1365],{"class":278},"# 5. 列出已装\n",[272,1367,1368,1370,1373,1375],{"class":274,"line":395},[272,1369,17],{"class":285},[272,1371,1372],{"class":289}," list",[272,1374,1330],{"class":293},[272,1376,1333],{"class":289},[272,1378,1379],{"class":274,"line":400},[272,1380,323],{"emptyLinePlaceholder":322},[272,1382,1383],{"class":274,"line":406},[272,1384,1385],{"class":278},"# 发布自己的 server\n",[272,1387,1388,1390],{"class":274,"line":412},[272,1389,17],{"class":285},[272,1391,1392],{"class":289}," publish\n",[35,1394,1395],{},"安装后重启 Claude \u002F Cursor \u002F Windsurf，MCP server 自动 spawn，模型即可调用。",[30,1397,613],{"id":613},[615,1399,1400,1418],{},[618,1401,1402],{},[621,1403,1404,1406,1408,1411,1414,1416],{},[624,1405,626],{},[624,1407,634],{},[624,1409,1410],{},"官方 MCP Registry",[624,1412,1413],{},"mcp.so",[624,1415,631],{},[624,1417,14],{},[639,1419,1420,1439,1455,1469,1488,1504,1519,1535,1550],{},[621,1421,1422,1425,1428,1431,1434,1436],{},[644,1423,1424],{},"server 数",[644,1426,1427],{},"3300+",[644,1429,1430],{},"命名空间验证",[644,1432,1433],{},"大目录",[644,1435,669],{},[644,1437,1438],{},"42+ DB",[621,1440,1441,1444,1447,1449,1451,1453],{},[644,1442,1443],{},"一键 CLI",[644,1445,1446],{},"✅ 旗舰",[644,1448,690],{},[644,1450,690],{},[644,1452,685],{},[644,1454,685],{},[621,1456,1457,1459,1461,1463,1465,1467],{},[644,1458,1076],{},[644,1460,715],{},[644,1462,690],{},[644,1464,690],{},[644,1466,715],{},[644,1468,756],{},[621,1470,1471,1474,1477,1480,1482,1485],{},[644,1472,1473],{},"多客户端配置",[644,1475,1476],{},"✅ 自动",[644,1478,1479],{},"❌ 手动",[644,1481,690],{},[644,1483,1484],{},"LC\u002FCrewAI\u002FAutogen",[644,1486,1487],{},"MCP",[621,1489,1490,1493,1495,1497,1499,1502],{},[644,1491,1492],{},"安全扫描",[644,1494,715],{},[644,1496,690],{},[644,1498,690],{},[644,1500,1501],{},"沙箱",[644,1503,690],{},[621,1505,1506,1508,1510,1513,1515,1517],{},[644,1507,756],{},[644,1509,715],{},[644,1511,1512],{},"✅ Docker",[644,1514,690],{},[644,1516,690],{},[644,1518,715],{},[621,1520,1521,1523,1525,1528,1530,1532],{},[644,1522,772],{},[644,1524,781],{},[644,1526,1527],{},"Free OSS",[644,1529,781],{},[644,1531,778],{},[644,1533,1534],{},"$0 OSS",[621,1536,1537,1540,1542,1544,1546,1548],{},[644,1538,1539],{},"创作者分成",[644,1541,690],{},[644,1543,690],{},[644,1545,690],{},[644,1547,690],{},[644,1549,690],{},[621,1551,1552,1554,1557,1560,1563,1565],{},[644,1553,788],{},[644,1555,1556],{},"日常装 \u002F 发现",[644,1558,1559],{},"命名空间权威",[644,1561,1562],{},"大目录浏览",[644,1564,652],{},[644,1566,1567],{},"DB 网关",[30,1569,803],{"id":803},[67,1571,1572,1582,1592,1598,1604,1610,1616,1621,1627,1633],{},[70,1573,1574,1577,1578,1581],{},[48,1575,1576],{},"server 来源审查","：优先 ",[39,1579,1580],{},"@modelcontextprotocol\u002F*"," 等官方组织",[70,1583,1584,1587,1588,1591],{},[48,1585,1586],{},"锁定版本","：生产环境 ",[39,1589,1590],{},"--version"," 锁定，不要 latest",[70,1593,1594,1597],{},[48,1595,1596],{},"隔离 token","：每个 server 用独立 OAuth scope \u002F API key",[70,1599,1600,1603],{},[48,1601,1602],{},"filesystem server 路径限制","：明确白名单目录，避免 path traversal",[70,1605,1606,1609],{},[48,1607,1608],{},"远程托管延迟","：高频调用用本地；低频用 hosted 省心",[70,1611,1612,1615],{},[48,1613,1614],{},"重启客户端","：装完必须重启 Claude Desktop \u002F Cursor，否则不加载",[70,1617,1618,1620],{},[48,1619,851],{},"：CLI 走 npm registry 国内偶发慢，用 cnpm \u002F 镜像",[70,1622,1623,1626],{},[48,1624,1625],{},"付费档","：Pro 主要换『无限安装 + 自定义 server hosting』，没此需求 Free 够",[70,1628,1629,1632],{},[48,1630,1631],{},"官方 Registry 双重发布","：发布到 Smithery 同时发到 modelcontextprotocol.io，覆盖更广",[70,1634,1635,1638],{},[48,1636,1637],{},"2025-06 漏洞","：CLI 升到最新版（已修复）",[30,1640,874],{"id":873},[67,1642,1643,1646,1649,1652,1655,1658,1661,1664,1667],{},[70,1644,1645],{},"✅ Claude Desktop \u002F Cursor \u002F Windsurf \u002F Cline \u002F Codex 用户",[70,1647,1648],{},"✅ 快速试 server 不愿手写 JSON",[70,1650,1651],{},"✅ MCP server 开发者要分发",[70,1653,1654],{},"✅ MCP 生态调研",[70,1656,1657],{},"✅ 团队共享 server 注册",[70,1659,1660],{},"❌ 极致安全 + 闭源（用官方 Registry \u002F 自建）",[70,1662,1663],{},"❌ 创作者要分成（Smithery 无 monetization）",[70,1665,1666],{},"❌ 非 TypeScript server 本地分发",[70,1668,1669],{},"❌ 完全离线 \u002F 内网（注册中心在公网）",[30,1671,908],{"id":908},[67,1673,1674,1678,1683],{},[70,1675,1676],{},[914,1677,921],{"href":21},[70,1679,1680],{},[914,1681,1682],{"href":1006},"MCP Toolbox 评测",[70,1684,1685],{},[914,1686,1687],{"href":1058},"Claude Desktop 评测",[30,1689,929],{"id":929},[931,1691,1692,1699,1706,1713,1720,1727],{},[70,1693,1694,1695],{},"Smithery 官网 + Pricing ",[914,1696,1697],{"href":1697,"rel":1698},"https:\u002F\u002Fsmithery.ai",[940],[70,1700,1701,1702],{},"Smithery CLI GitHub ",[914,1703,1704],{"href":1704,"rel":1705},"https:\u002F\u002Fgithub.com\u002Fsmithery-ai\u002Fcli",[940],[70,1707,1708,1709],{},"winnoai — Smithery Review 2026 + 4.0\u002F5 + 108 reviews ",[914,1710,1711],{"href":1711,"rel":1712},"https:\u002F\u002Fwinnoai.com\u002Fen\u002Ftools\u002Fsmithery",[940],[70,1714,1715,1716],{},"MCPize — Smithery Complete Guide 2026 + 3305 server + path traversal 漏洞 ",[914,1717,1718],{"href":1718,"rel":1719},"https:\u002F\u002Fmcpize.com\u002Falternatives\u002Fsmithery",[940],[70,1721,1722,1723],{},"Augment Code — Official MCP Registry 对比 ",[914,1724,1725],{"href":1725,"rel":1726},"https:\u002F\u002Fwww.augmentcode.com\u002Fmcp\u002Fmcp-registry",[940],[70,1728,1729,1730],{},"CallSphere — MCP Registry Catalogs 2026 (Smithery vs mcp.so) ",[914,1731,1732],{"href":1732,"rel":1733},"https:\u002F\u002Fcallsphere.ai\u002Fblog\u002Fvw4g-mcp-registry-catalogs-smithery-mcp-so-comparison-2026",[940],[970,1735,1736],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .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);}",{"title":268,"searchDepth":313,"depth":313,"links":1738},[1739,1740,1741,1742,1743,1744,1745,1746,1747,1748],{"id":32,"depth":282,"text":33},{"id":65,"depth":282,"text":65},{"id":163,"depth":282,"text":163},{"id":1197,"depth":282,"text":1198},{"id":1266,"depth":282,"text":1267},{"id":613,"depth":282,"text":613},{"id":803,"depth":282,"text":803},{"id":873,"depth":282,"text":874},{"id":908,"depth":282,"text":908},{"id":929,"depth":282,"text":929},"\u002Fimg\u002Ftools\u002Fsmithery.webp","Smithery.ai 真实评测：MCP server 的『npm registry』，2024 年成立，2026 年已收录 3300+ MCP server。差异点：一键 CLI 安装到 Claude Desktop \u002F Cursor \u002F Windsurf \u002F Cline \u002F Codex 等 MCP 客户端 + 远程托管（Smithery infra 自动扩缩）+ 本地分发（TypeScript bundle）+ 自托管注册 + TypeScript \u002F Python SDK（FastMCP v1\u002Fv2）+ STDIO\u002FHTTP 传输 + 安全扫描 + 社区评分。",[1752,1755,1758,1761],{"q":1753,"a":1754},"Smithery 解决什么问题？","MCP（Model Context Protocol）是 Anthropic 2024 开源的标准，让 AI 模型通过统一协议调用外部工具。问题是每个 MCP server 要单独 clone \u002F 配 npm \u002F 改 Claude Desktop JSON \u002F 启动——每接一个 server 要 10-20 分钟。Smithery 做三件事：(1) Registry：收录 3300+ MCP server，按类别 \u002F 评分搜索；(2) 一键安装 CLI：`npx @smithery\u002Fcli install \u003Cserver> --client claude` 自动改 Claude\u002FCursor\u002FWindsurf 配置文件；(3) 远程托管：把 server 跑在 Smithery infra，AI 客户端用 HTTP 直连，无需本地 Node.js。",{"q":1756,"a":1757},"和 mcp.so \u002F 官方 MCP Registry \u002F Glama \u002F PulseMCP 怎么选？","2026 年 MCP 注册中心已经四分天下：(1) 官方 MCP Registry（modelcontextprotocol.io）= 命名空间验证 + REST API，6.6K star，权威但没有一键安装；(2) Smithery = 一键 CLI + 远程托管 + 3300+ server，体验最好但创作者不分成；(3) mcp.so \u002F Glama = 大目录，无 CLI 集成；(4) PulseMCP = 偏新闻 + 趋势。日常装 server 用 Smithery，发布到官方注册中心扩大影响力。",{"q":1759,"a":1760},"Smithery 装的 server 安全吗？","Smithery 本身只做索引 + CLI 安装，server 代码是社区上传。2025-06 GitGuardian 披露过 Smithery 平台 path traversal 漏洞（已修复）。建议：(1) 只装 star 多 \u002F 社区评分高的 server；(2) 看 GitHub repo 是否来自官方组织（如 `@modelcontextprotocol\u002F*`）；(3) 生产环境用自托管 + 锁定版本 + 启动前 audit；(4) 启用 Smithery 安全扫描 + Pro 档的 server 审核报告。",{"q":1762,"a":1763},"和 Composio \u002F MCP Toolbox 怎么选？","Smithery = 『去哪儿找 MCP server + 一键装』；Composio = 『1000+ SaaS 工具 + 托管 OAuth + 多框架』；MCP Toolbox = 『42+ 数据源 + 连接池 + IAM』。三者互补：用 Smithery 找 server \u002F Composio 集成 SaaS \u002F Toolbox 接数据库。Claude Desktop \u002F Cursor 用户日常先装 Smithery；生产 agent 平台叠加 Composio + Toolbox。",[1004],{},[1009,1010,1011,1767],"web",[1769,1772,1776,1780],{"plan":781,"price":775,"features":1770,"notes":1771},"浏览全部 server + 10 安装额度 + 基础分析 + 社区支持","学习 \u002F 试水",{"plan":1176,"price":1773,"features":1774,"notes":1775},"$19\u002Fmo","无限安装 + 高级分析 + 优先支持 + 自定义 server 托管","个人开发者",{"plan":1182,"price":1777,"features":1778,"notes":1779},"$49\u002Fmo","团队管理 + 共享 server 注册 + SSO + 专属支持","团队部署",{"plan":1188,"price":1781,"features":1782,"notes":1783},"按用量","Smithery 远程托管 server + 自动扩缩 + 监控","生产 server","免费浏览 + 免费列出 \u002F Pro $19\u002Fmo 无限安装 \u002F Team $49\u002Fmo \u002F 托管按用量",[1786],{"name":1787,"url":1788},"MCP server 选型与安装 SOP","\u002Fplaybook\u002Fonboarding\u002Fmcp-server-selection",{"power":319,"ux":319,"price":326,"cn_support":313,"stability":313},{"title":634,"description":1750},"agent\u002Fprotocol\u002Fsmithery",[1793,1795,1797,1799,1801,1803],{"name":1794,"url":1697,"accessed":1031},"Smithery 官网",{"name":1796,"url":1704,"accessed":1031},"Smithery CLI GitHub",{"name":1798,"url":1711,"accessed":1031},"winnoai — Smithery Review 2026 + 4.0\u002F5 + 108",{"name":1800,"url":1718,"accessed":1031},"MCPize — Smithery Complete Guide 2026",{"name":1802,"url":1725,"accessed":1031},"Augment Code — Official MCP Registry",{"name":1804,"url":1732,"accessed":1031},"CallSphere — MCP Registry Catalogs 2026","tools\u002Fagent\u002Fprotocol\u002Fsmithery","MCP server 注册中心——3300+ server + 一键安装 + 远程托管 + CLI + 多客户端",[1043,985,1808,1809,1046],"server-registry","marketplace","MCP 生态的 npm + 一键安装器。3300+ server 业界最广，找 server 用它没毛病。但 server 质量参差，生产用要自己审 + 注意 2025-06 的 path traversal 漏洞史。","UHhUFNFgrJVRUTGLlEZEJu9Zc3sbIT8xBbXCj-dWo7c",{"id":1813,"title":1814,"alternatives":1815,"api_compatible":25,"body":1823,"category":2485,"chinese_friendly":313,"cover":2486,"description":2487,"domestic":988,"extension":989,"faq":2488,"free":988,"github":25,"languages":2501,"meta":2502,"models":25,"navigation":322,"notSuitable":25,"opensource":322,"path":2503,"pillar":1007,"platforms":2504,"priceTable":2505,"pricing":2523,"published":1020,"relatedPlaybooks":2524,"relatedReviews":25,"score":2528,"self_host":988,"seo":2529,"slug":2530,"sources":2531,"stem":2544,"suitable":25,"tagline":2545,"tags":2546,"updated":1031,"verdict":2550,"website":2433,"__hash__":2551},"tools\u002Ftools\u002Fagent\u002Fskills\u002Fclaude-skills.md","Claude Skills",[1816,1819,1822],{"name":1817,"url":1818},"cursor-rules-hub","\u002Ftools\u002Fagent\u002Fskills\u002Fcursor-rules-hub",{"name":1820,"url":1821},"gpt-store","\u002Ftools\u002Fagent\u002Fskills\u002Fgpt-store",{"name":1057,"url":1058},{"type":27,"value":1824,"toc":2473},[1825,1827,1846,1849,1851,1932,1934,1965,1970,1974,1978,2004,2008,2034,2038,2046,2051,2139,2142,2144,2305,2307,2375,2377,2406,2408,2424,2426,2470],[30,1826,33],{"id":32},[35,1828,1829,1830,1833,1834,1837,1838,1841,1842,1845],{},"Claude Skills 是 Anthropic 推出的 Agent 能力系统：一个 SKILL.md 文件 = 一组能力，Claude 看到匹配任务自动按需加载，不污染 context。配合 2026-03-06 上线的 ",[48,1831,1832],{},"Claude Marketplace","（B2B 企业版『App Store』，首批 Snowflake \u002F GitLab \u002F Harvey AI \u002F Replit \u002F Rogo \u002F Lovable Labs，Anthropic ",[48,1835,1836],{},"零佣金","），构成 Anthropic 在 Agent 能力分发上的双层架构：(1) ",[48,1839,1840],{},"协议层","：SKILL.md 跨 Claude \u002F Cursor \u002F Codex CLI \u002F Windsurf \u002F Copilot \u002F MCP 兼容工具；(2) ",[48,1843,1844],{},"分发层","：Claude Marketplace 让企业用已有 Anthropic 年度承诺额度直接采购第三方 Claude-powered 软件。",[35,1847,1848],{},"适合：Claude Code \u002F Claude Desktop 用户；要复用 Agent 工作流的团队；要写一份能力跑多工具的（SKILL.md 跨平台）；企业有 Anthropic 承诺额度想统一 AI 采购。不适合：纯非 Claude 栈 + 不想学 SKILL.md（用 .cursorrules）；C 端 monetize（用 GPT Store）；要 100% 控制 + 闭源 + 自托管（自己用 prompt + RAG）。",[30,1850,65],{"id":65},[67,1852,1853,1859,1865,1879,1885,1891,1896,1902,1908,1914,1920,1926],{},[70,1854,1855,1858],{},[48,1856,1857],{},"SKILL.md 协议","：一个目录 = 一个 Skill，YAML frontmatter + Markdown 步骤",[70,1860,1861,1864],{},[48,1862,1863],{},"按需加载","：Claude 看到匹配任务才注入，不污染 context",[70,1866,1867,81,1870,93,1873,93,1876],{},[48,1868,1869],{},"支持脚本 + 模板 + 参考",[39,1871,1872],{},"scripts\u002F",[39,1874,1875],{},"templates\u002F",[39,1877,1878],{},"references\u002F",[70,1880,1881,1884],{},[48,1882,1883],{},"触发条件","：description + 关键词，Claude 自主判断",[70,1886,1887,1890],{},[48,1888,1889],{},"跨工具开放","：SKILL.md 标准跑在 Cursor \u002F Codex CLI \u002F Windsurf \u002F Copilot \u002F MCP",[70,1892,1893,1895],{},[48,1894,1832],{},"（2026-03）：企业承诺额度采购第三方 Claude 软件，零佣金",[70,1897,1898,1901],{},[48,1899,1900],{},"首批合作伙伴","：Snowflake \u002F GitLab \u002F Harvey AI \u002F Replit \u002F Rogo \u002F Lovable Labs",[70,1903,1904,1907],{},[48,1905,1906],{},"企业能力","：SSO \u002F audit \u002F 私有 Skills \u002F 高 context",[70,1909,1910,1913],{},[48,1911,1912],{},"Claude Code 集成","：Claude Code 自带 skill 系统",[70,1915,1916,1919],{},[48,1917,1918],{},"社区共享","：GitHub + skills-hub.ai 等聚合（4400+ rules\u002Fskills）",[70,1921,1922,1925],{},[48,1923,1924],{},"可 git 版本化","：Skill 就是代码仓库",[70,1927,1928,1931],{},[48,1929,1930],{},"diff \u002F review 友好","：能力变更走 PR 流程",[30,1933,163],{"id":163},[67,1935,1936,1942,1948,1954,1960],{},[70,1937,1938,1941],{},[48,1939,1940],{},"Claude Free","：$0",[70,1943,1944,1947],{},[48,1945,1946],{},"Claude Pro","：$20\u002Fmo（个人 Skills 库）",[70,1949,1950,1953],{},[48,1951,1952],{},"Claude Team","：$30\u002Fseat\u002Fmo（团队共享）",[70,1955,1956,1959],{},[48,1957,1958],{},"Claude Enterprise","：联系销售（SSO + audit + 私有）",[70,1961,1962,1964],{},[48,1963,1832],{},"：承诺额度抵扣，Anthropic 零佣金",[179,1966,1967],{},[35,1968,1969],{},"Anthropic 2026 公开数据：run-rate revenue $14B，年增长 10x，年度花费 $100k+ 客户数同比 7x。Marketplace 是这群企业的采购统一入口。",[30,1971,1973],{"id":1972},"实测claude-code-自定义-skill","实测（Claude Code + 自定义 Skill）",[35,1975,1976],{},[48,1977,192],{},[67,1979,1980,1983,1986,1989,1992,1995,1998,2001],{},[70,1981,1982],{},"5 分钟写一个 deploy-to-vercel skill，Claude 看到『部署』自动加载",[70,1984,1985],{},"按需加载比 .cursorrules 全局注入省 30-50% token",[70,1987,1988],{},"Skill 可附 scripts + templates + references，复杂任务一站式",[70,1990,1991],{},"SKILL.md 标准在 Cursor \u002F Codex CLI 也能消费，跨工具复用",[70,1993,1994],{},"Claude Marketplace 让企业采购 AI 软件不用走 procurement",[70,1996,1997],{},"Snowflake \u002F GitLab \u002F Harvey AI 等大客户背书 = 生态正在成熟",[70,1999,2000],{},"git diff 友好，PR review 能力变更",[70,2002,2003],{},"社区已有 skills-hub.ai 等聚合，4400+ rules\u002Fskills 可选",[35,2005,2006],{},[48,2007,226],{},[67,2009,2010,2013,2016,2019,2022,2025,2028,2031],{},[70,2011,2012],{},"SKILL.md 协议官方文档仍在演化，cutting-edge feature 偶有 breaking change",[70,2014,2015],{},"触发逻辑黑盒——Skill 偶尔不被加载，要靠 description 关键词调优",[70,2017,2018],{},"中文 SKILL.md 触发偶发漏，关键词加英文 fallback 更稳",[70,2020,2021],{},"Claude Marketplace 当前 limited preview，国内企业暂无法采购",[70,2023,2024],{},"国内访问 Claude 仍受限，需正规渠道",[70,2026,2027],{},"Skill 之间冲突时优先级文档不清",[70,2029,2030],{},"企业 audit log 在 Pro 档不全",[70,2032,2033],{},"跨工具兼容性差异：Cursor 对 globs 友好，Codex 对 always-attached 友好",[30,2035,2037],{"id":2036},"上手5-分钟写一个-skill","上手（5 分钟写一个 Skill）",[263,2039,2044],{"className":2040,"code":2042,"language":2043},[2041],"language-text","my-skills\u002F\n  deploy-to-vercel\u002F\n    SKILL.md\n    scripts\u002F\n      deploy.sh\n    templates\u002F\n      vercel.json\n","text",[39,2045,2042],{"__ignoreMap":268},[35,2047,2048,81],{},[39,2049,2050],{},"SKILL.md",[263,2052,2056],{"className":2053,"code":2054,"language":2055,"meta":268,"style":268},"language-markdown shiki shiki-themes github-light github-dark","---\nname: deploy-to-vercel\ndescription: Deploy a Nuxt \u002F Next project to Vercel production\ntriggers: [\"deploy to vercel\", \"部署到 Vercel\", \"vercel prod\"]\n---\n\n## When to use\nUser asks to deploy a Nuxt\u002FNext project to Vercel production.\n\n## Steps\n1. Verify `vercel.json` exists (use `templates\u002Fvercel.json` if missing).\n2. Run `pnpm build && vercel --prod`.\n3. Return deployment URL + log tail.\n\n## Pitfalls\n- 不要在 dev server 运行时 build（FSWatcher 冲突）。\n- 检查 `NUXT_PUBLIC_*` 环境变量是否在 Vercel project 配置。\n","markdown",[39,2057,2058,2063,2068,2073,2078,2082,2086,2091,2096,2100,2105,2110,2115,2120,2124,2129,2134],{"__ignoreMap":268},[272,2059,2060],{"class":274,"line":275},[272,2061,2062],{},"---\n",[272,2064,2065],{"class":274,"line":282},[272,2066,2067],{},"name: deploy-to-vercel\n",[272,2069,2070],{"class":274,"line":313},[272,2071,2072],{},"description: Deploy a Nuxt \u002F Next project to Vercel production\n",[272,2074,2075],{"class":274,"line":319},[272,2076,2077],{},"triggers: [\"deploy to vercel\", \"部署到 Vercel\", \"vercel prod\"]\n",[272,2079,2080],{"class":274,"line":326},[272,2081,2062],{},[272,2083,2084],{"class":274,"line":332},[272,2085,323],{"emptyLinePlaceholder":322},[272,2087,2088],{"class":274,"line":5},[272,2089,2090],{},"## When to use\n",[272,2092,2093],{"class":274,"line":8},[272,2094,2095],{},"User asks to deploy a Nuxt\u002FNext project to Vercel production.\n",[272,2097,2098],{"class":274,"line":351},[272,2099,323],{"emptyLinePlaceholder":322},[272,2101,2102],{"class":274,"line":7},[272,2103,2104],{},"## Steps\n",[272,2106,2107],{"class":274,"line":368},[272,2108,2109],{},"1. Verify `vercel.json` exists (use `templates\u002Fvercel.json` if missing).\n",[272,2111,2112],{"class":274,"line":377},[272,2113,2114],{},"2. Run `pnpm build && vercel --prod`.\n",[272,2116,2117],{"class":274,"line":386},[272,2118,2119],{},"3. Return deployment URL + log tail.\n",[272,2121,2122],{"class":274,"line":395},[272,2123,323],{"emptyLinePlaceholder":322},[272,2125,2126],{"class":274,"line":400},[272,2127,2128],{},"## Pitfalls\n",[272,2130,2131],{"class":274,"line":406},[272,2132,2133],{},"- 不要在 dev server 运行时 build（FSWatcher 冲突）。\n",[272,2135,2136],{"class":274,"line":412},[272,2137,2138],{},"- 检查 `NUXT_PUBLIC_*` 环境变量是否在 Vercel project 配置。\n",[35,2140,2141],{},"Claude 看到『部署到 Vercel』自动加载这个 Skill 并按 Steps 执行。",[30,2143,613],{"id":613},[615,2145,2146,2163],{},[618,2147,2148],{},[621,2149,2150,2152,2154,2157,2160],{},[624,2151,626],{},[624,2153,1814],{},[624,2155,2156],{},"Cursor Rules",[624,2158,2159],{},"GPT Custom GPT",[624,2161,2162],{},"LangChain Tool",[639,2164,2165,2182,2198,2214,2230,2244,2257,2274,2289],{},[621,2166,2167,2170,2173,2176,2179],{},[644,2168,2169],{},"加载方式",[644,2171,2172],{},"按需",[644,2174,2175],{},"全局注入",[644,2177,2178],{},"永久驻留",[644,2180,2181],{},"代码注册",[621,2183,2184,2187,2190,2193,2196],{},[644,2185,2186],{},"context 污染",[644,2188,2189],{},"低",[644,2191,2192],{},"高",[644,2194,2195],{},"中",[644,2197,685],{},[621,2199,2200,2203,2206,2209,2212],{},[644,2201,2202],{},"跨工具",[644,2204,2205],{},"✅ SKILL.md 标准",[644,2207,2208],{},"Cursor only",[644,2210,2211],{},"ChatGPT only",[644,2213,751],{},[621,2215,2216,2219,2222,2224,2227],{},[644,2217,2218],{},"写法",[644,2220,2221],{},"Markdown",[644,2223,2221],{},[644,2225,2226],{},"图形 + 自然语言",[644,2228,2229],{},"Python",[621,2231,2232,2235,2237,2239,2242],{},[644,2233,2234],{},"模板 + 脚本",[644,2236,715],{},[644,2238,690],{},[644,2240,2241],{},"Knowledge 文件",[644,2243,734],{},[621,2245,2246,2249,2251,2253,2255],{},[644,2247,2248],{},"git 友好",[644,2250,715],{},[644,2252,715],{},[644,2254,690],{},[644,2256,715],{},[621,2258,2259,2262,2265,2268,2271],{},[644,2260,2261],{},"企业分发",[644,2263,2264],{},"✅ Marketplace",[644,2266,2267],{},"团队同步",[644,2269,2270],{},"GPT Store",[644,2272,2273],{},"自建",[621,2275,2276,2278,2281,2284,2287],{},[644,2277,772],{},[644,2279,2280],{},"$20\u002Fmo",[644,2282,2283],{},"Cursor $20\u002Fmo",[644,2285,2286],{},"ChatGPT Plus $20",[644,2288,170],{},[621,2290,2291,2293,2296,2299,2302],{},[644,2292,788],{},[644,2294,2295],{},"Claude + 跨工具",[644,2297,2298],{},"Cursor 项目",[644,2300,2301],{},"C 端 GPT",[644,2303,2304],{},"LC 项目",[30,2306,803],{"id":803},[67,2308,2309,2315,2321,2327,2333,2339,2352,2358,2363,2369],{},[70,2310,2311,2314],{},[48,2312,2313],{},"description 写关键词","：中文 + 英文 + 同义词都列，提高触发率",[70,2316,2317,2320],{},[48,2318,2319],{},"Skill 粒度","：一个 Skill 解决一类任务，过粗 \u002F 过细都降效",[70,2322,2323,2326],{},[48,2324,2325],{},"triggers 字段","：明确高频触发词，减少黑盒",[70,2328,2329,2332],{},[48,2330,2331],{},"scripts 幂等","：可重跑不副作用",[70,2334,2335,2338],{},[48,2336,2337],{},"templates 完整","：让 Skill 自给自足，不依赖外部",[70,2340,2341,2344,2345,93,2348,2351],{},[48,2342,2343],{},"冲突优先级","：同类 Skill 用不同 name 前缀（",[39,2346,2347],{},"vercel-",[39,2349,2350],{},"netlify-","）",[70,2353,2354,2357],{},[48,2355,2356],{},"企业 audit","：Pro 档 audit 不全，要 Enterprise",[70,2359,2360,2362],{},[48,2361,851],{},"：Claude 走正规渠道；Marketplace 暂时国内不可用",[70,2364,2365,2368],{},[48,2366,2367],{},"跨工具发布","：用 skills-hub.ai 等聚合分发到 Cursor \u002F Codex",[70,2370,2371,2374],{},[48,2372,2373],{},"不要藏密钥","：SKILL.md 仓库 review 时容易泄露",[30,2376,874],{"id":873},[67,2378,2379,2382,2385,2388,2391,2394,2397,2400,2403],{},[70,2380,2381],{},"✅ Claude Code \u002F Claude Desktop 用户",[70,2383,2384],{},"✅ 要写一份能力跑多工具",[70,2386,2387],{},"✅ 团队 Agent 工作流共享",[70,2389,2390],{},"✅ 企业有 Anthropic 承诺额度",[70,2392,2393],{},"✅ 能力 git 版本化 + PR review",[70,2395,2396],{},"❌ 纯非 Claude 栈 + 不学 SKILL.md",[70,2398,2399],{},"❌ C 端 monetize（GPT Store）",[70,2401,2402],{},"❌ 100% 闭源 + 完全自托管",[70,2404,2405],{},"❌ 不写 Markdown 的非技术用户",[30,2407,908],{"id":908},[67,2409,2410,2415,2420],{},[70,2411,2412],{},[914,2413,2414],{"href":1818},"Cursor Rules Hub 评测",[70,2416,2417],{},[914,2418,2419],{"href":1821},"GPT Store 评测",[70,2421,2422],{},[914,2423,1687],{"href":1058},[30,2425,929],{"id":929},[931,2427,2428,2435,2442,2449,2456,2463],{},[70,2429,2430,2431],{},"Claude Skills 官方文档 ",[914,2432,2433],{"href":2433,"rel":2434},"https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fagents\u002Fskills",[940],[70,2436,2437,2438],{},"TNW — Anthropic launches marketplace 2026-03-07（零佣金、Snowflake\u002FHarvey\u002FReplit） ",[914,2439,2440],{"href":2440,"rel":2441},"https:\u002F\u002Fthenextweb.com\u002Fnews\u002Fanthropic-marketplace-claude-enterprise-software",[940],[70,2443,2444,2445],{},"DigitalCommerce360 — Anthropic launches Claude B2B marketplace 2026-03-16 ",[914,2446,2447],{"href":2447,"rel":2448},"https:\u002F\u002Fwww.digitalcommerce360.com\u002F2026\u002F03\u002F16\u002Fanthropic-launches-claude-b2b-marketplace-enterprise-ai-applications",[940],[70,2450,2451,2452],{},"SaaSSentinel — Marketplace launched 2026-03-06（首批 6 partners + $14B run-rate） ",[914,2453,2454],{"href":2454,"rel":2455},"https:\u002F\u002Fsaassentinel.com\u002F2026\u002F03\u002F07\u002Fanthropic-launches-claude-marketplace-to-streamline-enterprise-ai-procurement",[940],[70,2457,2458,2459],{},"SiliconANGLE — Claude Marketplace 第三方云服务 ",[914,2460,2461],{"href":2461,"rel":2462},"https:\u002F\u002Fsiliconangle.com\u002F2026\u002F03\u002F06\u002Fanthropic-launches-claude-marketplace-third-party-cloud-services",[940],[70,2464,2465,2466],{},"skills-hub.ai — Cursor rules vs Skills 对比 + SKILL.md 跨工具 + 4400+ 库 ",[914,2467,2468],{"href":2468,"rel":2469},"https:\u002F\u002Fskills-hub.ai\u002Fcursor-rules",[940],[970,2471,2472],{},"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);}",{"title":268,"searchDepth":313,"depth":313,"links":2474},[2475,2476,2477,2478,2479,2480,2481,2482,2483,2484],{"id":32,"depth":282,"text":33},{"id":65,"depth":282,"text":65},{"id":163,"depth":282,"text":163},{"id":1972,"depth":282,"text":1973},{"id":2036,"depth":282,"text":2037},{"id":613,"depth":282,"text":613},{"id":803,"depth":282,"text":803},{"id":873,"depth":282,"text":874},{"id":908,"depth":282,"text":908},{"id":929,"depth":282,"text":929},"skills","\u002Fimg\u002Ftools\u002Fclaude-skills.webp","Claude Skills 真实评测：Anthropic Agent 能力系统——一个 SKILL.md 文件定义一组能力，Claude 看到任务自动按需加载，不污染 context。2026-03-06 Anthropic 进一步推出 Claude Marketplace（B2B 企业版『App Store』），首批伙伴含 Snowflake \u002F GitLab \u002F Harvey AI \u002F Replit \u002F Rogo \u002F Lovable，企业可用已有 Anthropic 承诺额度直接采购，零佣金。Skills 协议开放（SKILL.md 标准也跑在 Cursor \u002F Codex \u002F Windsurf \u002F Copilot 等 MCP 兼容工具上）。",[2489,2492,2495,2498],{"q":2490,"a":2491},"Claude Skills 解决什么问题？","传统 Agent 能力 = Python function + tool registration（LangChain \u002F AutoGPT），门槛高、不可移植、改一处要重启代码。Claude Skills 把『能力』降维到 Markdown：一个目录 = 一个 Skill，`SKILL.md` 描述触发条件 + 步骤 + 模板 + 脚本，Claude 看到匹配任务自动加载，不污染 context（按需注入而非一次性塞满）。意义：(1) 非程序员也能写能力；(2) 能力可 git diff \u002F code review；(3) 跨项目复用；(4) 社区可共享。已演化成开放 Agent Skills 标准，Cursor \u002F Codex CLI \u002F Windsurf \u002F Copilot \u002F MCP 兼容工具也能消费。",{"q":2493,"a":2494},"Claude Marketplace 是什么？跟 Skills 什么关系？","Claude Marketplace 是 Anthropic 2026-03-06 上线的 B2B 企业市场，首批伙伴 Snowflake \u002F GitLab \u002F Harvey AI \u002F Replit \u002F Rogo \u002F Lovable Labs。企业可用已有 Anthropic 年度承诺额度（六七位数）直接采购『Claude-powered 软件』，Anthropic **零佣金**（与 AWS \u002F Azure marketplace 30% 抽成形成对比）。它解决的不是消费者『装 GPT』，而是企业采购：把 Claude 订阅 + 第三方 AI 软件合并到一个采购流，省 procurement 周期。Skills 是底层能力协议，Marketplace 是上层企业分发渠道。两者构成 Anthropic 的 B2B 生态护城河。",{"q":2496,"a":2497},"Skills 和 MCP 是什么关系？","MCP 是『外部工具接入协议』（让模型调 API \u002F DB），Skills 是『能力描述协议』（教模型怎么做某类任务）。两者互补：MCP 提供原料（数据 \u002F 操作），Skills 提供菜谱（步骤 \u002F 模板 \u002F 经验）。一个 deploy-to-vercel Skill 可能依赖 filesystem MCP server（读 vercel.json）+ shell MCP server（跑 vercel CLI）。生产 Agent 一般同时用 Skills（顶层能力）+ MCP（底层工具）。",{"q":2499,"a":2500},"和 Cursor Rules \u002F GPT Store Custom GPT 怎么选？","Cursor Rules = 全局 prompt 注入（每次对话都带，污染 context），Skills = 按需加载（更高效），GPT Store = ChatGPT 内的 Custom GPT（图形界面 + Actions）。决策：(1) Cursor 用户 + 项目级规范 → .cursorrules；(2) 跨工具 + Markdown 写法 + 按需加载 → SKILL.md；(3) 非技术用户 + 想 monetize → GPT Store。SKILL.md 标准化路线最长远（跨 Cursor \u002F Codex \u002F Windsurf \u002F Copilot \u002F MCP）。",[1004],{},"\u002Ftools\u002Fagent\u002Fskills\u002Fclaude-skills",[1767,1009,1010,1011],[2506,2509,2511,2515,2519],{"plan":1940,"price":775,"features":2507,"notes":2508},"基础 Claude + 公共 Skills","试水",{"plan":1946,"price":2280,"features":2510,"notes":1775},"全模型 + 个人 Skills 库 + Projects",{"plan":1952,"price":2512,"features":2513,"notes":2514},"$30\u002Fseat","团队共享 Skills + 协作 + 集中计费","5-200 人团队",{"plan":1958,"price":2516,"features":2517,"notes":2518},"联系销售","SSO + audit + 私有 Skills + 高 context","大客户",{"plan":1832,"price":2520,"features":2521,"notes":2522},"承诺额度抵扣","企业从 Snowflake \u002F GitLab \u002F Harvey \u002F Replit 等买 Claude-powered 软件","Anthropic 零佣金","随 Claude 订阅 \u002F API 计费；Claude Marketplace 企业承诺额度抵扣",[2525],{"name":2526,"url":2527},"Agent 能力分发：SKILL.md \u002F .cursorrules \u002F GPT 选型","\u002Fplaybook\u002Fonboarding\u002Fagent-skill-distribution",{"power":326,"ux":319,"price":319,"cn_support":313,"stability":319},{"title":1814,"description":2487},"agent\u002Fskills\u002Fclaude-skills",[2532,2534,2536,2538,2540,2542],{"name":2533,"url":2433,"accessed":1031},"Claude Skills 官方文档",{"name":2535,"url":2440,"accessed":1031},"TNW — Anthropic launches Marketplace 2026-03-07",{"name":2537,"url":2447,"accessed":1031},"DigitalCommerce360 — Claude B2B marketplace",{"name":2539,"url":2454,"accessed":1031},"SaaSSentinel — Anthropic Marketplace launched 2026-03-06",{"name":2541,"url":2461,"accessed":1031},"SiliconANGLE — Claude Marketplace 第三方云服务",{"name":2543,"url":2468,"accessed":1031},"skills-hub.ai — Cursor rules vs skills 对比 + SKILL.md 跨工具","tools\u002Fagent\u002Fskills\u002Fclaude-skills","Anthropic Agent 能力系统 + Claude Marketplace（2026-03 上线）：SKILL.md 即能力，企业一站式分发",[2485,2547,2548,2549,1809,1043],"agent-capability","anthropic","claude","Claude Skills 是 Agent 能力的『函数定义 + 按需加载』。SKILL.md 协议 + 2026-03 上线的 Claude Marketplace 让 Anthropic 在 Agent 能力分发上从 Claude only 走向跨工具开放标准。Claude 生态必试；非 Claude 用户也可借鉴 SKILL.md 写法。","dw7goyjElHDqNwVZ3vD6s5efAQqOiXbFKlHPq7_87b0",{"id":2553,"title":2554,"alternatives":2555,"api_compatible":25,"body":2562,"category":2485,"chinese_friendly":313,"cover":3266,"description":3267,"domestic":988,"extension":989,"faq":3268,"free":988,"github":3223,"languages":3281,"meta":3283,"models":25,"navigation":322,"notSuitable":25,"opensource":322,"path":1818,"pillar":1007,"platforms":3284,"priceTable":3285,"pricing":3295,"published":1020,"relatedPlaybooks":3296,"relatedReviews":25,"score":3300,"self_host":988,"seo":3301,"slug":3302,"sources":3303,"stem":3316,"suitable":25,"tagline":3317,"tags":3318,"updated":1031,"verdict":3322,"website":3216,"__hash__":3323},"tools\u002Ftools\u002Fagent\u002Fskills\u002Fcursor-rules-hub.md","Cursor Rules Hub",[2556,2558,2559],{"name":2557,"url":2503},"claude-skills",{"name":1820,"url":1821},{"name":2560,"url":2561},"cursor","\u002Ftools\u002Fcoding\u002Fide\u002Fcursor",{"type":27,"value":2563,"toc":3254},[2564,2566,2601,2604,2606,2685,2687,2701,2705,2709,2739,2743,2783,2787,2792,2798,2803,2875,2880,2937,2939,3076,3078,3158,3160,3189,3191,3207,3209,3252],[30,2565,33],{"id":32},[35,2567,2568,2569,2572,2573,2576,2577,2580,2581,2584,2585,2588,2589,2592,2593,2596,2597,2600],{},"Cursor Rules Hub 是聚合社区驱动的 .cursorrules \u002F .mdc 共享平台总称，三个最常用入口：(1) ",[48,2570,2571],{},"cursor.directory","（官方风格目录，浏览 + 复制）；(2) ",[48,2574,2575],{},"awesome-cursorrules","（PatrickJS 维护的 GitHub 大目录，PR 投稿）；(3) ",[48,2578,2579],{},"skills-hub.ai","（4400+ rules+skills + ",[39,2582,2583],{},"npx @skills-hub-ai\u002Fcli install"," 一键装 + ",[39,2586,2587],{},".skills.json"," lockfile + 安全扫描 + 兼容 SKILL.md 跨工具）。2026 重大变化：Cursor 官方推荐 ",[39,2590,2591],{},".cursor\u002Frules\u002F*.mdc","（多文件 + globs scope + 四种激活模式）取代 legacy ",[39,2594,2595],{},".cursorrules","；同时要警惕 Cursor 3.1.x ",[39,2598,2599],{},"alwaysApply: true"," 偶发不生效 bug。",[35,2602,2603],{},"适合：Cursor \u002F Windsurf 用户；想让 AI 遵守项目栈规范的；monorepo \u002F 多栈项目（需要 path-scoped rules）；想学别人怎么写 rules 的；团队复用规范的。不适合：纯非 Cursor 栈（用 SKILL.md \u002F Claude Skills）；500 字以内的极简项目（手写即可）；完全保密 + 闭源 + 自定 rules 引擎的（不需要市场）。",[30,2605,65],{"id":65},[67,2607,2608,2613,2618,2626,2632,2637,2643,2649,2658,2664,2669,2679],{},[70,2609,2610,2612],{},[48,2611,2571],{},"：官方风格浏览 + 复制 + 框架\u002F语言\u002F角色分类",[70,2614,2615,2617],{},[48,2616,2575],{},"：GitHub 大目录 + 24K+ star + PR 投稿",[70,2619,2620,81,2623],{},[48,2621,2622],{},"skills-hub.ai CLI",[39,2624,2625],{},"npx @skills-hub-ai\u002Fcli install \u003Cslug> --target cursor",[70,2627,2628,2631],{},[48,2629,2630],{},"lockfile（.skills.json）","：团队复现同版本 rules",[70,2633,2634,2636],{},[48,2635,1492],{},"：自动检测 rules 中的危险指令",[70,2638,2639,2642],{},[48,2640,2641],{},"SKILL.md 跨工具","：同一 skill 跑 Cursor \u002F Codex CLI \u002F Windsurf \u002F Copilot \u002F MCP",[70,2644,2645,2648],{},[48,2646,2647],{},"格式自动适配","：CLI 按项目结构选 .cursorrules 或 .mdc",[70,2650,2651,81,2654,2657],{},[48,2652,2653],{},"bundle",[39,2655,2656],{},"full-stack-dev-kit"," 等组合包一键装多 rule",[70,2659,2660,2663],{},[48,2661,2662],{},"4400+ rules + 90+ 来源","（Anthropic \u002F Microsoft \u002F Google \u002F Vercel \u002F Stripe \u002F Cloudflare \u002F Trail of Bits \u002F Prisma \u002F Supabase）",[70,2665,2666],{},[48,2667,2668],{},"质量分 + 安全分 + 上游 GitHub 链接",[70,2670,2671,2674,2675,2678],{},[48,2672,2673],{},"路径 scope","：.mdc 用 globs 字段限定 ",[39,2676,2677],{},"apps\u002Fweb\u002F**"," 等",[70,2680,2681,2684],{},[48,2682,2683],{},"四种激活模式","：Always \u002F Auto Attached \u002F Agent Requested \u002F Manual",[30,2686,163],{"id":163},[67,2688,2689,2698],{},[70,2690,2691,93,2693,93,2695,2697],{},[48,2692,2571],{},[48,2694,2575],{},[48,2696,2579],{}," 全部 $0",[70,2699,2700],{},"skills-hub.ai 后续可能推付费企业 feature（私有 registry \u002F SSO），当前免费",[30,2702,2704],{"id":2703},"实测nuxt-4-typescript-项目","实测（Nuxt 4 + TypeScript 项目）",[35,2706,2707],{},[48,2708,192],{},[67,2710,2711,2714,2717,2720,2727,2730,2733,2736],{},[70,2712,2713],{},"skills-hub.ai CLI 一行装 5 个 rule（nuxt4 \u002F typescript-strict \u002F unocss \u002F pnpm-workspace \u002F code-review）\u003C 2 分钟",[70,2715,2716],{},"lockfile 让团队复现同样 rules，新人开箱即用",[70,2718,2719],{},".mdc + globs 让 monorepo apps\u002Fweb 和 packages\u002Fapi 用不同规则",[70,2721,2722,2723,2726],{},"安全扫描发现一个 rule 里有 ",[39,2724,2725],{},"rm -rf"," 指令，及时拦截",[70,2728,2729],{},"SKILL.md 格式让同一规范跨 Cursor + Codex CLI 复用",[70,2731,2732],{},"4400+ rules 长尾需求基本能找到（Elixir \u002F Phoenix \u002F OCaml 都有）",[70,2734,2735],{},"90+ 来源含 Anthropic \u002F Vercel \u002F Stripe 等权威组织 = 信任度高",[70,2737,2738],{},"PR 流程让自家规范也能贡献回社区",[35,2740,2741],{},[48,2742,226],{},[67,2744,2745,2751,2754,2757,2767,2770,2773,2776],{},[70,2746,2747,2748,2750],{},"Cursor 3.1.x ",[39,2749,2599],{}," 偶发降级，要 forum 跟踪 + 双重保险",[70,2752,2753],{},"部分社区 rule 已过时（react 旧 hook 写法）",[70,2755,2756],{},"长 rule 每次对话消耗 token，建议 \u003C 500 字 \u002F 拆 skill",[70,2758,2759,2760,2762,2763,2766],{},"legacy ",[39,2761,2595],{}," 与 ",[39,2764,2765],{},".mdc"," 并存时优先级不清",[70,2768,2769],{},"中文 rule 数量少，主要英文",[70,2771,2772],{},"skills-hub.ai 是新项目，长期维护待观察",[70,2774,2775],{},"bundle 安装会装一堆可能用不到的 rule，要 review",[70,2777,2778,2779,2782],{},"Windsurf 有 ",[39,2780,2781],{},".windsurfrules","，rule 格式略不同要兼容",[30,2784,2786],{"id":2785},"上手3-种方式","上手（3 种方式）",[35,2788,2789],{},[48,2790,2791],{},"方式 1：cursor.directory 复制粘贴",[263,2793,2796],{"className":2794,"code":2795,"language":2043},[2041],"1. 访问 cursor.directory 搜技术栈\n2. 复制 .cursorrules 内容\n3. 粘贴到项目根 `.cursorrules`\n4. 重启 Cursor\n",[39,2797,2795],{"__ignoreMap":268},[35,2799,2800],{},[48,2801,2802],{},"方式 2：skills-hub.ai CLI（推荐）",[263,2804,2806],{"className":265,"code":2805,"language":267,"meta":268,"style":268},"# 装一个 rule\nnpx @skills-hub-ai\u002Fcli install code-review --target cursor\n\n# 装一个 bundle\nnpx @skills-hub-ai\u002Fcli install full-stack-dev-kit --target cursor\n\n# 团队复现\nnpx @skills-hub-ai\u002Fcli install   # 读 .skills.json lockfile\n",[39,2807,2808,2813,2831,2835,2840,2855,2859,2864],{"__ignoreMap":268},[272,2809,2810],{"class":274,"line":275},[272,2811,2812],{"class":278},"# 装一个 rule\n",[272,2814,2815,2818,2821,2823,2826,2829],{"class":274,"line":282},[272,2816,2817],{"class":285},"npx",[272,2819,2820],{"class":289}," @skills-hub-ai\u002Fcli",[272,2822,1285],{"class":289},[272,2824,2825],{"class":289}," code-review",[272,2827,2828],{"class":293}," --target",[272,2830,1356],{"class":289},[272,2832,2833],{"class":274,"line":313},[272,2834,323],{"emptyLinePlaceholder":322},[272,2836,2837],{"class":274,"line":319},[272,2838,2839],{"class":278},"# 装一个 bundle\n",[272,2841,2842,2844,2846,2848,2851,2853],{"class":274,"line":326},[272,2843,2817],{"class":285},[272,2845,2820],{"class":289},[272,2847,1285],{"class":289},[272,2849,2850],{"class":289}," full-stack-dev-kit",[272,2852,2828],{"class":293},[272,2854,1356],{"class":289},[272,2856,2857],{"class":274,"line":332},[272,2858,323],{"emptyLinePlaceholder":322},[272,2860,2861],{"class":274,"line":5},[272,2862,2863],{"class":278},"# 团队复现\n",[272,2865,2866,2868,2870,2872],{"class":274,"line":8},[272,2867,2817],{"class":285},[272,2869,2820],{"class":289},[272,2871,1285],{"class":289},[272,2873,2874],{"class":278},"   # 读 .skills.json lockfile\n",[35,2876,2877],{},[48,2878,2879],{},"方式 3：手写 .mdc + globs",[263,2881,2883],{"className":2053,"code":2882,"language":2055,"meta":268,"style":268},"---\ndescription: Nuxt 4 + UnoCSS 项目规范\nglobs:\n  - apps\u002Fweb\u002F**\n  - components\u002F**\nalwaysApply: true\n---\n\n使用 Composition API + setup script。\n禁止 axios，用 $fetch \u002F useFetch。\n组件命名 PascalCase，文件名 kebab-case。\n",[39,2884,2885,2889,2894,2899,2904,2909,2914,2918,2922,2927,2932],{"__ignoreMap":268},[272,2886,2887],{"class":274,"line":275},[272,2888,2062],{},[272,2890,2891],{"class":274,"line":282},[272,2892,2893],{},"description: Nuxt 4 + UnoCSS 项目规范\n",[272,2895,2896],{"class":274,"line":313},[272,2897,2898],{},"globs:\n",[272,2900,2901],{"class":274,"line":319},[272,2902,2903],{},"  - apps\u002Fweb\u002F**\n",[272,2905,2906],{"class":274,"line":326},[272,2907,2908],{},"  - components\u002F**\n",[272,2910,2911],{"class":274,"line":332},[272,2912,2913],{},"alwaysApply: true\n",[272,2915,2916],{"class":274,"line":5},[272,2917,2062],{},[272,2919,2920],{"class":274,"line":8},[272,2921,323],{"emptyLinePlaceholder":322},[272,2923,2924],{"class":274,"line":351},[272,2925,2926],{},"使用 Composition API + setup script。\n",[272,2928,2929],{"class":274,"line":7},[272,2930,2931],{},"禁止 axios，用 $fetch \u002F useFetch。\n",[272,2933,2934],{"class":274,"line":368},[272,2935,2936],{},"组件命名 PascalCase，文件名 kebab-case。\n",[30,2938,613],{"id":613},[615,2940,2941,2955],{},[618,2942,2943],{},[621,2944,2945,2947,2949,2951,2953],{},[624,2946,626],{},[624,2948,2571],{},[624,2950,2575],{},[624,2952,2579],{},[624,2954,1814],{},[639,2956,2957,2974,2990,3002,3014,3030,3046,3059],{},[621,2958,2959,2962,2965,2968,2971],{},[644,2960,2961],{},"收录",[644,2963,2964],{},"数百",[644,2966,2967],{},"数百 + GitHub PR",[644,2969,2970],{},"4400+ + 90 来源",[644,2972,2973],{},"Anthropic + 社区",[621,2975,2976,2979,2982,2984,2987],{},[644,2977,2978],{},"CLI 一键装",[644,2980,2981],{},"❌ 复制粘贴",[644,2983,2981],{},[644,2985,2986],{},"✅ + lockfile",[644,2988,2989],{},"claude code 内置",[621,2991,2992,2994,2996,2998,3000],{},[644,2993,1492],{},[644,2995,690],{},[644,2997,690],{},[644,2999,715],{},[644,3001,718],{},[621,3003,3004,3006,3008,3010,3012],{},[644,3005,2202],{},[644,3007,2208],{},[644,3009,2208],{},[644,3011,2205],{},[644,3013,715],{},[621,3015,3016,3019,3022,3024,3027],{},[644,3017,3018],{},"团队复现",[644,3020,3021],{},"手动",[644,3023,3021],{},[644,3025,3026],{},"✅ lockfile",[644,3028,3029],{},"git",[621,3031,3032,3035,3037,3040,3043],{},[644,3033,3034],{},"质量分",[644,3036,690],{},[644,3038,3039],{},"star 数",[644,3041,3042],{},"✅ + 上游链接",[644,3044,3045],{},"reviews",[621,3047,3048,3050,3052,3054,3056],{},[644,3049,163],{},[644,3051,781],{},[644,3053,781],{},[644,3055,781],{},[644,3057,3058],{},"Claude 订阅",[621,3060,3061,3064,3067,3070,3073],{},[644,3062,3063],{},"推荐场景",[644,3065,3066],{},"quick start",[644,3068,3069],{},"学写法",[644,3071,3072],{},"团队 \u002F 生产",[644,3074,3075],{},"跨工具能力",[30,3077,803],{"id":803},[67,3079,3080,3086,3096,3102,3108,3120,3128,3134,3146,3152],{},[70,3081,3082,3085],{},[48,3083,3084],{},"新项目用 .mdc","：legacy .cursorrules 仅向后兼容",[70,3087,3088,3093,3094],{},[48,3089,3090,3092],{},[39,3091,2599],{}," 双重保险","：Cursor 3.1.x bug 期间也复制到 ",[39,3095,2595],{},[70,3097,3098,3101],{},[48,3099,3100],{},"rule 长度控制","：单 rule \u003C 500 字，超出拆 skill",[70,3103,3104,3107],{},[48,3105,3106],{},"scope 用 globs","：monorepo 必须 path scope，避免规则相互污染",[70,3109,3110,3112,3113,93,3116,3119],{},[48,3111,1492],{},"：装 rule 前 review，警惕 ",[39,3114,3115],{},"rm",[39,3117,3118],{},"curl | sh"," 等危险指令",[70,3121,3122,81,3125,3127],{},[48,3123,3124],{},"lockfile 进版本控制",[39,3126,2587],{}," 提交 git，团队复现",[70,3129,3130,3133],{},[48,3131,3132],{},"过时 rule","：定期 review，框架版本升级要同步",[70,3135,3136,3139,3140,3142,3143,3145],{},[48,3137,3138],{},"Windsurf 兼容","：双格式（",[39,3141,2595],{}," + ",[39,3144,2781],{},"）or 用 skills-hub 自动适配",[70,3147,3148,3151],{},[48,3149,3150],{},"中文 rule 短缺","：自己写常用栈 + 提交 PR 回社区",[70,3153,3154,3157],{},[48,3155,3156],{},"bundle 慎用","：bundle 装多 rule，review 后裁剪",[30,3159,874],{"id":873},[67,3161,3162,3165,3168,3171,3174,3177,3180,3183,3186],{},[70,3163,3164],{},"✅ Cursor \u002F Windsurf 用户",[70,3166,3167],{},"✅ 想让 AI 遵守项目规范",[70,3169,3170],{},"✅ monorepo \u002F 多栈项目",[70,3172,3173],{},"✅ 团队复现 + 安全扫描",[70,3175,3176],{},"✅ 想学别人写 rules",[70,3178,3179],{},"❌ 纯非 Cursor 栈（用 SKILL.md）",[70,3181,3182],{},"❌ 极简单文件项目（手写即可）",[70,3184,3185],{},"❌ 完全保密 + 自定 rules 引擎",[70,3187,3188],{},"❌ 不愿引入 npm CLI 的零 Node 项目",[30,3190,908],{"id":908},[67,3192,3193,3198,3202],{},[70,3194,3195],{},[914,3196,3197],{"href":2503},"Claude Skills 评测",[70,3199,3200],{},[914,3201,2419],{"href":1821},[70,3203,3204],{},[914,3205,3206],{"href":2561},"Cursor 评测",[30,3208,929],{"id":929},[931,3210,3211,3218,3225,3232,3238,3245],{},[70,3212,3213,3214],{},"cursor.directory 官方风格目录 ",[914,3215,3216],{"href":3216,"rel":3217},"https:\u002F\u002Fcursor.directory\u002F",[940],[70,3219,3220,3221],{},"awesome-cursorrules GitHub ",[914,3222,3223],{"href":3223,"rel":3224},"https:\u002F\u002Fgithub.com\u002FPatrickJS\u002Fawesome-cursorrules",[940],[70,3226,3227,3228],{},"Cursor 官方文档 — Rules（.mdc 格式 + 四种激活模式） ",[914,3229,3230],{"href":3230,"rel":3231},"https:\u002F\u002Fdocs.cursor.com\u002Fen\u002Fcontext\u002Frules",[940],[70,3233,3234,3235],{},"skills-hub.ai — 4400+ rules + CLI + lockfile + SKILL.md 跨工具 ",[914,3236,2468],{"href":2468,"rel":3237},[940],[70,3239,3240,3241],{},"Cursor Forum — Cursor 3.1.x alwaysApply: true 不生效 bug 2026-04 ",[914,3242,3243],{"href":3243,"rel":3244},"https:\u002F\u002Fforum.cursor.com\u002Ft\u002Fcursor-rules-not-getting-applied\u002F158740",[940],[70,3246,3247,3248],{},"DCMvn — Configuring Rules & Docs（含 Rule 类型详解表） ",[914,3249,3250],{"href":3250,"rel":3251},"https:\u002F\u002Fdiggtvu.github.io\u002FpyDCMvnDocs\u002Fdocs\u002Ffeatures\u002Fconfiguring-rules-docs",[940],[970,3253,1736],{},{"title":268,"searchDepth":313,"depth":313,"links":3255},[3256,3257,3258,3259,3260,3261,3262,3263,3264,3265],{"id":32,"depth":282,"text":33},{"id":65,"depth":282,"text":65},{"id":163,"depth":282,"text":163},{"id":2703,"depth":282,"text":2704},{"id":2785,"depth":282,"text":2786},{"id":613,"depth":282,"text":613},{"id":803,"depth":282,"text":803},{"id":873,"depth":282,"text":874},{"id":908,"depth":282,"text":908},{"id":929,"depth":282,"text":929},"\u002Fimg\u002Ftools\u002Fcursor-rules-hub.webp","Cursor Rules Hub 真实评测：聚合社区驱动的 .cursorrules \u002F .mdc 共享平台（cursor.directory + awesome-cursorrules + skills-hub.ai），4400+ rules 覆盖 Vue\u002FReact\u002FNuxt\u002FNext\u002FSvelte\u002FPython\u002FGo\u002FRust 等主流栈。2026 重大变化：(1) Cursor 官方推荐 `.cursor\u002Frules\u002F*.mdc`（多文件 + globs scope）取代 legacy `.cursorrules`；(2) skills-hub.ai 提供 `npx @skills-hub-ai\u002Fcli install` 一键安装 + lockfile 锁版本 + 安全扫描 + 兼容 SKILL.md 跨工具；(3) Cursor 3.x 偶发 alwaysApply: true 不生效 bug 需注意。",[3269,3272,3275,3278],{"q":3270,"a":3271},"Cursor Rules Hub 是什么？为什么存在？","Cursor 的 Agent 默认不知道你的项目用什么栈 \u002F 规范。`.cursorrules`（或新格式 `.cursor\u002Frules\u002F*.mdc`）就是项目级 system prompt——告诉 Cursor『这是一个 Nuxt 4 项目，用 Composition API + UnoCSS + pnpm workspaces，禁止用 axios……』。但写好 rules 需要经验，所以社区把优秀模板聚合：cursor.directory（首推官方风格目录）、awesome-cursorrules（PatrickJS 维护的 GitHub 大目录）、skills-hub.ai（4400+ rules+skills + CLI + lockfile + 安全扫描）。一行 CLI 或复制粘贴就能让 Cursor 懂你的栈。",{"q":3273,"a":3274},".cursorrules vs .cursor\u002Frules\u002F*.mdc 怎么选？","Cursor 官方文档明确：legacy `.cursorrules`（项目根单文件，全局加载）仍支持但新项目应该用 `.cursor\u002Frules\u002F*.mdc`。`.mdc` 多文件 + YAML frontmatter + `globs` 字段可以 scope 到特定路径（如 `apps\u002Fweb\u002F**` 用一套规则，`packages\u002Fapi\u002F**` 用另一套），还支持 Always \u002F Auto Attached \u002F Agent Requested \u002F Manual 四种激活模式。monorepo \u002F 多栈项目必上 .mdc；纯单一项目可以继续用 .cursorrules。skills-hub.ai CLI 会自动选合适格式写入。",{"q":3276,"a":3277},"Cursor 3.x 的 alwaysApply: true 不生效是 bug 吗？","是。2026-04 Cursor 社区 forum 多个用户报告：升到 Cursor 3.1.x 后 .mdc 的 `alwaysApply: true` rules 被静默降级为 'requestable'（只在 model 觉得需要时加载），导致项目规范没被遵守。Cursor 官方已确认是 regression。临时解法：(a) 在每次对话开头明确 @rule 名引用；(b) 把核心规范也复制到 `.cursorrules`（双重保险）；(c) 关注 forum.cursor.com 跟踪修复版本；(d) 升 Cursor 时先在小项目验证。",{"q":3279,"a":3280},"Cursor Rules vs Claude Skills 怎么选？","Cursor Rules（.cursorrules \u002F .mdc）= **全局或路径级 prompt 注入**（每次对话都带，污染 context 但保证遵守），Claude Skills（SKILL.md）= **按需加载**（Claude 判断要不要加载，省 context 但有黑盒性）。决策：(1) Cursor 专属用户 + 项目级规范不变 → .mdc；(2) 跨工具（Cursor + Codex + Claude Code）+ 按需加载 → SKILL.md；(3) skills-hub.ai 同时支持两种格式 + 提供 SKILL.md → .cursorrules 转换，跨工具迁移最省事。大部分团队两者都用：rules 装项目约束，skills 装重复 workflow。",[1004,3282],"zh",{},[1767,1009,1010,1011],[3286,3289,3292],{"plan":2571,"price":775,"features":3287,"notes":3288},"浏览 + 复制 .cursorrules 模板","经典入口",{"plan":2575,"price":775,"features":3290,"notes":3291},"GitHub 大目录 + PR 投稿","社区起源",{"plan":2579,"price":775,"features":3293,"notes":3294},"4400+ rules+skills + CLI 一键装 + lockfile + 安全扫描 + SKILL.md 跨工具","2026 推荐","免费",[3297],{"name":3298,"url":3299},"Cursor Rules \u002F .mdc \u002F Skills 选型与避坑","\u002Fplaybook\u002Fonboarding\u002Fcursor-rules-mdc-selection",{"power":313,"ux":319,"price":326,"cn_support":313,"stability":313},{"title":2554,"description":3267},"agent\u002Fskills\u002Fcursor-rules-hub",[3304,3306,3308,3310,3312,3314],{"name":3305,"url":3216,"accessed":1031},"cursor.directory（官方风格目录）",{"name":3307,"url":3223,"accessed":1031},"awesome-cursorrules GitHub",{"name":3309,"url":3230,"accessed":1031},"Cursor 官方文档 — Rules",{"name":3311,"url":2468,"accessed":1031},"skills-hub.ai — 4400+ rules + CLI + lockfile",{"name":3313,"url":3243,"accessed":1031},"Cursor Forum — alwaysApply bug 2026-04",{"name":3315,"url":3250,"accessed":1031},"DCMvn — Configuring Rules & Docs（含 Rule 类型表）","tools\u002Fagent\u002Fskills\u002Fcursor-rules-hub","Cursor 社区 Rules 市场——cursor.directory + awesome-cursorrules + skills-hub.ai 4400+ 模板，一行 CLI 装到 .cursor\u002Frules\u002F",[3319,2485,3320,1809,3321],"cursor-rules","community","mdc","Cursor 用户的『rules \u002F skills 配置市场』。2026 用 `.cursor\u002Frules\u002F*.mdc` + skills-hub.ai CLI + lockfile 是新最佳实践；legacy `.cursorrules` 仍支持但不推荐新项目用。社区驱动、质量参差但免费，生产用要审。","LnZm5f0rJY0iwuXFVP4WFP2YmhM-NL7BSjWTpXuDovQ",{"id":3325,"title":3326,"alternatives":3327,"api_compatible":25,"body":3336,"category":2485,"chinese_friendly":319,"cover":3897,"description":3898,"domestic":988,"extension":989,"faq":3899,"free":988,"github":25,"languages":3912,"meta":3913,"models":25,"navigation":322,"notSuitable":25,"opensource":988,"path":1821,"pillar":1007,"platforms":3914,"priceTable":3917,"pricing":3927,"published":1020,"relatedPlaybooks":3928,"relatedReviews":25,"score":3932,"self_host":988,"seo":3933,"slug":3934,"sources":3935,"stem":3946,"suitable":25,"tagline":3947,"tags":3948,"updated":1031,"verdict":3952,"website":3855,"__hash__":3953},"tools\u002Ftools\u002Fagent\u002Fskills\u002Fgpt-store.md","OpenAI GPT Store",[3328,3329,3330,3333],{"name":2557,"url":2503},{"name":1817,"url":1818},{"name":3331,"url":3332},"coze","\u002Ftools\u002Fagent\u002Fplatform\u002Fcoze",{"name":3334,"url":3335},"dify","\u002Ftools\u002Fagent\u002Fplatform\u002Fdify",{"type":27,"value":3337,"toc":3885},[3338,3340,3371,3374,3376,3451,3453,3479,3484,3488,3492,3518,3522,3554,3558,3564,3566,3731,3733,3793,3795,3824,3826,3846,3848],[30,3339,33],{"id":32},[35,3341,3342,3343,3346,3347,3350,3351,3354,3355,3358,3359,3362,3363,3366,3367,3370],{},"OpenAI GPT Store 是 ChatGPT 内置的 Custom GPT 市场（2024-01 上线），2026 年已有 ",[48,3344,3345],{},"300 万+ Custom GPT","。GPT Builder 让非技术用户用自然语言搭建：",[48,3348,3349],{},"Instructions","（人格 + 行为）\u002F ",[48,3352,3353],{},"Knowledge","（最多 20 文件 PDF \u002F Excel \u002F Code）\u002F ",[48,3356,3357],{},"Actions","（OpenAPI + OAuth 调外部 API）\u002F ",[48,3360,3361],{},"内置工具","（DALL-E 3 \u002F Code Interpreter \u002F Web Browsing）。Revenue Sharing 按 engagement 分成但门槛极高——平均 ~$0.03\u002F会话，月入 $1K 需 33K+ 高质量会话。真正赚钱路径：",[48,3364,3365],{},"B2B 内部 GPT 咨询","（$5K-20K\u002F项目 + $1K-5K\u002F月）或 ",[48,3368,3369],{},"GPT 当 top-of-funnel"," 引流自家 SaaS。",[35,3372,3373],{},"适合：ChatGPT Plus \u002F Team \u002F Enterprise 用户；非技术用户搭一个定制助手；C 端流量入口；快速验证 Agent 创意；B2B 顾问做企业内部 GPT。不适合：靠 GPT Store 直接全职 monetize（90%+ 月 $100-500）；要私有部署 \u002F 全模型 \u002F 复杂工作流（Coze \u002F Dify）；国内无 ChatGPT 订阅；要 100% 控制 + 闭源。",[30,3375,65],{"id":65},[67,3377,3378,3383,3389,3394,3399,3404,3409,3415,3421,3427,3433,3439,3445],{},[70,3379,3380,3382],{},[48,3381,3345],{},"（业内最大 C 端 Agent 市场）",[70,3384,3385,3388],{},[48,3386,3387],{},"GPT Builder","：自然语言搭建 + 实时预览 + 双模式（对话 \u002F 高级编辑器）",[70,3390,3391,3393],{},[48,3392,3349],{},"：人格 + 行为 + 边界（plain English）",[70,3395,3396,3398],{},[48,3397,3353],{},"：最多 20 文件（PDF \u002F Excel \u002F Code \u002F 文档）",[70,3400,3401,3403],{},[48,3402,3357],{},"：OpenAPI 3.x + API Key \u002F OAuth 2.0",[70,3405,3406,3408],{},[48,3407,3361],{},"：DALL-E 3 \u002F Code Interpreter \u002F Web Browsing",[70,3410,3411,3414],{},[48,3412,3413],{},"GPT-5.2 模型","（最新）",[70,3416,3417,3420],{},[48,3418,3419],{},"Discovery","：自然语言搜索 + 周榜 trending + 类别 + Staff Picks",[70,3422,3423,3426],{},[48,3424,3425],{},"直接链接分享","：可外部分享 GPT URL",[70,3428,3429,3432],{},[48,3430,3431],{},"Revenue Sharing","：engagement-based + 美国地区 + verified creator",[70,3434,3435,3438],{},[48,3436,3437],{},"多语言","：界面 + 中文 GPT 数量丰富",[70,3440,3441,3444],{},[48,3442,3443],{},"GPT 互联","（2026 新）：Agentic Workflows 允许 GPT 调 GPT",[70,3446,3447,3450],{},[48,3448,3449],{},"企业 SSO + 数据不训练","（Enterprise）",[30,3452,163],{"id":163},[67,3454,3455,3461,3467,3473],{},[70,3456,3457,3460],{},[48,3458,3459],{},"ChatGPT Free","：$0（GPT Store 限制访问）",[70,3462,3463,3466],{},[48,3464,3465],{},"ChatGPT Plus","：$20\u002Fmo（全 GPT Store + Builder + GPT-5.2）",[70,3468,3469,3472],{},[48,3470,3471],{},"ChatGPT Team","：$30\u002Fseat\u002Fmo（团队共享 GPT）",[70,3474,3475,3478],{},[48,3476,3477],{},"ChatGPT Enterprise","：联系销售（SSO + audit + 私有 GPT）",[179,3480,3481],{},[35,3482,3483],{},"用户视角：Plus $20\u002Fmo 解锁全部 GPT；创作者视角：免费创建 + 发布，分成需 verified creator + 高 engagement。",[30,3485,3487],{"id":3486},"实测搭-发布-跑流量","实测（搭 + 发布 + 跑流量）",[35,3489,3490],{},[48,3491,192],{},[67,3493,3494,3497,3500,3503,3506,3509,3512,3515],{},[70,3495,3496],{},"GPT Builder 5 分钟从『描述需求』到『可用 GPT』",[70,3498,3499],{},"Knowledge 上传 PDF 后立刻可问（不需 RAG 工程）",[70,3501,3502],{},"Actions OAuth 让 GPT 代用户操作 Notion \u002F Linear 等",[70,3504,3505],{},"ChatGPT 内置分发 = 0 获客成本",[70,3507,3508],{},"中文 GPT 数量已经很多，本地化没问题",[70,3510,3511],{},"适合 B2B 顾问：客户已有 ChatGPT Team \u002F Enterprise，内部 GPT 落地快",[70,3513,3514],{},"Agentic Workflows（GPT 调 GPT）打开新场景",[70,3516,3517],{},"DALL-E 3 + Code Interpreter 开箱可用",[35,3519,3520],{},[48,3521,226],{},[67,3523,3524,3527,3530,3533,3536,3539,3542,3545,3548,3551],{},[70,3525,3526],{},"Revenue Sharing 不透明：~$0.03\u002F会话，月 $1K 需 33K+ 会话",[70,3528,3529],{},"90%+ 创作者月入 $100-500，全职靠 GPT Store 难",[70,3531,3532],{},"顶部 0.01% 占大部分分成，长尾几乎没钱",[70,3534,3535],{},"仅美国 verified creator 能进主分成池",[70,3537,3538],{},"横向工具 GPT（PDF 总结）竞争惨烈",[70,3540,3541],{},"Plus 用户 Actions 配额 \u002F 限速紧",[70,3543,3544],{},"国内无 ChatGPT 订阅 = 用户 \u002F 创作者双重壁垒",[70,3546,3547],{},"Knowledge 20 文件上限 + 总大小限制",[70,3549,3550],{},"复杂工作流（多步骤 \u002F 条件分支）不如 Coze \u002F Dify",[70,3552,3553],{},"数据落 OpenAI 服务器（Plus）合规敏感",[30,3555,3557],{"id":3556},"上手搭一个法律合同-gpt","上手（搭一个法律合同 GPT）",[263,3559,3562],{"className":3560,"code":3561,"language":2043},[2041],"1. chat.openai.com → Explore GPTs → Create\n2. 描述：『英国合同审查 GPT，找风险条款，引用 UK 法律』\n3. Builder 自动生成 name \u002F icon \u002F starter prompts\n4. 高级编辑器：\n   - Instructions: 你是英国合同审查专家……\n   - Knowledge: 上传 UK 合同法 PDF + 公司模板（最多 20 文件）\n   - Actions: 添加自家 contracts API（OpenAPI schema + OAuth）\n5. 实时预览测试，调整 instructions\n6. Publish → 选公开 \u002F 仅链接 \u002F 私有\n7. 分享 GPT URL，开始累积 engagement\n",[39,3563,3561],{"__ignoreMap":268},[30,3565,613],{"id":613},[615,3567,3568,3584],{},[618,3569,3570],{},[621,3571,3572,3574,3576,3579,3582],{},[624,3573,626],{},[624,3575,2270],{},[624,3577,3578],{},"Coze",[624,3580,3581],{},"Dify",[624,3583,1832],{},[639,3585,3586,3603,3620,3637,3654,3668,3683,3700,3716],{},[621,3587,3588,3591,3594,3597,3600],{},[644,3589,3590],{},"数量",[644,3592,3593],{},"300 万+",[644,3595,3596],{},"数十万",[644,3598,3599],{},"数万 + 自托管",[644,3601,3602],{},"6 partners（preview）",[621,3604,3605,3608,3611,3614,3617],{},[644,3606,3607],{},"模型",[644,3609,3610],{},"GPT-5.2 only",[644,3612,3613],{},"豆包 \u002F DeepSeek \u002F Qwen",[644,3615,3616],{},"全开放",[644,3618,3619],{},"Claude only",[621,3621,3622,3625,3628,3631,3634],{},[644,3623,3624],{},"发布渠道",[644,3626,3627],{},"ChatGPT 内",[644,3629,3630],{},"飞书 \u002F 微信 \u002F 抖音",[644,3632,3633],{},"API \u002F Web \u002F 自部署",[644,3635,3636],{},"企业承诺额度",[621,3638,3639,3642,3645,3648,3651],{},[644,3640,3641],{},"上手",[644,3643,3644],{},"极低（自然语言）",[644,3646,3647],{},"极低（拖拽）",[644,3649,3650],{},"中（开发者）",[644,3652,3653],{},"高（企业采购）",[621,3655,3656,3658,3661,3663,3665],{},[644,3657,3357],{},[644,3659,3660],{},"✅ OpenAPI + OAuth",[644,3662,715],{},[644,3664,715],{},[644,3666,3667],{},"企业集成",[621,3669,3670,3673,3676,3678,3680],{},[644,3671,3672],{},"私有部署",[644,3674,3675],{},"❌（Enterprise 私有 GPT）",[644,3677,690],{},[644,3679,715],{},[644,3681,3682],{},"企业",[621,3684,3685,3688,3691,3694,3697],{},[644,3686,3687],{},"Revenue",[644,3689,3690],{},"engagement 分成 + 不透明",[644,3692,3693],{},"流量分成",[644,3695,3696],{},"自建商业",[644,3698,3699],{},"零佣金 + 承诺额度",[621,3701,3702,3704,3707,3710,3713],{},[644,3703,788],{},[644,3705,3706],{},"C 端 + Plus 用户",[644,3708,3709],{},"国内 C\u002FB",[644,3711,3712],{},"开发者 \u002F 企业",[644,3714,3715],{},"大企业采购",[621,3717,3718,3720,3723,3725,3728],{},[644,3719,772],{},[644,3721,3722],{},"$20\u002Fmo Plus",[644,3724,781],{},[644,3726,3727],{},"OSS \u002F Cloud",[644,3729,3730],{},"企业合同",[30,3732,803],{"id":803},[67,3734,3735,3741,3747,3752,3758,3764,3770,3775,3781,3787],{},[70,3736,3737,3740],{},[48,3738,3739],{},"不要靠分成全职","：B2B 咨询 + SaaS 引流才是钱",[70,3742,3743,3746],{},[48,3744,3745],{},"垂直 niche","：legal-tech \u002F financial \u002F medical 等专业领域 > 通用工具",[70,3748,3749,3751],{},[48,3750,3369],{},"：免费 GPT 引流到自家 SaaS（Stripe 计费）",[70,3753,3754,3757],{},[48,3755,3756],{},"Actions 鉴权","：OAuth 优先，API Key 仅低敏感",[70,3759,3760,3763],{},[48,3761,3762],{},"Knowledge 20 文件","：精选 RAG quality 高的，不要堆数量",[70,3765,3766,3769],{},[48,3767,3768],{},"Instructions 边界","：明确『不能做什么』，避免 jailbreak",[70,3771,3772,3774],{},[48,3773,851],{},"：Plus 订阅需正规海外支付 + 稳定网络",[70,3776,3777,3780],{},[48,3778,3779],{},"数据合规","：敏感数据用 Enterprise（数据不训练），不要用 Plus",[70,3782,3783,3786],{},[48,3784,3785],{},"starter prompts 优化","：好的 starter prompts 提高 engagement",[70,3788,3789,3792],{},[48,3790,3791],{},"持续运营","：GPT 也要『版本更新 + 用户反馈』，不是发布即结束",[30,3794,874],{"id":873},[67,3796,3797,3800,3803,3806,3809,3812,3815,3818,3821],{},[70,3798,3799],{},"✅ ChatGPT Plus \u002F Team \u002F Enterprise 用户",[70,3801,3802],{},"✅ 非技术用户搭定制助手",[70,3804,3805],{},"✅ C 端流量入口 + SaaS 引流",[70,3807,3808],{},"✅ B2B 顾问做企业内部 GPT",[70,3810,3811],{},"✅ 快速验证 Agent 创意",[70,3813,3814],{},"❌ 靠 GPT Store 直接全职 monetize",[70,3816,3817],{},"❌ 要私有部署 + 全模型（Coze \u002F Dify）",[70,3819,3820],{},"❌ 国内无 ChatGPT 订阅",[70,3822,3823],{},"❌ 复杂多步骤工作流",[30,3825,908],{"id":908},[67,3827,3828,3832,3836,3841],{},[70,3829,3830],{},[914,3831,3197],{"href":2503},[70,3833,3834],{},[914,3835,2414],{"href":1818},[70,3837,3838],{},[914,3839,3840],{"href":3332},"Coze 评测",[70,3842,3843],{},[914,3844,3845],{"href":3335},"Dify 评测",[30,3847,929],{"id":929},[931,3849,3850,3857,3864,3871,3878],{},[70,3851,3852,3853],{},"ChatGPT GPT Store ",[914,3854,3855],{"href":3855,"rel":3856},"https:\u002F\u002Fchat.openai.com\u002Fgpts",[940],[70,3858,3859,3860],{},"Digital Applied — GPT Store Business Guide 2026（~$0.03\u002F会话 + B2B reality check） ",[914,3861,3862],{"href":3862,"rel":3863},"https:\u002F\u002Fwww.digitalapplied.com\u002Fblog\u002Fgpt-store-custom-gpts-business-guide-2026",[940],[70,3865,3866,3867],{},"Singularity Moments — OpenAI Custom GPTs Guide 2026（3M+ GPT + GPT Builder 详解） ",[914,3868,3869],{"href":3869,"rel":3870},"https:\u002F\u002Fsingularitymoments.com\u002Fopenai-custom-gpts-guide-2026\u002F",[940],[70,3872,3873,3874],{},"GPT Store Revenue Case Studies 2026（engagement 分成 + 垂直 niche） ",[914,3875,3876],{"href":3876,"rel":3877},"https:\u002F\u002Fgptstorerevenueprogram.com\u002Fgpt-store-revenue-case-studies-what-we-know-so-far",[940],[70,3879,3880,3881],{},"VentureBeat — OpenAI launches GPT Store 2024-01 ",[914,3882,3883],{"href":3883,"rel":3884},"https:\u002F\u002Fventurebeat.com\u002Fai\u002Fopenai-launches-gpt-store-but-revenue-sharing-is-still-to-come",[940],{"title":268,"searchDepth":313,"depth":313,"links":3886},[3887,3888,3889,3890,3891,3892,3893,3894,3895,3896],{"id":32,"depth":282,"text":33},{"id":65,"depth":282,"text":65},{"id":163,"depth":282,"text":163},{"id":3486,"depth":282,"text":3487},{"id":3556,"depth":282,"text":3557},{"id":613,"depth":282,"text":613},{"id":803,"depth":282,"text":803},{"id":873,"depth":282,"text":874},{"id":908,"depth":282,"text":908},{"id":929,"depth":282,"text":929},"\u002Fimg\u002Ftools\u002Fgpt-store.webp","OpenAI GPT Store 真实评测：ChatGPT 内置 Custom GPT 市场（2024-01 上线），2026 年已有 300 万+ Custom GPT。GPT Builder 让非技术用户用自然语言搭建：Instructions \u002F Knowledge（20 文件）\u002F Actions（OpenAPI \u002F OAuth）\u002F 内置工具（DALL-E \u002F Code Interpreter \u002F Web Browsing）。Revenue Sharing 按 engagement 分成（非 install 数）但门槛高——大部分创作者月入 $100-500，赚钱核心是『B2B 内部 GPT + 顶部 0.01% engagement』，不是『C 端爆款』。",[3900,3903,3906,3909],{"q":3901,"a":3902},"GPT Store 能赚多少钱？分成机制是怎样的？","OpenAI 用 engagement-based 分成（非 install 数 \u002F 非固定价格），具体公式不公开。多个 2026 评测交叉确认：平均每会话约 $0.03，月入 $1000 需 33K+ 高质量会话。Digital Applied 等给出 reality check：90%+ 创作者月入 $100-500，仅顶部 0.01% engagement 能撑全职。真正赚钱的两条路：(1) **B2B 内部 GPT 咨询**——给企业用 SharePoint \u002F Confluence \u002F 私有 KB 搭内部 GPT，每个项目 $5K-20K 上手 + $1K-5K\u002F月维护；(2) **GPT 当 top-of-funnel**——免费 GPT 引流到自家 SaaS（Stripe 计费）。靠 OpenAI 直接分成全职生活很难。",{"q":3904,"a":3905},"Custom GPT vs Coze vs Dify 怎么选？","GPT Store = OpenAI 模型 only + 极低门槛 + ChatGPT 内分发；Coze = 国内对标（豆包 \u002F DeepSeek \u002F Qwen 多模型 + 飞书 \u002F 微信 \u002F 抖音多渠道）；Dify = 开源 + 全模型 + 私有部署 + API。决策：(1) C 端 + 海外 + ChatGPT 用户 → GPT Store；(2) 国内 C 端 + 多渠道 → Coze；(3) 企业 + 私有部署 + 全模型 → Dify。生产工作流 + 复杂 Agent → 优先 Coze \u002F Dify，GPT Store 当流量入口。",{"q":3907,"a":3908},"Custom GPT 能调外部 API（Actions）吗？怎么做 OAuth？","能。GPT Builder 的 Actions 支持自定义 OpenAPI 3.x schema，可调任意 REST API。认证方式：(a) API Key（HTTP header \u002F query）；(b) OAuth 2.0 Authorization Code Flow（用户在 ChatGPT 内 一键授权）。2026 Actions 已支持 long-running operations + 多步骤。但配额和限速受 ChatGPT 计划限制（Plus 比 Team \u002F Enterprise 紧）。生产场景建议 Actions + 自家后端做请求合并 \u002F 缓存。",{"q":3910,"a":3911},"Anthropic 也推了 Claude Marketplace（2026-03），GPT Store 还有优势吗？","两者定位不同。GPT Store 主打 **C 端开发者 + 长尾 GPT**（300 万+ Custom GPT、Plus 用户免费访问），生态最大；Claude Marketplace 主打 **B2B 企业采购**（用 Anthropic 承诺额度买第三方 Claude 软件，首批 6 个企业级 partner，Anthropic 零佣金）。GPT Store 优势：量大、ChatGPT 内分发、GPT Builder 极易上手、Plus 用户基数大；劣势：Revenue Sharing 不透明、$0.03\u002F会话天花板低、深度定制受限。两者并存：C 端 long-tail 用 GPT Store，B2B 大客户走 Claude Marketplace。",[3282,1004],{},[1767,3915,3916],"ios","android",[3918,3920,3922,3925],{"plan":3459,"price":775,"features":3919,"notes":2508},"基础 ChatGPT 但 GPT Store 限制访问",{"plan":3465,"price":2280,"features":3921,"notes":1775},"全 GPT Store 访问 + GPT Builder + GPT-5.2 + DALL-E + 代码解释器",{"plan":3471,"price":2512,"features":3923,"notes":3924},"团队共享 GPT + 集中计费 + 高 context","5+ 人团队",{"plan":3477,"price":2516,"features":3926,"notes":2518},"SSO + audit + 私有 GPT + 数据不训练 + 高速 GPT-5.2 + Actions OAuth","ChatGPT Plus $20\u002Fmo \u002F Team $30\u002Fseat\u002Fmo \u002F Enterprise 联系销售",[3929],{"name":3930,"url":3931},"Custom GPT 商业化与 B2B 落地","\u002Fplaybook\u002Fonboarding\u002Fcustom-gpt-monetization",{"power":319,"ux":326,"price":313,"cn_support":319,"stability":319},{"title":3326,"description":3898},"agent\u002Fskills\u002Fgpt-store",[3936,3938,3940,3942,3944],{"name":3937,"url":3855,"accessed":1031},"ChatGPT GPT Store",{"name":3939,"url":3862,"accessed":1031},"Digital Applied — GPT Store Business Guide 2026（含 ~$0.03\u002F会话）",{"name":3941,"url":3869,"accessed":1031},"Singularity Moments — Custom GPTs Guide 2026（3M+ GPT）",{"name":3943,"url":3876,"accessed":1031},"GPT Store Revenue Case Studies 2026",{"name":3945,"url":3883,"accessed":1031},"VentureBeat — GPT Store 上线 2024-01","tools\u002Fagent\u002Fskills\u002Fgpt-store","OpenAI 官方 GPT 市场——300 万+ 自定义 GPT + GPT Builder + Actions + 引擎驱动分成",[1820,2485,1809,3949,3950,3951],"openai","chatgpt","custom-gpt","GPT Store 是 C 端 Agent 市场的标杆——量大、易用、Plus 用户全免费访问。但开发者深度定制受限、Revenue Sharing 不透明、平均 ~$0.03\u002F会话『需 33K+ 会话\u002F月才能赚 $1K』。想做生产级 Agent \u002F 大规模分成还是得 Coze \u002F Dify \u002F B2B 顾问。","yerti9Bf9xKB712juLcpq1QTgZNoGGU4P3R7oR7EDyI",{"id":3955,"title":3956,"alternatives":3957,"api_compatible":25,"body":3965,"category":4555,"chinese_friendly":326,"cover":4556,"description":4557,"domestic":988,"extension":989,"faq":4558,"free":988,"github":25,"languages":4571,"meta":4572,"models":25,"navigation":322,"notSuitable":25,"opensource":322,"path":4573,"pillar":1007,"platforms":4574,"priceTable":4576,"pricing":4589,"published":4590,"relatedPlaybooks":4591,"relatedReviews":25,"score":4595,"self_host":322,"seo":4596,"slug":4597,"sources":4598,"stem":4607,"suitable":25,"tagline":4608,"tags":4609,"updated":1031,"verdict":4616,"website":4517,"__hash__":4617},"tools\u002Ftools\u002Fagent\u002Fdesktop\u002Fautoglm.md","AutoGLM",[3958,3959,3962],{"name":1057,"url":1058},{"name":3960,"url":3961},"openclaw","\u002Ftools\u002Fagent\u002Fdesktop\u002Fopenclaw",{"name":3963,"url":3964},"manus","\u002Ftools\u002Fcoding\u002Fagent\u002Fmanus",{"type":27,"value":3966,"toc":4543},[3967,3969,3972,3975,3977,4045,4047,4067,4072,4076,4080,4100,4104,4127,4131,4266,4268,4410,4412,4462,4464,4490,4492,4508,4510,4540],[30,3968,33],{"id":32},[35,3970,3971],{},"AutoGLM 是智谱清言 + 清华大学合作的 GUI 自治智能体研究项目（arXiv 2411.00820）。2025-12-08 开源 Open-AutoGLM：AutoGLM-Phone-9B 模型（MIT 协议，HuggingFace \u002F ModelScope 可下载）+ Apache 2.0 框架代码 + Android 适配 + Remote ADB + 50+ 中文 App 示例。VAB-WebArena-Lite 55.2% \u002F 59.1% 成功率，覆盖微信 \u002F 淘宝 \u002F 美团 \u002F Gmail \u002F Google Maps 等。Web 端通过智谱清言 Chrome 扩展（10 万+ 用户）提供页面总结 \u002F 高级检索能力。",[35,3973,3974],{},"适合：研究 GUI agent 的学术 \u002F 工程团队；国内 App 自治场景；要中文模型 + 私有化部署；想本地跑 phone agent 不依赖外网。不适合：跨平台桌面自动化（用 Anthropic Computer Use \u002F Claude Desktop）；纯英文 web 任务（成功率不如商业产品）；要 production-grade 稳定性（学术 \u002F 开源版本仍在演进）。",[30,3976,65],{"id":65},[67,3978,3979,3985,3991,3997,4003,4009,4015,4021,4027,4033,4039],{},[70,3980,3981,3984],{},[48,3982,3983],{},"AutoGLM-Phone-9B","：MIT 协议开源模型，HuggingFace \u002F ModelScope 可下载",[70,3986,3987,3990],{},[48,3988,3989],{},"Android 适配层","：原生 Android API + Accessibility Service",[70,3992,3993,3996],{},[48,3994,3995],{},"Remote ADB","：初次配置后通过 WiFi 控制设备，无需 USB",[70,3998,3999,4002],{},[48,4000,4001],{},"多模态屏幕理解","：截屏 + UI 树双输入，规划 + grounding 分离",[70,4004,4005,4008],{},[48,4006,4007],{},"50+ 中文 App 任务示例","：微信 \u002F 淘宝 \u002F 美团 \u002F 京东 \u002F 支付宝 \u002F 抖音 \u002F 小红书 \u002F 大众点评等",[70,4010,4011,4014],{},[48,4012,4013],{},"英文 App 覆盖","：Gmail \u002F Google Maps \u002F X \u002F Reddit \u002F OneStopShop",[70,4016,4017,4020],{},[48,4018,4019],{},"Web 浏览器智能体","：Chrome 扩展 + VAB-WebArena-Lite 55.2% \u002F 59.1%",[70,4022,4023,4026],{},[48,4024,4025],{},"页面总结 + 划线助手 + 写作助手 + 高级检索","（知网 \u002F 知乎 \u002F 小红书）",[70,4028,4029,4032],{},[48,4030,4031],{},"Safe Operations","：敏感操作（登录 \u002F 验证码）确认后由人接管",[70,4034,4035,4038],{},[48,4036,4037],{},"Python API","：几行代码就能跑通自动化任务",[70,4040,4041,4044],{},[48,4042,4043],{},"私有化部署","：模型 + 框架本地跑，数据 \u002F 日志 \u002F 权限完全自控",[30,4046,163],{"id":163},[67,4048,4049,4055,4061],{},[70,4050,4051,4054],{},[48,4052,4053],{},"Open-AutoGLM","：$0；模型 MIT + 代码 Apache 2.0",[70,4056,4057,4060],{},[48,4058,4059],{},"Chrome 扩展","：$0；Chrome Web Store 装即用",[70,4062,4063,4066],{},[48,4064,4065],{},"整合产品（智谱清言 App）","：商业服务，价格随订阅",[179,4068,4069],{},[35,4070,4071],{},"真实成本 = 0（开源）+ GPU 推理（9B 模型 RTX 4090 一张即可跑）",[30,4073,4075],{"id":4074},"实测开源版本-pixel-6a-ubuntu-2204","实测（开源版本 \u002F Pixel 6a + Ubuntu 22.04）",[35,4077,4078],{},[48,4079,192],{},[67,4081,4082,4085,4088,4091,4094,4097],{},[70,4083,4084],{},"32 个月研发的『手机 GUI agent』终于开源，是国内学术圈难得的开放姿态",[70,4086,4087],{},"中文 App 覆盖度领先：微信 \u002F 美团 \u002F 淘宝跑通率高",[70,4089,4090],{},"模型 9B 可在单卡 4090 + 24GB 显存跑，门槛友好",[70,4092,4093],{},"Remote ADB 让长跑实验摆脱 USB 线",[70,4095,4096],{},"学术 benchmark 数据透明（55.2% \u002F 59.1%）",[70,4098,4099],{},"safe-operation 设计对登录 \u002F 支付环节做人审接管，避免误操作",[35,4101,4102],{},[48,4103,226],{},[67,4105,4106,4109,4112,4115,4118,4121,4124],{},[70,4107,4108],{},"App 版本更新后 UI 元素变化要重新适配",[70,4110,4111],{},"9B 模型在复杂多步骤任务上推理不如商业大模型（GPT-5.4 \u002F Claude Opus 4.6）",[70,4113,4114],{},"主要面向 Android，iOS 支持空缺",[70,4116,4117],{},"文档以 README + 论文为主，工程化最佳实践薄",[70,4119,4120],{},"国行 App 隐私 \u002F 反爬监测会偶尔拦截",[70,4122,4123],{},"Chrome 扩展 3.4 \u002F 5 评分中等，功能尚可但稳定性一般",[70,4125,4126],{},"整合版（智谱清言）和开源版差异要注意，别混用",[30,4128,4130],{"id":4129},"上手open-autoglm","上手（Open-AutoGLM）",[263,4132,4134],{"className":265,"code":4133,"language":267,"meta":268,"style":268},"git clone https:\u002F\u002Fgithub.com\u002Fzai-org\u002FOpen-AutoGLM\ncd Open-AutoGLM && pip install -r requirements.txt\n\n# 下载 9B 模型\nhuggingface-cli download THUDM\u002FAutoGLM-Phone-9B\n\n# 配置 ADB（USB 一次）\nadb tcpip 5555 && adb connect \u003Cdevice-ip>:5555\n\n# 跑示例任务\npython examples\u002Frun_phone_agent.py \\\n  --model THUDM\u002FAutoGLM-Phone-9B \\\n  --task \"在小红书搜索罗马旅游攻略并总结景点\"\n",[39,4135,4136,4146,4168,4172,4177,4188,4192,4197,4229,4233,4238,4248,4258],{"__ignoreMap":268},[272,4137,4138,4140,4143],{"class":274,"line":275},[272,4139,3029],{"class":285},[272,4141,4142],{"class":289}," clone",[272,4144,4145],{"class":289}," https:\u002F\u002Fgithub.com\u002Fzai-org\u002FOpen-AutoGLM\n",[272,4147,4148,4151,4154,4157,4160,4162,4165],{"class":274,"line":282},[272,4149,4150],{"class":293},"cd",[272,4152,4153],{"class":289}," Open-AutoGLM",[272,4155,4156],{"class":303}," && ",[272,4158,4159],{"class":285},"pip",[272,4161,1285],{"class":289},[272,4163,4164],{"class":293}," -r",[272,4166,4167],{"class":289}," requirements.txt\n",[272,4169,4170],{"class":274,"line":313},[272,4171,323],{"emptyLinePlaceholder":322},[272,4173,4174],{"class":274,"line":319},[272,4175,4176],{"class":278},"# 下载 9B 模型\n",[272,4178,4179,4182,4185],{"class":274,"line":326},[272,4180,4181],{"class":285},"huggingface-cli",[272,4183,4184],{"class":289}," download",[272,4186,4187],{"class":289}," THUDM\u002FAutoGLM-Phone-9B\n",[272,4189,4190],{"class":274,"line":332},[272,4191,323],{"emptyLinePlaceholder":322},[272,4193,4194],{"class":274,"line":5},[272,4195,4196],{"class":278},"# 配置 ADB（USB 一次）\n",[272,4198,4199,4202,4205,4208,4210,4212,4215,4218,4221,4223,4226],{"class":274,"line":8},[272,4200,4201],{"class":285},"adb",[272,4203,4204],{"class":289}," tcpip",[272,4206,4207],{"class":293}," 5555",[272,4209,4156],{"class":303},[272,4211,4201],{"class":285},[272,4213,4214],{"class":289}," connect",[272,4216,4217],{"class":490}," \u003C",[272,4219,4220],{"class":289},"device-i",[272,4222,35],{"class":303},[272,4224,4225],{"class":490},">",[272,4227,4228],{"class":289},":5555\n",[272,4230,4231],{"class":274,"line":351},[272,4232,323],{"emptyLinePlaceholder":322},[272,4234,4235],{"class":274,"line":7},[272,4236,4237],{"class":278},"# 跑示例任务\n",[272,4239,4240,4243,4246],{"class":274,"line":368},[272,4241,4242],{"class":285},"python",[272,4244,4245],{"class":289}," examples\u002Frun_phone_agent.py",[272,4247,310],{"class":293},[272,4249,4250,4253,4256],{"class":274,"line":377},[272,4251,4252],{"class":293},"  --model",[272,4254,4255],{"class":289}," THUDM\u002FAutoGLM-Phone-9B",[272,4257,310],{"class":293},[272,4259,4260,4263],{"class":274,"line":386},[272,4261,4262],{"class":293},"  --task",[272,4264,4265],{"class":289}," \"在小红书搜索罗马旅游攻略并总结景点\"\n",[30,4267,613],{"id":613},[615,4269,4270,4287],{},[618,4271,4272],{},[621,4273,4274,4276,4278,4281,4284],{},[624,4275,626],{},[624,4277,3956],{},[624,4279,4280],{},"Claude Desktop",[624,4282,4283],{},"OpenClaw",[624,4285,4286],{},"Anthropic Computer Use",[639,4288,4289,4306,4321,4337,4351,4366,4380,4394],{},[621,4290,4291,4294,4297,4300,4303],{},[644,4292,4293],{},"平台",[644,4295,4296],{},"Android + Web",[644,4298,4299],{},"macOS \u002F Windows + MCP",[644,4301,4302],{},"macOS\u002FLinux\u002FWin",[644,4304,4305],{},"跨平台",[621,4307,4308,4311,4314,4317,4319],{},[644,4309,4310],{},"开源",[644,4312,4313],{},"✅ MIT 模型 + Apache 代码",[644,4315,4316],{},"闭源",[644,4318,767],{},[644,4320,690],{},[621,4322,4323,4326,4329,4332,4334],{},[644,4324,4325],{},"中文 App",[644,4327,4328],{},"✅ 50+ 示例",[644,4330,4331],{},"–",[644,4333,718],{},[644,4335,4336],{},"弱",[621,4338,4339,4342,4345,4347,4349],{},[644,4340,4341],{},"Phone agent",[644,4343,4344],{},"✅ 9B 模型",[644,4346,690],{},[644,4348,690],{},[644,4350,690],{},[621,4352,4353,4356,4358,4361,4364],{},[644,4354,4355],{},"桌面 agent",[644,4357,690],{},[644,4359,4360],{},"✅ MCP",[644,4362,4363],{},"✅ Gateway",[644,4365,712],{},[621,4367,4368,4371,4374,4376,4378],{},[644,4369,4370],{},"学术 benchmark",[644,4372,4373],{},"✅ 公开",[644,4375,4331],{},[644,4377,4331],{},[644,4379,718],{},[621,4381,4382,4385,4387,4389,4392],{},[644,4383,4384],{},"整合 IM",[644,4386,4331],{},[644,4388,4331],{},[644,4390,4391],{},"✅ 20+ 平台",[644,4393,4331],{},[621,4395,4396,4398,4401,4404,4407],{},[644,4397,788],{},[644,4399,4400],{},"国内 App \u002F 研究 \u002F 私有化",[644,4402,4403],{},"MCP 生态桌面",[644,4405,4406],{},"IM 触发个人 agent",[644,4408,4409],{},"跨平台桌面",[30,4411,803],{"id":803},[67,4413,4414,4420,4426,4432,4438,4444,4450,4456],{},[70,4415,4416,4419],{},[48,4417,4418],{},"App 版本敏感","：UI 改动后效果下降，要 pin App 版本或重训样本",[70,4421,4422,4425],{},[48,4423,4424],{},"9B 模型推理上限","：复杂多步任务上不及 GPT-5.4 \u002F Claude，可叠加外部规划模型",[70,4427,4428,4431],{},[48,4429,4430],{},"iOS 暂缺","：需要 iOS agent 走别的方案",[70,4433,4434,4437],{},[48,4435,4436],{},"Remote ADB 安全","：开放端口必须限内网 + 防火墙",[70,4439,4440,4443],{},[48,4441,4442],{},"国行 App 反爬","：账号风控 \u002F 验证码会触发，必要时 human-in-the-loop",[70,4445,4446,4449],{},[48,4447,4448],{},"学术 vs 整合版","：开源版能力 ≠ 智谱清言 App 内置版能力，PoC 别混淆",[70,4451,4452,4455],{},[48,4453,4454],{},"隐私 \u002F 合规","：本地部署是优势，但读取 IM \u002F 通讯录仍要符合用户授权 + 当地法律",[70,4457,4458,4461],{},[48,4459,4460],{},"MIT 模型 + Apache 代码","：商用务必看 LICENSE，企业合规审计要走流程",[30,4463,874],{"id":873},[67,4465,4466,4469,4472,4475,4478,4481,4484,4487],{},[70,4467,4468],{},"✅ GUI agent 学术研究 \u002F 工程团队",[70,4470,4471],{},"✅ 国内 App 自治（微信 \u002F 美团 \u002F 淘宝 \u002F 小红书）",[70,4473,4474],{},"✅ 想本地跑 phone agent + 数据自主",[70,4476,4477],{},"✅ 私有化部署 + 合规需求",[70,4479,4480],{},"❌ 跨平台桌面自动化（Claude Desktop \u002F Anthropic Computer Use）",[70,4482,4483],{},"❌ iOS App 自治",[70,4485,4486],{},"❌ 要 production-grade 稳定性（仍在演进）",[70,4488,4489],{},"❌ 不懂 ADB \u002F Python 部署的纯用户",[30,4491,908],{"id":908},[67,4493,4494,4498,4503],{},[70,4495,4496],{},[914,4497,1687],{"href":1058},[70,4499,4500],{},[914,4501,4502],{"href":3961},"OpenClaw 评测",[70,4504,4505],{},[914,4506,4507],{"href":3964},"Manus 评测",[30,4509,929],{"id":929},[931,4511,4512,4519,4526,4533],{},[70,4513,4514,4515],{},"AutoGLM 项目主页（含 Open-AutoGLM 2025-12-08 发布说明 \u002F benchmark 数据）",[914,4516,4517],{"href":4517,"rel":4518},"https:\u002F\u002Fxiao9905.github.io\u002FAutoGLM",[940],[70,4520,4521,4522],{},"腾讯新闻 — 智谱开源 AutoGLM（32 个月研发 \u002F MIT + Apache 2.0）",[914,4523,4524],{"href":4524,"rel":4525},"https:\u002F\u002Fnews.qq.com\u002Frain\u002Fa\u002F20251209A05V1G00",[940],[70,4527,4528,4529],{},"AutoGLM arXiv 论文 ",[914,4530,4531],{"href":4531,"rel":4532},"https:\u002F\u002Farxiv.org\u002Fabs\u002F2411.00820",[940],[70,4534,4535,4536],{},"Chrome Web Store — 智谱清言 ChatGLM & AutoGLM 工作学习 AI 助手 ",[914,4537,4538],{"href":4538,"rel":4539},"https:\u002F\u002Fchromewebstore.google.com\u002Fdetail\u002Fmnpdbmgpebfihcndnpgdaihnkmloclkd",[940],[970,4541,4542],{},"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 .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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);}",{"title":268,"searchDepth":313,"depth":313,"links":4544},[4545,4546,4547,4548,4549,4550,4551,4552,4553,4554],{"id":32,"depth":282,"text":33},{"id":65,"depth":282,"text":65},{"id":163,"depth":282,"text":163},{"id":4074,"depth":282,"text":4075},{"id":4129,"depth":282,"text":4130},{"id":613,"depth":282,"text":613},{"id":803,"depth":282,"text":803},{"id":873,"depth":282,"text":874},{"id":908,"depth":282,"text":908},{"id":929,"depth":282,"text":929},"desktop","\u002Fimg\u002Ftools\u002Fautoglm.webp","AutoGLM 真实评测：智谱清言 + 清华大学合作的 GUI 自治智能体研究产品（arXiv 2411.00820）。2025-12-08 Open-AutoGLM 开源版本（MIT\u002FApache 2.0）发布，含 AutoGLM-Phone-9B 模型（HuggingFace \u002F ModelScope 可下载）+ Android 适配层 + 50+ 中文 App 任务示例。VAB-WebArena-Lite 55.2% 成功率（二次尝试 59.1%），中文 App 支持 Gmail\u002F微信\u002F淘宝\u002F美团等。",[4559,4562,4565,4568],{"q":4560,"a":4561},"Open-AutoGLM 和原 AutoGLM 什么关系？","原 AutoGLM 是智谱 2024-10 发布的闭源整合产品（手机 + Web GUI agent），首次在真实手机环境跑通完整自治链路。Open-AutoGLM 是 2025-12 开源版本，把核心模型（AutoGLM-Phone-9B）+ 框架代码 + Android 适配层 + 50+ 中文 App 任务示例释放出来，方便开发者本地部署 + 二次开发。整合版闭源、商业；开源版用于学术 \u002F 私有化。",{"q":4563,"a":4564},"支持哪些 App？","Open-AutoGLM 内置 50+ 中文 App 示例：微信 \u002F 淘宝 \u002F 美团 \u002F 京东 \u002F 支付宝 \u002F 抖音 \u002F 小红书 \u002F 网易云 \u002F 大众点评 + 英文 Gmail \u002F Google Maps \u002F X \u002F Reddit 等。任何 Android App 理论可用，但效果取决于 UI 元素的可识别度，新版本 App 需要重新适配。",{"q":4566,"a":4567},"Web 端能力？","Web 端通过 Chrome 扩展（智谱清言：ChatGLM & AutoGLM 工作学习 AI 助手）提供——10 万+ 用户安装，含页面总结 \u002F 划线助手 \u002F 写作助手 \u002F 高级检索（知网 \u002F 知乎 \u002F 小红书）。VAB-WebArena-Lite benchmark 55.2% 首次成功率，二次尝试 59.1%。",{"q":4569,"a":4570},"和 Anthropic Computer Use \u002F Claude Desktop 怎么选？","AutoGLM 强在中文 App + 学术研究 + 开源权重 + 国内合规；Anthropic Computer Use 强在跨平台桌面 + 英文场景 + 模型推理；Claude Desktop 强在 MCP 生态 + 一键 .mcpb 安装。国内 App 自治 + 私有化 → AutoGLM；英文桌面 + 通用桌面操作 → Anthropic \u002F Claude Desktop。",[3282,1004],{},"\u002Ftools\u002Fagent\u002Fdesktop\u002Fautoglm",[3916,4575,1767],"chrome-extension",[4577,4580,4584],{"plan":4053,"price":775,"features":4578,"notes":4579},"AutoGLM-Phone-9B 模型（MIT）+ 框架代码（Apache 2.0）+ Android 适配 + Remote ADB + 50+ 中文 App 示例","开源 \u002F 私有化部署",{"plan":4581,"price":775,"features":4582,"notes":4583},"智谱清言 Chrome 扩展","Web 划线 \u002F 总结 \u002F 高级检索 \u002F 写作助手 \u002F 页面对话","Chrome Web Store",{"plan":4585,"price":4586,"features":4587,"notes":4588},"智谱清言 App 内置","Custom","完整 GUI agent 能力（Phone \u002F Web）+ 整合产品体验","国行 App \u002F 商业服务","Open-AutoGLM 开源免费（MIT 模型 + Apache 2.0 代码）\u002F 智谱清言 App 内置版商业","2026-06-19",[4592],{"name":4593,"url":4594},"GUI Agent 工程化","\u002Fplaybook\u002Fonboarding\u002Fgui-agent-engineering",{"power":319,"ux":319,"price":326,"cn_support":326,"stability":313},{"title":3956,"description":4557},"agent\u002Fdesktop\u002Fautoglm",[4599,4601,4603,4605],{"name":4600,"url":4517,"accessed":1031},"AutoGLM 项目主页（清华 \u002F Z.AI）",{"name":4602,"url":4524,"accessed":1031},"腾讯新闻 — 智谱开源 AutoGLM",{"name":4604,"url":4531,"accessed":1031},"AutoGLM arXiv 论文 2411.00820",{"name":4606,"url":4538,"accessed":1031},"Chrome Web Store — 智谱清言扩展（10万+用户）","tools\u002Fagent\u002Fdesktop\u002Fautoglm","智谱清言出品 + 清华团队 GUI 自治智能体——Open-AutoGLM 开源 9B 手机模型 + Chrome 浏览器扩展",[4610,4611,4612,1046,4613,4614,4615],"gui-agent","mobile-agent","browser-agent","chinese","zhipu","chatglm","国内『AI 操作手机 \u002F 浏览器』开源标杆——智谱 32 个月研发、清华学术背景、MIT 开源模型权重。学术研究 \u002F 国内 App 自治 \u002F 私有化部署首选。生产稳定性 + 跨平台桌面仍弱于 Anthropic Computer Use \u002F Claude Desktop。","VvdWEKZS3wv_yukoLOAxIkFOGINlTMgvdTZRo9H_GUA",{"tools":4,"reviews":5,"playbooks":7,"news":8},[4620,4622,4629,4638,4645,4654,4663,4672,4681,4690,4699,4706,4713,4722,4730,4739,4748,4755,4757,4759,4761,4763,4765,4775,4784,4793,4802,4811,4820,4829,4838,4847,4856,4865,4874,4883,4892,4901,4910,4919,4928,4937,4946,4955,4964,4973,4982,4991,5000,5008,5017,5026,5035,5044,5053,5062,5071,5080,5089,5098,5107,5116,5125,5134,5143],{"title":3956,"slug":4597,"path":4573,"cover":4556,"website":4517,"tagline":4608,"pricing":4589,"pillar":1007,"score":4621,"opensource":322,"chinese_friendly":326,"free":988},{"power":319,"ux":319,"price":326,"cn_support":326,"stability":313},{"title":4280,"slug":4623,"path":1058,"cover":4624,"website":4625,"tagline":4626,"pricing":4627,"pillar":1007,"score":4628,"opensource":988,"chinese_friendly":313,"free":988},"agent\u002Fdesktop\u002Fclaude-desktop","\u002Fimg\u002Ftools\u002Fclaude-desktop.webp","https:\u002F\u002Fclaude.ai\u002Fdownload","Anthropic 官方桌面客户端——原生 MCP 支持 + 一键 .mcpb 扩展安装 + Connectors 面板","Free \u002F Pro $20·月 \u002F Max $100·月 \u002F Max+ $200·月 \u002F Team $30·user·月 \u002F Enterprise",{"power":326,"ux":326,"price":313,"cn_support":282,"stability":326},{"title":4630,"slug":4631,"path":4632,"cover":4633,"website":4634,"tagline":4635,"pricing":4636,"pillar":1007,"score":4637,"opensource":322,"chinese_friendly":313,"free":988},"Crush","agent\u002Fdesktop\u002Fcrush","\u002Ftools\u002Fagent\u002Fdesktop\u002Fcrush","\u002Fimg\u002Ftools\u002Fcrush.webp","https:\u002F\u002Fgithub.com\u002Fcharmbracelet\u002Fcrush","Charmbracelet 出品的终端 AI 编程 agent——多模型切换 + LSP + MCP + Agent Skills 标准","免费开源（FSL-1.1-MIT，2 年后转 MIT）\u002F 用户自带 LLM API Key",{"power":326,"ux":326,"price":326,"cn_support":313,"stability":319},{"title":4283,"slug":4639,"path":3961,"cover":4640,"website":4641,"tagline":4642,"pricing":4643,"pillar":1007,"score":4644,"opensource":322,"chinese_friendly":319,"free":988},"agent\u002Fdesktop\u002Fopenclaw","\u002Fimg\u002Ftools\u002Fopenclaw.webp","https:\u002F\u002Fdocs.openclaw.ai","2026 现象级开源个人 AI Agent——多 IM 网关 + 技能市场 ClawHub 5400+ + 7×24 Heartbeat","MIT 完全免费开源 \u002F 用户自带 LLM API（GPT \u002F Claude \u002F 本地 Ollama 全免费）",{"power":326,"ux":319,"price":326,"cn_support":319,"stability":319},{"title":4646,"slug":4647,"path":4648,"cover":4649,"website":4650,"tagline":4651,"pricing":4652,"pillar":1007,"score":4653,"opensource":988,"chinese_friendly":313,"free":988},"Alice","agent\u002Fgeneral\u002Falice","\u002Ftools\u002Fagent\u002Fgeneral\u002Falice","\u002Fimg\u002Ftools\u002Falice.webp","https:\u002F\u002Fheyalice.app","heyalice.app 桌面 AI 助手——OS 级全局快捷键 + 多模型 + 50+ Assistants \u002F 200+ Skills","$59-99 一次买断 + 3 周免费试用 \u002F 自带 API Key 走 LLM 计费",{"power":319,"ux":326,"price":319,"cn_support":313,"stability":319},{"title":4655,"slug":4656,"path":4657,"cover":4658,"website":4659,"tagline":4660,"pricing":4661,"pillar":1007,"score":4662,"opensource":988,"chinese_friendly":319,"free":988},"Flowith","agent\u002Fgeneral\u002Fflowith","\u002Ftools\u002Fagent\u002Fgeneral\u002Fflowith","\u002Fimg\u002Ftools\u002Fflowith.webp","https:\u002F\u002Fflowith.io","无限画布 AI 工作空间——Agent Neo 10M token 上下文 + 1000+ 步自治 + 40+ 模型 + Knowledge Garden","Free (300 一次性 credits) \u002F Pro $19.90·月 \u002F Ultimate $49.90·月 \u002F Infinite $499.90·月（年付 8 折）",{"power":326,"ux":319,"price":313,"cn_support":319,"stability":319},{"title":4664,"slug":4665,"path":4666,"cover":4667,"website":4668,"tagline":4669,"pricing":4670,"pillar":1007,"score":4671,"opensource":988,"chinese_friendly":319,"free":988},"Genspark","agent\u002Fgeneral\u002Fgenspark","\u002Ftools\u002Fagent\u002Fgeneral\u002Fgenspark","\u002Fimg\u002Ftools\u002Fgenspark.webp","https:\u002F\u002Fgenspark.ai","Palo Alto 出品的 AI Super Agent——多 Agent 架构 + Sparkpage \u002F Slides \u002F Sites \u002F Video \u002F Call For Me 全栈","Free (100-200 daily) \u002F Plus $25·月 (12k credits) \u002F Pro $249·月 (125k credits) \u002F 年付有折扣",{"power":326,"ux":319,"price":313,"cn_support":313,"stability":319},{"title":4673,"slug":4674,"path":4675,"cover":4676,"website":4677,"tagline":4678,"pricing":4679,"pillar":1007,"score":4680,"opensource":988,"chinese_friendly":319,"free":988},"Manus","agent\u002Fgeneral\u002Fmanus","\u002Ftools\u002Fagent\u002Fgeneral\u002Fmanus","\u002Fimg\u002Ftools\u002Fmanus.webp","https:\u002F\u002Fmanus.im","通用 Agent 体感天花板，自主完成复杂多步骤任务","Free \u002F Pro $20\u002Fmo \u002F Plus $50\u002Fmo \u002F Pro+ Team 最高 $200\u002Fmo",{"power":326,"ux":326,"price":313,"cn_support":319,"stability":313},{"title":4682,"slug":4683,"path":4684,"cover":4685,"website":4686,"tagline":4687,"pricing":4688,"pillar":1007,"score":4689,"opensource":988,"chinese_friendly":313,"free":988},"Msty","agent\u002Fgeneral\u002Fmsty","\u002Ftools\u002Fagent\u002Fgeneral\u002Fmsty","\u002Fimg\u002Ftools\u002Fmsty.webp","https:\u002F\u002Fmsty.ai","本地优先 + 多模型并行的桌面 AI——Split Chats \u002F Knowledge Stack \u002F Agent Mode 三件套","Free 本地无限 \u002F Aurum $149·年（cloud sync）\u002F Lifetime $349 一次买断 \u002F Enterprise $300·user·年",{"power":319,"ux":326,"price":326,"cn_support":313,"stability":319},{"title":4691,"slug":4692,"path":4693,"cover":4694,"website":4695,"tagline":4696,"pricing":4697,"pillar":1007,"score":4698,"opensource":322,"chinese_friendly":319,"free":988},"OpenManus","agent\u002Fgeneral\u002Fopenmanus","\u002Ftools\u002Fagent\u002Fgeneral\u002Fopenmanus","\u002Fimg\u002Ftools\u002Fopenmanus.webp","https:\u002F\u002Fgithub.com\u002FFoundationAgents\u002FOpenManus","MetaGPT 团队开源版 Manus——52k+ stars \u002F MIT \u002F 多 agent + 浏览器自动化 + MCP + DataAnalysis","MIT 完全免费开源 \u002F 用户自付 LLM API（GPT-4o \u002F Claude 3.5 \u002F Qwen VL Plus 任选）",{"power":326,"ux":313,"price":326,"cn_support":319,"stability":313},{"title":3578,"slug":4700,"path":3332,"cover":4701,"website":4702,"tagline":4703,"pricing":4704,"pillar":1007,"score":4705,"opensource":988,"chinese_friendly":326,"free":988},"agent\u002Fplatform\u002Fcoze","\u002Fimg\u002Ftools\u002Fcoze.webp","https:\u002F\u002Fwww.coze.cn","字节出品的 Agent 搭建平台，国内 \u002F 国际双版本","免费档 \u002F 专业版按调用计费 \u002F 企业版议价",{"power":319,"ux":326,"price":319,"cn_support":326,"stability":319},{"title":3581,"slug":4707,"path":3335,"cover":4708,"website":4709,"tagline":4710,"pricing":4711,"pillar":1007,"score":4712,"opensource":322,"chinese_friendly":319,"free":988},"agent\u002Fplatform\u002Fdify","\u002Fimg\u002Ftools\u002Fdify.webp","https:\u002F\u002Fdify.ai","开源 LLMOps 平台，私有部署 Agent 首选","云版 SaaS（免费档 \u002F Professional $59\u002F月起） + 开源自托管完全免费",{"power":326,"ux":319,"price":326,"cn_support":319,"stability":319},{"title":4714,"slug":4715,"path":4716,"cover":4717,"website":4718,"tagline":4719,"pricing":4720,"pillar":1007,"score":4721,"opensource":322,"chinese_friendly":326,"free":988},"FastGPT","agent\u002Fplatform\u002Ffastgpt","\u002Ftools\u002Fagent\u002Fplatform\u002Ffastgpt","\u002Fimg\u002Ftools\u002Ffastgpt.webp","https:\u002F\u002Ffastgpt.io","开源知识库问答系统，国内私有部署友好","自托管开源免费 \u002F 云版 ¥0-¥599\u002F月",{"power":319,"ux":319,"price":326,"cn_support":326,"stability":319},{"title":4723,"slug":4724,"path":24,"cover":4725,"website":4726,"tagline":4727,"pricing":4728,"pillar":1007,"score":4729,"opensource":322,"chinese_friendly":313,"free":988},"Langflow","agent\u002Fplatform\u002Flangflow","\u002Fimg\u002Ftools\u002Flangflow.webp","https:\u002F\u002Fwww.langflow.org","DataStax 出品的可视化 LangChain 画布——MIT 开源 + 20k+ stars + 自托管 + Astra DB 云托管","Self-host 完全免费 MIT \u002F Cloud Free + 付费起 ~$25·月（Astra-hosted）",{"power":319,"ux":326,"price":326,"cn_support":313,"stability":319},{"title":4731,"slug":4732,"path":4733,"cover":4734,"website":4735,"tagline":4736,"pricing":4737,"pillar":1007,"score":4738,"opensource":322,"chinese_friendly":313,"free":988},"n8n","agent\u002Fplatform\u002Fn8n","\u002Ftools\u002Fagent\u002Fplatform\u002Fn8n","\u002Fimg\u002Ftools\u002Fn8n.webp","https:\u002F\u002Fn8n.io","自托管自动化平台——200k+ 用户 + 70 LangChain 节点 + MCP 原生 + Ollama 集成","Self-host 免费 \u002F Cloud Starter ~€20·月 (2.5k executions) \u002F Pro \u002F Business \u002F Enterprise 阶梯",{"power":326,"ux":319,"price":326,"cn_support":313,"stability":326},{"title":4740,"slug":4741,"path":4742,"cover":4743,"website":4744,"tagline":4745,"pricing":4746,"pillar":1007,"score":4747,"opensource":988,"chinese_friendly":326,"free":988},"腾讯元器","agent\u002Fplatform\u002Fyuanqi","\u002Ftools\u002Fagent\u002Fplatform\u002Fyuanqi","\u002Fimg\u002Ftools\u002Fyuanqi.webp","https:\u002F\u002Fyuanqi.tencent.com","腾讯零代码智能体平台——公众号一键变 AI 分身 + 混元 \u002F DeepSeek 双底座 + 微信生态全链路","免费创建 \u002F 模型调用按 token \u002F 部分能力按调用次数 \u002F 企业版联系商务",{"power":319,"ux":326,"price":326,"cn_support":326,"stability":319},{"title":631,"slug":4749,"path":21,"cover":4750,"website":4751,"tagline":4752,"pricing":4753,"pillar":1007,"score":4754,"opensource":988,"chinese_friendly":313,"free":988},"agent\u002Fprotocol\u002Fcomposio","\u002Fimg\u002Ftools\u002Fcomposio.webp","https:\u002F\u002Fcomposio.dev","AI Agent 集成中间件——1000+ 工具 + 托管 OAuth + 框架无关 + MCP + 沙箱执行","Free（有月度 action 限额）\u002F Growth 按 action 量阶梯 \u002F Enterprise 联系销售",{"power":326,"ux":319,"price":319,"cn_support":313,"stability":319},{"title":14,"slug":1027,"path":1006,"cover":986,"website":938,"tagline":1041,"pricing":1019,"pillar":1007,"score":4756,"opensource":322,"chinese_friendly":282,"free":988},{"power":326,"ux":313,"price":326,"cn_support":282,"stability":319},{"title":634,"slug":1791,"path":18,"cover":1749,"website":1697,"tagline":1806,"pricing":1784,"pillar":1007,"score":4758,"opensource":322,"chinese_friendly":313,"free":988},{"power":319,"ux":319,"price":326,"cn_support":313,"stability":313},{"title":1814,"slug":2530,"path":2503,"cover":2486,"website":2433,"tagline":2545,"pricing":2523,"pillar":1007,"score":4760,"opensource":322,"chinese_friendly":313,"free":988},{"power":326,"ux":319,"price":319,"cn_support":313,"stability":319},{"title":2554,"slug":3302,"path":1818,"cover":3266,"website":3216,"tagline":3317,"pricing":3295,"pillar":1007,"score":4762,"opensource":322,"chinese_friendly":313,"free":988},{"power":313,"ux":319,"price":326,"cn_support":313,"stability":313},{"title":3326,"slug":3934,"path":1821,"cover":3897,"website":3855,"tagline":3947,"pricing":3927,"pillar":1007,"score":4764,"opensource":988,"chinese_friendly":319,"free":988},{"power":319,"ux":326,"price":313,"cn_support":319,"stability":319},{"title":4766,"slug":4767,"path":4768,"cover":4769,"website":4770,"tagline":4771,"pricing":4772,"pillar":4773,"score":4774,"opensource":988,"chinese_friendly":282,"free":988},"Augment Code","coding\u002Fagent\u002Faugment","\u002Ftools\u002Fcoding\u002Fagent\u002Faugment","\u002Fimg\u002Ftools\u002Faugment.webp","https:\u002F\u002Fwww.augmentcode.com","Context Engine 为核心：面向大型生产代码库的 AI 工程师 + Auggie CLI","Indie $20·月 \u002F Standard $60·席·月 \u002F Max $200·席·月 \u002F Enterprise","coding",{"power":326,"ux":319,"price":282,"cn_support":282,"stability":319},{"title":4776,"slug":4777,"path":4778,"cover":4779,"website":4780,"tagline":4781,"pricing":4782,"pillar":4773,"score":4783,"opensource":322,"chinese_friendly":319,"free":988},"Continue.dev","coding\u002Fagent\u002Fcontinue","\u002Ftools\u002Fcoding\u002Fagent\u002Fcontinue","\u002Fimg\u002Ftools\u002Fcontinue.webp","https:\u002F\u002Fwww.continue.dev","开源 AI 编程扩展，Apache 2.0 + 多模型 BYOK；2026 已被 Cursor 收购","开源免费 BYOK \u002F Hub Starter $3·M tokens \u002F Team $20·席·月 \u002F Company 定制",{"power":319,"ux":319,"price":326,"cn_support":319,"stability":319},{"title":4785,"slug":4786,"path":4787,"cover":4788,"website":4789,"tagline":4790,"pricing":4791,"pillar":4773,"score":4792,"opensource":988,"chinese_friendly":282,"free":988},"Devin","coding\u002Fagent\u002Fdevin","\u002Ftools\u002Fcoding\u002Fagent\u002Fdevin","\u002Fimg\u002Ftools\u002Fdevin.webp","https:\u002F\u002Fdevin.ai","Cognition 出品的自主 AI 软件工程师，ACU 计费，2026 已并入 Windsurf 阵营","Core $20·月 起按 ACU \u002F Team $500·月含 250 ACU \u002F Enterprise 定制",{"power":326,"ux":319,"price":282,"cn_support":282,"stability":319},{"title":4794,"slug":4795,"path":4796,"cover":4797,"website":4798,"tagline":4799,"pricing":4800,"pillar":4773,"score":4801,"opensource":322,"chinese_friendly":319,"free":988},"OpenHands","coding\u002Fagent\u002Fopenhands","\u002Ftools\u002Fcoding\u002Fagent\u002Fopenhands","\u002Fimg\u002Ftools\u002Fopenhands.webp","https:\u002F\u002Fwww.openhands.dev","开源自主编程 Agent（前 OpenDevin），MIT 许可，多入口（Cloud\u002FCLI\u002FLocal\u002FSDK）","OSS MIT 免费 \u002F Individual Cloud 免费 BYOK \u002F Enterprise 定制",{"power":319,"ux":313,"price":326,"cn_support":319,"stability":313},{"title":4803,"slug":4804,"path":4805,"cover":4806,"website":4807,"tagline":4808,"pricing":4809,"pillar":4773,"score":4810,"opensource":322,"chinese_friendly":275,"free":988},"RagaAI Catalyst","coding\u002Fagent\u002Fraga","\u002Ftools\u002Fcoding\u002Fagent\u002Fraga","\u002Fimg\u002Ftools\u002Fraga.webp","https:\u002F\u002Fraga.ai","AI agent 测试 + 观测平台——300+ 自动化测试覆盖 LLM\u002FRAG\u002FAgentic，量化『生产风险 -90%』","Catalyst Python SDK 开源 \u002F Cloud Enterprise 定制",{"power":326,"ux":313,"price":313,"cn_support":275,"stability":319},{"title":4812,"slug":4813,"path":4814,"cover":4815,"website":4816,"tagline":4817,"pricing":4818,"pillar":4773,"score":4819,"opensource":322,"chinese_friendly":282,"free":988},"Helicone","coding\u002Fapi\u002Fhelicone","\u002Ftools\u002Fcoding\u002Fapi\u002Fhelicone","\u002Fimg\u002Ftools\u002Fhelicone.webp","https:\u002F\u002Fwww.helicone.ai","一行代码 LLM 观测——开源 Proxy + AI Gateway，2026-03 被 Mintlify 收购、维护模式运行","Hobby 免费 10K req\u002F月 \u002F Pro $79\u002F月 \u002F Team $799\u002F月 \u002F Enterprise 定制",{"power":319,"ux":326,"price":319,"cn_support":282,"stability":313},{"title":4821,"slug":4822,"path":4823,"cover":4824,"website":4825,"tagline":4826,"pricing":4827,"pillar":4773,"score":4828,"opensource":322,"chinese_friendly":313,"free":988},"LiteLLM","coding\u002Fapi\u002Flitellm","\u002Ftools\u002Fcoding\u002Fapi\u002Flitellm","\u002Fimg\u002Ftools\u002Flitellm.webp","https:\u002F\u002Fwww.litellm.ai","MIT 开源 LLM 网关——SDK + Proxy 双形态，100+ 厂商统一 OpenAI 接口 + 虚拟 Key + 团队预算","MIT 开源免费 \u002F Enterprise SaaS 定制",{"power":326,"ux":319,"price":326,"cn_support":313,"stability":319},{"title":4830,"slug":4831,"path":4832,"cover":4833,"website":4834,"tagline":4835,"pricing":4836,"pillar":4773,"score":4837,"opensource":322,"chinese_friendly":326,"free":988},"One-API","coding\u002Fapi\u002Fone-api","\u002Ftools\u002Fcoding\u002Fapi\u002Fone-api","\u002Fimg\u002Ftools\u002Fone-api.webp","https:\u002F\u002Fgithub.com\u002Fsongquanpeng\u002Fone-api","国内最流行的开源 LLM 网关——Go + Docker 一键起，30+ 厂商统一 OpenAI 格式，中文 UI + 充值系统","MIT 开源免费",{"power":319,"ux":319,"price":326,"cn_support":326,"stability":319},{"title":4839,"slug":4840,"path":4841,"cover":4842,"website":4843,"tagline":4844,"pricing":4845,"pillar":4773,"score":4846,"opensource":988,"chinese_friendly":282,"free":988},"OpenRouter","coding\u002Fapi\u002Fopenrouter","\u002Ftools\u002Fcoding\u002Fapi\u002Fopenrouter","\u002Fimg\u002Ftools\u002Fopenrouter.webp","https:\u002F\u002Fopenrouter.ai","AI API 聚合先驱——一个 Key + 一个 endpoint 调 300+ 模型，自动 fallback，OpenAI 兼容","免费 $1 credit + 5\u002F日 → 200\u002F日（充 $5+） \u002F Pay-as-you-go passthrough + 5.5% 卡费 \u002F Team $99\u002F月 SLA \u002F Enterprise",{"power":326,"ux":319,"price":319,"cn_support":282,"stability":319},{"title":4848,"slug":4849,"path":4850,"cover":4851,"website":4852,"tagline":4853,"pricing":4854,"pillar":4773,"score":4855,"opensource":322,"chinese_friendly":282,"free":988},"Portkey","coding\u002Fapi\u002Fportkey","\u002Ftools\u002Fcoding\u002Fapi\u002Fportkey","\u002Fimg\u002Ftools\u002Fportkey.webp","https:\u002F\u002Fportkey.ai","Control Panel for Production AI——AI 网关 + 全栈观测 + MCP 网关，2026 被 Palo Alto Networks 收购","Developer 免费 10K logs\u002F月 \u002F Production $49\u002F月 100K logs \u002F Team 大体量 \u002F Enterprise 定制",{"power":326,"ux":319,"price":313,"cn_support":282,"stability":319},{"title":4857,"slug":4858,"path":4859,"cover":4860,"website":4861,"tagline":4862,"pricing":4863,"pillar":4773,"score":4864,"opensource":322,"chinese_friendly":282,"free":988},"Bolt.new","coding\u002Fbuilder\u002Fbolt-new","\u002Ftools\u002Fcoding\u002Fbuilder\u002Fbolt-new","\u002Fimg\u002Ftools\u002Fbolt-new.webp","https:\u002F\u002Fbolt.new","一句话生成全栈 Web 应用，StackBlitz 出品","Free \u002F Pro $20\u002F月 \u002F Pro 50 $50 \u002F Pro 100 $100 \u002F Pro 200 $200 \u002F Teams",{"power":319,"ux":326,"price":319,"cn_support":282,"stability":319},{"title":4866,"slug":4867,"path":4868,"cover":4869,"website":4870,"tagline":4871,"pricing":4872,"pillar":4773,"score":4873,"opensource":988,"chinese_friendly":282,"free":988},"Lovable","coding\u002Fbuilder\u002Flovable","\u002Ftools\u002Fcoding\u002Fbuilder\u002Flovable","\u002Fimg\u002Ftools\u002Flovable.webp","https:\u002F\u002Flovable.dev","前 GPT Engineer，从 prompt 到全栈应用 + Supabase 后端","Free \u002F Pro $25\u002F月 \u002F Business $50\u002F月 \u002F Enterprise",{"power":319,"ux":319,"price":313,"cn_support":282,"stability":313},{"title":4875,"slug":4876,"path":4877,"cover":4878,"website":4879,"tagline":4880,"pricing":4881,"pillar":4773,"score":4882,"opensource":988,"chinese_friendly":313,"free":988},"Replit Agent","coding\u002Fbuilder\u002Freplit-agent","\u002Ftools\u002Fcoding\u002Fbuilder\u002Freplit-agent","\u002Fimg\u002Ftools\u002Freplit-agent.webp","https:\u002F\u002Freplit.com","浏览器内 200 分钟自主开发 + 部署的全栈 Agent（Agent 3）","Free 限额 \u002F Core $25·月含 ACU \u002F Teams $35·席·月 \u002F Enterprise 定制",{"power":326,"ux":326,"price":313,"cn_support":313,"stability":319},{"title":4884,"slug":4885,"path":4886,"cover":4887,"website":4888,"tagline":4889,"pricing":4890,"pillar":4773,"score":4891,"opensource":988,"chinese_friendly":282,"free":988},"Tempo","coding\u002Fbuilder\u002Ftempo","\u002Ftools\u002Fcoding\u002Fbuilder\u002Ftempo","\u002Fimg\u002Ftools\u002Ftempo.webp","https:\u002F\u002Fwww.tempo.new","React-first prompt-to-app + 多 agent 规划 + 可视化编辑——直接编辑产线 React 代码","Free \u002F Pro ~$30\u002F月 \u002F Agent+ $4,500\u002F月（含人工设计 + code 审计）",{"power":319,"ux":326,"price":313,"cn_support":282,"stability":319},{"title":4893,"slug":4894,"path":4895,"cover":4896,"website":4897,"tagline":4898,"pricing":4899,"pillar":4773,"score":4900,"opensource":988,"chinese_friendly":313,"free":988},"v0","coding\u002Fbuilder\u002Fv0","\u002Ftools\u002Fcoding\u002Fbuilder\u002Fv0","\u002Fimg\u002Ftools\u002Fv0.webp","https:\u002F\u002Fv0.app","Vercel 出品：从自然语言生成 React \u002F Next.js 组件","Free $5 credits \u002F Premium $20·月 \u002F Team $30·席\u002F月 \u002F Business $100·席\u002F月",{"power":319,"ux":326,"price":313,"cn_support":313,"stability":319},{"title":4902,"slug":4903,"path":4904,"cover":4905,"website":4906,"tagline":4907,"pricing":4908,"pillar":4773,"score":4909,"opensource":322,"chinese_friendly":313,"free":988},"Aider","coding\u002Fcli\u002Faider","\u002Ftools\u002Fcoding\u002Fcli\u002Faider","\u002Fimg\u002Ftools\u002Faider.webp","https:\u002F\u002Faider.chat","Git 原生 AI 编程 CLI，commit 即动作","开源免费 \u002F 自带 API key",{"power":319,"ux":313,"price":326,"cn_support":313,"stability":326},{"title":4911,"slug":4912,"path":4913,"cover":4914,"website":4915,"tagline":4916,"pricing":4917,"pillar":4773,"score":4918,"opensource":988,"chinese_friendly":313,"free":988},"Claude Code","coding\u002Fcli\u002Fclaude-code","\u002Ftools\u002Fcoding\u002Fcli\u002Fclaude-code","\u002Fimg\u002Ftools\u002Fclaude-code.webp","https:\u002F\u002Fclaude.com\u002Fclaude-code","Anthropic 官方终端 AI Coding Agent，长任务能力业界第一梯队","API 按 token 计费 \u002F Pro $20 \u002F Max $100-$200 \u002F Team Premium $100-$125 seat",{"power":326,"ux":319,"price":313,"cn_support":282,"stability":319},{"title":4920,"slug":4921,"path":4922,"cover":4923,"website":4924,"tagline":4925,"pricing":4926,"pillar":4773,"score":4927,"opensource":322,"chinese_friendly":319,"free":988},"Cline","coding\u002Fcli\u002Fcline","\u002Ftools\u002Fcoding\u002Fcli\u002Fcline","\u002Fimg\u002Ftools\u002Fcline.webp","https:\u002F\u002Fcline.bot","VS Code 里的开源 AI Agent 插件，BYOK + MCP Marketplace","插件免费 \u002F BYOK 按 API 计费 \u002F Cline Teams 含 SSO+RBAC",{"power":319,"ux":319,"price":326,"cn_support":319,"stability":319},{"title":4929,"slug":4930,"path":4931,"cover":4932,"website":4933,"tagline":4934,"pricing":4935,"pillar":4773,"score":4936,"opensource":322,"chinese_friendly":313,"free":988},"Codex CLI","coding\u002Fcli\u002Fcodex","\u002Ftools\u002Fcoding\u002Fcli\u002Fcodex","\u002Fimg\u002Ftools\u002Fcodex.webp","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fcli","OpenAI 官方终端 Coding Agent，GPT-5.5 \u002F gpt-5-codex 驱动","ChatGPT Plus\u002FPro\u002FBusiness\u002FEdu\u002FEnterprise 包含 \u002F 或按 OpenAI API 计费",{"power":326,"ux":319,"price":319,"cn_support":313,"stability":319},{"title":4938,"slug":4939,"path":4940,"cover":4941,"website":4942,"tagline":4943,"pricing":4944,"pillar":4773,"score":4945,"opensource":322,"chinese_friendly":313,"free":988},"Roo Code","coding\u002Fcli\u002Froo-code","\u002Ftools\u002Fcoding\u002Fcli\u002Froo-code","\u002Fimg\u002Ftools\u002Froo-code.webp","https:\u002F\u002Froocode.com","Cline fork 的 power user VS Code 智能体——多模式 + Boomerang Tasks + BYOK，每周多次发布","Apache 2.0 OSS 免费（自付 LLM tokens）+ Cloud Free \u002F Team $99\u002F月 \u002F Enterprise 定制",{"power":326,"ux":319,"price":326,"cn_support":313,"stability":319},{"title":4947,"slug":4948,"path":4949,"cover":4950,"website":4951,"tagline":4952,"pricing":4953,"pillar":4773,"score":4954,"opensource":988,"chinese_friendly":326,"free":988},"CodeBuddy","coding\u002Fcopilot\u002Fcodebuddy","\u002Ftools\u002Fcoding\u002Fcopilot\u002Fcodebuddy","\u002Fimg\u002Ftools\u002Fcodebuddy.webp","https:\u002F\u002Fwww.codebuddy.ai","腾讯出品的 AI 代码编辑器，混元 + DeepSeek 双模型，Craft 自主 Agent + 200+ 语言","免费体验版 \u002F 个人专业版 58 元·月 \u002F SaaS 企业版 198 元·席·月 \u002F 专享版 316 元·席·月",{"power":319,"ux":319,"price":319,"cn_support":326,"stability":319},{"title":4956,"slug":4957,"path":4958,"cover":4959,"website":4960,"tagline":4961,"pricing":4962,"pillar":4773,"score":4963,"opensource":322,"chinese_friendly":326,"free":988},"CodeGeeX","coding\u002Fcopilot\u002Fcodegeex","\u002Ftools\u002Fcoding\u002Fcopilot\u002Fcodegeex","\u002Fimg\u002Ftools\u002Fcodegeex.webp","https:\u002F\u002Fcodegeex.cn","智谱 AI 出品的开源免费 AI 编程助手，13B 多语言代码模型 + GLM-5.1 编程力登顶开源","个人免费 \u002F GLM Coding Plan 49 元·月起 \u002F 企业版定制",{"power":319,"ux":319,"price":326,"cn_support":326,"stability":319},{"title":4965,"slug":4966,"path":4967,"cover":4968,"website":4969,"tagline":4970,"pricing":4971,"pillar":4773,"score":4972,"opensource":988,"chinese_friendly":326,"free":988},"文心快码 Baidu Comate","coding\u002Fcopilot\u002Fcomate","\u002Ftools\u002Fcoding\u002Fcopilot\u002Fcomate","\u002Fimg\u002Ftools\u002Fcomate.webp","https:\u002F\u002Fcomate.baidu.com","百度文心大模型驱动的 AI 编程助手，IDC 2026 评估 9 项维度 8 项满分","个人免费 \u002F 专业版 59 元·月 \u002F 企业专业版 150 元·人·月 \u002F 私有化定制",{"power":319,"ux":319,"price":319,"cn_support":326,"stability":326},{"title":4974,"slug":4975,"path":4976,"cover":4977,"website":4978,"tagline":4979,"pricing":4980,"pillar":4773,"score":4981,"opensource":988,"chinese_friendly":313,"free":988},"GitHub Copilot","coding\u002Fcopilot\u002Fgithub-copilot","\u002Ftools\u002Fcoding\u002Fcopilot\u002Fgithub-copilot","\u002Fimg\u002Ftools\u002Fgithub-copilot.webp","https:\u002F\u002Fgithub.com\u002Ffeatures\u002Fcopilot","AI Copilot 鼻祖，VS Code \u002F JetBrains \u002F Neovim 全家桶覆盖","Free \u002F Pro $10\u002Fmo \u002F Pro+ $39\u002Fmo \u002F Max $100\u002Fmo \u002F Business $19 seat \u002F Enterprise $39 seat",{"power":319,"ux":326,"price":319,"cn_support":313,"stability":326},{"title":4983,"slug":4984,"path":4985,"cover":4986,"website":4987,"tagline":4988,"pricing":4989,"pillar":4773,"score":4990,"opensource":988,"chinese_friendly":326,"free":988},"豆包 MarsCode \u002F TRAE","coding\u002Fcopilot\u002Fmarscode","\u002Ftools\u002Fcoding\u002Fcopilot\u002Fmarscode","\u002Fimg\u002Ftools\u002Fmarscode.webp","https:\u002F\u002Fwww.trae.cn","字节跳动豆包 AI 编程助手——2025 改名 TRAE，IDE 形态升级，插件 + Cloud IDE + Builder\u002FSOLO 模式","免费起步 \u002F 方舟 Coding Plan 订阅 \u002F 企业咨询定制",{"power":319,"ux":326,"price":326,"cn_support":326,"stability":319},{"title":4992,"slug":4993,"path":4994,"cover":4995,"website":4996,"tagline":4997,"pricing":4998,"pillar":4773,"score":4999,"opensource":322,"chinese_friendly":326,"free":988},"通义灵码 Tongyi Lingma","coding\u002Fcopilot\u002Ftongyi-lingma","\u002Ftools\u002Fcoding\u002Fcopilot\u002Ftongyi-lingma","\u002Fimg\u002Ftools\u002Ftongyi-lingma.webp","https:\u002F\u002Flingma.aliyun.com","阿里通义 AI 编程助手，深度集成 Qwen3-Coder，已升级为 Qoder CN（国内云区版本）","个人免费 \u002F 企业版咨询定制 \u002F Qoder CN 订阅",{"power":319,"ux":319,"price":326,"cn_support":326,"stability":319},{"title":5001,"slug":5002,"path":2561,"cover":5003,"website":5004,"tagline":5005,"pricing":5006,"pillar":4773,"score":5007,"opensource":988,"chinese_friendly":319,"free":988},"Cursor","coding\u002Fide\u002Fcursor","\u002Fimg\u002Ftools\u002Fcursor.webp","https:\u002F\u002Fcursor.com","AI 原生代码编辑器，Composer 多文件改写一时无两","Free \u002F Pro $20\u002Fmo \u002F Pro+ \u002F Ultra \u002F Teams $40\u002Fuser\u002Fmo \u002F Enterprise",{"power":326,"ux":326,"price":313,"cn_support":313,"stability":319},{"title":5009,"slug":5010,"path":5011,"cover":5012,"website":5013,"tagline":5014,"pricing":5015,"pillar":4773,"score":5016,"opensource":988,"chinese_friendly":282,"free":988},"Kiro","coding\u002Fide\u002Fkiro","\u002Ftools\u002Fcoding\u002Fide\u002Fkiro","\u002Fimg\u002Ftools\u002Fkiro.webp","https:\u002F\u002Fkiro.dev","AWS 的 Spec-Driven AI IDE，把『写规格 → 出代码 → 出测试』串成自动化流水","Free \u002F Pro $19·月 \u002F Pro+ $37·月 \u002F Power $184·月",{"power":319,"ux":319,"price":313,"cn_support":282,"stability":319},{"title":5018,"slug":5019,"path":5020,"cover":5021,"website":5022,"tagline":5023,"pricing":5024,"pillar":4773,"score":5025,"opensource":988,"chinese_friendly":326,"free":988},"Qoder","coding\u002Fide\u002Fqoder","\u002Ftools\u002Fcoding\u002Fide\u002Fqoder","\u002Fimg\u002Ftools\u002Fqoder.webp","https:\u002F\u002Fqoder.com","阿里出品的 Agentic 编程平台，主打『目标定义 → 自动交付』的自主开发工作台","社区版免费 \u002F Pro 起步 \u002F Teams 300 元·席·月",{"power":326,"ux":319,"price":319,"cn_support":326,"stability":319},{"title":5027,"slug":5028,"path":5029,"cover":5030,"website":5031,"tagline":5032,"pricing":5033,"pillar":4773,"score":5034,"opensource":988,"chinese_friendly":326,"free":988},"Trae","coding\u002Fide\u002Ftrae","\u002Ftools\u002Fcoding\u002Fide\u002Ftrae","\u002Fimg\u002Ftools\u002Ftrae.webp","https:\u002F\u002Fwww.trae.com.cn","字节出品的 AI IDE，国内访问稳定 + 长期免费","国内版免费 \u002F 国际版 Free \u002F Pro $10\u002F月",{"power":319,"ux":326,"price":326,"cn_support":326,"stability":319},{"title":5036,"slug":5037,"path":5038,"cover":5039,"website":5040,"tagline":5041,"pricing":5042,"pillar":4773,"score":5043,"opensource":322,"chinese_friendly":282,"free":988},"Void","coding\u002Fide\u002Fvoid","\u002Ftools\u002Fcoding\u002Fide\u002Fvoid","\u002Fimg\u002Ftools\u002Fvoid.webp","https:\u002F\u002Fvoideditor.com","完全开源的 Cursor 替代品（YC 系）——但 2025 年底暂停了 IDE 开发","完全免费 + 自带模型 Key",{"power":313,"ux":313,"price":326,"cn_support":282,"stability":282},{"title":5045,"slug":5046,"path":5047,"cover":5048,"website":5049,"tagline":5050,"pricing":5051,"pillar":4773,"score":5052,"opensource":988,"chinese_friendly":313,"free":988},"Windsurf","coding\u002Fide\u002Fwindsurf","\u002Ftools\u002Fcoding\u002Fide\u002Fwindsurf","\u002Fimg\u002Ftools\u002Fwindsurf.webp","https:\u002F\u002Fwindsurf.com","Codeium 出品的 AI IDE，Cascade Agent 模式领先","Free 25 credits \u002F Pro $15\u002Fmo 500 credits \u002F Team $30\u002Fseat",{"power":326,"ux":326,"price":319,"cn_support":313,"stability":319},{"title":5054,"slug":5055,"path":5056,"cover":5057,"website":5058,"tagline":5059,"pricing":5060,"pillar":4773,"score":5061,"opensource":322,"chinese_friendly":313,"free":988},"Zed","coding\u002Fide\u002Fzed","\u002Ftools\u002Fcoding\u002Fide\u002Fzed","\u002Fimg\u002Ftools\u002Fzed.webp","https:\u002F\u002Fzed.dev","Rust + GPU 渲染的高性能原生编辑器，2026-05 重构定价 + 开源 Zeta2.1 编辑预测模型","Free \u002F Pro $10·月 \u002F Business $30·席·月（BYOK 全档免费）",{"power":319,"ux":326,"price":319,"cn_support":313,"stability":319},{"title":5063,"slug":5064,"path":5065,"cover":5066,"website":5067,"tagline":5068,"pricing":5069,"pillar":4773,"score":5070,"opensource":322,"chinese_friendly":326,"free":988},"Cherry Studio","coding\u002Flocal\u002Fcherry-studio","\u002Ftools\u002Fcoding\u002Flocal\u002Fcherry-studio","\u002Fimg\u002Ftools\u002Fcherry-studio.webp","https:\u002F\u002Fcherry-ai.com","全能 AI 客户端：多模型聚合 + 本地知识库 + 300+ 助手模板，跨平台桌面应用","开源免费 \u002F 企业版联系销售",{"power":319,"ux":326,"price":326,"cn_support":326,"stability":319},{"title":5072,"slug":5073,"path":5074,"cover":5075,"website":5076,"tagline":5077,"pricing":5078,"pillar":4773,"score":5079,"opensource":988,"chinese_friendly":313,"free":988},"LM Studio","coding\u002Flocal\u002Flm-studio","\u002Ftools\u002Fcoding\u002Flocal\u002Flm-studio","\u002Fimg\u002Ftools\u002Flm-studio.webp","https:\u002F\u002Flmstudio.ai","本地 LLM 的 GUI 首选——模型浏览器 + GGUF\u002FMLX 推理 + OpenAI 兼容 API + Mac 原生优化","免费（个人 \u002F 评估） \u002F 企业 \u002F 商用咨询",{"power":319,"ux":326,"price":326,"cn_support":313,"stability":319},{"title":5081,"slug":5082,"path":5083,"cover":5084,"website":5085,"tagline":5086,"pricing":5087,"pillar":4773,"score":5088,"opensource":322,"chinese_friendly":326,"free":988},"LobeChat","coding\u002Flocal\u002Flobe-chat","\u002Ftools\u002Fcoding\u002Flocal\u002Flobe-chat","\u002Fimg\u002Ftools\u002Flobe-chat.webp","https:\u002F\u002Flobehub.com","现代设计的开源 AI 聊天框架——Web + 桌面双形态、72k+ stars、多模型 + 知识库 + 插件市场","完全免费（MIT 开源） \u002F LobeHub Cloud 订阅",{"power":326,"ux":326,"price":326,"cn_support":326,"stability":319},{"title":5090,"slug":5091,"path":5092,"cover":5093,"website":5094,"tagline":5095,"pricing":5096,"pillar":4773,"score":5097,"opensource":322,"chinese_friendly":313,"free":988},"Ollama","coding\u002Flocal\u002Follama","\u002Ftools\u002Fcoding\u002Flocal\u002Follama","\u002Fimg\u002Ftools\u002Follama.webp","https:\u002F\u002Follama.com","本地 LLM 的 Daemon——CLI + REST API 后台跑，给 Cursor \u002F Cline \u002F Open WebUI 接本地模型最低门槛","完全免费 + 开源（MIT）",{"power":319,"ux":319,"price":326,"cn_support":313,"stability":326},{"title":5099,"slug":5100,"path":5101,"cover":5102,"website":5103,"tagline":5104,"pricing":5105,"pillar":4773,"score":5106,"opensource":322,"chinese_friendly":319,"free":988},"Open WebUI","coding\u002Flocal\u002Fopen-webui","\u002Ftools\u002Fcoding\u002Flocal\u002Fopen-webui","\u002Fimg\u002Ftools\u002Fopen-webui.webp","https:\u002F\u002Fdocs.openwebui.com","自托管的 ChatGPT 替代——Ollama \u002F OpenAI 兼容、多用户、RAG、126k+ GitHub stars","完全免费（MIT 开源） \u002F Enterprise SLA 联系",{"power":326,"ux":319,"price":326,"cn_support":319,"stability":326},{"title":5108,"slug":5109,"path":5110,"cover":5111,"website":5112,"tagline":5113,"pricing":5114,"pillar":4773,"score":5115,"opensource":988,"chinese_friendly":313,"free":988},"Bito AI","coding\u002Freview\u002Fbito","\u002Ftools\u002Fcoding\u002Freview\u002Fbito","\u002Fimg\u002Ftools\u002Fbito.webp","https:\u002F\u002Fbito.ai","AI Code Reviews + AI Architect 双产品——PR 自动审查 + 代码库知识图谱 + 给 Cursor \u002F Claude Code 注入架构上下文","Team $12\u002Fseat\u002F月（年）或 $15（月） \u002F Professional $20\u002F$25 \u002F Enterprise 定制 \u002F AI Architect usage-based",{"power":319,"ux":319,"price":319,"cn_support":313,"stability":319},{"title":5117,"slug":5118,"path":5119,"cover":5120,"website":5121,"tagline":5122,"pricing":5123,"pillar":4773,"score":5124,"opensource":988,"chinese_friendly":313,"free":988},"CodeRabbit","coding\u002Freview\u002Fcoderabbit","\u002Ftools\u002Fcoding\u002Freview\u002Fcoderabbit","\u002Fimg\u002Ftools\u002Fcoderabbit.webp","https:\u002F\u002Fcoderabbit.ai","AI PR 评审事实标准——v3 + 40+ linter + Codegraph + IDE\u002FCLI\u002FPR 三入口，8K+ 企业、$15M ARR","Free（公共 + 私有限额） \u002F Pro $24\u002Fseat 年付 \u002F $30 月付 \u002F Enterprise 定制 \u002F CLI usage add-on",{"power":326,"ux":326,"price":319,"cn_support":313,"stability":326},{"title":5126,"slug":5127,"path":5128,"cover":5129,"website":5130,"tagline":5131,"pricing":5132,"pillar":4773,"score":5133,"opensource":988,"chinese_friendly":282,"free":988},"Ellipsis","coding\u002Freview\u002Fellipsis","\u002Ftools\u002Fcoding\u002Freview\u002Fellipsis","\u002Fimg\u002Ftools\u002Fellipsis.webp","https:\u002F\u002Fwww.ellipsis.dev","$20\u002Fdev\u002F月 flat 无限——AI 评审 + 从 GitHub 评论生成 PR + 67K+ 仓库使用、公共项目永久免费","公共仓库免费 \u002F 私有 $20\u002Fdev\u002F月 无限",{"power":319,"ux":319,"price":326,"cn_support":282,"stability":319},{"title":5135,"slug":5136,"path":5137,"cover":5138,"website":5139,"tagline":5140,"pricing":5141,"pillar":4773,"score":5142,"opensource":988,"chinese_friendly":282,"free":988},"Greptile","coding\u002Freview\u002Fgreptile","\u002Ftools\u002Fcoding\u002Freview\u002Fgreptile","\u002Fimg\u002Ftools\u002Fgreptile.webp","https:\u002F\u002Fwww.greptile.com","Codegraph 跨文件推理 + Agent v4——把整个代码库建图，理解 ripple effect 的 AI 评审","Freemium \u002F base + usage（2026-03-05 起） \u002F Enterprise self-host",{"power":326,"ux":319,"price":313,"cn_support":282,"stability":319},{"title":5144,"slug":5145,"path":5146,"cover":5147,"website":5148,"tagline":5149,"pricing":5150,"pillar":4773,"score":5151,"opensource":322,"chinese_friendly":313,"free":988},"Qodo","coding\u002Freview\u002Fqodo","\u002Ftools\u002Fcoding\u002Freview\u002Fqodo","\u002Fimg\u002Ftools\u002Fqodo.webp","https:\u002F\u002Fqodo.ai","前 CodiumAI——AI 评审 + 自动测试生成双合一，Qodo Merge \u002F Cover \u002F Gen 三件套","Developer Free \u002F Teams $30\u002Fseat\u002F月（年）≈$38（月）\u002F Enterprise 定制",{"power":326,"ux":319,"price":313,"cn_support":313,"stability":326},[5153,5762,6211],{"id":5154,"title":5155,"body":5156,"cover":5751,"description":5752,"extension":989,"meta":5753,"navigation":322,"path":5754,"published":1020,"relatedTools":5755,"seo":5756,"stem":5757,"tags":5758,"updated":1020,"verdict":5760,"__hash__":5761},"review\u002Freview\u002Fai-code-review-comparison.md","AI 代码审查工具横评：CodeRabbit vs Ellipsis vs Qodo vs Greptile",{"type":27,"value":5157,"toc":5737},[5158,5160,5314,5317,5337,5340,5345,5350,5368,5373,5384,5390,5394,5398,5409,5413,5424,5429,5433,5437,5448,5452,5463,5468,5472,5476,5487,5491,5502,5507,5510,5513,5631,5634,5638,5695,5698,5704,5707],[30,5159,33],{"id":32},[615,5161,5162,5176],{},[618,5163,5164],{},[621,5165,5166,5168,5170,5172,5174],{},[624,5167,626],{},[624,5169,5117],{},[624,5171,5126],{},[624,5173,5144],{},[624,5175,5135],{},[639,5177,5178,5195,5212,5227,5242,5256,5270,5283,5300],{},[621,5179,5180,5183,5186,5189,5192],{},[644,5181,5182],{},"定位",[644,5184,5185],{},"全面 review",[644,5187,5188],{},"只报 bug",[644,5190,5191],{},"测试 + review",[644,5193,5194],{},"大仓库理解",[621,5196,5197,5200,5203,5206,5209],{},[644,5198,5199],{},"评论数\u002FPR",[644,5201,5202],{},"15-25 条",[644,5204,5205],{},"3-5 条",[644,5207,5208],{},"8-12 条",[644,5210,5211],{},"6-10 条",[621,5213,5214,5217,5220,5223,5225],{},[644,5215,5216],{},"噪音率",[644,5218,5219],{},"中（含风格）",[644,5221,5222],{},"极低",[644,5224,2189],{},[644,5226,2189],{},[621,5228,5229,5232,5235,5238,5240],{},[644,5230,5231],{},"Bug 检出",[644,5233,5234],{},"⭐⭐⭐⭐",[644,5236,5237],{},"⭐⭐⭐⭐⭐",[644,5239,5234],{},[644,5241,5234],{},[621,5243,5244,5247,5250,5252,5254],{},[644,5245,5246],{},"安全审查",[644,5248,5249],{},"⭐⭐⭐",[644,5251,5237],{},[644,5253,5249],{},[644,5255,5249],{},[621,5257,5258,5261,5263,5265,5267],{},[644,5259,5260],{},"测试建议",[644,5262,5249],{},[644,5264,690],{},[644,5266,5237],{},[644,5268,5269],{},"⭐⭐",[621,5271,5272,5275,5277,5279,5281],{},[644,5273,5274],{},"大仓库",[644,5276,5249],{},[644,5278,5249],{},[644,5280,5249],{},[644,5282,5237],{},[621,5284,5285,5288,5291,5294,5297],{},[644,5286,5287],{},"价格（私有仓库）",[644,5289,5290],{},"$24\u002Fseat\u002Fmo",[644,5292,5293],{},"$20\u002Fseat\u002Fmo",[644,5295,5296],{},"$19\u002Fseat\u002Fmo",[644,5298,5299],{},"$50\u002Fseat\u002Fmo",[621,5301,5302,5305,5307,5309,5312],{},[644,5303,5304],{},"开源免费",[644,5306,715],{},[644,5308,715],{},[644,5310,5311],{},"CLI 免费",[644,5313,690],{},[30,5315,5316],{"id":5316},"测试环境",[67,5318,5319,5325,5331],{},[70,5320,5321,5324],{},[48,5322,5323],{},"仓库","：Nuxt 项目，50 万行 TS，20+ 贡献者",[70,5326,5327,5330],{},[48,5328,5329],{},"时长","：2 周，约 40 个 PR",[70,5332,5333,5336],{},[48,5334,5335],{},"PR 类型","：功能开发、bug 修复、重构、依赖升级",[30,5338,5339],{"id":5339},"各工具实测",[5341,5342,5344],"h3",{"id":5343},"coderabbit最全面","CodeRabbit：最全面",[35,5346,5347,81],{},[48,5348,5349],{},"优点",[67,5351,5352,5355,5358,5365],{},[70,5353,5354],{},"评论最全——bug、安全、测试、文档、风格都覆盖",[70,5356,5357],{},"摘要做得好，PR 一眼看完改动意图",[70,5359,5360,5361,5364],{},"支持 ",[39,5362,5363],{},".coderabbit.yml"," 自定义规则",[70,5366,5367],{},"开源仓库完全免费",[35,5369,5370,81],{},[48,5371,5372],{},"缺点",[67,5374,5375,5378,5381],{},[70,5376,5377],{},"评论数多（15-25 条\u002FPR），部分是风格建议",[70,5379,5380],{},"开发者容易\"忽略所有评论\"",[70,5382,5383],{},"私有仓库 $24\u002Fseat\u002Fmo 偏贵",[35,5385,5386,5389],{},[48,5387,5388],{},"最佳场景","：团队统一 review 标准，需要全面覆盖。",[5341,5391,5393],{"id":5392},"ellipsis信噪比最高","Ellipsis：信噪比最高",[35,5395,5396,81],{},[48,5397,5349],{},[67,5399,5400,5403,5406],{},[70,5401,5402],{},"只报 bug 和安全，3-5 条\u002FPR，条条有价值",[70,5404,5405],{},"自动修复功能好用，一键生成 fix commit",[70,5407,5408],{},"评论格式统一（🔴\u002F🟡\u002F🟢），扫一眼就分清严重度",[35,5410,5411,81],{},[48,5412,5372],{},[67,5414,5415,5418,5421],{},[70,5416,5417],{},"不评论测试和文档",[70,5419,5420],{},"不支持自定义审查规则（只能描述自然语言规则）",[70,5422,5423],{},"中文项目评论全英文",[35,5425,5426,5428],{},[48,5427,5388],{},"：嫌评论太多噪音的团队，只关心 bug。",[5341,5430,5432],{"id":5431},"qodo-codiumai测试生成最强","Qodo (CodiumAI)：测试生成最强",[35,5434,5435,81],{},[48,5436,5349],{},[67,5438,5439,5442,5445],{},[70,5440,5441],{},"测试生成独一档——理解代码逻辑生成边界用例",[70,5443,5444],{},"开源 CLI（pr-agent）可自托管，完全免费",[70,5446,5447],{},"支持 40+ 语言",[35,5449,5450,81],{},[48,5451,5372],{},[67,5453,5454,5457,5460],{},[70,5455,5456],{},"PR review 质量中等，不如 CodeRabbit 全面",[70,5458,5459],{},"IDE 插件偶尔卡顿",[70,5461,5462],{},"测试生成有时过度（生成 50 个用例太多）",[35,5464,5465,5467],{},[48,5466,5388],{},"：提升测试覆盖率，个人开发者用 CLI。",[5341,5469,5471],{"id":5470},"greptile大仓库理解最强","Greptile：大仓库理解最强",[35,5473,5474,81],{},[48,5475,5349],{},[67,5477,5478,5481,5484],{},[70,5479,5480],{},"能理解整个仓库上下文，不只看 diff",[70,5482,5483],{},"跨文件关联分析强（\"这个改动会影响哪些调用方\"）",[70,5485,5486],{},"语义搜索，可以问\"这个函数在哪里被调用\"",[35,5488,5489,81],{},[48,5490,5372],{},[67,5492,5493,5496,5499],{},[70,5494,5495],{},"最贵（$50\u002Fseat\u002Fmo）",[70,5497,5498],{},"首次索引慢（50 万行仓库约 30 分钟）",[70,5500,5501],{},"评论数偏少，全面性不如 CodeRabbit",[35,5503,5504,5506],{},[48,5505,5388],{},"：大型仓库（100 万行+），需要跨文件理解。",[30,5508,5509],{"id":5509},"检出率对比",[35,5511,5512],{},"2 周内我们人工标记了 30 个真实问题，看各工具检出多少：",[615,5514,5515,5530],{},[618,5516,5517],{},[621,5518,5519,5522,5524,5526,5528],{},[624,5520,5521],{},"问题类型",[624,5523,5117],{},[624,5525,5126],{},[624,5527,5144],{},[624,5529,5135],{},[639,5531,5532,5548,5563,5577,5591,5604],{},[621,5533,5534,5537,5540,5543,5546],{},[644,5535,5536],{},"空指针\u002F未处理异常 (8)",[644,5538,5539],{},"6",[644,5541,5542],{},"8",[644,5544,5545],{},"5",[644,5547,5539],{},[621,5549,5550,5553,5556,5558,5561],{},[644,5551,5552],{},"SQL 注入\u002F安全 (5)",[644,5554,5555],{},"3",[644,5557,5545],{},[644,5559,5560],{},"2",[644,5562,5555],{},[621,5564,5565,5568,5571,5573,5575],{},[644,5566,5567],{},"边界条件错误 (7)",[644,5569,5570],{},"4",[644,5572,5545],{},[644,5574,5539],{},[644,5576,5570],{},[621,5578,5579,5582,5584,5586,5589],{},[644,5580,5581],{},"并发问题 (4)",[644,5583,5560],{},[644,5585,5555],{},[644,5587,5588],{},"1",[644,5590,5555],{},[621,5592,5593,5596,5598,5600,5602],{},[644,5594,5595],{},"逻辑错误 (6)",[644,5597,5570],{},[644,5599,5570],{},[644,5601,5555],{},[644,5603,5545],{},[621,5605,5606,5611,5616,5621,5626],{},[644,5607,5608],{},[48,5609,5610],{},"总检出率",[644,5612,5613],{},[48,5614,5615],{},"63%",[644,5617,5618],{},[48,5619,5620],{},"83%",[644,5622,5623],{},[48,5624,5625],{},"57%",[644,5627,5628],{},[48,5629,5630],{},"70%",[35,5632,5633],{},"Ellipsis 检出率最高——因为它只报确定的问题，不猜。",[30,5635,5637],{"id":5636},"价格对比10-人团队私有仓库","价格对比（10 人团队，私有仓库）",[615,5639,5640,5653],{},[618,5641,5642],{},[621,5643,5644,5647,5650],{},[624,5645,5646],{},"工具",[624,5648,5649],{},"月费",[624,5651,5652],{},"年费",[639,5654,5655,5665,5675,5685],{},[621,5656,5657,5659,5662],{},[644,5658,5117],{},[644,5660,5661],{},"$240",[644,5663,5664],{},"$2,880",[621,5666,5667,5669,5672],{},[644,5668,5126],{},[644,5670,5671],{},"$200",[644,5673,5674],{},"$2,400",[621,5676,5677,5679,5682],{},[644,5678,5144],{},[644,5680,5681],{},"$190",[644,5683,5684],{},"$2,280",[621,5686,5687,5689,5692],{},[644,5688,5135],{},[644,5690,5691],{},"$500",[644,5693,5694],{},"$6,000",[30,5696,5697],{"id":5697},"最终推荐",[263,5699,5702],{"className":5700,"code":5701,"language":2043},[2041],"全面 review → CodeRabbit（含风格\u002F测试\u002F文档）\n只报 bug → Ellipsis（信噪比最高）\n测试生成 → Qodo（CLI 免费自托管）\n大仓库 → Greptile（跨文件理解）\n\n最佳实践：CodeRabbit + Ellipsis 双挂\n  - CodeRabbit 做全面 review\n  - Ellipsis 做 bug 专项\n  - 两者互补，检出率 > 90%\n",[39,5703,5701],{"__ignoreMap":268},[30,5705,5706],{"id":5706},"踩坑记录",[931,5708,5709,5719,5725,5731],{},[70,5710,5711,5714,5715,5718],{},[48,5712,5713],{},"多 bot 同时用会刷屏","——在 ",[39,5716,5717],{},".github\u002Fworkflows\u002F"," 里控制触发条件，避免每个 PR 触发全部 4 个。",[70,5720,5721,5724],{},[48,5722,5723],{},"CodeRabbit 的 path_filters 必配","——否则会 review lock 文件，浪费配额。",[70,5726,5727,5730],{},[48,5728,5729],{},"Greptile 首次索引慢","——新仓库加完先等索引完成再开 review，否则前几个 PR 没有上下文。",[70,5732,5733,5736],{},[48,5734,5735],{},"Ellipsis 自动修复要 review","——生成的 fix commit 有时会改不该改的，别无脑点。",{"title":268,"searchDepth":313,"depth":313,"links":5738},[5739,5740,5741,5747,5748,5749,5750],{"id":32,"depth":282,"text":33},{"id":5316,"depth":282,"text":5316},{"id":5339,"depth":282,"text":5339,"children":5742},[5743,5744,5745,5746],{"id":5343,"depth":313,"text":5344},{"id":5392,"depth":313,"text":5393},{"id":5431,"depth":313,"text":5432},{"id":5470,"depth":313,"text":5471},{"id":5509,"depth":282,"text":5509},{"id":5636,"depth":282,"text":5637},{"id":5697,"depth":282,"text":5697},{"id":5706,"depth":282,"text":5706},"\u002Fog\u002Freview\u002Fai-code-review-comparison.png","四款主流 AI PR review 工具两周真实对比——我们在同一个中型仓库（50 万行 TS）上挂了四个 bot，记录了评论质量、噪音率、检出率、价格。给选型建议。",{},"\u002Freview\u002Fai-code-review-comparison",[5118,5127,5145,5136],{"title":5155,"description":5752},"review\u002Fai-code-review-comparison",[5759,613,5117,5126,5144,5135],"代码审查","全面 review 选 CodeRabbit，只要 bug 选 Ellipsis，测试生成选 Qodo，大仓库理解选 Greptile。最佳实践：CodeRabbit + Ellipsis 双挂。","CsqnLsz5x7-cRSGSXvBKpor3Gw6GQO2WbHnw23XbuCI",{"id":5763,"title":5764,"body":5765,"cover":6198,"description":6199,"extension":989,"meta":6200,"navigation":322,"path":6201,"published":1020,"relatedTools":6202,"seo":6203,"stem":6204,"tags":6205,"updated":1020,"verdict":6209,"__hash__":6210},"review\u002Freview\u002Fclaude-skills-practice.md","Claude Skills 实战：用 SKILL.md 让 Agent 学会部署 Nuxt 项目",{"type":27,"value":5766,"toc":6184},[5767,5769,5776,5780,5852,5856,5860,5891,5898,5902,5969,5978,5982,6003,6007,6028,6032,6040,6046,6049,6055,6059,6144,6147,6150,6153,6173,6176,6179,6182],[30,5768,33],{"id":32},[35,5770,5771,5772,5775],{},"Skills 把 Agent 能力从「写代码注册 tool」降维到「写 Markdown 描述步骤」。我们写了 5 个生产级 Skill，总结出",[48,5773,5774],{},"什么样的 SKILL.md 才能让 Claude 真正按你的预期执行","。",[30,5777,5779],{"id":5778},"我们写了哪-5-个-skill","我们写了哪 5 个 Skill",[615,5781,5782,5795],{},[618,5783,5784],{},[621,5785,5786,5789,5792],{},[624,5787,5788],{},"Skill",[624,5790,5791],{},"场景",[624,5793,5794],{},"效果",[639,5796,5797,5808,5819,5830,5841],{},[621,5798,5799,5802,5805],{},[644,5800,5801],{},"deploy-to-vercel",[644,5803,5804],{},"部署 Nuxt 项目到 Vercel",[644,5806,5807],{},"从 15 分钟手动操作 → 30 秒一行指令",[621,5809,5810,5813,5816],{},[644,5811,5812],{},"audit-deps",[644,5814,5815],{},"审计 package.json 依赖安全",[644,5817,5818],{},"每周自动跑，输出安全报告",[621,5820,5821,5824,5827],{},[644,5822,5823],{},"gen-sitemap",[644,5825,5826],{},"生成 sitemap.xml",[644,5828,5829],{},"改路由后自动更新，不用手动跑脚本",[621,5831,5832,5835,5838],{},[644,5833,5834],{},"db-migration",[644,5836,5837],{},"数据库 schema 迁移",[644,5839,5840],{},"生成迁移文件 + 回滚脚本",[621,5842,5843,5846,5849],{},[644,5844,5845],{},"gen-api-docs",[644,5847,5848],{},"从代码生成 API 文档",[644,5850,5851],{},"提交 PR 时自动更新文档",[30,5853,5855],{"id":5854},"skillmd-怎么写才有效","SKILL.md 怎么写才有效",[5341,5857,5859],{"id":5858},"反面教材无效","反面教材（无效）",[263,5861,5863],{"className":2053,"code":5862,"language":2055,"meta":268,"style":268},"---\nname: deploy-to-vercel\ndescription: Deploy to Vercel\n---\n\nDeploy the project to Vercel.\n",[39,5864,5865,5869,5873,5878,5882,5886],{"__ignoreMap":268},[272,5866,5867],{"class":274,"line":275},[272,5868,2062],{},[272,5870,5871],{"class":274,"line":282},[272,5872,2067],{},[272,5874,5875],{"class":274,"line":313},[272,5876,5877],{},"description: Deploy to Vercel\n",[272,5879,5880],{"class":274,"line":319},[272,5881,2062],{},[272,5883,5884],{"class":274,"line":326},[272,5885,323],{"emptyLinePlaceholder":322},[272,5887,5888],{"class":274,"line":332},[272,5889,5890],{},"Deploy the project to Vercel.\n",[35,5892,5893,5894,5897],{},"Claude 看到这个会问一堆问题：用什么命令？要不要 ",[39,5895,5896],{},"--prod","？环境变量怎么配？",[5341,5899,5901],{"id":5900},"正面教材有效","正面教材（有效）",[263,5903,5905],{"className":2053,"code":5904,"language":2055,"meta":268,"style":268},"---\nname: deploy-to-vercel\ndescription: Deploy a Nuxt\u002FVite\u002FNext project to Vercel\n---\n\n## When to use\n\nUser says \"部署\" \u002F \"deploy\" \u002F \"上线\" or asks to deploy to Vercel.\n\n## Prerequisites\n\n1. Check `vercel.json` exists. If not, create one:\n   ```json\n   { \"framework\": \"nuxt\", \"buildCommand\": \"pnpm run build\" }\n",[39,5906,5907,5911,5915,5920,5924,5928,5932,5936,5941,5945,5950,5954,5959,5964],{"__ignoreMap":268},[272,5908,5909],{"class":274,"line":275},[272,5910,2062],{},[272,5912,5913],{"class":274,"line":282},[272,5914,2067],{},[272,5916,5917],{"class":274,"line":313},[272,5918,5919],{},"description: Deploy a Nuxt\u002FVite\u002FNext project to Vercel\n",[272,5921,5922],{"class":274,"line":319},[272,5923,2062],{},[272,5925,5926],{"class":274,"line":326},[272,5927,323],{"emptyLinePlaceholder":322},[272,5929,5930],{"class":274,"line":332},[272,5931,2090],{},[272,5933,5934],{"class":274,"line":5},[272,5935,323],{"emptyLinePlaceholder":322},[272,5937,5938],{"class":274,"line":8},[272,5939,5940],{},"User says \"部署\" \u002F \"deploy\" \u002F \"上线\" or asks to deploy to Vercel.\n",[272,5942,5943],{"class":274,"line":351},[272,5944,323],{"emptyLinePlaceholder":322},[272,5946,5947],{"class":274,"line":7},[272,5948,5949],{},"## Prerequisites\n",[272,5951,5952],{"class":274,"line":368},[272,5953,323],{"emptyLinePlaceholder":322},[272,5955,5956],{"class":274,"line":377},[272,5957,5958],{},"1. Check `vercel.json` exists. If not, create one:\n",[272,5960,5961],{"class":274,"line":386},[272,5962,5963],{},"   ```json\n",[272,5965,5966],{"class":274,"line":395},[272,5967,5968],{},"   { \"framework\": \"nuxt\", \"buildCommand\": \"pnpm run build\" }\n",[931,5970,5971],{"start":282},[70,5972,5973,5974,5977],{},"Check ",[39,5975,5976],{},"VERCEL_TOKEN"," env var is set. If not, ask user to provide it.",[30,5979,5981],{"id":5980},"steps","Steps",[931,5983,5984,5991,5997,6000],{},[70,5985,5986,5987,5990],{},"Run ",[39,5988,5989],{},"vercel build"," to verify build passes locally",[70,5992,5986,5993,5996],{},[39,5994,5995],{},"vercel --prod --yes"," to deploy",[70,5998,5999],{},"Wait for deployment URL in output",[70,6001,6002],{},"Return the deployment URL to user",[30,6004,6006],{"id":6005},"error-handling","Error handling",[67,6008,6009,6012,6018],{},[70,6010,6011],{},"If build fails: show error, do NOT retry automatically",[70,6013,6014,6015,6017],{},"If ",[39,6016,5976],{}," missing: ask user to set it, do NOT guess",[70,6019,6014,6020,6023,6024,6027],{},[39,6021,6022],{},"vercel"," CLI not installed: ",[39,6025,6026],{},"npm i -g vercel"," first",[30,6029,6031],{"id":6030},"do-not","Do NOT",[67,6033,6034,6037],{},[70,6035,6036],{},"Do not deploy to preview without asking",[70,6038,6039],{},"Do not modify nuxt.config during deploy",[263,6041,6044],{"className":6042,"code":6043,"language":2043},[2041],"\n**关键要素**：\n1. **When to use** — 明确触发条件，避免 Claude 瞎调\n2. **Prerequisites** — 前置检查，缺什么先补\n3. **Steps** — 具体命令，不要含糊\n4. **Error handling** — 出错了怎么办\n5. **Do NOT** — 禁止事项，防止 Claude 自作主张\n\n## 附带脚本和模板\n\nSkill 目录可以放脚本和模板，Claude 会按需读取：\n\n",[39,6045,6043],{"__ignoreMap":268},[35,6047,6048],{},"deploy-to-vercel\u002F\nSKILL.md\nscripts\u002F\ncheck-env.sh        # 检查环境变量\ntemplates\u002F\nvercel.json         # 默认配置模板\nnuxt.vercel.json    # Nuxt 专用配置",[263,6050,6053],{"className":6051,"code":6052,"language":2043},[2041],"\nSKILL.md 里引用：\n```markdown\n## Steps\n\n1. Run `bash scripts\u002Fcheck-env.sh` to verify prerequisites\n2. If `vercel.json` missing, copy from `templates\u002Fnuxt.vercel.json`\n3. Run `vercel --prod --yes`\n",[39,6054,6052],{"__ignoreMap":268},[30,6056,6058],{"id":6057},"skills-vs-cursorrules-vs-mcp","Skills vs .cursorrules vs MCP",[615,6060,6061,6074],{},[618,6062,6063],{},[621,6064,6065,6067,6070,6072],{},[624,6066,626],{},[624,6068,6069],{},"Skills",[624,6071,2595],{},[624,6073,1487],{},[639,6075,6076,6090,6104,6117,6130],{},[621,6077,6078,6081,6084,6087],{},[644,6079,6080],{},"本质",[644,6082,6083],{},"能力描述（按需加载）",[644,6085,6086],{},"全局 prompt（每次带）",[644,6088,6089],{},"工具接入协议",[621,6091,6092,6095,6098,6101],{},[644,6093,6094],{},"格式",[644,6096,6097],{},"Markdown + 脚本",[644,6099,6100],{},"纯文本",[644,6102,6103],{},"JSON + 代码",[621,6105,6106,6109,6112,6115],{},[644,6107,6108],{},"Context 占用",[644,6110,6111],{},"低（按需加载）",[644,6113,6114],{},"高（每次对话带）",[644,6116,2189],{},[621,6118,6119,6121,6124,6127],{},[644,6120,788],{},[644,6122,6123],{},"固化团队流程",[644,6125,6126],{},"项目规范",[644,6128,6129],{},"接外部 API",[621,6131,6132,6135,6138,6141],{},[644,6133,6134],{},"支持",[644,6136,6137],{},"Claude 系列",[644,6139,6140],{},"Cursor \u002F Windsurf",[644,6142,6143],{},"Claude \u002F Cursor",[35,6145,6146],{},"三者互补：.cursorrules 定项目规范，Skills 定操作流程，MCP 接外部工具。",[30,6148,6149],{"id":6149},"效果数据",[35,6151,6152],{},"部署 Skill 上线两周后：",[67,6154,6155,6161,6167],{},[70,6156,6157,6160],{},[48,6158,6159],{},"部署操作时间","：15 min → 30 sec（Claude Code 执行 Skill）",[70,6162,6163,6166],{},[48,6164,6165],{},"部署错误率","：2 次\u002F周 → 0（Skill 里有前置检查）",[70,6168,6169,6172],{},[48,6170,6171],{},"新人上手","：不需要看部署文档，直接说\"部署\"就行",[30,6174,6175],{"id":6175},"结论",[35,6177,6178],{},"Skills 的核心价值不是「教 AI 新知识」，而是**「固化团队最佳实践」**。写好一个 Skill = 新人不用看文档也能按规范操作。",[35,6180,6181],{},"建议从高频、易出错的流程开始写 Skill——部署、迁移、审计这类。",[970,6183,2472],{},{"title":268,"searchDepth":313,"depth":313,"links":6185},[6186,6187,6188,6192,6193,6194,6195,6196,6197],{"id":32,"depth":282,"text":33},{"id":5778,"depth":282,"text":5779},{"id":5854,"depth":282,"text":5855,"children":6189},[6190,6191],{"id":5858,"depth":313,"text":5859},{"id":5900,"depth":313,"text":5901},{"id":5980,"depth":282,"text":5981},{"id":6005,"depth":282,"text":6006},{"id":6030,"depth":282,"text":6031},{"id":6057,"depth":282,"text":6058},{"id":6149,"depth":282,"text":6149},{"id":6175,"depth":282,"text":6175},"\u002Fog\u002Freview\u002Fclaude-skills-practice.png","Anthropic Skills 推出后，Agent 能力复用从代码降维到 Markdown。我们写了 5 个实战 Skill（部署 Vercel \u002F 审计依赖 \u002F 生成 sitemap \u002F 数据库迁移 \u002F API 文档），记录了 SKILL.md 怎么写才有效。",{},"\u002Freview\u002Fclaude-skills-practice",[2530,4912,1791],{"title":5764,"description":6199},"review\u002Fclaude-skills-practice",[6206,6069,6207,6208],"Claude","Agent","实战","Skills 的核心价值不是「教 AI 新知识」，而是「固化团队最佳实践」。写好一个 Skill = 新人不用看文档也能按规范操作。","yJOSR1KXWRpMNGMzs6xAu4lJAOfYBTw0hEmtVZkDRkU",{"id":6212,"title":6213,"body":6214,"cover":6853,"description":6854,"extension":989,"meta":6855,"navigation":322,"path":6856,"published":1020,"relatedTools":6857,"seo":6858,"stem":6859,"tags":6860,"updated":1020,"verdict":6862,"__hash__":6863},"review\u002Freview\u002Fllm-gateway-comparison.md","LLM API 网关实测：OpenRouter vs Portkey vs 自建 LiteLLM",{"type":27,"value":6215,"toc":6840},[6216,6218,6331,6333,6358,6361,6365,6423,6428,6448,6454,6458,6509,6513,6533,6538,6542,6589,6626,6630,6650,6655,6658,6731,6734,6737,6740,6798,6801,6803,6809,6811,6837],[30,6217,33],{"id":32},[615,6219,6220,6233],{},[618,6221,6222],{},[621,6223,6224,6226,6228,6230],{},[624,6225,626],{},[624,6227,4839],{},[624,6229,4848],{},[624,6231,6232],{},"LiteLLM (自建)",[639,6234,6235,6249,6263,6277,6291,6305,6318],{},[621,6236,6237,6240,6243,6246],{},[644,6238,6239],{},"模式",[644,6241,6242],{},"托管聚合",[644,6244,6245],{},"Gateway + 托管",[644,6247,6248],{},"开源自托管",[621,6250,6251,6254,6257,6260],{},[644,6252,6253],{},"接入成本",[644,6255,6256],{},"极低（一个 key）",[644,6258,6259],{},"低（改 base URL）",[644,6261,6262],{},"中（部署 + 配置）",[621,6264,6265,6268,6271,6274],{},[644,6266,6267],{},"模型数",[644,6269,6270],{},"300+",[644,6272,6273],{},"1600+",[644,6275,6276],{},"取决于你接几家",[621,6278,6279,6282,6285,6288],{},[644,6280,6281],{},"Fallback",[644,6283,6284],{},"✅ 基础",[644,6286,6287],{},"✅ 高级",[644,6289,6290],{},"✅ 可配",[621,6292,6293,6296,6299,6302],{},[644,6294,6295],{},"成本透明",[644,6297,6298],{},"透传 + 5%",[644,6300,6301],{},"透传 + 按量",[644,6303,6304],{},"纯透传",[621,6306,6307,6310,6313,6315],{},[644,6308,6309],{},"数据隐私",[644,6311,6312],{},"过第三方",[644,6314,6312],{},[644,6316,6317],{},"完全自有",[621,6319,6320,6322,6325,6328],{},[644,6321,788],{},[644,6323,6324],{},"个人 \u002F 试水",[644,6326,6327],{},"生产团队",[644,6329,6330],{},"企业 \u002F 合规",[30,6332,5316],{"id":5316},[67,6334,6335,6341,6347,6352],{},[70,6336,6337,6340],{},[48,6338,6339],{},"应用","：多模型 Agent，同时调 Claude \u002F GPT \u002F Gemini",[70,6342,6343,6346],{},[48,6344,6345],{},"调用量","：日均 10K 次请求",[70,6348,6349,6351],{},[48,6350,5329],{},"：2 周，每种方案各跑 4-5 天",[70,6353,6354,6357],{},[48,6355,6356],{},"关注指标","：延迟、成本、可靠性、运维负担",[30,6359,6360],{"id":6360},"各方案实测",[5341,6362,6364],{"id":6363},"openrouter最省心","OpenRouter：最省心",[263,6366,6369],{"className":6367,"code":6368,"language":4242,"meta":268,"style":268},"language-python shiki shiki-themes github-light github-dark","import openai\nclient = openai.OpenAI(\n    base_url=\"https:\u002F\u002Fopenrouter.ai\u002Fapi\u002Fv1\",\n    api_key=\"or-xxx\"\n)\n# 一个 key 调 300+ 模型\n",[39,6370,6371,6379,6390,6403,6413,6418],{"__ignoreMap":268},[272,6372,6373,6376],{"class":274,"line":275},[272,6374,6375],{"class":490},"import",[272,6377,6378],{"class":303}," openai\n",[272,6380,6381,6384,6387],{"class":274,"line":282},[272,6382,6383],{"class":303},"client ",[272,6385,6386],{"class":490},"=",[272,6388,6389],{"class":303}," openai.OpenAI(\n",[272,6391,6392,6395,6397,6400],{"class":274,"line":313},[272,6393,6394],{"class":532},"    base_url",[272,6396,6386],{"class":490},[272,6398,6399],{"class":289},"\"https:\u002F\u002Fopenrouter.ai\u002Fapi\u002Fv1\"",[272,6401,6402],{"class":303},",\n",[272,6404,6405,6408,6410],{"class":274,"line":319},[272,6406,6407],{"class":532},"    api_key",[272,6409,6386],{"class":490},[272,6411,6412],{"class":289},"\"or-xxx\"\n",[272,6414,6415],{"class":274,"line":326},[272,6416,6417],{"class":303},")\n",[272,6419,6420],{"class":274,"line":332},[272,6421,6422],{"class":278},"# 一个 key 调 300+ 模型\n",[35,6424,6425,81],{},[48,6426,6427],{},"体验",[67,6429,6430,6433,6436,6439,6442,6445],{},[70,6431,6432],{},"✅ 接入 5 分钟，一个 key 通吃",[70,6434,6435],{},"✅ 自带模型路由和基础 fallback",[70,6437,6438],{},"✅ Dashboard 看消耗明细",[70,6440,6441],{},"⚠️ 多收 5% 路由费",[70,6443,6444],{},"⚠️ 偶尔有限流（高峰期 Claude 请求排队）",[70,6446,6447],{},"❌ 所有请求过 OpenRouter 服务器，数据隐私无保障",[35,6449,6450,6453],{},[48,6451,6452],{},"成本","：日均 $50（模型费 $47.6 + OpenRouter 路由费 $2.4）",[5341,6455,6457],{"id":6456},"portkey生产级控制","Portkey：生产级控制",[263,6459,6463],{"className":6460,"code":6461,"language":6462,"meta":268,"style":268},"language-javascript shiki shiki-themes github-light github-dark","const portkey = new Portkey({\n  config: {\n    strategy: { mode: \"fallback\" },\n    targets: [\n      { provider: \"anthropic\", override_params: { model: \"claude-sonnet-4\" } },\n      { provider: \"openai\", override_params: { model: \"gpt-5\" } },\n    ]\n  }\n})\n","javascript",[39,6464,6465,6470,6475,6480,6485,6490,6495,6500,6504],{"__ignoreMap":268},[272,6466,6467],{"class":274,"line":275},[272,6468,6469],{},"const portkey = new Portkey({\n",[272,6471,6472],{"class":274,"line":282},[272,6473,6474],{},"  config: {\n",[272,6476,6477],{"class":274,"line":313},[272,6478,6479],{},"    strategy: { mode: \"fallback\" },\n",[272,6481,6482],{"class":274,"line":319},[272,6483,6484],{},"    targets: [\n",[272,6486,6487],{"class":274,"line":326},[272,6488,6489],{},"      { provider: \"anthropic\", override_params: { model: \"claude-sonnet-4\" } },\n",[272,6491,6492],{"class":274,"line":332},[272,6493,6494],{},"      { provider: \"openai\", override_params: { model: \"gpt-5\" } },\n",[272,6496,6497],{"class":274,"line":5},[272,6498,6499],{},"    ]\n",[272,6501,6502],{"class":274,"line":8},[272,6503,597],{},[272,6505,6506],{"class":274,"line":351},[272,6507,6508],{},"})\n",[35,6510,6511,81],{},[48,6512,6427],{},[67,6514,6515,6518,6521,6524,6527,6530],{},[70,6516,6517],{},"✅ Fallback 逻辑强大——主模型挂了 0 延迟切备用",[70,6519,6520],{},"✅ 负载均衡——多个 API key 轮询，突破单 key 限流",[70,6522,6523],{},"✅ 语义缓存——相似请求命中缓存，省钱",[70,6525,6526],{},"⚠️ 配置比 OpenRouter 复杂",[70,6528,6529],{},"⚠️ 托管版数据也过第三方",[70,6531,6532],{},"❌ 无中国区节点",[35,6534,6535,6537],{},[48,6536,6452],{},"：日均 $48（模型费 $47.6 + Portkey $0.4 缓存省了点）",[5341,6539,6541],{"id":6540},"自建-litellm完全可控","自建 LiteLLM：完全可控",[263,6543,6545],{"className":265,"code":6544,"language":267,"meta":268,"style":268},"# 部署\ndocker run -p 4000:4000 \\\n  -e ANTHROPIC_API_KEY=xxx \\\n  -e OPENAI_API_KEY=xxx \\\n  ghcr.io\u002Fberriai\u002Flitellm:main\n",[39,6546,6547,6552,6565,6575,6584],{"__ignoreMap":268},[272,6548,6549],{"class":274,"line":275},[272,6550,6551],{"class":278},"# 部署\n",[272,6553,6554,6556,6558,6560,6563],{"class":274,"line":282},[272,6555,286],{"class":285},[272,6557,290],{"class":289},[272,6559,294],{"class":293},[272,6561,6562],{"class":289}," 4000:4000",[272,6564,310],{"class":293},[272,6566,6567,6570,6573],{"class":274,"line":313},[272,6568,6569],{"class":293},"  -e",[272,6571,6572],{"class":289}," ANTHROPIC_API_KEY=xxx",[272,6574,310],{"class":293},[272,6576,6577,6579,6582],{"class":274,"line":319},[272,6578,6569],{"class":293},[272,6580,6581],{"class":289}," OPENAI_API_KEY=xxx",[272,6583,310],{"class":293},[272,6585,6586],{"class":274,"line":326},[272,6587,6588],{"class":289},"  ghcr.io\u002Fberriai\u002Flitellm:main\n",[263,6590,6592],{"className":6367,"code":6591,"language":4242,"meta":268,"style":268},"client = openai.OpenAI(\n    base_url=\"http:\u002F\u002Flocalhost:4000\u002Fv1\",\n    api_key=\"anything\"\n)\n",[39,6593,6594,6602,6613,6622],{"__ignoreMap":268},[272,6595,6596,6598,6600],{"class":274,"line":275},[272,6597,6383],{"class":303},[272,6599,6386],{"class":490},[272,6601,6389],{"class":303},[272,6603,6604,6606,6608,6611],{"class":274,"line":282},[272,6605,6394],{"class":532},[272,6607,6386],{"class":490},[272,6609,6610],{"class":289},"\"http:\u002F\u002Flocalhost:4000\u002Fv1\"",[272,6612,6402],{"class":303},[272,6614,6615,6617,6619],{"class":274,"line":313},[272,6616,6407],{"class":532},[272,6618,6386],{"class":490},[272,6620,6621],{"class":289},"\"anything\"\n",[272,6623,6624],{"class":274,"line":319},[272,6625,6417],{"class":303},[35,6627,6628,81],{},[48,6629,6427],{},[67,6631,6632,6635,6638,6641,6644,6647],{},[70,6633,6634],{},"✅ 完全自托管，数据不出公司",[70,6636,6637],{},"✅ 纯透传，0 额外费用",[70,6639,6640],{},"✅ 统一 100+ 提供商到 OpenAI 格式",[70,6642,6643],{},"⚠️ 需要自己运维（监控、备份、升级）",[70,6645,6646],{},"⚠️ Fallback 配置是 YAML，不如 Portkey 灵活",[70,6648,6649],{},"❌ 没有托管 Dashboard（要自己接 Grafana）",[35,6651,6652,6654],{},[48,6653,6452],{},"：日均 $47.6（纯模型费）+ 服务器费 $2\u002F天 ≈ $49.6",[30,6656,6657],{"id":6657},"延迟对比",[615,6659,6660,6676],{},[618,6661,6662],{},[621,6663,6664,6667,6670,6673],{},[624,6665,6666],{},"方案",[624,6668,6669],{},"P50 延迟",[624,6671,6672],{},"P95 延迟",[624,6674,6675],{},"说明",[639,6677,6678,6692,6705,6718],{},[621,6679,6680,6683,6686,6689],{},[644,6681,6682],{},"直连 OpenAI",[644,6684,6685],{},"320ms",[644,6687,6688],{},"850ms",[644,6690,6691],{},"基准",[621,6693,6694,6696,6699,6702],{},[644,6695,4839],{},[644,6697,6698],{},"380ms",[644,6700,6701],{},"1100ms",[644,6703,6704],{},"+60ms 路由开销",[621,6706,6707,6709,6712,6715],{},[644,6708,4848],{},[644,6710,6711],{},"350ms",[644,6713,6714],{},"900ms",[644,6716,6717],{},"+30ms，缓存命中更快",[621,6719,6720,6722,6725,6728],{},[644,6721,4821],{},[644,6723,6724],{},"340ms",[644,6726,6727],{},"880ms",[644,6729,6730],{},"+20ms，自建网络近",[35,6732,6733],{},"LiteLLM 延迟最低（自建内网），OpenRouter 最慢（多一跳）。",[30,6735,6736],{"id":6736},"可靠性对比",[35,6738,6739],{},"2 周内记录的故障：",[615,6741,6742,6757],{},[618,6743,6744],{},[621,6745,6746,6748,6751,6754],{},[624,6747,6666],{},[624,6749,6750],{},"故障次数",[624,6752,6753],{},"平均恢复",[624,6755,6756],{},"影响",[639,6758,6759,6772,6785],{},[621,6760,6761,6763,6766,6769],{},[644,6762,4839],{},[644,6764,6765],{},"2 次（限流）",[644,6767,6768],{},"15 分钟",[644,6770,6771],{},"请求排队",[621,6773,6774,6776,6779,6782],{},[644,6775,4848],{},[644,6777,6778],{},"0 次",[644,6780,6781],{},"—",[644,6783,6784],{},"Fallback 生效",[621,6786,6787,6789,6792,6795],{},[644,6788,4821],{},[644,6790,6791],{},"1 次（OOM）",[644,6793,6794],{},"5 分钟",[644,6796,6797],{},"重启恢复",[35,6799,6800],{},"Portkey 最稳——fallback 机制让上游故障对用户不可见。",[30,6802,5697],{"id":5697},[263,6804,6807],{"className":6805,"code":6806,"language":2043},[2041],"个人 \u002F 试水 → OpenRouter（5 分钟接入）\n生产团队 → Portkey（fallback + 缓存 + 可观测）\n企业 \u002F 合规 → 自建 LiteLLM（数据自有 + 0 路由费）\n\n成本敏感 + 有运维 → LiteLLM（省 5% 路由费）\n快速上线 → OpenRouter（最快）\n高可用 → Portkey（fallback 最强）\n",[39,6808,6806],{"__ignoreMap":268},[30,6810,5706],{"id":5706},[931,6812,6813,6819,6825,6831],{},[70,6814,6815,6818],{},[48,6816,6817],{},"OpenRouter 限流不分模型","——所有模型共享一个 rate limit，高峰期排队。",[70,6820,6821,6824],{},[48,6822,6823],{},"Portkey 缓存要配 TTL","——默认永久缓存，prompt 微调就命中不了。",[70,6826,6827,6830],{},[48,6828,6829],{},"LiteLLM 内存","——高并发时 OOM，调大容器内存或加 Redis 做队列。",[70,6832,6833,6836],{},[48,6834,6835],{},"三家都不支持流式 fallback","——fallback 只在非流式请求生效，流式请求主模型挂了就直接报错。",[970,6838,6839],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":268,"searchDepth":313,"depth":313,"links":6841},[6842,6843,6844,6849,6850,6851,6852],{"id":32,"depth":282,"text":33},{"id":5316,"depth":282,"text":5316},{"id":6360,"depth":282,"text":6360,"children":6845},[6846,6847,6848],{"id":6363,"depth":313,"text":6364},{"id":6456,"depth":313,"text":6457},{"id":6540,"depth":313,"text":6541},{"id":6657,"depth":282,"text":6657},{"id":6736,"depth":282,"text":6736},{"id":5697,"depth":282,"text":5697},{"id":5706,"depth":282,"text":5706},"\u002Fog\u002Freview\u002Fllm-gateway-comparison.png","三种 LLM API 统一方案对比——OpenRouter（托管聚合）、Portkey（Gateway + fallback）、自建 LiteLLM（开源自托管）。在同一个多模型应用里跑了 2 周，记录了延迟、成本、可靠性。",{},"\u002Freview\u002Fllm-gateway-comparison",[4840,4849,4822],{"title":6213,"description":6854},"review\u002Fllm-gateway-comparison",[6861,613,4839,4848,4821],"API 网关","省事用 OpenRouter，生产级控制用 Portkey，完全自托管用 LiteLLM。成本敏感 + 有运维能力 → LiteLLM。","8md3Mw0ZXoBA5A5oxP45VovigdwkT8vpBMLy0BlrUmI",[6865,7733,8827],{"id":6866,"title":6867,"body":6868,"category":7719,"cover":7720,"description":7721,"extension":989,"meta":7722,"navigation":322,"path":7723,"published":1020,"relatedTools":7724,"seo":7725,"stem":7726,"tags":7727,"updated":1020,"__hash__":7732},"playbook\u002Fplaybook\u002Fdeploy\u002Fai-auto-deploy.md","用 AI Agent 全自动部署：从 Git Push 到生产环境零手工",{"type":27,"value":6869,"toc":7708},[6870,6873,6884,6887,6893,6897,6902,7181,7185,7188,7279,7283,7384,7388,7504,7507,7596,7598,7601,7661,7663,7705],[30,6871,6872],{"id":6872},"适用场景",[67,6874,6875,6878,6881],{},[70,6876,6877],{},"个人项目 \u002F 小团队，不想手动部署",[70,6879,6880],{},"想让 AI 做部署决策（是否回滚、是否发公告）",[70,6882,6883],{},"需要部署后自动验证的",[30,6885,6886],{"id":6886},"架构",[263,6888,6891],{"className":6889,"code":6890,"language":2043},[2041],"git push main\n  → GitHub Actions 触发\n    → Step 1: 跑测试（pnpm test）\n    → Step 2: Claude Code 审查改动\n    → Step 3: 构建（pnpm build）\n    → Step 4: 部署到 Vercel\n    → Step 5: Claude Code 验证生产环境\n    → Step 6: 失败则自动回滚 + 通知\n",[39,6892,6890],{"__ignoreMap":268},[30,6894,6896],{"id":6895},"第一步基础-ci","第一步：基础 CI",[35,6898,6899,81],{},[39,6900,6901],{},".github\u002Fworkflows\u002Fdeploy.yml",[263,6903,6907],{"className":6904,"code":6905,"language":6906,"meta":268,"style":268},"language-yaml shiki shiki-themes github-light github-dark","name: Deploy\non:\n  push:\n    branches: [main]\n\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    permissions:\n      contents: write\n      deployments: write\n    steps:\n      - uses: actions\u002Fcheckout@v4\n      - uses: pnpm\u002Faction-setup@v2\n        with: { version: 9 }\n      - uses: actions\u002Fsetup-node@v4\n        with: { node-version: 22, cache: pnpm }\n\n      - name: Install\n        run: pnpm install --frozen-lockfile\n\n      - name: Test\n        run: pnpm test\n\n      - name: Build\n        run: pnpm build\n        env:\n          VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}\n","yaml",[39,6908,6909,6921,6929,6936,6950,6954,6961,6968,6978,6985,6995,7004,7011,7024,7035,7053,7064,7091,7095,7106,7116,7120,7131,7140,7144,7155,7164,7171],{"__ignoreMap":268},[272,6910,6911,6915,6918],{"class":274,"line":275},[272,6912,6914],{"class":6913},"s9eBZ","name",[272,6916,6917],{"class":303},": ",[272,6919,6920],{"class":289},"Deploy\n",[272,6922,6923,6926],{"class":274,"line":282},[272,6924,6925],{"class":293},"on",[272,6927,6928],{"class":303},":\n",[272,6930,6931,6934],{"class":274,"line":313},[272,6932,6933],{"class":6913},"  push",[272,6935,6928],{"class":303},[272,6937,6938,6941,6944,6947],{"class":274,"line":319},[272,6939,6940],{"class":6913},"    branches",[272,6942,6943],{"class":303},": [",[272,6945,6946],{"class":289},"main",[272,6948,6949],{"class":303},"]\n",[272,6951,6952],{"class":274,"line":326},[272,6953,323],{"emptyLinePlaceholder":322},[272,6955,6956,6959],{"class":274,"line":332},[272,6957,6958],{"class":6913},"jobs",[272,6960,6928],{"class":303},[272,6962,6963,6966],{"class":274,"line":5},[272,6964,6965],{"class":6913},"  deploy",[272,6967,6928],{"class":303},[272,6969,6970,6973,6975],{"class":274,"line":8},[272,6971,6972],{"class":6913},"    runs-on",[272,6974,6917],{"class":303},[272,6976,6977],{"class":289},"ubuntu-latest\n",[272,6979,6980,6983],{"class":274,"line":351},[272,6981,6982],{"class":6913},"    permissions",[272,6984,6928],{"class":303},[272,6986,6987,6990,6992],{"class":274,"line":7},[272,6988,6989],{"class":6913},"      contents",[272,6991,6917],{"class":303},[272,6993,6994],{"class":289},"write\n",[272,6996,6997,7000,7002],{"class":274,"line":368},[272,6998,6999],{"class":6913},"      deployments",[272,7001,6917],{"class":303},[272,7003,6994],{"class":289},[272,7005,7006,7009],{"class":274,"line":377},[272,7007,7008],{"class":6913},"    steps",[272,7010,6928],{"class":303},[272,7012,7013,7016,7019,7021],{"class":274,"line":386},[272,7014,7015],{"class":303},"      - ",[272,7017,7018],{"class":6913},"uses",[272,7020,6917],{"class":303},[272,7022,7023],{"class":289},"actions\u002Fcheckout@v4\n",[272,7025,7026,7028,7030,7032],{"class":274,"line":395},[272,7027,7015],{"class":303},[272,7029,7018],{"class":6913},[272,7031,6917],{"class":303},[272,7033,7034],{"class":289},"pnpm\u002Faction-setup@v2\n",[272,7036,7037,7040,7043,7046,7048,7051],{"class":274,"line":400},[272,7038,7039],{"class":6913},"        with",[272,7041,7042],{"class":303},": { ",[272,7044,7045],{"class":6913},"version",[272,7047,6917],{"class":303},[272,7049,7050],{"class":293},"9",[272,7052,591],{"class":303},[272,7054,7055,7057,7059,7061],{"class":274,"line":406},[272,7056,7015],{"class":303},[272,7058,7018],{"class":6913},[272,7060,6917],{"class":303},[272,7062,7063],{"class":289},"actions\u002Fsetup-node@v4\n",[272,7065,7066,7068,7070,7073,7075,7078,7081,7084,7086,7089],{"class":274,"line":412},[272,7067,7039],{"class":6913},[272,7069,7042],{"class":303},[272,7071,7072],{"class":6913},"node-version",[272,7074,6917],{"class":303},[272,7076,7077],{"class":293},"22",[272,7079,7080],{"class":303},", ",[272,7082,7083],{"class":6913},"cache",[272,7085,6917],{"class":303},[272,7087,7088],{"class":289},"pnpm",[272,7090,591],{"class":303},[272,7092,7093],{"class":274,"line":420},[272,7094,323],{"emptyLinePlaceholder":322},[272,7096,7097,7099,7101,7103],{"class":274,"line":432},[272,7098,7015],{"class":303},[272,7100,6914],{"class":6913},[272,7102,6917],{"class":303},[272,7104,7105],{"class":289},"Install\n",[272,7107,7108,7111,7113],{"class":274,"line":441},[272,7109,7110],{"class":6913},"        run",[272,7112,6917],{"class":303},[272,7114,7115],{"class":289},"pnpm install --frozen-lockfile\n",[272,7117,7118],{"class":274,"line":447},[272,7119,323],{"emptyLinePlaceholder":322},[272,7121,7122,7124,7126,7128],{"class":274,"line":10},[272,7123,7015],{"class":303},[272,7125,6914],{"class":6913},[272,7127,6917],{"class":303},[272,7129,7130],{"class":289},"Test\n",[272,7132,7133,7135,7137],{"class":274,"line":469},[272,7134,7110],{"class":6913},[272,7136,6917],{"class":303},[272,7138,7139],{"class":289},"pnpm test\n",[272,7141,7142],{"class":274,"line":484},[272,7143,323],{"emptyLinePlaceholder":322},[272,7145,7146,7148,7150,7152],{"class":274,"line":494},[272,7147,7015],{"class":303},[272,7149,6914],{"class":6913},[272,7151,6917],{"class":303},[272,7153,7154],{"class":289},"Build\n",[272,7156,7157,7159,7161],{"class":274,"line":515},[272,7158,7110],{"class":6913},[272,7160,6917],{"class":303},[272,7162,7163],{"class":289},"pnpm build\n",[272,7165,7166,7169],{"class":274,"line":546},[272,7167,7168],{"class":6913},"        env",[272,7170,6928],{"class":303},[272,7172,7173,7176,7178],{"class":274,"line":551},[272,7174,7175],{"class":6913},"          VERCEL_TOKEN",[272,7177,6917],{"class":303},[272,7179,7180],{"class":289},"${{ secrets.VERCEL_TOKEN }}\n",[30,7182,7184],{"id":7183},"第二步ai-审查改动","第二步：AI 审查改动",[35,7186,7187],{},"在 build 前加 Claude Code 审查：",[263,7189,7191],{"className":6904,"code":7190,"language":6906,"meta":268,"style":268},"      - name: AI Review Changes\n        uses: anthropics\u002Fclaude-code-action@v1\n        with:\n          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}\n          prompt: |\n            检查这次改动是否有部署风险：\n            1. 是否修改了环境变量配置\n            2. 是否修改了数据库 schema\n            3. 是否有 breaking change\n            4. 是否需要发迁移公告\n\n            如果有风险，输出 \"BLOCK_DEPLOY: \u003C原因>\"\n            如果没风险，输出 \"DEPLOY_OK\"\n",[39,7192,7193,7204,7214,7220,7230,7240,7245,7250,7255,7260,7265,7269,7274],{"__ignoreMap":268},[272,7194,7195,7197,7199,7201],{"class":274,"line":275},[272,7196,7015],{"class":303},[272,7198,6914],{"class":6913},[272,7200,6917],{"class":303},[272,7202,7203],{"class":289},"AI Review Changes\n",[272,7205,7206,7209,7211],{"class":274,"line":282},[272,7207,7208],{"class":6913},"        uses",[272,7210,6917],{"class":303},[272,7212,7213],{"class":289},"anthropics\u002Fclaude-code-action@v1\n",[272,7215,7216,7218],{"class":274,"line":313},[272,7217,7039],{"class":6913},[272,7219,6928],{"class":303},[272,7221,7222,7225,7227],{"class":274,"line":319},[272,7223,7224],{"class":6913},"          anthropic_api_key",[272,7226,6917],{"class":303},[272,7228,7229],{"class":289},"${{ secrets.ANTHROPIC_API_KEY }}\n",[272,7231,7232,7235,7237],{"class":274,"line":326},[272,7233,7234],{"class":6913},"          prompt",[272,7236,6917],{"class":303},[272,7238,7239],{"class":490},"|\n",[272,7241,7242],{"class":274,"line":332},[272,7243,7244],{"class":289},"            检查这次改动是否有部署风险：\n",[272,7246,7247],{"class":274,"line":5},[272,7248,7249],{"class":289},"            1. 是否修改了环境变量配置\n",[272,7251,7252],{"class":274,"line":8},[272,7253,7254],{"class":289},"            2. 是否修改了数据库 schema\n",[272,7256,7257],{"class":274,"line":351},[272,7258,7259],{"class":289},"            3. 是否有 breaking change\n",[272,7261,7262],{"class":274,"line":7},[272,7263,7264],{"class":289},"            4. 是否需要发迁移公告\n",[272,7266,7267],{"class":274,"line":368},[272,7268,323],{"emptyLinePlaceholder":322},[272,7270,7271],{"class":274,"line":377},[272,7272,7273],{"class":289},"            如果有风险，输出 \"BLOCK_DEPLOY: \u003C原因>\"\n",[272,7275,7276],{"class":274,"line":386},[272,7277,7278],{"class":289},"            如果没风险，输出 \"DEPLOY_OK\"\n",[30,7280,7282],{"id":7281},"第三步ai-部署","第三步：AI 部署",[263,7284,7286],{"className":6904,"code":7285,"language":6906,"meta":268,"style":268},"      - name: Deploy with Claude\n        if: success()\n        uses: anthropics\u002Fclaude-code-action@v1\n        with:\n          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}\n          prompt: |\n            执行部署：\n            1. 运行 vercel --prod --yes\n            2. 等待部署完成，获取 URL\n            3. curl 测试首页是否 200\n            4. curl 测试 \u002Fapi\u002Fhealth 是否返回 ok\n            5. 如果验证失败，运行 vercel rollback\n            6. 输出部署结果\n          allowed_tools: \"Bash\"\n",[39,7287,7288,7299,7309,7317,7323,7331,7339,7344,7349,7354,7359,7364,7369,7374],{"__ignoreMap":268},[272,7289,7290,7292,7294,7296],{"class":274,"line":275},[272,7291,7015],{"class":303},[272,7293,6914],{"class":6913},[272,7295,6917],{"class":303},[272,7297,7298],{"class":289},"Deploy with Claude\n",[272,7300,7301,7304,7306],{"class":274,"line":282},[272,7302,7303],{"class":6913},"        if",[272,7305,6917],{"class":303},[272,7307,7308],{"class":289},"success()\n",[272,7310,7311,7313,7315],{"class":274,"line":313},[272,7312,7208],{"class":6913},[272,7314,6917],{"class":303},[272,7316,7213],{"class":289},[272,7318,7319,7321],{"class":274,"line":319},[272,7320,7039],{"class":6913},[272,7322,6928],{"class":303},[272,7324,7325,7327,7329],{"class":274,"line":326},[272,7326,7224],{"class":6913},[272,7328,6917],{"class":303},[272,7330,7229],{"class":289},[272,7332,7333,7335,7337],{"class":274,"line":332},[272,7334,7234],{"class":6913},[272,7336,6917],{"class":303},[272,7338,7239],{"class":490},[272,7340,7341],{"class":274,"line":5},[272,7342,7343],{"class":289},"            执行部署：\n",[272,7345,7346],{"class":274,"line":8},[272,7347,7348],{"class":289},"            1. 运行 vercel --prod --yes\n",[272,7350,7351],{"class":274,"line":351},[272,7352,7353],{"class":289},"            2. 等待部署完成，获取 URL\n",[272,7355,7356],{"class":274,"line":7},[272,7357,7358],{"class":289},"            3. curl 测试首页是否 200\n",[272,7360,7361],{"class":274,"line":368},[272,7362,7363],{"class":289},"            4. curl 测试 \u002Fapi\u002Fhealth 是否返回 ok\n",[272,7365,7366],{"class":274,"line":377},[272,7367,7368],{"class":289},"            5. 如果验证失败，运行 vercel rollback\n",[272,7370,7371],{"class":274,"line":386},[272,7372,7373],{"class":289},"            6. 输出部署结果\n",[272,7375,7376,7379,7381],{"class":274,"line":395},[272,7377,7378],{"class":6913},"          allowed_tools",[272,7380,6917],{"class":303},[272,7382,7383],{"class":289},"\"Bash\"\n",[30,7385,7387],{"id":7386},"第四步自动回滚","第四步：自动回滚",[263,7389,7391],{"className":6904,"code":7390,"language":6906,"meta":268,"style":268},"      - name: Rollback on failure\n        if: failure()\n        run: |\n          # 获取上一个稳定部署\n          PREV=$(vercel ls --yes | head -5 | tail -1 | awk '{print $1}')\n          echo \"Rolling back to $PREV\"\n          vercel promote $PREV --yes\n\n      - name: Notify\n        if: always()\n        uses: slackapi\u002Fslack-github-action@v1\n        with:\n          slack-message: |\n            ${{ job.status == 'success' && '✅' || '❌' }} 部署 ${{ job.status }}\n            仓库: ${{ github.repository }}\n            提交: ${{ github.event.head_commit.message }}\n",[39,7392,7393,7404,7413,7421,7426,7431,7436,7441,7445,7456,7465,7474,7480,7489,7494,7499],{"__ignoreMap":268},[272,7394,7395,7397,7399,7401],{"class":274,"line":275},[272,7396,7015],{"class":303},[272,7398,6914],{"class":6913},[272,7400,6917],{"class":303},[272,7402,7403],{"class":289},"Rollback on failure\n",[272,7405,7406,7408,7410],{"class":274,"line":282},[272,7407,7303],{"class":6913},[272,7409,6917],{"class":303},[272,7411,7412],{"class":289},"failure()\n",[272,7414,7415,7417,7419],{"class":274,"line":313},[272,7416,7110],{"class":6913},[272,7418,6917],{"class":303},[272,7420,7239],{"class":490},[272,7422,7423],{"class":274,"line":319},[272,7424,7425],{"class":289},"          # 获取上一个稳定部署\n",[272,7427,7428],{"class":274,"line":326},[272,7429,7430],{"class":289},"          PREV=$(vercel ls --yes | head -5 | tail -1 | awk '{print $1}')\n",[272,7432,7433],{"class":274,"line":332},[272,7434,7435],{"class":289},"          echo \"Rolling back to $PREV\"\n",[272,7437,7438],{"class":274,"line":5},[272,7439,7440],{"class":289},"          vercel promote $PREV --yes\n",[272,7442,7443],{"class":274,"line":8},[272,7444,323],{"emptyLinePlaceholder":322},[272,7446,7447,7449,7451,7453],{"class":274,"line":351},[272,7448,7015],{"class":303},[272,7450,6914],{"class":6913},[272,7452,6917],{"class":303},[272,7454,7455],{"class":289},"Notify\n",[272,7457,7458,7460,7462],{"class":274,"line":7},[272,7459,7303],{"class":6913},[272,7461,6917],{"class":303},[272,7463,7464],{"class":289},"always()\n",[272,7466,7467,7469,7471],{"class":274,"line":368},[272,7468,7208],{"class":6913},[272,7470,6917],{"class":303},[272,7472,7473],{"class":289},"slackapi\u002Fslack-github-action@v1\n",[272,7475,7476,7478],{"class":274,"line":377},[272,7477,7039],{"class":6913},[272,7479,6928],{"class":303},[272,7481,7482,7485,7487],{"class":274,"line":386},[272,7483,7484],{"class":6913},"          slack-message",[272,7486,6917],{"class":303},[272,7488,7239],{"class":490},[272,7490,7491],{"class":274,"line":395},[272,7492,7493],{"class":289},"            ${{ job.status == 'success' && '✅' || '❌' }} 部署 ${{ job.status }}\n",[272,7495,7496],{"class":274,"line":400},[272,7497,7498],{"class":289},"            仓库: ${{ github.repository }}\n",[272,7500,7501],{"class":274,"line":406},[272,7502,7503],{"class":289},"            提交: ${{ github.event.head_commit.message }}\n",[30,7505,7506],{"id":7506},"安全边界",[615,7508,7509,7522],{},[618,7510,7511],{},[621,7512,7513,7516,7519],{},[624,7514,7515],{},"操作",[624,7517,7518],{},"AI 可执行",[624,7520,7521],{},"需人工确认",[639,7523,7524,7533,7542,7551,7560,7569,7578,7587],{},[621,7525,7526,7529,7531],{},[644,7527,7528],{},"跑测试",[644,7530,715],{},[644,7532],{},[621,7534,7535,7538,7540],{},[644,7536,7537],{},"构建项目",[644,7539,715],{},[644,7541],{},[621,7543,7544,7547,7549],{},[644,7545,7546],{},"部署到 preview",[644,7548,715],{},[644,7550],{},[621,7552,7553,7556,7558],{},[644,7554,7555],{},"部署到 production",[644,7557,715],{},[644,7559],{},[621,7561,7562,7565,7567],{},[644,7563,7564],{},"回滚",[644,7566,715],{},[644,7568],{},[621,7570,7571,7574,7576],{},[644,7572,7573],{},"修改环境变量",[644,7575],{},[644,7577,715],{},[621,7579,7580,7583,7585],{},[644,7581,7582],{},"数据库迁移",[644,7584],{},[644,7586,715],{},[621,7588,7589,7592,7594],{},[644,7590,7591],{},"删除资源",[644,7593],{},[644,7595,715],{},[30,7597,5794],{"id":5794},[35,7599,7600],{},"上线 1 个月后：",[615,7602,7603,7616],{},[618,7604,7605],{},[621,7606,7607,7610,7613],{},[624,7608,7609],{},"指标",[624,7611,7612],{},"之前（手动）",[624,7614,7615],{},"之后（AI 自动）",[639,7617,7618,7629,7639,7650],{},[621,7619,7620,7623,7626],{},[644,7621,7622],{},"部署频率",[644,7624,7625],{},"2 次\u002F周",[644,7627,7628],{},"5 次\u002F天",[621,7630,7631,7634,7636],{},[644,7632,7633],{},"部署耗时",[644,7635,6768],{},[644,7637,7638],{},"3 分钟",[621,7640,7641,7644,7647],{},[644,7642,7643],{},"部署失败率",[644,7645,7646],{},"10%",[644,7648,7649],{},"3%（自动回滚）",[621,7651,7652,7655,7658],{},[644,7653,7654],{},"人工介入",[644,7656,7657],{},"每次",[644,7659,7660],{},"5% 的部署",[30,7662,5706],{"id":5706},[931,7664,7665,7678,7684,7690,7696],{},[70,7666,7667,7673,7674,7677],{},[48,7668,7669,7670],{},"Claude Code Action 的 ",[39,7671,7672],{},"allowed_tools","——只给 ",[39,7675,7676],{},"Bash","，别给文件编辑权限，否则 AI 可能改代码。",[70,7679,7680,7683],{},[48,7681,7682],{},"Vercel rollback 需要 production deployment 历史","——首次部署没有回滚目标，先手动部署一次。",[70,7685,7686,7689],{},[48,7687,7688],{},"Claude API 成本","——每次部署约 $0.2-0.5（审查 + 部署 + 验证），月费 $30-50。",[70,7691,7692,7695],{},[48,7693,7694],{},"preview 环境先验证","——加一步部署到 preview 验证通过再 promote 到 production。",[70,7697,7698,7701,7702,5775],{},[48,7699,7700],{},"GitHub Actions 超时","——Claude Code 调用有时慢，设置 ",[39,7703,7704],{},"timeout-minutes: 15",[970,7706,7707],{},"html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 .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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":268,"searchDepth":313,"depth":313,"links":7709},[7710,7711,7712,7713,7714,7715,7716,7717,7718],{"id":6872,"depth":282,"text":6872},{"id":6886,"depth":282,"text":6886},{"id":6895,"depth":282,"text":6896},{"id":7183,"depth":282,"text":7184},{"id":7281,"depth":282,"text":7282},{"id":7386,"depth":282,"text":7387},{"id":7506,"depth":282,"text":7506},{"id":5794,"depth":282,"text":5794},{"id":5706,"depth":282,"text":5706},"deploy","\u002Fog\u002Fplaybook\u002Fai-auto-deploy.png","用 Claude Code + GitHub Actions + Vercel\u002FCfly 搭一条全自动部署流水线——push 到 main → AI 跑测试 → AI 审查 → AI 部署 → 验证 → 通知。零手工操作，含回滚机制。",{},"\u002Fplaybook\u002Fdeploy\u002Fai-auto-deploy",[4912,4894,2530],{"title":6867,"description":7721},"playbook\u002Fdeploy\u002Fai-auto-deploy",[7728,7729,4911,7730,7731],"部署","CI\u002FCD","GitHub Actions","自动化","0C0tbe1lwERKuzXgnhYWUeLJ7FFDITUdnTFvc0MVs-E",{"id":7734,"title":7735,"body":7736,"category":8813,"cover":8814,"description":8815,"extension":989,"meta":8816,"navigation":322,"path":8817,"published":1020,"relatedTools":8818,"seo":8819,"stem":8820,"tags":8821,"updated":1020,"__hash__":8826},"playbook\u002Fplaybook\u002Fmigration\u002Fai-db-migration.md","用 AI 做数据库迁移：零停机 schema 变更工作流",{"type":27,"value":7737,"toc":8799},[7738,7740,7754,7757,7783,7786,7792,7796,7799,7805,7808,7833,7836,7962,7966,7972,7975,7979,7983,8300,8303,8527,8530,8585,8589,8686,8690,8693,8727,8790,8796],[30,7739,6872],{"id":6872},[67,7741,7742,7745,7748,7751],{},[70,7743,7744],{},"生产数据库需要 schema 变更",[70,7746,7747],{},"大表（千万行+）加列 \u002F 改类型 \u002F 加索引",[70,7749,7750],{},"需要零停机迁移",[70,7752,7753],{},"想让 AI 生成迁移文件 + 回滚方案",[30,7755,7756],{"id":7756},"迁移原则",[931,7758,7759,7765,7771,7777],{},[70,7760,7761,7764],{},[48,7762,7763],{},"永远可回滚","——每个迁移文件都有对应的 down migration",[70,7766,7767,7770],{},[48,7768,7769],{},"分阶段执行","——大变更拆成多步，每步都可独立回滚",[70,7772,7773,7776],{},[48,7774,7775],{},"先兼容后破坏","——先让代码兼容新 schema，再删旧字段",[70,7778,7779,7782],{},[48,7780,7781],{},"AI 生成 + 人工审查","——AI 写迁移，人审 SQL",[30,7784,7785],{"id":7785},"工作流",[263,7787,7790],{"className":7788,"code":7789,"language":2043},[2041],"需求：给 users 表加 phone 字段\n  → Step 1: Claude 生成迁移文件（含 up + down）\n  → Step 2: Claude 检查兼容性（是否破坏现有代码）\n  → Step 3: 在 shadow DB 测试迁移\n  → Step 4: 生产分阶段执行\n  → Step 5: 验证 + 清理\n",[39,7791,7789],{"__ignoreMap":268},[30,7793,7795],{"id":7794},"step-1-ai-生成迁移","Step 1: AI 生成迁移",[35,7797,7798],{},"用 Claude Code 连数据库（通过 MCP），描述需求：",[263,7800,7803],{"className":7801,"code":7802,"language":2043},[2041],"给 users 表加一个 phone 字段，varchar(20)，可空，加唯一索引。\n用 Drizzle migration 格式生成，含 up 和 down。\n检查现有代码是否有依赖。\n",[39,7804,7802],{"__ignoreMap":268},[35,7806,7807],{},"Claude 会：",[931,7809,7810,7813,7816,7819,7822],{},[70,7811,7812],{},"查当前 users 表结构",[70,7814,7815],{},"生成 Drizzle schema 改动",[70,7817,7818],{},"生成 SQL migration 文件",[70,7820,7821],{},"生成回滚 SQL",[70,7823,7824,7825,7828,7829,7832],{},"检查代码里的 ",[39,7826,7827],{},"select *"," 和 ",[39,7830,7831],{},"insert"," 是否受影响",[35,7834,7835],{},"生成的文件：",[263,7837,7841],{"className":7838,"code":7839,"language":7840,"meta":268,"style":268},"language-sql shiki shiki-themes github-light github-dark","-- migrations\u002F0024_add_user_phone.sql\n\n-- UP\nALTER TABLE users ADD COLUMN phone VARCHAR(20);\nCREATE UNIQUE INDEX idx_users_phone ON users(phone) WHERE phone IS NOT NULL;\n\n-- DOWN\nDROP INDEX IF EXISTS idx_users_phone;\nALTER TABLE users DROP COLUMN IF EXISTS phone;\n","sql",[39,7842,7843,7848,7852,7857,7886,7915,7919,7924,7941],{"__ignoreMap":268},[272,7844,7845],{"class":274,"line":275},[272,7846,7847],{"class":278},"-- migrations\u002F0024_add_user_phone.sql\n",[272,7849,7850],{"class":274,"line":282},[272,7851,323],{"emptyLinePlaceholder":322},[272,7853,7854],{"class":274,"line":313},[272,7855,7856],{"class":278},"-- UP\n",[272,7858,7859,7862,7865,7868,7871,7874,7877,7880,7883],{"class":274,"line":319},[272,7860,7861],{"class":490},"ALTER",[272,7863,7864],{"class":490}," TABLE",[272,7866,7867],{"class":303}," users ",[272,7869,7870],{"class":490},"ADD",[272,7872,7873],{"class":303}," COLUMN phone ",[272,7875,7876],{"class":490},"VARCHAR",[272,7878,7879],{"class":303},"(",[272,7881,7882],{"class":293},"20",[272,7884,7885],{"class":303},");\n",[272,7887,7888,7891,7894,7897,7900,7903,7906,7909,7912],{"class":274,"line":326},[272,7889,7890],{"class":490},"CREATE",[272,7892,7893],{"class":490}," UNIQUE INDEX",[272,7895,7896],{"class":285}," idx_users_phone",[272,7898,7899],{"class":490}," ON",[272,7901,7902],{"class":303}," users(phone) ",[272,7904,7905],{"class":490},"WHERE",[272,7907,7908],{"class":303}," phone ",[272,7910,7911],{"class":490},"IS NOT NULL",[272,7913,7914],{"class":303},";\n",[272,7916,7917],{"class":274,"line":332},[272,7918,323],{"emptyLinePlaceholder":322},[272,7920,7921],{"class":274,"line":5},[272,7922,7923],{"class":278},"-- DOWN\n",[272,7925,7926,7929,7932,7935,7938],{"class":274,"line":8},[272,7927,7928],{"class":490},"DROP",[272,7930,7931],{"class":490}," INDEX",[272,7933,7934],{"class":490}," IF",[272,7936,7937],{"class":490}," EXISTS",[272,7939,7940],{"class":303}," idx_users_phone;\n",[272,7942,7943,7945,7947,7949,7951,7954,7957,7959],{"class":274,"line":351},[272,7944,7861],{"class":490},[272,7946,7864],{"class":490},[272,7948,7867],{"class":303},[272,7950,7928],{"class":490},[272,7952,7953],{"class":303}," COLUMN ",[272,7955,7956],{"class":490},"IF",[272,7958,7937],{"class":490},[272,7960,7961],{"class":303}," phone;\n",[30,7963,7965],{"id":7964},"step-2-兼容性检查","Step 2: 兼容性检查",[263,7967,7970],{"className":7968,"code":7969,"language":2043},[2041],"检查这次迁移会影响哪些代码：\n1. 哪些 INSERT 语句需要加 phone 字段\n2. 哪些 SELECT * 会导致返回字段变化\n3. 哪些 API 响应 schema 会变\n",[39,7971,7969],{"__ignoreMap":268},[35,7973,7974],{},"Claude 输出影响清单，你确认后再执行。",[30,7976,7978],{"id":7977},"step-3-高危操作安全模式","Step 3: 高危操作安全模式",[5341,7980,7982],{"id":7981},"大表加列千万行","大表加列（千万行+）",[263,7984,7986],{"className":7838,"code":7985,"language":7840,"meta":268,"style":268},"-- ❌ 错误：直接加（锁表）\nALTER TABLE users ADD COLUMN phone VARCHAR(20);\n\n-- ✅ 正确：分阶段\n-- Phase 1: 加可空字段（不锁表，PostgreSQL 11+）\nALTER TABLE users ADD COLUMN phone VARCHAR(20);\n\n-- Phase 2: 回填数据（分批，不锁表）\n-- Claude 生成批处理脚本\nDO $$\nDECLARE\n  batch_size INT := 10000;\n  offset_val INT := 0;\nBEGIN\n  LOOP\n    UPDATE users SET phone = '' WHERE id IN (\n      SELECT id FROM users WHERE phone IS NULL LIMIT batch_size\n    );\n    GET DIAGNOSTICS batch_size = ROW_COUNT;\n    EXIT WHEN batch_size = 0;\n    PERFORM pg_sleep(0.1);  -- 给主从复制留时间\n  END LOOP;\nEND $$;\n\n-- Phase 3: 加约束（先检查再加）\nALTER TABLE users ADD CONSTRAINT chk_phone CHECK (phone ~ '^\\+?[0-9]{6,20}$') NOT VALID;\nALTER TABLE users VALIDATE CONSTRAINT chk_phone;\n",[39,7987,7988,7993,8013,8017,8022,8027,8047,8051,8056,8061,8066,8071,8089,8105,8110,8115,8144,8170,8175,8188,8205,8224,8234,8242,8246,8251,8285],{"__ignoreMap":268},[272,7989,7990],{"class":274,"line":275},[272,7991,7992],{"class":278},"-- ❌ 错误：直接加（锁表）\n",[272,7994,7995,7997,7999,8001,8003,8005,8007,8009,8011],{"class":274,"line":282},[272,7996,7861],{"class":490},[272,7998,7864],{"class":490},[272,8000,7867],{"class":303},[272,8002,7870],{"class":490},[272,8004,7873],{"class":303},[272,8006,7876],{"class":490},[272,8008,7879],{"class":303},[272,8010,7882],{"class":293},[272,8012,7885],{"class":303},[272,8014,8015],{"class":274,"line":313},[272,8016,323],{"emptyLinePlaceholder":322},[272,8018,8019],{"class":274,"line":319},[272,8020,8021],{"class":278},"-- ✅ 正确：分阶段\n",[272,8023,8024],{"class":274,"line":326},[272,8025,8026],{"class":278},"-- Phase 1: 加可空字段（不锁表，PostgreSQL 11+）\n",[272,8028,8029,8031,8033,8035,8037,8039,8041,8043,8045],{"class":274,"line":332},[272,8030,7861],{"class":490},[272,8032,7864],{"class":490},[272,8034,7867],{"class":303},[272,8036,7870],{"class":490},[272,8038,7873],{"class":303},[272,8040,7876],{"class":490},[272,8042,7879],{"class":303},[272,8044,7882],{"class":293},[272,8046,7885],{"class":303},[272,8048,8049],{"class":274,"line":5},[272,8050,323],{"emptyLinePlaceholder":322},[272,8052,8053],{"class":274,"line":8},[272,8054,8055],{"class":278},"-- Phase 2: 回填数据（分批，不锁表）\n",[272,8057,8058],{"class":274,"line":351},[272,8059,8060],{"class":278},"-- Claude 生成批处理脚本\n",[272,8062,8063],{"class":274,"line":7},[272,8064,8065],{"class":303},"DO $$\n",[272,8067,8068],{"class":274,"line":368},[272,8069,8070],{"class":490},"DECLARE\n",[272,8072,8073,8076,8079,8082,8084,8087],{"class":274,"line":377},[272,8074,8075],{"class":303},"  batch_size ",[272,8077,8078],{"class":490},"INT",[272,8080,8081],{"class":303}," :",[272,8083,6386],{"class":490},[272,8085,8086],{"class":293}," 10000",[272,8088,7914],{"class":303},[272,8090,8091,8094,8096,8098,8100,8103],{"class":274,"line":386},[272,8092,8093],{"class":303},"  offset_val ",[272,8095,8078],{"class":490},[272,8097,8081],{"class":303},[272,8099,6386],{"class":490},[272,8101,8102],{"class":293}," 0",[272,8104,7914],{"class":303},[272,8106,8107],{"class":274,"line":395},[272,8108,8109],{"class":490},"BEGIN\n",[272,8111,8112],{"class":274,"line":400},[272,8113,8114],{"class":490},"  LOOP\n",[272,8116,8117,8120,8122,8125,8127,8129,8132,8135,8138,8141],{"class":274,"line":406},[272,8118,8119],{"class":490},"    UPDATE",[272,8121,7867],{"class":303},[272,8123,8124],{"class":490},"SET",[272,8126,7908],{"class":303},[272,8128,6386],{"class":490},[272,8130,8131],{"class":289}," ''",[272,8133,8134],{"class":490}," WHERE",[272,8136,8137],{"class":303}," id ",[272,8139,8140],{"class":490},"IN",[272,8142,8143],{"class":303}," (\n",[272,8145,8146,8148,8150,8153,8155,8157,8159,8162,8165,8167],{"class":274,"line":412},[272,8147,497],{"class":490},[272,8149,8137],{"class":303},[272,8151,8152],{"class":490},"FROM",[272,8154,7867],{"class":303},[272,8156,7905],{"class":490},[272,8158,7908],{"class":303},[272,8160,8161],{"class":490},"IS",[272,8163,8164],{"class":490}," NULL",[272,8166,540],{"class":490},[272,8168,8169],{"class":303}," batch_size\n",[272,8171,8172],{"class":274,"line":420},[272,8173,8174],{"class":303},"    );\n",[272,8176,8177,8180,8183,8185],{"class":274,"line":432},[272,8178,8179],{"class":490},"    GET",[272,8181,8182],{"class":303}," DIAGNOSTICS batch_size ",[272,8184,6386],{"class":490},[272,8186,8187],{"class":303}," ROW_COUNT;\n",[272,8189,8190,8193,8196,8199,8201,8203],{"class":274,"line":441},[272,8191,8192],{"class":303},"    EXIT ",[272,8194,8195],{"class":490},"WHEN",[272,8197,8198],{"class":303}," batch_size ",[272,8200,6386],{"class":490},[272,8202,8102],{"class":293},[272,8204,7914],{"class":303},[272,8206,8207,8210,8213,8216,8218,8221],{"class":274,"line":447},[272,8208,8209],{"class":303},"    PERFORM pg_sleep(",[272,8211,8212],{"class":293},"0",[272,8214,8215],{"class":303},".",[272,8217,5588],{"class":293},[272,8219,8220],{"class":303},");  ",[272,8222,8223],{"class":278},"-- 给主从复制留时间\n",[272,8225,8226,8229,8232],{"class":274,"line":10},[272,8227,8228],{"class":490},"  END",[272,8230,8231],{"class":490}," LOOP",[272,8233,7914],{"class":303},[272,8235,8236,8239],{"class":274,"line":469},[272,8237,8238],{"class":490},"END",[272,8240,8241],{"class":303}," $$;\n",[272,8243,8244],{"class":274,"line":484},[272,8245,323],{"emptyLinePlaceholder":322},[272,8247,8248],{"class":274,"line":494},[272,8249,8250],{"class":278},"-- Phase 3: 加约束（先检查再加）\n",[272,8252,8253,8255,8257,8259,8261,8264,8267,8270,8273,8276,8279,8282],{"class":274,"line":515},[272,8254,7861],{"class":490},[272,8256,7864],{"class":490},[272,8258,7867],{"class":303},[272,8260,7870],{"class":490},[272,8262,8263],{"class":490}," CONSTRAINT",[272,8265,8266],{"class":303}," chk_phone ",[272,8268,8269],{"class":490},"CHECK",[272,8271,8272],{"class":303}," (phone ~ ",[272,8274,8275],{"class":289},"'^\\+?[0-9]{6,20}$'",[272,8277,8278],{"class":303},") ",[272,8280,8281],{"class":490},"NOT",[272,8283,8284],{"class":303}," VALID;\n",[272,8286,8287,8289,8291,8294,8297],{"class":274,"line":546},[272,8288,7861],{"class":490},[272,8290,7864],{"class":490},[272,8292,8293],{"class":303}," users VALIDATE ",[272,8295,8296],{"class":490},"CONSTRAINT",[272,8298,8299],{"class":303}," chk_phone;\n",[5341,8301,8302],{"id":8302},"改字段类型",[263,8304,8306],{"className":7838,"code":8305,"language":7840,"meta":268,"style":268},"-- ❌ 错误：直接改（锁表 + 重写全表）\nALTER TABLE users ALTER COLUMN phone TYPE BIGINT USING phone::BIGINT;\n\n-- ✅ 正确：新字段 + 回填 + 切换 + 删旧\n-- Phase 1: 加新字段\nALTER TABLE users ADD COLUMN phone_int BIGINT;\n\n-- Phase 2: 双写（代码同时写旧和新）\n-- Claude 生成代码改动：INSERT\u002FUPDATE 同时写 phone 和 phone_int\n\n-- Phase 3: 回填\nUPDATE users SET phone_int = phone::BIGINT WHERE phone_int IS NULL AND phone ~ '^[0-9]+$';\n\n-- Phase 4: 验证数据一致\nSELECT COUNT(*) FROM users WHERE phone IS NOT NULL AND phone_int IS NULL;\n-- 必须为 0\n\n-- Phase 5: 代码切到读 phone_int\n\n-- Phase 6: 删旧字段（等一个发布周期后）\nALTER TABLE users DROP COLUMN phone;\nALTER TABLE users RENAME COLUMN phone_int TO phone;\n",[39,8307,8308,8313,8342,8346,8351,8356,8373,8377,8382,8387,8391,8396,8433,8437,8442,8477,8482,8486,8491,8495,8500,8513],{"__ignoreMap":268},[272,8309,8310],{"class":274,"line":275},[272,8311,8312],{"class":278},"-- ❌ 错误：直接改（锁表 + 重写全表）\n",[272,8314,8315,8317,8319,8321,8323,8325,8328,8331,8334,8337,8340],{"class":274,"line":282},[272,8316,7861],{"class":490},[272,8318,7864],{"class":490},[272,8320,7867],{"class":303},[272,8322,7861],{"class":490},[272,8324,7873],{"class":303},[272,8326,8327],{"class":490},"TYPE",[272,8329,8330],{"class":490}," BIGINT",[272,8332,8333],{"class":490}," USING",[272,8335,8336],{"class":303}," phone::",[272,8338,8339],{"class":490},"BIGINT",[272,8341,7914],{"class":303},[272,8343,8344],{"class":274,"line":313},[272,8345,323],{"emptyLinePlaceholder":322},[272,8347,8348],{"class":274,"line":319},[272,8349,8350],{"class":278},"-- ✅ 正确：新字段 + 回填 + 切换 + 删旧\n",[272,8352,8353],{"class":274,"line":326},[272,8354,8355],{"class":278},"-- Phase 1: 加新字段\n",[272,8357,8358,8360,8362,8364,8366,8369,8371],{"class":274,"line":332},[272,8359,7861],{"class":490},[272,8361,7864],{"class":490},[272,8363,7867],{"class":303},[272,8365,7870],{"class":490},[272,8367,8368],{"class":303}," COLUMN phone_int ",[272,8370,8339],{"class":490},[272,8372,7914],{"class":303},[272,8374,8375],{"class":274,"line":5},[272,8376,323],{"emptyLinePlaceholder":322},[272,8378,8379],{"class":274,"line":8},[272,8380,8381],{"class":278},"-- Phase 2: 双写（代码同时写旧和新）\n",[272,8383,8384],{"class":274,"line":351},[272,8385,8386],{"class":278},"-- Claude 生成代码改动：INSERT\u002FUPDATE 同时写 phone 和 phone_int\n",[272,8388,8389],{"class":274,"line":7},[272,8390,323],{"emptyLinePlaceholder":322},[272,8392,8393],{"class":274,"line":368},[272,8394,8395],{"class":278},"-- Phase 3: 回填\n",[272,8397,8398,8401,8403,8405,8408,8410,8412,8414,8416,8418,8420,8422,8425,8428,8431],{"class":274,"line":377},[272,8399,8400],{"class":490},"UPDATE",[272,8402,7867],{"class":303},[272,8404,8124],{"class":490},[272,8406,8407],{"class":303}," phone_int ",[272,8409,6386],{"class":490},[272,8411,8336],{"class":303},[272,8413,8339],{"class":490},[272,8415,8134],{"class":490},[272,8417,8407],{"class":303},[272,8419,8161],{"class":490},[272,8421,8164],{"class":490},[272,8423,8424],{"class":490}," AND",[272,8426,8427],{"class":303}," phone ~ ",[272,8429,8430],{"class":289},"'^[0-9]+$'",[272,8432,7914],{"class":303},[272,8434,8435],{"class":274,"line":386},[272,8436,323],{"emptyLinePlaceholder":322},[272,8438,8439],{"class":274,"line":395},[272,8440,8441],{"class":278},"-- Phase 4: 验证数据一致\n",[272,8443,8444,8447,8450,8452,8455,8457,8459,8461,8463,8465,8467,8469,8471,8473,8475],{"class":274,"line":400},[272,8445,8446],{"class":490},"SELECT",[272,8448,8449],{"class":293}," COUNT",[272,8451,7879],{"class":303},[272,8453,8454],{"class":490},"*",[272,8456,8278],{"class":303},[272,8458,8152],{"class":490},[272,8460,7867],{"class":303},[272,8462,7905],{"class":490},[272,8464,7908],{"class":303},[272,8466,7911],{"class":490},[272,8468,8424],{"class":490},[272,8470,8407],{"class":303},[272,8472,8161],{"class":490},[272,8474,8164],{"class":490},[272,8476,7914],{"class":303},[272,8478,8479],{"class":274,"line":406},[272,8480,8481],{"class":278},"-- 必须为 0\n",[272,8483,8484],{"class":274,"line":412},[272,8485,323],{"emptyLinePlaceholder":322},[272,8487,8488],{"class":274,"line":420},[272,8489,8490],{"class":278},"-- Phase 5: 代码切到读 phone_int\n",[272,8492,8493],{"class":274,"line":432},[272,8494,323],{"emptyLinePlaceholder":322},[272,8496,8497],{"class":274,"line":441},[272,8498,8499],{"class":278},"-- Phase 6: 删旧字段（等一个发布周期后）\n",[272,8501,8502,8504,8506,8508,8510],{"class":274,"line":447},[272,8503,7861],{"class":490},[272,8505,7864],{"class":490},[272,8507,7867],{"class":303},[272,8509,7928],{"class":490},[272,8511,8512],{"class":303}," COLUMN phone;\n",[272,8514,8515,8517,8519,8522,8525],{"class":274,"line":10},[272,8516,7861],{"class":490},[272,8518,7864],{"class":490},[272,8520,8521],{"class":303}," users RENAME COLUMN phone_int ",[272,8523,8524],{"class":490},"TO",[272,8526,7961],{"class":303},[5341,8528,8529],{"id":8529},"加索引",[263,8531,8533],{"className":7838,"code":8532,"language":7840,"meta":268,"style":268},"-- ❌ 错误：直接加（锁表写操作）\nCREATE INDEX idx_users_email ON users(email);\n\n-- ✅ 正确：CONCURRENTLY（不锁表，但慢）\nCREATE INDEX CONCURRENTLY idx_users_email ON users(email);\n-- 注意：CONCURRENTLY 不能在事务里跑\n",[39,8534,8535,8540,8554,8558,8563,8580],{"__ignoreMap":268},[272,8536,8537],{"class":274,"line":275},[272,8538,8539],{"class":278},"-- ❌ 错误：直接加（锁表写操作）\n",[272,8541,8542,8544,8546,8549,8551],{"class":274,"line":282},[272,8543,7890],{"class":490},[272,8545,7931],{"class":490},[272,8547,8548],{"class":285}," idx_users_email",[272,8550,7899],{"class":490},[272,8552,8553],{"class":303}," users(email);\n",[272,8555,8556],{"class":274,"line":313},[272,8557,323],{"emptyLinePlaceholder":322},[272,8559,8560],{"class":274,"line":319},[272,8561,8562],{"class":278},"-- ✅ 正确：CONCURRENTLY（不锁表，但慢）\n",[272,8564,8565,8567,8569,8572,8575,8578],{"class":274,"line":326},[272,8566,7890],{"class":490},[272,8568,7931],{"class":490},[272,8570,8571],{"class":285}," CONCURRENTLY",[272,8573,8574],{"class":303}," idx_users_email ",[272,8576,8577],{"class":490},"ON",[272,8579,8553],{"class":303},[272,8581,8582],{"class":274,"line":332},[272,8583,8584],{"class":278},"-- 注意：CONCURRENTLY 不能在事务里跑\n",[30,8586,8588],{"id":8587},"step-4-执行-监控","Step 4: 执行 + 监控",[263,8590,8592],{"className":265,"code":8591,"language":267,"meta":268,"style":268},"# 1. 在 shadow DB 测试\npsql $SHADOW_DB -f migrations\u002F0024_add_user_phone.sql\n\n# 2. 生产执行（维护窗口）\npsql $PROD_DB -f migrations\u002F0024_add_user_phone.sql\n\n# 3. 监控（Claude 帮你写监控脚本）\nwatch -n 5 'psql $PROD_DB -c \"\n  SELECT\n    count(*) AS total,\n    count(phone) AS with_phone,\n    count(*) - count(phone) AS without_phone\n  FROM users\n\"'\n",[39,8593,8594,8599,8613,8617,8622,8633,8637,8642,8656,8661,8666,8671,8676,8681],{"__ignoreMap":268},[272,8595,8596],{"class":274,"line":275},[272,8597,8598],{"class":278},"# 1. 在 shadow DB 测试\n",[272,8600,8601,8604,8607,8610],{"class":274,"line":282},[272,8602,8603],{"class":285},"psql",[272,8605,8606],{"class":303}," $SHADOW_DB ",[272,8608,8609],{"class":293},"-f",[272,8611,8612],{"class":289}," migrations\u002F0024_add_user_phone.sql\n",[272,8614,8615],{"class":274,"line":313},[272,8616,323],{"emptyLinePlaceholder":322},[272,8618,8619],{"class":274,"line":319},[272,8620,8621],{"class":278},"# 2. 生产执行（维护窗口）\n",[272,8623,8624,8626,8629,8631],{"class":274,"line":326},[272,8625,8603],{"class":285},[272,8627,8628],{"class":303}," $PROD_DB ",[272,8630,8609],{"class":293},[272,8632,8612],{"class":289},[272,8634,8635],{"class":274,"line":332},[272,8636,323],{"emptyLinePlaceholder":322},[272,8638,8639],{"class":274,"line":5},[272,8640,8641],{"class":278},"# 3. 监控（Claude 帮你写监控脚本）\n",[272,8643,8644,8647,8650,8653],{"class":274,"line":8},[272,8645,8646],{"class":285},"watch",[272,8648,8649],{"class":293}," -n",[272,8651,8652],{"class":293}," 5",[272,8654,8655],{"class":289}," 'psql $PROD_DB -c \"\n",[272,8657,8658],{"class":274,"line":351},[272,8659,8660],{"class":289},"  SELECT\n",[272,8662,8663],{"class":274,"line":7},[272,8664,8665],{"class":289},"    count(*) AS total,\n",[272,8667,8668],{"class":274,"line":368},[272,8669,8670],{"class":289},"    count(phone) AS with_phone,\n",[272,8672,8673],{"class":274,"line":377},[272,8674,8675],{"class":289},"    count(*) - count(phone) AS without_phone\n",[272,8677,8678],{"class":274,"line":386},[272,8679,8680],{"class":289},"  FROM users\n",[272,8682,8683],{"class":274,"line":395},[272,8684,8685],{"class":289},"\"'\n",[30,8687,8689],{"id":8688},"step-5-回滚方案","Step 5: 回滚方案",[35,8691,8692],{},"每个迁移执行前，Claude 生成回滚 checklist：",[263,8694,8696],{"className":2053,"code":8695,"language":2055,"meta":268,"style":268},"## 回滚步骤（如需）\n\n1. 确认 down migration 安全：\n   ```sql\n   SELECT count(*) FROM users WHERE phone IS NOT NULL;\n   -- 如果 > 0，回滚会丢数据，确认是否可接受\n",[39,8697,8698,8703,8707,8712,8717,8722],{"__ignoreMap":268},[272,8699,8700],{"class":274,"line":275},[272,8701,8702],{},"## 回滚步骤（如需）\n",[272,8704,8705],{"class":274,"line":282},[272,8706,323],{"emptyLinePlaceholder":322},[272,8708,8709],{"class":274,"line":313},[272,8710,8711],{},"1. 确认 down migration 安全：\n",[272,8713,8714],{"class":274,"line":319},[272,8715,8716],{},"   ```sql\n",[272,8718,8719],{"class":274,"line":326},[272,8720,8721],{},"   SELECT count(*) FROM users WHERE phone IS NOT NULL;\n",[272,8723,8724],{"class":274,"line":332},[272,8725,8726],{},"   -- 如果 > 0，回滚会丢数据，确认是否可接受\n",[931,8728,8729,8748,8774],{"start":282},[70,8730,8731,8732],{},"执行回滚：",[263,8733,8735],{"className":265,"code":8734,"language":267,"meta":268,"style":268},"psql $PROD_DB -f migrations\u002F0024_add_user_phone_down.sql\n",[39,8736,8737],{"__ignoreMap":268},[272,8738,8739,8741,8743,8745],{"class":274,"line":275},[272,8740,8603],{"class":285},[272,8742,8628],{"class":303},[272,8744,8609],{"class":293},[272,8746,8747],{"class":289}," migrations\u002F0024_add_user_phone_down.sql\n",[70,8749,8750,8751],{},"代码回滚到上一个版本：",[263,8752,8754],{"className":265,"code":8753,"language":267,"meta":268,"style":268},"git revert \u003Cmerge-commit>\n",[39,8755,8756],{"__ignoreMap":268},[272,8757,8758,8760,8763,8765,8768,8771],{"class":274,"line":275},[272,8759,3029],{"class":285},[272,8761,8762],{"class":289}," revert",[272,8764,4217],{"class":490},[272,8766,8767],{"class":289},"merge-commi",[272,8769,8770],{"class":303},"t",[272,8772,8773],{"class":490},">\n",[70,8775,8776,8777],{},"验证：",[263,8778,8780],{"className":7838,"code":8779,"language":7840,"meta":268,"style":268},"\\d users  -- 确认 phone 字段已删\n",[39,8781,8782],{"__ignoreMap":268},[272,8783,8784,8787],{"class":274,"line":275},[272,8785,8786],{"class":303},"\\d users  ",[272,8788,8789],{"class":278},"-- 确认 phone 字段已删\n",[263,8791,8794],{"className":8792,"code":8793,"language":2043},[2041],"\n## 踩坑记录\n\n1. **PostgreSQL 11+ 加可空字段才是即时**——低版本加字段仍会锁表，先升级。\n2. **CONCURRENTLY 索引失败要手动清理**——失败后留 invalid index，`DROP INDEX` 后重建。\n3. **回填脚本要分批 + sleep**——大批量 UPDATE 会撑爆 WAL 和主从延迟。\n4. **NOT VALID + VALIDATE 两步走**——直接加 CHECK 会全表扫描锁表。\n5. **Claude 生成 SQL 必须 review**——AI 偶尔会忘加 WHERE 条件，删数据操作尤其要审。\n",[39,8795,8793],{"__ignoreMap":268},[970,8797,8798],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":268,"searchDepth":313,"depth":313,"links":8800},[8801,8802,8803,8804,8805,8806,8811,8812],{"id":6872,"depth":282,"text":6872},{"id":7756,"depth":282,"text":7756},{"id":7785,"depth":282,"text":7785},{"id":7794,"depth":282,"text":7795},{"id":7964,"depth":282,"text":7965},{"id":7977,"depth":282,"text":7978,"children":8807},[8808,8809,8810],{"id":7981,"depth":313,"text":7982},{"id":8302,"depth":313,"text":8302},{"id":8529,"depth":313,"text":8529},{"id":8587,"depth":282,"text":8588},{"id":8688,"depth":282,"text":8689},"migration","\u002Fog\u002Fplaybook\u002Fai-db-migration.png","数据库 schema 迁移最怕搞挂生产。用 Claude Code + Drizzle migrations 搭一套安全迁移流程——AI 生成迁移文件 → 自动检查兼容性 → 分阶段执行 → 验证 → 回滚方案。含大表加列、改类型等高危操作。",{},"\u002Fplaybook\u002Fmigration\u002Fai-db-migration",[4912,5002],{"title":7735,"description":8815},"playbook\u002Fmigration\u002Fai-db-migration",[8822,8823,8824,8825,4911],"数据库","迁移","Drizzle","零停机","tzaBre4cpBUCVMaO1qaWEjIwBDWReTAlQ9UMCOMI54A",{"id":8828,"title":8829,"body":8830,"category":9516,"cover":9517,"description":9518,"extension":989,"meta":9519,"navigation":322,"path":9520,"published":1020,"relatedTools":9521,"seo":9522,"stem":9523,"tags":9524,"updated":1020,"__hash__":9527},"playbook\u002Fplaybook\u002Fonboarding\u002Fclaude-code-getting-started.md","Claude Code 从零上手：CLI AI 编程实战指南",{"type":27,"value":8831,"toc":9493},[8832,8834,8848,8852,8967,8973,8977,9014,9017,9061,9064,9085,9089,9092,9108,9111,9117,9120,9134,9138,9141,9147,9150,9154,9157,9163,9166,9183,9189,9193,9196,9202,9205,9211,9215,9218,9227,9374,9377,9380,9384,9390,9429,9432,9436,9443,9447,9450,9456,9458,9462,9465,9469,9476,9480,9483,9487,9490],[30,8833,6872],{"id":6872},[67,8835,8836,8839,8842,8845],{},[70,8837,8838],{},"想用 CLI 方式做 AI 编程（不依赖 IDE）",[70,8840,8841],{},"已有 Cursor \u002F Copilot，想试试 Claude 原生体验",[70,8843,8844],{},"需要在服务器 \u002F SSH 环境用 AI 编程",[70,8846,8847],{},"想用 Claude Sonnet 4 \u002F Opus 4 的完整能力",[30,8849,8851],{"id":8850},"claude-code-vs-cursor-vs-copilot","Claude Code vs Cursor vs Copilot",[615,8853,8854,8866],{},[618,8855,8856],{},[621,8857,8858,8860,8862,8864],{},[624,8859,626],{},[624,8861,4911],{},[624,8863,5001],{},[624,8865,4974],{},[639,8867,8868,8882,8895,8907,8919,8932,8943,8954],{},[621,8869,8870,8873,8876,8879],{},[644,8871,8872],{},"形态",[644,8874,8875],{},"CLI",[644,8877,8878],{},"IDE",[644,8880,8881],{},"IDE 插件",[621,8883,8884,8886,8889,8892],{},[644,8885,3607],{},[644,8887,8888],{},"Claude 全系",[644,8890,8891],{},"多模型",[644,8893,8894],{},"GPT\u002FClaude",[621,8896,8897,8900,8902,8904],{},[644,8898,8899],{},"多文件修改",[644,8901,712],{},[644,8903,715],{},[644,8905,8906],{},"❌ 单文件",[621,8908,8909,8912,8915,8917],{},[644,8910,8911],{},"项目理解",[644,8913,8914],{},"✅ 自动索引",[644,8916,715],{},[644,8918,718],{},[621,8920,8921,8924,8927,8930],{},[644,8922,8923],{},"终端操作",[644,8925,8926],{},"✅ 直接执行",[644,8928,8929],{},"需切换",[644,8931,690],{},[621,8933,8934,8937,8939,8941],{},[644,8935,8936],{},"Git 集成",[644,8938,712],{},[644,8940,718],{},[644,8942,718],{},[621,8944,8945,8948,8950,8952],{},[644,8946,8947],{},"SSH\u002F服务器",[644,8949,715],{},[644,8951,690],{},[644,8953,690],{},[621,8955,8956,8958,8961,8964],{},[644,8957,163],{},[644,8959,8960],{},"$20\u002F月（Max）",[644,8962,8963],{},"$20\u002F月",[644,8965,8966],{},"$10\u002F月",[35,8968,8969,8972],{},[48,8970,8971],{},"Claude Code 的独特优势","：CLI 原生 + 终端操作 + SSH 可用。",[30,8974,8976],{"id":8975},"第一步安装","第一步：安装",[263,8978,8980],{"className":265,"code":8979,"language":267,"meta":268,"style":268},"# 需要 Node.js 18+\nnpm install -g @anthropic-ai\u002Fclaude-code\n\n# 验证\nclaude --version\n",[39,8981,8982,8987,8998,9002,9007],{"__ignoreMap":268},[272,8983,8984],{"class":274,"line":275},[272,8985,8986],{"class":278},"# 需要 Node.js 18+\n",[272,8988,8989,8991,8993,8995],{"class":274,"line":282},[272,8990,1282],{"class":285},[272,8992,1285],{"class":289},[272,8994,1288],{"class":293},[272,8996,8997],{"class":289}," @anthropic-ai\u002Fclaude-code\n",[272,8999,9000],{"class":274,"line":313},[272,9001,323],{"emptyLinePlaceholder":322},[272,9003,9004],{"class":274,"line":319},[272,9005,9006],{"class":278},"# 验证\n",[272,9008,9009,9011],{"class":274,"line":326},[272,9010,2549],{"class":285},[272,9012,9013],{"class":293}," --version\n",[5341,9015,9016],{"id":9016},"认证",[263,9018,9020],{"className":265,"code":9019,"language":267,"meta":268,"style":268},"# 方式 1：用 Anthropic 账号（推荐，含 Max 订阅）\nclaude login\n\n# 方式 2：用 API Key（按量付费）\nexport ANTHROPIC_API_KEY=\"sk-ant-xxx\"\nclaude\n",[39,9021,9022,9027,9034,9038,9043,9056],{"__ignoreMap":268},[272,9023,9024],{"class":274,"line":275},[272,9025,9026],{"class":278},"# 方式 1：用 Anthropic 账号（推荐，含 Max 订阅）\n",[272,9028,9029,9031],{"class":274,"line":282},[272,9030,2549],{"class":285},[272,9032,9033],{"class":289}," login\n",[272,9035,9036],{"class":274,"line":313},[272,9037,323],{"emptyLinePlaceholder":322},[272,9039,9040],{"class":274,"line":319},[272,9041,9042],{"class":278},"# 方式 2：用 API Key（按量付费）\n",[272,9044,9045,9048,9051,9053],{"class":274,"line":326},[272,9046,9047],{"class":490},"export",[272,9049,9050],{"class":303}," ANTHROPIC_API_KEY",[272,9052,6386],{"class":490},[272,9054,9055],{"class":289},"\"sk-ant-xxx\"\n",[272,9057,9058],{"class":274,"line":332},[272,9059,9060],{"class":285},"claude\n",[35,9062,9063],{},"国内用户如果直连慢，可以配代理：",[263,9065,9067],{"className":265,"code":9066,"language":267,"meta":268,"style":268},"export HTTPS_PROXY=\"http:\u002F\u002F127.0.0.1:7890\"\nclaude\n",[39,9068,9069,9081],{"__ignoreMap":268},[272,9070,9071,9073,9076,9078],{"class":274,"line":275},[272,9072,9047],{"class":490},[272,9074,9075],{"class":303}," HTTPS_PROXY",[272,9077,6386],{"class":490},[272,9079,9080],{"class":289},"\"http:\u002F\u002F127.0.0.1:7890\"\n",[272,9082,9083],{"class":274,"line":282},[272,9084,9060],{"class":285},[30,9086,9088],{"id":9087},"第二步第一次使用","第二步：第一次使用",[35,9090,9091],{},"进入项目目录，启动 Claude Code：",[263,9093,9095],{"className":265,"code":9094,"language":267,"meta":268,"style":268},"cd my-project\nclaude\n",[39,9096,9097,9104],{"__ignoreMap":268},[272,9098,9099,9101],{"class":274,"line":275},[272,9100,4150],{"class":293},[272,9102,9103],{"class":289}," my-project\n",[272,9105,9106],{"class":274,"line":282},[272,9107,9060],{"class":285},[35,9109,9110],{},"进入交互式 REPL。几个基本操作：",[263,9112,9115],{"className":9113,"code":9114,"language":2043,"meta":268},[2041],"> 帮我理解这个项目的结构          # 项目理解\n> 找到处理用户登录的代码          # 代码定位\n> 把这个函数改成支持异步          # 代码修改\n> 跑一下测试看看有没有 break      # 执行命令\n",[39,9116,9114],{"__ignoreMap":268},[35,9118,9119],{},"Claude Code 会自动：",[931,9121,9122,9125,9128,9131],{},[70,9123,9124],{},"扫描项目文件结构",[70,9126,9127],{},"读 package.json \u002F README 理解技术栈",[70,9129,9130],{},"找到相关文件",[70,9132,9133],{},"提出修改方案（需你确认后执行）",[30,9135,9137],{"id":9136},"第三步项目理解工作流","第三步：项目理解工作流",[35,9139,9140],{},"新接手一个项目时的标准操作：",[263,9142,9145],{"className":9143,"code":9144,"language":2043,"meta":268},[2041],"> 先读 README 和 package.json，告诉我这个项目是做什么的、用了什么技术栈\n\n> 画出项目的目录结构，标注每个目录的职责\n\n> 找到项目的入口文件，解释启动流程\n\n> 这个项目的数据流是怎样的？从 API 请求到数据库的完整路径\n\n> 找到所有 TODO 和 FIXME，按优先级排序\n",[39,9146,9144],{"__ignoreMap":268},[35,9148,9149],{},"Claude Code 会实际读取文件并分析，不是瞎猜。",[30,9151,9153],{"id":9152},"第四步多文件修改","第四步：多文件修改",[35,9155,9156],{},"这是 Claude Code 最强的能力。举个例子：",[263,9158,9161],{"className":9159,"code":9160,"language":2043,"meta":268},[2041],"> 我需要加一个\"用户头像上传\"功能。需要：\n> 1. 后端 API（上传到 S3）\n> 2. 前端组件（拖拽上传 + 预览）\n> 3. 数据库加 avatar_url 字段\n> 4. 用户 profile 页面显示头像\n> 先看一下现有代码结构，告诉我你的计划，我确认后再动手\n",[39,9162,9160],{"__ignoreMap":268},[35,9164,9165],{},"Claude Code 会：",[931,9167,9168,9171,9174,9177,9180],{},[70,9169,9170],{},"扫描相关文件（后端路由、前端组件、数据库 schema）",[70,9172,9173],{},"给出修改计划（改哪些文件、每个文件改什么）",[70,9175,9176],{},"等你确认",[70,9178,9179],{},"一次性修改多个文件",[70,9181,9182],{},"跑测试验证",[35,9184,9185,9188],{},[48,9186,9187],{},"关键","：先说\"告诉我计划\"，确认后再让它动手。避免改出一堆你不想要的东西。",[30,9190,9192],{"id":9191},"第五步git-工作流","第五步：Git 工作流",[35,9194,9195],{},"Claude Code 原生支持 git 操作：",[263,9197,9200],{"className":9198,"code":9199,"language":2043,"meta":268},[2041],"> 看一下当前的 git diff，帮我写 commit message\n\n> 帮我把这个改动拆成 3 个独立的 commit（按逻辑分组）\n\n> 创建一个分支 feature\u002Favatar-upload，把改动提交上去\n",[39,9201,9199],{"__ignoreMap":268},[35,9203,9204],{},"推荐工作流：",[263,9206,9209],{"className":9207,"code":9208,"language":2043,"meta":268},[2041],"1. claude  # 启动\n2. \"在 feature 分支上实现 XXX 功能\"  # 让它创建分支 + 改代码\n3. \"跑测试\"  # 验证\n4. \"看一下 diff，写 commit message\"  # 提交\n5. 退出后自己 git push + 开 PR\n",[39,9210,9208],{"__ignoreMap":268},[30,9212,9214],{"id":9213},"第六步mcp-集成","第六步：MCP 集成",[35,9216,9217],{},"Claude Code 支持连接 MCP Server，扩展能力：",[263,9219,9221],{"className":265,"code":9220,"language":267,"meta":268,"style":268},"# 配置文件位置：~\u002F.claude\u002Fmcp_servers.json\n",[39,9222,9223],{"__ignoreMap":268},[272,9224,9225],{"class":274,"line":275},[272,9226,9220],{"class":278},[263,9228,9232],{"className":9229,"code":9230,"language":9231,"meta":268,"style":268},"language-json shiki shiki-themes github-light github-dark","{\n  \"mcpServers\": {\n    \"postgres\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol\u002Fserver-postgres\"],\n      \"env\": {\n        \"DATABASE_URL\": \"postgresql:\u002F\u002F...\"\n      }\n    },\n    \"github\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol\u002Fserver-github\"],\n      \"env\": {\n        \"GITHUB_TOKEN\": \"ghp_xxx\"\n      }\n    }\n  }\n}\n","json",[39,9233,9234,9238,9245,9252,9264,9282,9289,9299,9304,9309,9316,9326,9341,9347,9357,9361,9366,9370],{"__ignoreMap":268},[272,9235,9236],{"class":274,"line":275},[272,9237,560],{"class":303},[272,9239,9240,9242],{"class":274,"line":282},[272,9241,566],{"class":293},[272,9243,9244],{"class":303},": {\n",[272,9246,9247,9250],{"class":274,"line":313},[272,9248,9249],{"class":293},"    \"postgres\"",[272,9251,9244],{"class":303},[272,9253,9254,9257,9259,9262],{"class":274,"line":319},[272,9255,9256],{"class":293},"      \"command\"",[272,9258,6917],{"class":303},[272,9260,9261],{"class":289},"\"npx\"",[272,9263,6402],{"class":303},[272,9265,9266,9269,9271,9274,9276,9279],{"class":274,"line":326},[272,9267,9268],{"class":293},"      \"args\"",[272,9270,6943],{"class":303},[272,9272,9273],{"class":289},"\"-y\"",[272,9275,7080],{"class":303},[272,9277,9278],{"class":289},"\"@modelcontextprotocol\u002Fserver-postgres\"",[272,9280,9281],{"class":303},"],\n",[272,9283,9284,9287],{"class":274,"line":332},[272,9285,9286],{"class":293},"      \"env\"",[272,9288,9244],{"class":303},[272,9290,9291,9294,9296],{"class":274,"line":5},[272,9292,9293],{"class":293},"        \"DATABASE_URL\"",[272,9295,6917],{"class":303},[272,9297,9298],{"class":289},"\"postgresql:\u002F\u002F...\"\n",[272,9300,9301],{"class":274,"line":8},[272,9302,9303],{"class":303},"      }\n",[272,9305,9306],{"class":274,"line":351},[272,9307,9308],{"class":303},"    },\n",[272,9310,9311,9314],{"class":274,"line":7},[272,9312,9313],{"class":293},"    \"github\"",[272,9315,9244],{"class":303},[272,9317,9318,9320,9322,9324],{"class":274,"line":368},[272,9319,9256],{"class":293},[272,9321,6917],{"class":303},[272,9323,9261],{"class":289},[272,9325,6402],{"class":303},[272,9327,9328,9330,9332,9334,9336,9339],{"class":274,"line":377},[272,9329,9268],{"class":293},[272,9331,6943],{"class":303},[272,9333,9273],{"class":289},[272,9335,7080],{"class":303},[272,9337,9338],{"class":289},"\"@modelcontextprotocol\u002Fserver-github\"",[272,9340,9281],{"class":303},[272,9342,9343,9345],{"class":274,"line":386},[272,9344,9286],{"class":293},[272,9346,9244],{"class":303},[272,9348,9349,9352,9354],{"class":274,"line":395},[272,9350,9351],{"class":293},"        \"GITHUB_TOKEN\"",[272,9353,6917],{"class":303},[272,9355,9356],{"class":289},"\"ghp_xxx\"\n",[272,9358,9359],{"class":274,"line":400},[272,9360,9303],{"class":303},[272,9362,9363],{"class":274,"line":406},[272,9364,9365],{"class":303},"    }\n",[272,9367,9368],{"class":274,"line":412},[272,9369,597],{"class":303},[272,9371,9372],{"class":274,"line":420},[272,9373,603],{"class":303},[35,9375,9376],{},"配置后，Claude Code 可以直接查数据库、操作 GitHub。",[30,9378,9379],{"id":9379},"常用技巧",[5341,9381,9383],{"id":9382},"_1-用-claudemd-固化项目约定","1. 用 CLAUDE.md 固化项目约定",[35,9385,9386,9387,81],{},"在项目根目录创建 ",[39,9388,9389],{},"CLAUDE.md",[263,9391,9393],{"className":2053,"code":9392,"language":2055,"meta":268,"style":268},"# 项目约定\n\n- 用 pnpm 不用 npm\n- 测试用 vitest，跑 `pnpm test`\n- 提交前跑 `pnpm lint`\n- Vue 组件用 \u003Cscript setup>\n- 不要用 any，所有变量都要有类型\n",[39,9394,9395,9400,9404,9409,9414,9419,9424],{"__ignoreMap":268},[272,9396,9397],{"class":274,"line":275},[272,9398,9399],{},"# 项目约定\n",[272,9401,9402],{"class":274,"line":282},[272,9403,323],{"emptyLinePlaceholder":322},[272,9405,9406],{"class":274,"line":313},[272,9407,9408],{},"- 用 pnpm 不用 npm\n",[272,9410,9411],{"class":274,"line":319},[272,9412,9413],{},"- 测试用 vitest，跑 `pnpm test`\n",[272,9415,9416],{"class":274,"line":326},[272,9417,9418],{},"- 提交前跑 `pnpm lint`\n",[272,9420,9421],{"class":274,"line":332},[272,9422,9423],{},"- Vue 组件用 \u003Cscript setup>\n",[272,9425,9426],{"class":274,"line":5},[272,9427,9428],{},"- 不要用 any，所有变量都要有类型\n",[35,9430,9431],{},"Claude Code 每次启动会自动读取，不用每次重复说。",[5341,9433,9435],{"id":9434},"_2-用-compact-压缩上下文","2. 用 \u002Fcompact 压缩上下文",[35,9437,9438,9439,9442],{},"聊了很久后上下文会满，用 ",[39,9440,9441],{},"\u002Fcompact"," 压缩历史对话，保留关键信息。",[5341,9444,9446],{"id":9445},"_3-子-agent-并发","3. 子 Agent 并发",[35,9448,9449],{},"复杂任务可以让 Claude Code 开子 Agent 并行处理：",[263,9451,9454],{"className":9452,"code":9453,"language":2043,"meta":268},[2041],"> 用 3 个并行子任务：\n> 1. 修复 auth 模块的 bug\n> 2. 给 API 模块加测试\n> 3. 重构 utils 模块\n> 分别完成后汇总给我\n",[39,9455,9453],{"__ignoreMap":268},[30,9457,5706],{"id":5706},[5341,9459,9461],{"id":9460},"坑-1大项目首次索引慢","坑 1：大项目首次索引慢",[35,9463,9464],{},"10 万行以上的项目，首次启动会花 1-2 分钟扫描。后续有缓存会快。",[5341,9466,9468],{"id":9467},"坑-2会主动改你不想改的文件","坑 2：会主动改你不想改的文件",[35,9470,9471,9472,9475],{},"Claude Code 有时会\"顺手\"改一些你没要求的文件（比如格式化）。用 ",[39,9473,9474],{},"--allowedTools"," 限制它只能用特定工具。",[5341,9477,9479],{"id":9478},"坑-3国内网络","坑 3：国内网络",[35,9481,9482],{},"Anthropic API 在国内不稳定。必须配代理，否则会频繁超时。",[5341,9484,9486],{"id":9485},"坑-4token-消耗快","坑 4：Token 消耗快",[35,9488,9489],{},"Sonnet 4 做大型重构时，一次任务可能消耗 50 万+ token。用 Max 订阅（$200\u002F月）比 API 按量付费划算。",[970,9491,9492],{},"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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":268,"searchDepth":313,"depth":313,"links":9494},[9495,9496,9497,9500,9501,9502,9503,9504,9505,9510],{"id":6872,"depth":282,"text":6872},{"id":8850,"depth":282,"text":8851},{"id":8975,"depth":282,"text":8976,"children":9498},[9499],{"id":9016,"depth":313,"text":9016},{"id":9087,"depth":282,"text":9088},{"id":9136,"depth":282,"text":9137},{"id":9152,"depth":282,"text":9153},{"id":9191,"depth":282,"text":9192},{"id":9213,"depth":282,"text":9214},{"id":9379,"depth":282,"text":9379,"children":9506},[9507,9508,9509],{"id":9382,"depth":313,"text":9383},{"id":9434,"depth":313,"text":9435},{"id":9445,"depth":313,"text":9446},{"id":5706,"depth":282,"text":5706,"children":9511},[9512,9513,9514,9515],{"id":9460,"depth":313,"text":9461},{"id":9467,"depth":313,"text":9468},{"id":9478,"depth":313,"text":9479},{"id":9485,"depth":313,"text":9486},"onboarding","\u002Fog\u002Fplaybook\u002Fclaude-code-getting-started.png","Anthropic 官方 CLI 工具 Claude Code 30 分钟上手——安装配置、项目理解、多文件修改、git 工作流、MCP 集成、子 Agent 并发，含真实项目踩坑记录。",{},"\u002Fplaybook\u002Fonboarding\u002Fclaude-code-getting-started",[4912,5002,4903],{"title":8829,"description":9518},"playbook\u002Fonboarding\u002Fclaude-code-getting-started",[4911,8875,9525,9526],"AI 编程","Anthropic","iY5IsM7_Dx24z0nrqr2srrkmMB01rtDVKpKWe9B0Fz0",[9529,10034,11131,11860,12806],{"id":9530,"title":9531,"body":9532,"cover":25,"description":10025,"extension":989,"meta":10026,"navigation":322,"path":10027,"published":10028,"seo":10029,"sourceName":10030,"sourceUrl":10031,"stem":10032,"__hash__":10033},"news\u002Fnews\u002F2026\u002Fcursor-2-0-release.md","Cursor 2.0 发布：Multi-Agent 模式 + Composer 重构",{"type":27,"value":9533,"toc":10012},[9534,9537,9569,9572,9576,9579,9584,9590,9595,9653,9658,9707,9712,9723,9727,9730,9735,9767,9773,9777,9870,9873,9876,9880,9886,9958,9963,9974,9978,9981,9984,9987,9989,10009],[30,9535,9536],{"id":9536},"要点",[67,9538,9539,9545,9551,9557,9563],{},[70,9540,9541,9544],{},[48,9542,9543],{},"Multi-Agent 模式","：一个任务拆分给多个 Agent 并行处理，各自负责不同文件，最后合并",[70,9546,9547,9550],{},[48,9548,9549],{},"Composer 重构","：从侧边栏升级为全屏多文件编辑器，支持 diff review",[70,9552,9553,9556],{},[48,9554,9555],{},"Background Tasks","：长任务后台执行，完成后通知",[70,9558,9559,9562],{},[48,9560,9561],{},"定价调整","：Pro $20→$24\u002Fmo，新增 Ultra $50\u002Fmo（含无限 Fast 请求）",[70,9564,9565,9568],{},[48,9566,9567],{},"MCP 增强","：原生支持 MCP Server 市场，一键安装",[30,9570,9571],{"id":9571},"核心升级解读",[5341,9573,9575],{"id":9574},"_1-multi-agent-模式最大亮点","1. Multi-Agent 模式（最大亮点）",[35,9577,9578],{},"这是 2.0 的核心突破——把一个任务拆成多个子任务，分配给多个 AI Agent 并行处理。",[35,9580,9581],{},[48,9582,9583],{},"工作原理：",[263,9585,9588],{"className":9586,"code":9587,"language":2043},[2041],"传统模式（1.5 及之前）：\n┌─────────────────────────────────┐\n│  Agent (单线程)                  │\n│  ┌─────────────────────────┐   │\n│  │ 1. 读取文件 A           │   │\n│  │ 2. 修改文件 A           │   │\n│  │ 3. 读取文件 B           │   │\n│  │ 4. 修改文件 B           │   │\n│  │ 5. 读取文件 C           │   │\n│  │ 6. 修改文件 C           │   │\n│  │ 7. ...                 │   │\n│  └─────────────────────────┘   │\n└─────────────────────────────────┘\n耗时：10 分钟（串行）\n\nMulti-Agent 模式（2.0）：\n┌─────────────────────────────────┐\n│  Orchestrator (任务协调器)        │\n│  ├── Agent 1: 处理文件 A, B     │\n│  ├── Agent 2: 处理文件 C, D     │\n│  ├── Agent 3: 处理文件 E, F     │\n│  └── Agent 4: 处理文件 G, H     │\n└─────────────────────────────────┘\n耗时：2 分钟（并行）\n",[39,9589,9587],{"__ignoreMap":268},[35,9591,9592],{},[48,9593,9594],{},"实测效果：",[615,9596,9597,9613],{},[618,9598,9599],{},[621,9600,9601,9604,9607,9610],{},[624,9602,9603],{},"任务",[624,9605,9606],{},"1.5 耗时",[624,9608,9609],{},"2.0 耗时",[624,9611,9612],{},"提升",[639,9614,9615,9628,9641],{},[621,9616,9617,9620,9622,9625],{},[644,9618,9619],{},"重构 20 文件",[644,9621,6794],{},[644,9623,9624],{},"2 分钟",[644,9626,9627],{},"+60%",[621,9629,9630,9633,9636,9638],{},[644,9631,9632],{},"添加类型注解 50 文件",[644,9634,9635],{},"8 分钟",[644,9637,7638],{},[644,9639,9640],{},"+62%",[621,9642,9643,9646,9648,9650],{},[644,9644,9645],{},"迁移 30 文件到新框架",[644,9647,6768],{},[644,9649,6794],{},[644,9651,9652],{},"+66%",[35,9654,9655],{},[48,9656,9657],{},"使用方式：",[263,9659,9661],{"className":265,"code":9660,"language":267,"meta":268,"style":268},"# 在 Cursor Composer 里\n\"重构这个模块，按功能拆分成微服务\"\n\n# Cursor 2.0 会：\n# 1. 分析代码依赖关系\n# 2. 拆分成多个子任务\n# 3. 分配给多个 Agent 并行处理\n# 4. 合并结果到 Conflict Resolver\n# 5. 你 review 冲突\n",[39,9662,9663,9668,9673,9677,9682,9687,9692,9697,9702],{"__ignoreMap":268},[272,9664,9665],{"class":274,"line":275},[272,9666,9667],{"class":278},"# 在 Cursor Composer 里\n",[272,9669,9670],{"class":274,"line":282},[272,9671,9672],{"class":285},"\"重构这个模块，按功能拆分成微服务\"\n",[272,9674,9675],{"class":274,"line":313},[272,9676,323],{"emptyLinePlaceholder":322},[272,9678,9679],{"class":274,"line":319},[272,9680,9681],{"class":278},"# Cursor 2.0 会：\n",[272,9683,9684],{"class":274,"line":326},[272,9685,9686],{"class":278},"# 1. 分析代码依赖关系\n",[272,9688,9689],{"class":274,"line":332},[272,9690,9691],{"class":278},"# 2. 拆分成多个子任务\n",[272,9693,9694],{"class":274,"line":5},[272,9695,9696],{"class":278},"# 3. 分配给多个 Agent 并行处理\n",[272,9698,9699],{"class":274,"line":8},[272,9700,9701],{"class":278},"# 4. 合并结果到 Conflict Resolver\n",[272,9703,9704],{"class":274,"line":351},[272,9705,9706],{"class":278},"# 5. 你 review 冲突\n",[35,9708,9709],{},[48,9710,9711],{},"注意事项：",[67,9713,9714,9717,9720],{},[70,9715,9716],{},"Agent 间偶尔会冲突（两个 Agent 同时改一个文件）",[70,9718,9719],{},"需要 Composer 的合并工具解决",[70,9721,9722],{},"建议先在小范围测试再用于关键任务",[5341,9724,9726],{"id":9725},"_2-composer-全面重构","2. Composer 全面重构",[35,9728,9729],{},"2.0 把 Composer 从侧边栏升级为独立全屏界面：",[35,9731,9732],{},[48,9733,9734],{},"新特性：",[67,9736,9737,9743,9749,9755,9761],{},[70,9738,9739,9742],{},[48,9740,9741],{},"多文件视图","：同时打开多个文件，对比修改",[70,9744,9745,9748],{},[48,9746,9747],{},"Diff Review 模式","：类似 GitHub PR review，逐文件、逐行 review",[70,9750,9751,9754],{},[48,9752,9753],{},"分支预览","：在 merge 前预览所有改动",[70,9756,9757,9760],{},[48,9758,9759],{},"历史记录","：每个 session 的操作可回溯",[70,9762,9763,9766],{},[48,9764,9765],{},"截图模式","：导出整个 session 的改动记录",[263,9768,9771],{"className":9769,"code":9770,"language":2043},[2041],"┌──────────────────────────────────────────────────────────┐\n│  Composer 2.0 - 重构用户模块                    [全屏] ╳ │\n├─────────────────────┬────────────────────────────────────┤\n│                     │                                    │\n│  Session Tree       │  Diff View                         │\n│  ├─ UserService.ts  │  ┌──────────────────────────────┐  │\n│  │  ├─ 修改 1      │  │ - old code                 │  │\n│  │  └─ 修改 2      │  │ + new code                 │  │\n│  ├─ OrderService   │  │ - old code                 │  │\n│  └─ ProductService │  │ + new code                 │  │\n│                     │  └──────────────────────────────┘  │\n│                     │                                    │\n│  [Accept] [Reject]  │  [Accept All] [Reject All]        │\n└─────────────────────┴────────────────────────────────────┘\n",[39,9772,9770],{"__ignoreMap":268},[5341,9774,9776],{"id":9775},"_3-定价调整","3. 定价调整",[615,9778,9779,9795],{},[618,9780,9781],{},[621,9782,9783,9786,9789,9792],{},[624,9784,9785],{},"套餐",[624,9787,9788],{},"新价格",[624,9790,9791],{},"变化",[624,9793,9794],{},"功能",[639,9796,9797,9811,9826,9842,9856],{},[621,9798,9799,9803,9805,9808],{},[644,9800,9801],{},[48,9802,781],{},[644,9804,775],{},[644,9806,9807],{},"-",[644,9809,9810],{},"100 次 \u002F 天",[621,9812,9813,9817,9820,9823],{},[644,9814,9815],{},[48,9816,1176],{},[644,9818,9819],{},"$24\u002F月",[644,9821,9822],{},"+$4",[644,9824,9825],{},"500 次 Composer + 无限 Tab",[621,9827,9828,9833,9836,9839],{},[644,9829,9830],{},[48,9831,9832],{},"Ultra",[644,9834,9835],{},"$50\u002F月",[644,9837,9838],{},"新增",[644,9840,9841],{},"无限 Fast 请求（最高优先级）",[621,9843,9844,9848,9851,9853],{},[644,9845,9846],{},[48,9847,1182],{},[644,9849,9850],{},"$40\u002F席\u002F月",[644,9852,9807],{},[644,9854,9855],{},"团队 Prompt 库 + SSO",[621,9857,9858,9863,9866,9868],{},[644,9859,9860],{},[48,9861,9862],{},"Enterprise",[644,9864,9865],{},"询价",[644,9867,9807],{},[644,9869,3672],{},[35,9871,9872],{},"涨了 $4，但 Multi-Agent 是有价值的升级。不过对轻度用户来说，免费版已经够用。",[30,9874,9875],{"id":9875},"实际体验",[5341,9877,9879],{"id":9878},"实测大型重构任务","实测：大型重构任务",[35,9881,9882,9885],{},[48,9883,9884],{},"任务："," 把一个 2000 行的 monolith 模块拆成 8 个微服务",[615,9887,9888,9902],{},[618,9889,9890],{},[621,9891,9892,9894,9897,9900],{},[624,9893,7609],{},[624,9895,9896],{},"1.5",[624,9898,9899],{},"2.0",[624,9901,9612],{},[639,9903,9904,9917,9930,9944],{},[621,9905,9906,9909,9912,9915],{},[644,9907,9908],{},"总耗时",[644,9910,9911],{},"18 分钟",[644,9913,9914],{},"6 分钟",[644,9916,9652],{},[621,9918,9919,9922,9924,9927],{},[644,9920,9921],{},"Agent 冲突次数",[644,9923,685],{},[644,9925,9926],{},"3 次",[644,9928,9929],{},"需要手动合并",[621,9931,9932,9935,9938,9941],{},[644,9933,9934],{},"正确率",[644,9936,9937],{},"85%",[644,9939,9940],{},"91%",[644,9942,9943],{},"+6%",[621,9945,9946,9949,9952,9955],{},[644,9947,9948],{},"人工干预次数",[644,9950,9951],{},"5 次",[644,9953,9954],{},"4 次",[644,9956,9957],{},"-20%",[35,9959,9960],{},[48,9961,9962],{},"体验总结：",[67,9964,9965,9968,9971],{},[70,9966,9967],{},"Multi-Agent 确实快了很多",[70,9969,9970],{},"但第一次用需要适应冲突合并流程",[70,9972,9973],{},"建议先在小项目练手再上大项目",[30,9975,9977],{"id":9976},"aiho-观点","AIHO 观点",[35,9979,9980],{},"Multi-Agent 是这次更新的核心——之前 Cursor 的 Agent 模式是单线程的（一个 Agent 串行改文件），2.0 后可以并行。",[35,9982,9983],{},"实际体验：大型重构（改 20+ 文件）从 5 分钟降到 2 分钟，但 Agent 间偶尔会冲突（两个 Agent 同时改一个文件），需要 Composer 的合并工具解决。",[35,9985,9986],{},"定价涨 $4 影响不大，但 Ultra $50 对标 Claude Max，说明 Cursor 在往\"重度用户\"定位走。轻度用户可能开始流向免费的 Trae。",[30,9988,908],{"id":908},[67,9990,9991,9997,10003],{},[70,9992,9993],{},[914,9994,9996],{"href":9995},"\u002Fcoding\u002Fide\u002Fcursor","Cursor IDE 完整评测",[70,9998,9999],{},[914,10000,10002],{"href":10001},"\u002Fnews\u002F2026\u002Fcursor-1-5-release","Cursor 1.5 发布公告",[70,10004,10005],{},[914,10006,10008],{"href":10007},"\u002Freview\u002Fcursor-vs-windsurf-vs-trae","Cursor vs Windsurf vs Trae 横向对比",[970,10010,10011],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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);}",{"title":268,"searchDepth":313,"depth":313,"links":10013},[10014,10015,10020,10023,10024],{"id":9536,"depth":282,"text":9536},{"id":9571,"depth":282,"text":9571,"children":10016},[10017,10018,10019],{"id":9574,"depth":313,"text":9575},{"id":9725,"depth":313,"text":9726},{"id":9775,"depth":313,"text":9776},{"id":9875,"depth":282,"text":9875,"children":10021},[10022],{"id":9878,"depth":313,"text":9879},{"id":9976,"depth":282,"text":9977},{"id":908,"depth":282,"text":908},"Cursor 2.0 推出 Multi-Agent 模式（多个 Agent 并行处理不同文件）、Composer 全面重构、新增 Background Tasks。定价调整：Pro 从 $20 涨至 $24\u002Fmo。",{},"\u002Fnews\u002F2026\u002Fcursor-2-0-release","2026-06-20",{"title":9531,"description":10025},"Cursor 官方","https:\u002F\u002Fcursor.com\u002Fchangelog\u002F2-0","news\u002F2026\u002Fcursor-2-0-release","jxEyah3Kp46W3MP11QXXX0SchKROrMzJec2Xa_027Es",{"id":10035,"title":10036,"body":10037,"cover":25,"description":11123,"extension":989,"meta":11124,"navigation":322,"path":11125,"published":4590,"seo":11126,"sourceName":11127,"sourceUrl":11128,"stem":11129,"__hash__":11130},"news\u002Fnews\u002F2026\u002Fdify-1-0-release.md","Dify 1.0 正式发布：从 LLMOps 到 Agent OS 的进化",{"type":27,"value":10038,"toc":11111},[10039,10041,10073,10075,10079,10082,10087,10093,10098,10215,10219,10222,10492,10497,10508,10512,10515,10683,10688,10747,10751,10754,10975,10978,11055,11057,11060,11063,11083,11086,11088,11108],[30,10040,9536],{"id":9536},[67,10042,10043,10049,10055,10061,10067],{},[70,10044,10045,10048],{},[48,10046,10047],{},"Agent Workflow","：可视化编排多 Agent 协作，拖拽配置条件和循环",[70,10050,10051,10054],{},[48,10052,10053],{},"MCP 原生支持","：Dify 可作为 MCP Server 暴露工具，也可消费外部 MCP Server",[70,10056,10057,10060],{},[48,10058,10059],{},"RAG 重构","：新增混合检索（向量 + 关键词 + 重排序），准确率提升 30%",[70,10062,10063,10066],{},[48,10064,10065],{},"多模型 A\u002FB","：同一 workflow 分流到不同模型对比效果",[70,10068,10069,10072],{},[48,10070,10071],{},"企业版","：SSO + RBAC + 审计日志，私有化部署",[30,10074,9571],{"id":9571},[5341,10076,10078],{"id":10077},"_1-agent-workflow-可视化编排","1. Agent Workflow 可视化编排",[35,10080,10081],{},"1.0 把工作流编排从代码级提升到了「拖拽级」：",[35,10083,10084],{},[48,10085,10086],{},"工作流画布：",[263,10088,10091],{"className":10089,"code":10090,"language":2043},[2041],"┌─────────────────────────────────────────────────────────────────┐\n│  Dify 1.0 Agent Workflow                                        │\n│                                                                  │\n│    ┌────────┐      ┌────────┐      ┌────────┐      ┌────────┐  │\n│    │ 开始   │ ───► │ LLM 1  │ ───► │ Agent  │ ───► │ 结束   │  │\n│    │ Trigger│      │ (分类) │      │ (执行) │      │ Response│  │\n│    └────────┘      └────────┘      └────────┘      └────────┘  │\n│                          │                                  │     │\n│                          ▼                                  │     │\n│                    ┌──────────┐                            │     │\n│                    │ 条件分支  │                            │     │\n│                    │ A: 意图A │ ───► Agent A               │     │\n│                    │ B: 意图B │ ───► Agent B               │     │\n│                    │ C: 其他 │ ───► Fallback              │     │\n│                    └──────────┘                            │     │\n└─────────────────────────────────────────────────────────────────┘\n",[39,10092,10090],{"__ignoreMap":268},[35,10094,10095],{},[48,10096,10097],{},"支持的节点类型：",[615,10099,10100,10111],{},[618,10101,10102],{},[621,10103,10104,10107,10109],{},[624,10105,10106],{},"节点类型",[624,10108,6675],{},[624,10110,6872],{},[639,10112,10113,10126,10138,10150,10163,10176,10189,10202],{},[621,10114,10115,10120,10123],{},[644,10116,10117],{},[48,10118,10119],{},"LLM",[644,10121,10122],{},"调用大模型",[644,10124,10125],{},"分类、生成、总结",[621,10127,10128,10132,10135],{},[644,10129,10130],{},[48,10131,6207],{},[644,10133,10134],{},"自主决策 Agent",[644,10136,10137],{},"多步骤任务、工具调用",[621,10139,10140,10144,10147],{},[644,10141,10142],{},[48,10143,3353],{},[644,10145,10146],{},"RAG 检索",[644,10148,10149],{},"知识库问答",[621,10151,10152,10157,10160],{},[644,10153,10154],{},[48,10155,10156],{},"HTTP",[644,10158,10159],{},"调用外部 API",[644,10161,10162],{},"接入第三方服务",[621,10164,10165,10170,10173],{},[644,10166,10167],{},[48,10168,10169],{},"Condition",[644,10171,10172],{},"条件分支",[644,10174,10175],{},"意图路由",[621,10177,10178,10183,10186],{},[644,10179,10180],{},[48,10181,10182],{},"Loop",[644,10184,10185],{},"循环节点",[644,10187,10188],{},"批量处理、迭代",[621,10190,10191,10196,10199],{},[644,10192,10193],{},[48,10194,10195],{},"Code",[644,10197,10198],{},"自定义代码",[644,10200,10201],{},"复杂逻辑",[621,10203,10204,10209,10212],{},[644,10205,10206],{},[48,10207,10208],{},"Template",[644,10210,10211],{},"模板渲染",[644,10213,10214],{},"格式化输出",[5341,10216,10218],{"id":10217},"_2-mcp-双向支持","2. MCP 双向支持",[35,10220,10221],{},"1.0 实现 MCP 双向连接：",[263,10223,10225],{"className":6904,"code":10224,"language":6906,"meta":268,"style":268},"# 方式 1：Dify 作为 MCP Server（暴露工具）\n# 其他 Agent（如 Claude Code）可以调用 Dify 里的 workflow\nserver:\n  name: dify-workflow\n  tools:\n    - name: customer-support\n      description: 处理客户咨询流程\n      input: { query: string }\n      output: { response: string, confidence: float }\n    \n    - name: order-status\n      description: 查询订单状态\n      input: { order_id: string }\n      output: { status: string, details: object }\n\n# 方式 2：Dify 消费外部 MCP Server\nclients:\n  - name: github\n    server_url: https:\u002F\u002Fgithub.com\u002Fmcp\u002Fservers\u002Fgithub\n    tools: [create-issue, search-repo, get-pr]\n  \n  - name: slack\n    server_url: https:\u002F\u002Fgithub.com\u002Fmcp\u002Fservers\u002Fslack\n    tools: [send-message, list-channels]\n",[39,10226,10227,10232,10237,10244,10254,10261,10273,10283,10300,10326,10331,10342,10351,10366,10391,10395,10400,10407,10419,10429,10451,10456,10467,10476],{"__ignoreMap":268},[272,10228,10229],{"class":274,"line":275},[272,10230,10231],{"class":278},"# 方式 1：Dify 作为 MCP Server（暴露工具）\n",[272,10233,10234],{"class":274,"line":282},[272,10235,10236],{"class":278},"# 其他 Agent（如 Claude Code）可以调用 Dify 里的 workflow\n",[272,10238,10239,10242],{"class":274,"line":313},[272,10240,10241],{"class":6913},"server",[272,10243,6928],{"class":303},[272,10245,10246,10249,10251],{"class":274,"line":319},[272,10247,10248],{"class":6913},"  name",[272,10250,6917],{"class":303},[272,10252,10253],{"class":289},"dify-workflow\n",[272,10255,10256,10259],{"class":274,"line":326},[272,10257,10258],{"class":6913},"  tools",[272,10260,6928],{"class":303},[272,10262,10263,10266,10268,10270],{"class":274,"line":332},[272,10264,10265],{"class":303},"    - ",[272,10267,6914],{"class":6913},[272,10269,6917],{"class":303},[272,10271,10272],{"class":289},"customer-support\n",[272,10274,10275,10278,10280],{"class":274,"line":5},[272,10276,10277],{"class":6913},"      description",[272,10279,6917],{"class":303},[272,10281,10282],{"class":289},"处理客户咨询流程\n",[272,10284,10285,10288,10290,10293,10295,10298],{"class":274,"line":8},[272,10286,10287],{"class":6913},"      input",[272,10289,7042],{"class":303},[272,10291,10292],{"class":6913},"query",[272,10294,6917],{"class":303},[272,10296,10297],{"class":289},"string",[272,10299,591],{"class":303},[272,10301,10302,10305,10307,10310,10312,10314,10316,10319,10321,10324],{"class":274,"line":351},[272,10303,10304],{"class":6913},"      output",[272,10306,7042],{"class":303},[272,10308,10309],{"class":6913},"response",[272,10311,6917],{"class":303},[272,10313,10297],{"class":289},[272,10315,7080],{"class":303},[272,10317,10318],{"class":6913},"confidence",[272,10320,6917],{"class":303},[272,10322,10323],{"class":289},"float",[272,10325,591],{"class":303},[272,10327,10328],{"class":274,"line":7},[272,10329,10330],{"class":303},"    \n",[272,10332,10333,10335,10337,10339],{"class":274,"line":368},[272,10334,10265],{"class":303},[272,10336,6914],{"class":6913},[272,10338,6917],{"class":303},[272,10340,10341],{"class":289},"order-status\n",[272,10343,10344,10346,10348],{"class":274,"line":377},[272,10345,10277],{"class":6913},[272,10347,6917],{"class":303},[272,10349,10350],{"class":289},"查询订单状态\n",[272,10352,10353,10355,10357,10360,10362,10364],{"class":274,"line":386},[272,10354,10287],{"class":6913},[272,10356,7042],{"class":303},[272,10358,10359],{"class":6913},"order_id",[272,10361,6917],{"class":303},[272,10363,10297],{"class":289},[272,10365,591],{"class":303},[272,10367,10368,10370,10372,10375,10377,10379,10381,10384,10386,10389],{"class":274,"line":395},[272,10369,10304],{"class":6913},[272,10371,7042],{"class":303},[272,10373,10374],{"class":6913},"status",[272,10376,6917],{"class":303},[272,10378,10297],{"class":289},[272,10380,7080],{"class":303},[272,10382,10383],{"class":6913},"details",[272,10385,6917],{"class":303},[272,10387,10388],{"class":289},"object",[272,10390,591],{"class":303},[272,10392,10393],{"class":274,"line":400},[272,10394,323],{"emptyLinePlaceholder":322},[272,10396,10397],{"class":274,"line":406},[272,10398,10399],{"class":278},"# 方式 2：Dify 消费外部 MCP Server\n",[272,10401,10402,10405],{"class":274,"line":412},[272,10403,10404],{"class":6913},"clients",[272,10406,6928],{"class":303},[272,10408,10409,10412,10414,10416],{"class":274,"line":420},[272,10410,10411],{"class":303},"  - ",[272,10413,6914],{"class":6913},[272,10415,6917],{"class":303},[272,10417,10418],{"class":289},"github\n",[272,10420,10421,10424,10426],{"class":274,"line":432},[272,10422,10423],{"class":6913},"    server_url",[272,10425,6917],{"class":303},[272,10427,10428],{"class":289},"https:\u002F\u002Fgithub.com\u002Fmcp\u002Fservers\u002Fgithub\n",[272,10430,10431,10434,10436,10439,10441,10444,10446,10449],{"class":274,"line":441},[272,10432,10433],{"class":6913},"    tools",[272,10435,6943],{"class":303},[272,10437,10438],{"class":289},"create-issue",[272,10440,7080],{"class":303},[272,10442,10443],{"class":289},"search-repo",[272,10445,7080],{"class":303},[272,10447,10448],{"class":289},"get-pr",[272,10450,6949],{"class":303},[272,10452,10453],{"class":274,"line":447},[272,10454,10455],{"class":303},"  \n",[272,10457,10458,10460,10462,10464],{"class":274,"line":10},[272,10459,10411],{"class":303},[272,10461,6914],{"class":6913},[272,10463,6917],{"class":303},[272,10465,10466],{"class":289},"slack\n",[272,10468,10469,10471,10473],{"class":274,"line":469},[272,10470,10423],{"class":6913},[272,10472,6917],{"class":303},[272,10474,10475],{"class":289},"https:\u002F\u002Fgithub.com\u002Fmcp\u002Fservers\u002Fslack\n",[272,10477,10478,10480,10482,10485,10487,10490],{"class":274,"line":484},[272,10479,10433],{"class":6913},[272,10481,6943],{"class":303},[272,10483,10484],{"class":289},"send-message",[272,10486,7080],{"class":303},[272,10488,10489],{"class":289},"list-channels",[272,10491,6949],{"class":303},[35,10493,10494],{},[48,10495,10496],{},"实际应用：",[67,10498,10499,10502,10505],{},[70,10500,10501],{},"Claude Code 通过 MCP 调用 Dify 里的客户咨询 workflow",[70,10503,10504],{},"Dify workflow 里调用 GitHub MCP 获取代码库信息",[70,10506,10507],{},"Slack MCP 发消息通知",[5341,10509,10511],{"id":10510},"_3-rag-pipeline-重构","3. RAG Pipeline 重构",[35,10513,10514],{},"1.0 的 RAG 从「向量检索」升级到「混合检索 + 重排序」：",[263,10516,10518],{"className":6367,"code":10517,"language":4242,"meta":268,"style":268},"# 之前：纯向量检索\nquery_embedding = embed(\"如何配置 SSL\")\nresults = vector_db.search(query_embedding, top_k=5)\n# 问题：关键词不匹配时效果差\n\n# 现在：混合检索 + 重排序\n# Step 1: 向量检索\nvector_results = vector_db.search(embed(query), top_k=20)\n\n# Step 2: 关键词检索\nbm25_results = bm25.search(query, top_k=20)\n\n# Step 3: RRF 融合\nfused_results = reciprocal_rank_fusion(vector_results, bm25_results, top_k=10)\n\n# Step 4: LLM 重排序\nreranked = llm_rerank(query, fused_results, top_k=5)\n# 输出最相关的 5 条\n",[39,10519,10520,10525,10540,10559,10564,10568,10573,10578,10596,10600,10605,10623,10627,10632,10651,10655,10660,10678],{"__ignoreMap":268},[272,10521,10522],{"class":274,"line":275},[272,10523,10524],{"class":278},"# 之前：纯向量检索\n",[272,10526,10527,10530,10532,10535,10538],{"class":274,"line":282},[272,10528,10529],{"class":303},"query_embedding ",[272,10531,6386],{"class":490},[272,10533,10534],{"class":303}," embed(",[272,10536,10537],{"class":289},"\"如何配置 SSL\"",[272,10539,6417],{"class":303},[272,10541,10542,10545,10547,10550,10553,10555,10557],{"class":274,"line":313},[272,10543,10544],{"class":303},"results ",[272,10546,6386],{"class":490},[272,10548,10549],{"class":303}," vector_db.search(query_embedding, ",[272,10551,10552],{"class":532},"top_k",[272,10554,6386],{"class":490},[272,10556,5545],{"class":293},[272,10558,6417],{"class":303},[272,10560,10561],{"class":274,"line":319},[272,10562,10563],{"class":278},"# 问题：关键词不匹配时效果差\n",[272,10565,10566],{"class":274,"line":326},[272,10567,323],{"emptyLinePlaceholder":322},[272,10569,10570],{"class":274,"line":332},[272,10571,10572],{"class":278},"# 现在：混合检索 + 重排序\n",[272,10574,10575],{"class":274,"line":5},[272,10576,10577],{"class":278},"# Step 1: 向量检索\n",[272,10579,10580,10583,10585,10588,10590,10592,10594],{"class":274,"line":8},[272,10581,10582],{"class":303},"vector_results ",[272,10584,6386],{"class":490},[272,10586,10587],{"class":303}," vector_db.search(embed(query), ",[272,10589,10552],{"class":532},[272,10591,6386],{"class":490},[272,10593,7882],{"class":293},[272,10595,6417],{"class":303},[272,10597,10598],{"class":274,"line":351},[272,10599,323],{"emptyLinePlaceholder":322},[272,10601,10602],{"class":274,"line":7},[272,10603,10604],{"class":278},"# Step 2: 关键词检索\n",[272,10606,10607,10610,10612,10615,10617,10619,10621],{"class":274,"line":368},[272,10608,10609],{"class":303},"bm25_results ",[272,10611,6386],{"class":490},[272,10613,10614],{"class":303}," bm25.search(query, ",[272,10616,10552],{"class":532},[272,10618,6386],{"class":490},[272,10620,7882],{"class":293},[272,10622,6417],{"class":303},[272,10624,10625],{"class":274,"line":377},[272,10626,323],{"emptyLinePlaceholder":322},[272,10628,10629],{"class":274,"line":386},[272,10630,10631],{"class":278},"# Step 3: RRF 融合\n",[272,10633,10634,10637,10639,10642,10644,10646,10649],{"class":274,"line":395},[272,10635,10636],{"class":303},"fused_results ",[272,10638,6386],{"class":490},[272,10640,10641],{"class":303}," reciprocal_rank_fusion(vector_results, bm25_results, ",[272,10643,10552],{"class":532},[272,10645,6386],{"class":490},[272,10647,10648],{"class":293},"10",[272,10650,6417],{"class":303},[272,10652,10653],{"class":274,"line":400},[272,10654,323],{"emptyLinePlaceholder":322},[272,10656,10657],{"class":274,"line":406},[272,10658,10659],{"class":278},"# Step 4: LLM 重排序\n",[272,10661,10662,10665,10667,10670,10672,10674,10676],{"class":274,"line":412},[272,10663,10664],{"class":303},"reranked ",[272,10666,6386],{"class":490},[272,10668,10669],{"class":303}," llm_rerank(query, fused_results, ",[272,10671,10552],{"class":532},[272,10673,6386],{"class":490},[272,10675,5545],{"class":293},[272,10677,6417],{"class":303},[272,10679,10680],{"class":274,"line":420},[272,10681,10682],{"class":278},"# 输出最相关的 5 条\n",[35,10684,10685],{},[48,10686,10687],{},"实测提升：",[615,10689,10690,10704],{},[618,10691,10692],{},[621,10693,10694,10696,10699,10702],{},[624,10695,7609],{},[624,10697,10698],{},"0.x 纯向量",[624,10700,10701],{},"1.0 混合 + 重排序",[624,10703,9612],{},[639,10705,10706,10720,10733],{},[621,10707,10708,10711,10714,10717],{},[644,10709,10710],{},"召回率",[644,10712,10713],{},"72%",[644,10715,10716],{},"89%",[644,10718,10719],{},"+17%",[621,10721,10722,10725,10728,10730],{},[644,10723,10724],{},"Precision@5",[644,10726,10727],{},"65%",[644,10729,9940],{},[644,10731,10732],{},"+26%",[621,10734,10735,10738,10741,10744],{},[644,10736,10737],{},"MRR",[644,10739,10740],{},"68%",[644,10742,10743],{},"88%",[644,10745,10746],{},"+20%",[5341,10748,10750],{"id":10749},"_4-多模型-ab-测试","4. 多模型 A\u002FB 测试",[35,10752,10753],{},"1.0 支持同一个 workflow 同时跑多个模型：",[263,10755,10757],{"className":6904,"code":10756,"language":6906,"meta":268,"style":268},"# A\u002FB 测试配置\nab_test:\n  enabled: true\n  routes:\n    - name: Claude-Sonnet\n      provider: anthropic\n      model: sonnet-4.5\n      weight: 50%\n      \n    - name: GPT-5\n      provider: openai\n      model: gpt-5\n      weight: 50%\n\n  metrics:\n    - name: 用户满意度\n      type: thumbs_up_down\n    - name: 响应准确率\n      type: manual_review\n    - name: 响应延迟\n      type: latency_ms\n\n  auto_switch: true\n  winner_metric: 用户满意度\n  threshold: 95% confidence\n",[39,10758,10759,10764,10771,10781,10788,10799,10809,10819,10829,10834,10845,10854,10863,10871,10875,10882,10893,10903,10914,10923,10934,10943,10947,10956,10965],{"__ignoreMap":268},[272,10760,10761],{"class":274,"line":275},[272,10762,10763],{"class":278},"# A\u002FB 测试配置\n",[272,10765,10766,10769],{"class":274,"line":282},[272,10767,10768],{"class":6913},"ab_test",[272,10770,6928],{"class":303},[272,10772,10773,10776,10778],{"class":274,"line":313},[272,10774,10775],{"class":6913},"  enabled",[272,10777,6917],{"class":303},[272,10779,10780],{"class":293},"true\n",[272,10782,10783,10786],{"class":274,"line":319},[272,10784,10785],{"class":6913},"  routes",[272,10787,6928],{"class":303},[272,10789,10790,10792,10794,10796],{"class":274,"line":326},[272,10791,10265],{"class":303},[272,10793,6914],{"class":6913},[272,10795,6917],{"class":303},[272,10797,10798],{"class":289},"Claude-Sonnet\n",[272,10800,10801,10804,10806],{"class":274,"line":332},[272,10802,10803],{"class":6913},"      provider",[272,10805,6917],{"class":303},[272,10807,10808],{"class":289},"anthropic\n",[272,10810,10811,10814,10816],{"class":274,"line":5},[272,10812,10813],{"class":6913},"      model",[272,10815,6917],{"class":303},[272,10817,10818],{"class":289},"sonnet-4.5\n",[272,10820,10821,10824,10826],{"class":274,"line":8},[272,10822,10823],{"class":6913},"      weight",[272,10825,6917],{"class":303},[272,10827,10828],{"class":289},"50%\n",[272,10830,10831],{"class":274,"line":351},[272,10832,10833],{"class":303},"      \n",[272,10835,10836,10838,10840,10842],{"class":274,"line":7},[272,10837,10265],{"class":303},[272,10839,6914],{"class":6913},[272,10841,6917],{"class":303},[272,10843,10844],{"class":289},"GPT-5\n",[272,10846,10847,10849,10851],{"class":274,"line":368},[272,10848,10803],{"class":6913},[272,10850,6917],{"class":303},[272,10852,10853],{"class":289},"openai\n",[272,10855,10856,10858,10860],{"class":274,"line":377},[272,10857,10813],{"class":6913},[272,10859,6917],{"class":303},[272,10861,10862],{"class":289},"gpt-5\n",[272,10864,10865,10867,10869],{"class":274,"line":386},[272,10866,10823],{"class":6913},[272,10868,6917],{"class":303},[272,10870,10828],{"class":289},[272,10872,10873],{"class":274,"line":395},[272,10874,323],{"emptyLinePlaceholder":322},[272,10876,10877,10880],{"class":274,"line":400},[272,10878,10879],{"class":6913},"  metrics",[272,10881,6928],{"class":303},[272,10883,10884,10886,10888,10890],{"class":274,"line":406},[272,10885,10265],{"class":303},[272,10887,6914],{"class":6913},[272,10889,6917],{"class":303},[272,10891,10892],{"class":289},"用户满意度\n",[272,10894,10895,10898,10900],{"class":274,"line":412},[272,10896,10897],{"class":6913},"      type",[272,10899,6917],{"class":303},[272,10901,10902],{"class":289},"thumbs_up_down\n",[272,10904,10905,10907,10909,10911],{"class":274,"line":420},[272,10906,10265],{"class":303},[272,10908,6914],{"class":6913},[272,10910,6917],{"class":303},[272,10912,10913],{"class":289},"响应准确率\n",[272,10915,10916,10918,10920],{"class":274,"line":432},[272,10917,10897],{"class":6913},[272,10919,6917],{"class":303},[272,10921,10922],{"class":289},"manual_review\n",[272,10924,10925,10927,10929,10931],{"class":274,"line":441},[272,10926,10265],{"class":303},[272,10928,6914],{"class":6913},[272,10930,6917],{"class":303},[272,10932,10933],{"class":289},"响应延迟\n",[272,10935,10936,10938,10940],{"class":274,"line":447},[272,10937,10897],{"class":6913},[272,10939,6917],{"class":303},[272,10941,10942],{"class":289},"latency_ms\n",[272,10944,10945],{"class":274,"line":10},[272,10946,323],{"emptyLinePlaceholder":322},[272,10948,10949,10952,10954],{"class":274,"line":469},[272,10950,10951],{"class":6913},"  auto_switch",[272,10953,6917],{"class":303},[272,10955,10780],{"class":293},[272,10957,10958,10961,10963],{"class":274,"line":484},[272,10959,10960],{"class":6913},"  winner_metric",[272,10962,6917],{"class":303},[272,10964,10892],{"class":289},[272,10966,10967,10970,10972],{"class":274,"line":494},[272,10968,10969],{"class":6913},"  threshold",[272,10971,6917],{"class":303},[272,10973,10974],{"class":289},"95% confidence\n",[30,10976,10977],{"id":10977},"定价",[615,10979,10980,10990],{},[618,10981,10982],{},[621,10983,10984,10986,10988],{},[624,10985,9785],{},[624,10987,163],{},[624,10989,6675],{},[639,10991,10992,11004,11017,11030,11043],{},[621,10993,10994,10999,11001],{},[644,10995,10996],{},[48,10997,10998],{},"Community",[644,11000,3295],{},[644,11002,11003],{},"开源版，自托管",[621,11005,11006,11011,11014],{},[644,11007,11008],{},[48,11009,11010],{},"Cloud Starter",[644,11012,11013],{},"$59\u002Fmo",[644,11015,11016],{},"5 用户、3 workflow、10K runs",[621,11018,11019,11024,11027],{},[644,11020,11021],{},[48,11022,11023],{},"Cloud Pro",[644,11025,11026],{},"$199\u002Fmo",[644,11028,11029],{},"无限用户、10 workflow、100K runs",[621,11031,11032,11037,11040],{},[644,11033,11034],{},[48,11035,11036],{},"Cloud Enterprise",[644,11038,11039],{},"定制",[644,11041,11042],{},"SSO + 私有部署 + SLA",[621,11044,11045,11050,11052],{},[644,11046,11047],{},[48,11048,11049],{},"Self-Hosted Enterprise",[644,11051,9865],{},[644,11053,11054],{},"私有化部署全套",[30,11056,9977],{"id":9976},[35,11058,11059],{},"Dify 从 0.x 的「LLMOps 平台」进化到 1.0 的「Agent OS」——核心叙事从\"管 LLM 调用\"变成\"编排 Agent 工作流\"。",[35,11061,11062],{},"这次更新三个亮点：",[931,11064,11065,11071,11077],{},[70,11066,11067,11070],{},[48,11068,11069],{},"Agent Workflow 可视化","——对标 Coze 的编排能力，但开源可自托管",[70,11072,11073,11076],{},[48,11074,11075],{},"MCP 双向支持","——既能暴露工具给 Claude\u002FCursor，也能消费外部 MCP Server",[70,11078,11079,11082],{},[48,11080,11081],{},"RAG 混合检索","——之前 Dify 的 RAG 是短板（纯向量），1.0 补上了",[35,11084,11085],{},"对国内开发者：Dify 1.0 是目前开源 Agent 平台里最完整的方案。Coze 体验更好但闭源，Dify 自托管 + MCP 生态是差异化优势。",[30,11087,908],{"id":908},[67,11089,11090,11096,11102],{},[70,11091,11092],{},[914,11093,11095],{"href":11094},"\u002Fagent\u002Fplatform\u002Fdify","Dify 完整评测",[70,11097,11098],{},[914,11099,11101],{"href":11100},"\u002Freview\u002Fcoze-vs-dify","Coze vs Dify 横向对比",[70,11103,11104],{},[914,11105,11107],{"href":11106},"\u002Fwiki\u002Fmcp","MCP 百科",[970,11109,11110],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":268,"searchDepth":313,"depth":313,"links":11112},[11113,11114,11120,11121,11122],{"id":9536,"depth":282,"text":9536},{"id":9571,"depth":282,"text":9571,"children":11115},[11116,11117,11118,11119],{"id":10077,"depth":313,"text":10078},{"id":10217,"depth":313,"text":10218},{"id":10510,"depth":313,"text":10511},{"id":10749,"depth":313,"text":10750},{"id":10977,"depth":282,"text":10977},{"id":9976,"depth":282,"text":9977},{"id":908,"depth":282,"text":908},"Dify 1.0 稳定版发布——新增 Agent Workflow 可视化编排、MCP 原生支持、RAG pipeline 重构、多模型 A\u002FB 测试。开源社区版免费，云版 $59\u002Fmo 起。",{},"\u002Fnews\u002F2026\u002Fdify-1-0-release",{"title":10036,"description":11123},"Dify 官方","https:\u002F\u002Fdify.ai\u002Fblog\u002Fdify-1-0","news\u002F2026\u002Fdify-1-0-release","1tSSqA1yttb7sjdPlFd9Xbt74jg3tc5Ha0SpndgL0bw",{"id":11132,"title":11133,"body":11134,"cover":25,"description":11852,"extension":989,"meta":11853,"navigation":322,"path":11854,"published":11855,"seo":11856,"sourceName":11857,"sourceUrl":2433,"stem":11858,"__hash__":11859},"news\u002Fnews\u002F2026\u002Fclaude-skills-release.md","Claude Code 支持 Skills：Agent 能力复用从代码到 Markdown",{"type":27,"value":11135,"toc":11833},[11136,11138,11164,11167,11173,11228,11231,11234,11238,11295,11298,11302,11309,11313,11374,11377,11381,11384,11395,11399,11402,11505,11509,11512,11590,11596,11599,11603,11674,11677,11681,11747,11750,11752,11755,11758,11761,11781,11784,11787,11811,11813,11831],[30,11137,9536],{"id":9536},[67,11139,11140,11146,11152,11158],{},[70,11141,11142,11145],{},[48,11143,11144],{},"Skills 系统上线","：SKILL.md 格式定义 Agent 能力，按需加载不占 context",[70,11147,11148,11151],{},[48,11149,11150],{},"零代码","：纯 Markdown + 可选脚本，非工程师也能写 Skill",[70,11153,11154,11157],{},[48,11155,11156],{},"社区爆发","：GitHub 上已有 200+ 共享 Skills（部署、审计、迁移、文档生成）",[70,11159,11160,11163],{},[48,11161,11162],{},"Claude Code \u002F Claude Desktop 均支持","：Agent 模式自动识别和调用",[30,11165,11166],{"id":11166},"它是什么",[35,11168,11169,11170,11172],{},"Skills 是 Claude Code 的「能力包」——你可以在项目根目录放一个 ",[39,11171,2050],{}," 文件，定义一组操作流程，让 Claude Code 在遇到相关任务时自动调用。",[263,11174,11176],{"className":2053,"code":11175,"language":2055,"meta":268,"style":268},"# SKILL.md\nname: deploy-to-production\ndescription: 标准化生产部署流程\ntrigger: deploy, 发布, rollout\nsteps:\n  - 运行测试套件\n  - 创建 Git tag\n  - 触发 CI\u002FCD pipeline\n  - 验证部署状态\n  - 发送 Slack 通知\n",[39,11177,11178,11183,11188,11193,11198,11203,11208,11213,11218,11223],{"__ignoreMap":268},[272,11179,11180],{"class":274,"line":275},[272,11181,11182],{},"# SKILL.md\n",[272,11184,11185],{"class":274,"line":282},[272,11186,11187],{},"name: deploy-to-production\n",[272,11189,11190],{"class":274,"line":313},[272,11191,11192],{},"description: 标准化生产部署流程\n",[272,11194,11195],{"class":274,"line":319},[272,11196,11197],{},"trigger: deploy, 发布, rollout\n",[272,11199,11200],{"class":274,"line":326},[272,11201,11202],{},"steps:\n",[272,11204,11205],{"class":274,"line":332},[272,11206,11207],{},"  - 运行测试套件\n",[272,11209,11210],{"class":274,"line":5},[272,11211,11212],{},"  - 创建 Git tag\n",[272,11214,11215],{"class":274,"line":8},[272,11216,11217],{},"  - 触发 CI\u002FCD pipeline\n",[272,11219,11220],{"class":274,"line":351},[272,11221,11222],{},"  - 验证部署状态\n",[272,11224,11225],{"class":274,"line":7},[272,11226,11227],{},"  - 发送 Slack 通知\n",[35,11229,11230],{},"Agent 遇到「帮我部署」这类请求时，会自动读取并执行这些步骤。",[30,11232,11233],{"id":11233},"核心特性",[5341,11235,11237],{"id":11236},"_1-纯-markdown-定义无需写代码","1. 纯 Markdown 定义，无需写代码",[263,11239,11241],{"className":2053,"code":11240,"language":2055,"meta":268,"style":268},"# SKILL.md\nname: database-migration\ndescription: 安全执行数据库迁移\ntrigger: migrate, 迁移\n\nsteps:\n  - 确认迁移脚本已 review\n  - 在 staging 环境先跑\n  - 备份当前数据\n  - 执行 migration\n  - 验证数据完整性\n",[39,11242,11243,11247,11252,11257,11262,11266,11270,11275,11280,11285,11290],{"__ignoreMap":268},[272,11244,11245],{"class":274,"line":275},[272,11246,11182],{},[272,11248,11249],{"class":274,"line":282},[272,11250,11251],{},"name: database-migration\n",[272,11253,11254],{"class":274,"line":313},[272,11255,11256],{},"description: 安全执行数据库迁移\n",[272,11258,11259],{"class":274,"line":319},[272,11260,11261],{},"trigger: migrate, 迁移\n",[272,11263,11264],{"class":274,"line":326},[272,11265,323],{"emptyLinePlaceholder":322},[272,11267,11268],{"class":274,"line":332},[272,11269,11202],{},[272,11271,11272],{"class":274,"line":5},[272,11273,11274],{},"  - 确认迁移脚本已 review\n",[272,11276,11277],{"class":274,"line":8},[272,11278,11279],{},"  - 在 staging 环境先跑\n",[272,11281,11282],{"class":274,"line":351},[272,11283,11284],{},"  - 备份当前数据\n",[272,11286,11287],{"class":274,"line":7},[272,11288,11289],{},"  - 执行 migration\n",[272,11291,11292],{"class":274,"line":368},[272,11293,11294],{},"  - 验证数据完整性\n",[35,11296,11297],{},"非工程师也能编写和维护——只要会写 Markdown 就能定义团队规范。",[5341,11299,11301],{"id":11300},"_2-自动触发不占用-prompt","2. 自动触发，不占用 prompt",[35,11303,11304,11305,11308],{},"Claude Code 会解析 SKILL.md 的 ",[39,11306,11307],{},"trigger"," 字段，在遇到相关关键词时自动加载。不会像 system prompt 那样占用宝贵的 context 空间。",[5341,11310,11312],{"id":11311},"_3-可执行脚本","3. 可执行脚本",[263,11314,11316],{"className":2053,"code":11315,"language":2055,"meta":268,"style":268},"# SKILL.md\nname: security-audit\ndescription: 运行安全扫描\n\nsteps:\n  - 运行 `npm audit --audit-level=high`\n  - 检查依赖漏洞报告\n  - 如有高危漏洞，列出修复方案\n\nscripts:\n  scan: npx security-checker scan .\n  report: npx security-checker report --format=markdown\n",[39,11317,11318,11322,11327,11332,11336,11340,11345,11350,11355,11359,11364,11369],{"__ignoreMap":268},[272,11319,11320],{"class":274,"line":275},[272,11321,11182],{},[272,11323,11324],{"class":274,"line":282},[272,11325,11326],{},"name: security-audit\n",[272,11328,11329],{"class":274,"line":313},[272,11330,11331],{},"description: 运行安全扫描\n",[272,11333,11334],{"class":274,"line":319},[272,11335,323],{"emptyLinePlaceholder":322},[272,11337,11338],{"class":274,"line":326},[272,11339,11202],{},[272,11341,11342],{"class":274,"line":332},[272,11343,11344],{},"  - 运行 `npm audit --audit-level=high`\n",[272,11346,11347],{"class":274,"line":5},[272,11348,11349],{},"  - 检查依赖漏洞报告\n",[272,11351,11352],{"class":274,"line":8},[272,11353,11354],{},"  - 如有高危漏洞，列出修复方案\n",[272,11356,11357],{"class":274,"line":351},[272,11358,323],{"emptyLinePlaceholder":322},[272,11360,11361],{"class":274,"line":7},[272,11362,11363],{},"scripts:\n",[272,11365,11366],{"class":274,"line":368},[272,11367,11368],{},"  scan: npx security-checker scan .\n",[272,11370,11371],{"class":274,"line":377},[272,11372,11373],{},"  report: npx security-checker report --format=markdown\n",[35,11375,11376],{},"支持嵌入 Shell \u002F Node.js \u002F Python 脚本，Skills 可以真正执行操作。",[5341,11378,11380],{"id":11379},"_4-版本可控git-管理","4. 版本可控，Git 管理",[35,11382,11383],{},"Skills 放项目仓库里，可以：",[67,11385,11386,11389,11392],{},[70,11387,11388],{},"随代码一起 review",[70,11390,11391],{},"分支管理，测试通过再合并",[70,11393,11394],{},"版本历史，回溯能力变更",[30,11396,11398],{"id":11397},"社区-skills-生态","社区 Skills 生态",[35,11400,11401],{},"GitHub 上已经涌现 200+ 共享 Skills：",[615,11403,11404,11416],{},[618,11405,11406],{},[621,11407,11408,11411,11414],{},[624,11409,11410],{},"类别",[624,11412,11413],{},"代表 Skill",[624,11415,9794],{},[639,11417,11418,11432,11447,11461,11476,11491],{},[621,11419,11420,11424,11429],{},[644,11421,11422],{},[48,11423,7728],{},[644,11425,11426],{},[39,11427,11428],{},"skill-deploy-vercel",[644,11430,11431],{},"Vercel 一键部署",[621,11433,11434,11439,11444],{},[644,11435,11436],{},[48,11437,11438],{},"审计",[644,11440,11441],{},[39,11442,11443],{},"skill-security-audit",[644,11445,11446],{},"依赖安全扫描",[621,11448,11449,11453,11458],{},[644,11450,11451],{},[48,11452,8823],{},[644,11454,11455],{},[39,11456,11457],{},"skill-db-migration",[644,11459,11460],{},"数据库迁移流程",[621,11462,11463,11468,11473],{},[644,11464,11465],{},[48,11466,11467],{},"文档",[644,11469,11470],{},[39,11471,11472],{},"skill-api-docs",[644,11474,11475],{},"自动生成 OpenAPI 文档",[621,11477,11478,11483,11488],{},[644,11479,11480],{},[48,11481,11482],{},"测试",[644,11484,11485],{},[39,11486,11487],{},"skill-test-coverage",[644,11489,11490],{},"提升测试覆盖率",[621,11492,11493,11497,11502],{},[644,11494,11495],{},[48,11496,7729],{},[644,11498,11499],{},[39,11500,11501],{},"skill-github-actions",[644,11503,11504],{},"GitHub Actions 工作流",[30,11506,11508],{"id":11507},"skills-vs-mcp互补关系","Skills vs MCP：互补关系",[35,11510,11511],{},"很多人把 Skills 和 MCP 混为一谈，其实定位不同：",[615,11513,11514,11524],{},[618,11515,11516],{},[621,11517,11518,11520,11522],{},[624,11519,626],{},[624,11521,1487],{},[624,11523,6069],{},[639,11525,11526,11539,11551,11564,11577],{},[621,11527,11528,11533,11536],{},[644,11529,11530],{},[48,11531,11532],{},"解决的问题",[644,11534,11535],{},"「AI 能调用哪些外部工具」",[644,11537,11538],{},"「AI 怎么用这些工具」",[621,11540,11541,11545,11548],{},[644,11542,11543],{},[48,11544,6094],{},[644,11546,11547],{},"JSON Schema（代码）",[644,11549,11550],{},"Markdown（文档）",[621,11552,11553,11558,11561],{},[644,11554,11555],{},[48,11556,11557],{},"门槛",[644,11559,11560],{},"需要写代码注册",[644,11562,11563],{},"纯 Markdown，会写字就会",[621,11565,11566,11571,11574],{},[644,11567,11568],{},[48,11569,11570],{},"典型场景",[644,11572,11573],{},"连接 API、数据库、文件系统",[644,11575,11576],{},"定义部署流程、代码规范、审批流程",[621,11578,11579,11584,11587],{},[644,11580,11581],{},[48,11582,11583],{},"生命周期",[644,11585,11586],{},"工具级别的原子操作",[644,11588,11589],{},"流程级别的复合操作",[35,11591,11592,11595],{},[48,11593,11594],{},"最佳实践","：用 MCP 接外部能力（工具），用 Skills 定义操作流程（规范）。",[30,11597,11598],{"id":11598},"实际案例",[5341,11600,11602],{"id":11601},"案例-1新工程师-onboarding","案例 1：新工程师 Onboarding",[263,11604,11606],{"className":2053,"code":11605,"language":2055,"meta":268,"style":268},"# SKILL.md\nname: project-onboarding\ndescription: 新工程师环境配置\n\ntrigger: setup, onboard, 环境\n\nsteps:\n  - 检查操作系统类型\n  - 运行环境检测脚本\n  - 安装依赖（npm install \u002F pip install）\n  - 复制环境变量模板\n  - 启动本地开发服务\n  - 运行 smoke test 验证\n  - 输出下一步操作建议\n",[39,11607,11608,11612,11617,11622,11626,11631,11635,11639,11644,11649,11654,11659,11664,11669],{"__ignoreMap":268},[272,11609,11610],{"class":274,"line":275},[272,11611,11182],{},[272,11613,11614],{"class":274,"line":282},[272,11615,11616],{},"name: project-onboarding\n",[272,11618,11619],{"class":274,"line":313},[272,11620,11621],{},"description: 新工程师环境配置\n",[272,11623,11624],{"class":274,"line":319},[272,11625,323],{"emptyLinePlaceholder":322},[272,11627,11628],{"class":274,"line":326},[272,11629,11630],{},"trigger: setup, onboard, 环境\n",[272,11632,11633],{"class":274,"line":332},[272,11634,323],{"emptyLinePlaceholder":322},[272,11636,11637],{"class":274,"line":5},[272,11638,11202],{},[272,11640,11641],{"class":274,"line":8},[272,11642,11643],{},"  - 检查操作系统类型\n",[272,11645,11646],{"class":274,"line":351},[272,11647,11648],{},"  - 运行环境检测脚本\n",[272,11650,11651],{"class":274,"line":7},[272,11652,11653],{},"  - 安装依赖（npm install \u002F pip install）\n",[272,11655,11656],{"class":274,"line":368},[272,11657,11658],{},"  - 复制环境变量模板\n",[272,11660,11661],{"class":274,"line":377},[272,11662,11663],{},"  - 启动本地开发服务\n",[272,11665,11666],{"class":274,"line":386},[272,11667,11668],{},"  - 运行 smoke test 验证\n",[272,11670,11671],{"class":274,"line":395},[272,11672,11673],{},"  - 输出下一步操作建议\n",[35,11675,11676],{},"新工程师说「帮我配置环境」，Claude Code 自动跑完整流程。",[5341,11678,11680],{"id":11679},"案例-2code-review-规范","案例 2：Code Review 规范",[263,11682,11684],{"className":2053,"code":11683,"language":2055,"meta":268,"style":268},"# SKILL.md\nname: code-review-checklist\ndescription: 代码审查检查清单\n\ntrigger: review, pr, 代码审查\n\nsteps:\n  - 检查是否有测试用例\n  - 验证类型定义完整\n  - 检查是否有安全漏洞（SQL注入、XSS等）\n  - 验证错误处理\n  - 检查命名规范\n  - 输出审查报告\n",[39,11685,11686,11690,11695,11700,11704,11709,11713,11717,11722,11727,11732,11737,11742],{"__ignoreMap":268},[272,11687,11688],{"class":274,"line":275},[272,11689,11182],{},[272,11691,11692],{"class":274,"line":282},[272,11693,11694],{},"name: code-review-checklist\n",[272,11696,11697],{"class":274,"line":313},[272,11698,11699],{},"description: 代码审查检查清单\n",[272,11701,11702],{"class":274,"line":319},[272,11703,323],{"emptyLinePlaceholder":322},[272,11705,11706],{"class":274,"line":326},[272,11707,11708],{},"trigger: review, pr, 代码审查\n",[272,11710,11711],{"class":274,"line":332},[272,11712,323],{"emptyLinePlaceholder":322},[272,11714,11715],{"class":274,"line":5},[272,11716,11202],{},[272,11718,11719],{"class":274,"line":8},[272,11720,11721],{},"  - 检查是否有测试用例\n",[272,11723,11724],{"class":274,"line":351},[272,11725,11726],{},"  - 验证类型定义完整\n",[272,11728,11729],{"class":274,"line":7},[272,11730,11731],{},"  - 检查是否有安全漏洞（SQL注入、XSS等）\n",[272,11733,11734],{"class":274,"line":368},[272,11735,11736],{},"  - 验证错误处理\n",[272,11738,11739],{"class":274,"line":377},[272,11740,11741],{},"  - 检查命名规范\n",[272,11743,11744],{"class":274,"line":386},[272,11745,11746],{},"  - 输出审查报告\n",[35,11748,11749],{},"每次 PR review 都按团队标准走，不遗漏关键检查项。",[30,11751,9977],{"id":9976},[35,11753,11754],{},"Skills 的意义不在于「教 AI 新知识」，而在于**「固化团队最佳实践」**。",[35,11756,11757],{},"之前 Agent 的能力是代码——写一个 Python function，注册成 tool。门槛高、不可移植、改一次要发版。",[35,11759,11760],{},"Skills 降维到 Markdown 后：",[67,11762,11763,11769,11775],{},[70,11764,11765,11768],{},[48,11766,11767],{},"新人不用看文档","——说\"部署\"就按规范执行",[70,11770,11771,11774],{},[48,11772,11773],{},"能力可共享","——一个 SKILL.md 文件发到 Slack 就能传播",[70,11776,11777,11780],{},[48,11778,11779],{},"版本可控","——Skill 放 Git 仓库，随代码一起 review",[35,11782,11783],{},"预计 Skills 会成为 Agent 生态的「配方标准」——类似 Dockerfile 之于容器。",[30,11785,11786],{"id":11786},"如何开始",[931,11788,11789,11793,11800,11808],{},[70,11790,9386,11791],{},[39,11792,2050],{},[70,11794,11795,11796],{},"参考 ",[914,11797,11799],{"href":2433,"rel":11798},[940],"Anthropic 官方文档",[70,11801,11802,11803],{},"从社区 Skills 库复制模板：",[914,11804,11807],{"href":11805,"rel":11806},"https:\u002F\u002Fgithub.com\u002Ftopics\u002Fclaude-skills",[940],"Awesome Claude Skills",[70,11809,11810],{},"逐步把团队规范沉淀成 Skills",[30,11812,908],{"id":908},[67,11814,11815,11821,11826],{},[70,11816,11817],{},[914,11818,11820],{"href":11819},"\u002Freview\u002Fclaude-code-deep-review","Claude Code 深度评测",[70,11822,11823],{},[914,11824,11825],{"href":9520},"Claude Code 上手指南",[70,11827,11828],{},[914,11829,11830],{"href":11106},"MCP (Model Context Protocol)百科",[970,11832,2472],{},{"title":268,"searchDepth":313,"depth":313,"links":11834},[11835,11836,11837,11843,11844,11845,11849,11850,11851],{"id":9536,"depth":282,"text":9536},{"id":11166,"depth":282,"text":11166},{"id":11233,"depth":282,"text":11233,"children":11838},[11839,11840,11841,11842],{"id":11236,"depth":313,"text":11237},{"id":11300,"depth":313,"text":11301},{"id":11311,"depth":313,"text":11312},{"id":11379,"depth":313,"text":11380},{"id":11397,"depth":282,"text":11398},{"id":11507,"depth":282,"text":11508},{"id":11598,"depth":282,"text":11598,"children":11846},[11847,11848],{"id":11601,"depth":313,"text":11602},{"id":11679,"depth":313,"text":11680},{"id":9976,"depth":282,"text":9977},{"id":11786,"depth":282,"text":11786},{"id":908,"depth":282,"text":908},"Anthropic 为 Claude Code 推出 Skills 系统——一个 SKILL.md 文件定义一组 Agent 能力，按需自动加载。社区已涌现 200+ 共享 Skills。",{},"\u002Fnews\u002F2026\u002Fclaude-skills-release","2026-06-18",{"title":11133,"description":11852},"Anthropic 文档","news\u002F2026\u002Fclaude-skills-release","7ooVxXbE5wBxdBQTBqeiQJZQop9XZV7ShIqFLb78sDk",{"id":11861,"title":11862,"body":11863,"cover":25,"description":12797,"extension":989,"meta":12798,"navigation":322,"path":12799,"published":12800,"seo":12801,"sourceName":12802,"sourceUrl":12803,"stem":12804,"__hash__":12805},"news\u002Fnews\u002F2026\u002Fmcp-1-0-release.md","Anthropic 推出 MCP 协议 1.0：Agent 工具接入标准化里程碑",{"type":27,"value":11864,"toc":12771},[11865,11867,11892,11894,11897,11903,11952,11955,11959,12120,12124,12206,12210,12276,12280,12284,12368,12372,12466,12469,12488,12491,12494,12500,12503,12506,12588,12591,12681,12684,12688,12691,12702,12706,12709,12720,12724,12735,12737,12740,12746,12749,12751,12768],[30,11866,9536],{"id":9536},[67,11868,11869,11875,11881,11887],{},[70,11870,11871,11874],{},[48,11872,11873],{},"MCP 1.0 稳定版发布","：API 冻结，向后兼容保证",[70,11876,11877,11880],{},[48,11878,11879],{},"IDE 支持","：Cursor、Windsurf、Zed、Replit 已原生支持 MCP",[70,11882,11883,11886],{},[48,11884,11885],{},"生态爆发","：社区 Server 数突破 500+，Smithery 月下载量 200K+",[70,11888,11889,11891],{},[48,11890,10071],{},"：Anthropic 推出 MCP Server 托管平台（preview），含 Auth 管理 + 审计日志",[30,11893,11166],{"id":11166},[35,11895,11896],{},"MCP（Model Context Protocol）是 Anthropic 提出的「AI 工具接入标准」——让 AI 模型能以统一的方式调用外部工具和数据源。",[35,11898,11899,11902],{},[48,11900,11901],{},"类比","：就像 USB-C 接口统一了设备连接标准，MCP 统一了 AI 调用外部工具的标准。",[263,11904,11906],{"className":6460,"code":11905,"language":6462,"meta":268,"style":268},"\u002F\u002F 之前：每个工具都要单独集成\n\u002F\u002F Cursor 自己实现 GitHub API\n\u002F\u002F Windsurf 自己实现 GitHub API\n\u002F\u002F Claude Code 自己实现 GitHub API\n\u002F\u002F 三套代码，维护成本三倍\n\n\u002F\u002F 现在：通过 MCP 统一接入\n\u002F\u002F MCP Server（GitHub）：实现一次\n\u002F\u002F MCP Client（Cursor\u002FWindsurf\u002FClaude Code）：直接调用\n",[39,11907,11908,11913,11918,11923,11928,11933,11937,11942,11947],{"__ignoreMap":268},[272,11909,11910],{"class":274,"line":275},[272,11911,11912],{},"\u002F\u002F 之前：每个工具都要单独集成\n",[272,11914,11915],{"class":274,"line":282},[272,11916,11917],{},"\u002F\u002F Cursor 自己实现 GitHub API\n",[272,11919,11920],{"class":274,"line":313},[272,11921,11922],{},"\u002F\u002F Windsurf 自己实现 GitHub API\n",[272,11924,11925],{"class":274,"line":319},[272,11926,11927],{},"\u002F\u002F Claude Code 自己实现 GitHub API\n",[272,11929,11930],{"class":274,"line":326},[272,11931,11932],{},"\u002F\u002F 三套代码，维护成本三倍\n",[272,11934,11935],{"class":274,"line":332},[272,11936,323],{"emptyLinePlaceholder":322},[272,11938,11939],{"class":274,"line":5},[272,11940,11941],{},"\u002F\u002F 现在：通过 MCP 统一接入\n",[272,11943,11944],{"class":274,"line":8},[272,11945,11946],{},"\u002F\u002F MCP Server（GitHub）：实现一次\n",[272,11948,11949],{"class":274,"line":351},[272,11950,11951],{},"\u002F\u002F MCP Client（Cursor\u002FWindsurf\u002FClaude Code）：直接调用\n",[30,11953,11954],{"id":11954},"核心概念",[5341,11956,11958],{"id":11957},"_1-mcp-server工具提供者","1. MCP Server（工具提供者）",[263,11960,11962],{"className":6460,"code":11961,"language":6462,"meta":268,"style":268},"\u002F\u002F mcp-server-github\u002Findex.ts\nimport { Server } from '@modelcontextprotocol\u002Fsdk\u002Fserver'\n\nconst server = new Server({\n  name: 'github-mcp-server',\n  version: '1.0.0'\n})\n\n\u002F\u002F 定义工具\nserver.setRequestHandler('tools\u002Flist', async () => ({\n  tools: [{\n    name: 'create_issue',\n    description: '在 GitHub 仓库创建 Issue',\n    inputSchema: {\n      type: 'object',\n      properties: {\n        owner: { type: 'string' },\n        repo: { type: 'string' },\n        title: { type: 'string' },\n        body: { type: 'string' }\n      }\n    }\n  }]\n}))\n\n\u002F\u002F 实现工具\nserver.setRequestHandler('tools\u002Fcall', async (request) => {\n  const { name, arguments } = request.params\n  \n  if (name === 'create_issue') {\n    return await github.issues.create(arguments)\n  }\n})\n",[39,11963,11964,11969,11974,11978,11983,11988,11993,11997,12001,12006,12011,12016,12021,12026,12031,12036,12041,12046,12051,12056,12061,12065,12069,12074,12079,12083,12088,12093,12098,12102,12107,12112,12116],{"__ignoreMap":268},[272,11965,11966],{"class":274,"line":275},[272,11967,11968],{},"\u002F\u002F mcp-server-github\u002Findex.ts\n",[272,11970,11971],{"class":274,"line":282},[272,11972,11973],{},"import { Server } from '@modelcontextprotocol\u002Fsdk\u002Fserver'\n",[272,11975,11976],{"class":274,"line":313},[272,11977,323],{"emptyLinePlaceholder":322},[272,11979,11980],{"class":274,"line":319},[272,11981,11982],{},"const server = new Server({\n",[272,11984,11985],{"class":274,"line":326},[272,11986,11987],{},"  name: 'github-mcp-server',\n",[272,11989,11990],{"class":274,"line":332},[272,11991,11992],{},"  version: '1.0.0'\n",[272,11994,11995],{"class":274,"line":5},[272,11996,6508],{},[272,11998,11999],{"class":274,"line":8},[272,12000,323],{"emptyLinePlaceholder":322},[272,12002,12003],{"class":274,"line":351},[272,12004,12005],{},"\u002F\u002F 定义工具\n",[272,12007,12008],{"class":274,"line":7},[272,12009,12010],{},"server.setRequestHandler('tools\u002Flist', async () => ({\n",[272,12012,12013],{"class":274,"line":368},[272,12014,12015],{},"  tools: [{\n",[272,12017,12018],{"class":274,"line":377},[272,12019,12020],{},"    name: 'create_issue',\n",[272,12022,12023],{"class":274,"line":386},[272,12024,12025],{},"    description: '在 GitHub 仓库创建 Issue',\n",[272,12027,12028],{"class":274,"line":395},[272,12029,12030],{},"    inputSchema: {\n",[272,12032,12033],{"class":274,"line":400},[272,12034,12035],{},"      type: 'object',\n",[272,12037,12038],{"class":274,"line":406},[272,12039,12040],{},"      properties: {\n",[272,12042,12043],{"class":274,"line":412},[272,12044,12045],{},"        owner: { type: 'string' },\n",[272,12047,12048],{"class":274,"line":420},[272,12049,12050],{},"        repo: { type: 'string' },\n",[272,12052,12053],{"class":274,"line":432},[272,12054,12055],{},"        title: { type: 'string' },\n",[272,12057,12058],{"class":274,"line":441},[272,12059,12060],{},"        body: { type: 'string' }\n",[272,12062,12063],{"class":274,"line":447},[272,12064,9303],{},[272,12066,12067],{"class":274,"line":10},[272,12068,9365],{},[272,12070,12071],{"class":274,"line":469},[272,12072,12073],{},"  }]\n",[272,12075,12076],{"class":274,"line":484},[272,12077,12078],{},"}))\n",[272,12080,12081],{"class":274,"line":494},[272,12082,323],{"emptyLinePlaceholder":322},[272,12084,12085],{"class":274,"line":515},[272,12086,12087],{},"\u002F\u002F 实现工具\n",[272,12089,12090],{"class":274,"line":546},[272,12091,12092],{},"server.setRequestHandler('tools\u002Fcall', async (request) => {\n",[272,12094,12095],{"class":274,"line":551},[272,12096,12097],{},"  const { name, arguments } = request.params\n",[272,12099,12100],{"class":274,"line":557},[272,12101,10455],{},[272,12103,12104],{"class":274,"line":563},[272,12105,12106],{},"  if (name === 'create_issue') {\n",[272,12108,12109],{"class":274,"line":574},[272,12110,12111],{},"    return await github.issues.create(arguments)\n",[272,12113,12114],{"class":274,"line":594},[272,12115,597],{},[272,12117,12118],{"class":274,"line":600},[272,12119,6508],{},[5341,12121,12123],{"id":12122},"_2-mcp-clientai-应用","2. MCP Client（AI 应用）",[263,12125,12127],{"className":6460,"code":12126,"language":6462,"meta":268,"style":268},"\u002F\u002F 在 Cursor\u002FWindsurf\u002FClaude Code 中\nconst client = new MCPClient({\n  servers: [\n    { name: 'github', url: 'http:\u002F\u002Flocalhost:3000' },\n    { name: 'filesystem', url: 'http:\u002F\u002Flocalhost:3001' },\n    { name: 'database', url: 'http:\u002F\u002Flocalhost:3002' }\n  ]\n})\n\n\u002F\u002F AI 直接调用工具\nconst response = await client.callTool('github', 'create_issue', {\n  owner: 'myorg',\n  repo: 'myrepo',\n  title: 'Bug: Login fails',\n  body: 'Steps to reproduce...'\n})\n",[39,12128,12129,12134,12139,12144,12149,12154,12159,12164,12168,12172,12177,12182,12187,12192,12197,12202],{"__ignoreMap":268},[272,12130,12131],{"class":274,"line":275},[272,12132,12133],{},"\u002F\u002F 在 Cursor\u002FWindsurf\u002FClaude Code 中\n",[272,12135,12136],{"class":274,"line":282},[272,12137,12138],{},"const client = new MCPClient({\n",[272,12140,12141],{"class":274,"line":313},[272,12142,12143],{},"  servers: [\n",[272,12145,12146],{"class":274,"line":319},[272,12147,12148],{},"    { name: 'github', url: 'http:\u002F\u002Flocalhost:3000' },\n",[272,12150,12151],{"class":274,"line":326},[272,12152,12153],{},"    { name: 'filesystem', url: 'http:\u002F\u002Flocalhost:3001' },\n",[272,12155,12156],{"class":274,"line":332},[272,12157,12158],{},"    { name: 'database', url: 'http:\u002F\u002Flocalhost:3002' }\n",[272,12160,12161],{"class":274,"line":5},[272,12162,12163],{},"  ]\n",[272,12165,12166],{"class":274,"line":8},[272,12167,6508],{},[272,12169,12170],{"class":274,"line":351},[272,12171,323],{"emptyLinePlaceholder":322},[272,12173,12174],{"class":274,"line":7},[272,12175,12176],{},"\u002F\u002F AI 直接调用工具\n",[272,12178,12179],{"class":274,"line":368},[272,12180,12181],{},"const response = await client.callTool('github', 'create_issue', {\n",[272,12183,12184],{"class":274,"line":377},[272,12185,12186],{},"  owner: 'myorg',\n",[272,12188,12189],{"class":274,"line":386},[272,12190,12191],{},"  repo: 'myrepo',\n",[272,12193,12194],{"class":274,"line":395},[272,12195,12196],{},"  title: 'Bug: Login fails',\n",[272,12198,12199],{"class":274,"line":400},[272,12200,12201],{},"  body: 'Steps to reproduce...'\n",[272,12203,12204],{"class":274,"line":406},[272,12205,6508],{},[5341,12207,12209],{"id":12208},"_3-mcp-资源数据源","3. MCP 资源（数据源）",[263,12211,12213],{"className":6460,"code":12212,"language":6462,"meta":268,"style":268},"\u002F\u002F 除了工具，MCP 还可以暴露数据资源\nserver.setRequestHandler('resources\u002Flist', async () => ({\n  resources: [{\n    uri: 'github:\u002F\u002Fmyorg\u002Fmyrepo\u002Fissues',\n    name: 'Open Issues',\n    description: '获取仓库所有打开的 Issue'\n  }]\n}))\n\nserver.setRequestHandler('resources\u002Fread', async (request) => {\n  const { uri } = request.params\n  \u002F\u002F 返回对应数据\n})\n",[39,12214,12215,12220,12225,12230,12235,12240,12245,12249,12253,12257,12262,12267,12272],{"__ignoreMap":268},[272,12216,12217],{"class":274,"line":275},[272,12218,12219],{},"\u002F\u002F 除了工具，MCP 还可以暴露数据资源\n",[272,12221,12222],{"class":274,"line":282},[272,12223,12224],{},"server.setRequestHandler('resources\u002Flist', async () => ({\n",[272,12226,12227],{"class":274,"line":313},[272,12228,12229],{},"  resources: [{\n",[272,12231,12232],{"class":274,"line":319},[272,12233,12234],{},"    uri: 'github:\u002F\u002Fmyorg\u002Fmyrepo\u002Fissues',\n",[272,12236,12237],{"class":274,"line":326},[272,12238,12239],{},"    name: 'Open Issues',\n",[272,12241,12242],{"class":274,"line":332},[272,12243,12244],{},"    description: '获取仓库所有打开的 Issue'\n",[272,12246,12247],{"class":274,"line":5},[272,12248,12073],{},[272,12250,12251],{"class":274,"line":8},[272,12252,12078],{},[272,12254,12255],{"class":274,"line":351},[272,12256,323],{"emptyLinePlaceholder":322},[272,12258,12259],{"class":274,"line":7},[272,12260,12261],{},"server.setRequestHandler('resources\u002Fread', async (request) => {\n",[272,12263,12264],{"class":274,"line":368},[272,12265,12266],{},"  const { uri } = request.params\n",[272,12268,12269],{"class":274,"line":377},[272,12270,12271],{},"  \u002F\u002F 返回对应数据\n",[272,12273,12274],{"class":274,"line":386},[272,12275,6508],{},[30,12277,12279],{"id":12278},"生态现状2026-06","生态现状（2026-06）",[5341,12281,12283],{"id":12282},"ide-支持情况","IDE 支持情况",[615,12285,12286,12297],{},[618,12287,12288],{},[621,12289,12290,12292,12295],{},[624,12291,8878],{},[624,12293,12294],{},"MCP 支持状态",[624,12296,6675],{},[639,12298,12299,12311,12322,12333,12344,12357],{},[621,12300,12301,12305,12308],{},[644,12302,12303],{},[48,12304,5001],{},[644,12306,12307],{},"✅ 原生支持",[644,12309,12310],{},"内置 MCP Server 市场",[621,12312,12313,12317,12319],{},[644,12314,12315],{},[48,12316,5045],{},[644,12318,12307],{},[644,12320,12321],{},"Cascade 支持 MCP",[621,12323,12324,12328,12330],{},[644,12325,12326],{},[48,12327,4911],{},[644,12329,12307],{},[644,12331,12332],{},"官方内置",[621,12334,12335,12339,12341],{},[644,12336,12337],{},[48,12338,5054],{},[644,12340,12307],{},[644,12342,12343],{},"ACP 协议兼容 MCP",[621,12345,12346,12351,12354],{},[644,12347,12348],{},[48,12349,12350],{},"VS Code",[644,12352,12353],{},"⏳ 开发中",[644,12355,12356],{},"官方扩展筹备",[621,12358,12359,12364,12366],{},[644,12360,12361],{},[48,12362,12363],{},"JetBrains",[644,12365,12353],{},[644,12367,12356],{},[5341,12369,12371],{"id":12370},"热门-mcp-server","热门 MCP Server",[615,12373,12374,12386],{},[618,12375,12376],{},[621,12377,12378,12381,12384],{},[624,12379,12380],{},"Server",[624,12382,12383],{},"下载量",[624,12385,9794],{},[639,12387,12388,12401,12414,12427,12440,12453],{},[621,12389,12390,12395,12398],{},[644,12391,12392],{},[48,12393,12394],{},"GitHub",[644,12396,12397],{},"50K+\u002F月",[644,12399,12400],{},"Issues、PRs、代码搜索",[621,12402,12403,12408,12411],{},[644,12404,12405],{},[48,12406,12407],{},"Slack",[644,12409,12410],{},"30K+\u002F月",[644,12412,12413],{},"发送消息、频道管理",[621,12415,12416,12421,12424],{},[644,12417,12418],{},[48,12419,12420],{},"PostgreSQL",[644,12422,12423],{},"25K+\u002F月",[644,12425,12426],{},"数据库查询",[621,12428,12429,12434,12437],{},[644,12430,12431],{},[48,12432,12433],{},"Filesystem",[644,12435,12436],{},"20K+\u002F月",[644,12438,12439],{},"文件读写",[621,12441,12442,12447,12450],{},[644,12443,12444],{},[48,12445,12446],{},"Brave Search",[644,12448,12449],{},"18K+\u002F月",[644,12451,12452],{},"联网搜索",[621,12454,12455,12460,12463],{},[644,12456,12457],{},[48,12458,12459],{},"Google Drive",[644,12461,12462],{},"15K+\u002F月",[644,12464,12465],{},"文档访问",[5341,12467,12468],{"id":12468},"平台生态",[67,12470,12471,12476,12482],{},[70,12472,12473,12475],{},[48,12474,634],{},"：MCP Server 市场，月下载 200K+",[70,12477,12478,12481],{},[48,12479,12480],{},"Cursorrules","：Cursor 专用的 MCP 配置社区",[70,12483,12484,12487],{},[48,12485,12486],{},"MCP Hub","：企业级 MCP Server 管理平台",[30,12489,12490],{"id":12490},"技术细节",[5341,12492,12493],{"id":12493},"协议架构",[263,12495,12498],{"className":12496,"code":12497,"language":2043},[2041],"┌─────────────────────────────────────────────────────────┐\n│  AI 应用 (Cursor \u002F Windsurf \u002F Claude Code)              │\n│  ┌─────────────────────────────────────────────────┐  │\n│  │  MCP Client SDK                                 │  │\n│  │  - 工具调用协议                                 │  │\n│  │  - 资源访问协议                                 │  │\n│  │  - 采样协议                                     │  │\n│  └─────────────────────────────────────────────────┘  │\n└─────────────────────────────────────────────────────────┘\n                          │ JSON-RPC 2.0\n                          ▼\n┌─────────────────────────────────────────────────────────┐\n│  MCP Server (GitHub \u002F Slack \u002F PostgreSQL \u002F ...)        │\n│  ┌─────────────────────────────────────────────────┐  │\n│  │  工具定义 (tools\u002F)                               │  │\n│  │  资源定义 (resources\u002F)                           │  │\n│  │  Prompt 模板 (prompts\u002F)                         │  │\n│  └─────────────────────────────────────────────────┘  │\n└─────────────────────────────────────────────────────────┘\n",[39,12499,12497],{"__ignoreMap":268},[5341,12501,12502],{"id":12502},"认证机制",[35,12504,12505],{},"1.0 新增标准 Auth 协议：",[263,12507,12509],{"className":6904,"code":12508,"language":6906,"meta":268,"style":268},"# MCP Server 认证配置\nauth:\n  type: oauth2\n  provider: github\n  scopes: [repo, read:user]\n  \n# MCP Hub（企业平台）提供：\n# - 集中式 Auth 管理\n# - Server 注册审批流程\n# - 使用审计日志\n# - Key 轮换\n",[39,12510,12511,12516,12523,12533,12542,12559,12563,12568,12573,12578,12583],{"__ignoreMap":268},[272,12512,12513],{"class":274,"line":275},[272,12514,12515],{"class":278},"# MCP Server 认证配置\n",[272,12517,12518,12521],{"class":274,"line":282},[272,12519,12520],{"class":6913},"auth",[272,12522,6928],{"class":303},[272,12524,12525,12528,12530],{"class":274,"line":313},[272,12526,12527],{"class":6913},"  type",[272,12529,6917],{"class":303},[272,12531,12532],{"class":289},"oauth2\n",[272,12534,12535,12538,12540],{"class":274,"line":319},[272,12536,12537],{"class":6913},"  provider",[272,12539,6917],{"class":303},[272,12541,10418],{"class":289},[272,12543,12544,12547,12549,12552,12554,12557],{"class":274,"line":326},[272,12545,12546],{"class":6913},"  scopes",[272,12548,6943],{"class":303},[272,12550,12551],{"class":289},"repo",[272,12553,7080],{"class":303},[272,12555,12556],{"class":289},"read:user",[272,12558,6949],{"class":303},[272,12560,12561],{"class":274,"line":332},[272,12562,10455],{"class":303},[272,12564,12565],{"class":274,"line":5},[272,12566,12567],{"class":278},"# MCP Hub（企业平台）提供：\n",[272,12569,12570],{"class":274,"line":8},[272,12571,12572],{"class":278},"# - 集中式 Auth 管理\n",[272,12574,12575],{"class":274,"line":351},[272,12576,12577],{"class":278},"# - Server 注册审批流程\n",[272,12579,12580],{"class":274,"line":7},[272,12581,12582],{"class":278},"# - 使用审计日志\n",[272,12584,12585],{"class":274,"line":368},[272,12586,12587],{"class":278},"# - Key 轮换\n",[30,12589,12590],{"id":12590},"与竞品对比",[615,12592,12593,12612],{},[618,12594,12595],{},[621,12596,12597,12600,12603,12606,12609],{},[624,12598,12599],{},"协议",[624,12601,12602],{},"提出方",[624,12604,12605],{},"生态",[624,12607,12608],{},"企业支持",[624,12610,12611],{},"特点",[639,12613,12614,12630,12648,12665],{},[621,12615,12616,12620,12622,12624,12627],{},[644,12617,12618],{},[48,12619,1487],{},[644,12621,9526],{},[644,12623,5237],{},[644,12625,12626],{},"萌芽",[644,12628,12629],{},"开源、IDE 原生支持",[621,12631,12632,12637,12640,12642,12645],{},[644,12633,12634],{},[48,12635,12636],{},"Tool Use",[644,12638,12639],{},"OpenAI",[644,12641,5249],{},[644,12643,12644],{},"一般",[644,12646,12647],{},"GPT 专用",[621,12649,12650,12655,12658,12660,12662],{},[644,12651,12652],{},[48,12653,12654],{},"Function Calling",[644,12656,12657],{},"多家",[644,12659,5269],{},[644,12661,12644],{},[644,12663,12664],{},"各家自己实现",[621,12666,12667,12672,12674,12676,12678],{},[644,12668,12669],{},[48,12670,12671],{},"Agent Protocol",[644,12673,9526],{},[644,12675,5269],{},[644,12677,12644],{},[644,12679,12680],{},"任务编排层面",[30,12682,12683],{"id":12683},"局限与挑战",[5341,12685,12687],{"id":12686},"_1-server-质量参差","1. Server 质量参差",[35,12689,12690],{},"社区上传的 MCP Server 没有审核机制：",[67,12692,12693,12696,12699],{},[70,12694,12695],{},"部分 Server 功能不完整",[70,12697,12698],{},"安全漏洞需自行审查",[70,12700,12701],{},"建议：生产环境使用前先 review 代码",[5341,12703,12705],{"id":12704},"_2-auth-标准不统一","2. Auth 标准不统一",[35,12707,12708],{},"虽然 1.0 引入了 Auth 协议，但：",[67,12710,12711,12714,12717],{},[70,12712,12713],{},"各 Server 实现不一",[70,12715,12716],{},"企业级 SSO 集成仍在完善",[70,12718,12719],{},"Composio 等平台在填补这一层",[5341,12721,12723],{"id":12722},"_3-server-治理","3. Server 治理",[67,12725,12726,12729,12732],{},[70,12727,12728],{},"缺乏官方认证体系",[70,12730,12731],{},"Server 版本管理混乱",[70,12733,12734],{},"MCP Hub 在尝试解决但仍早期",[30,12736,9977],{"id":9976},[35,12738,12739],{},"MCP 是 Agent 生态的「USB-C 接口」——统一了 AI 模型调外部工具的协议。",[35,12741,12742,12743,5775],{},"之前做 Agent 最痛的不是模型，是接工具——每个 SaaS 的 OAuth、API 格式、Rate Limit 都不一样。MCP 把这些抽象成标准协议后，",[48,12744,12745],{},"Agent 开发从「写胶水代码」变成「装 MCP Server」",[35,12747,12748],{},"预计 2026 下半年 MCP 会成为 Agent 工具接入的事实标准，类似 LSP 之于编辑器。",[30,12750,908],{"id":908},[67,12752,12753,12758,12762],{},[70,12754,12755],{},[914,12756,12757],{"href":11106},"MCP 百科详解",[70,12759,12760],{},[914,12761,11825],{"href":9520},[70,12763,12764],{},[914,12765,12767],{"href":12766},"\u002Fplaybook\u002Fonboarding\u002Fcursor-mcp-deep-integration","Cursor MCP 深度集成",[970,12769,12770],{},"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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":268,"searchDepth":313,"depth":313,"links":12772},[12773,12774,12775,12780,12785,12789,12790,12795,12796],{"id":9536,"depth":282,"text":9536},{"id":11166,"depth":282,"text":11166},{"id":11954,"depth":282,"text":11954,"children":12776},[12777,12778,12779],{"id":11957,"depth":313,"text":11958},{"id":12122,"depth":313,"text":12123},{"id":12208,"depth":313,"text":12209},{"id":12278,"depth":282,"text":12279,"children":12781},[12782,12783,12784],{"id":12282,"depth":313,"text":12283},{"id":12370,"depth":313,"text":12371},{"id":12468,"depth":313,"text":12468},{"id":12490,"depth":282,"text":12490,"children":12786},[12787,12788],{"id":12493,"depth":313,"text":12493},{"id":12502,"depth":313,"text":12502},{"id":12590,"depth":282,"text":12590},{"id":12683,"depth":282,"text":12683,"children":12791},[12792,12793,12794],{"id":12686,"depth":313,"text":12687},{"id":12704,"depth":313,"text":12705},{"id":12722,"depth":313,"text":12723},{"id":9976,"depth":282,"text":9977},{"id":908,"depth":282,"text":908},"Anthropic 正式发布 Model Context Protocol 1.0 稳定版，Cursor \u002F Windsurf \u002F Zed \u002F Replit 已宣布支持。MCP 生态 Server 数突破 500+。",{},"\u002Fnews\u002F2026\u002Fmcp-1-0-release","2026-06-15",{"title":11862,"description":12797},"Anthropic 官方","https:\u002F\u002Fwww.anthropic.com\u002Fnews\u002Fmcp-1-0","news\u002F2026\u002Fmcp-1-0-release","jje1yiH5BWHyAAdq2SdXYvyuKd1BUpN0oa105j8ph7I",{"id":12807,"title":12808,"body":12809,"cover":25,"description":13398,"extension":989,"meta":13399,"navigation":322,"path":13400,"published":13401,"seo":13402,"sourceName":13403,"sourceUrl":13404,"stem":13405,"__hash__":13406},"news\u002Fnews\u002F2026\u002Ftrae-2m-mau.md","字节 Trae 国内月活突破 200 万：免费策略奏效",{"type":27,"value":12810,"toc":13373},[12811,12813,12839,12842,12845,12851,12854,12858,12903,12906,12910,12913,12945,12949,12952,12992,12995,12998,13001,13039,13042,13113,13116,13120,13126,13129,13183,13186,13189,13209,13212,13228,13231,13235,13238,13249,13253,13307,13311,13314,13328,13331,13333,13339,13346,13353,13355],[30,12812,9536],{"id":9536},[67,12814,12815,12821,12827,12833],{},[70,12816,12817,12820],{},[48,12818,12819],{},"月活 2M+","：国内开发者中 Trae 已成主力 AI IDE",[70,12822,12823,12826],{},[48,12824,12825],{},"持续免费","：字节明确表态短期内不会推付费版",[70,12828,12829,12832],{},[48,12830,12831],{},"豆包 1.6-pro + Claude 双模型","：可在 IDE 内自由切换",[70,12834,12835,12838],{},[48,12836,12837],{},"企业版即将推出","：私有化部署 + SSO，针对国企\u002F金融客户",[30,12840,12841],{"id":12841},"发展历程",[35,12843,12844],{},"Trae 的快速增长并非偶然，而是精准的市场定位：",[263,12846,12849],{"className":12847,"code":12848,"language":2043},[2041],"2025-01  Trae 正式发布\n   ↓\n2025-03  月活突破 50 万（Cursor 同期约 30 万）\n   ↓\n2025-06  月活突破 100 万\n   ↓\n2025-09  企业版内测\n   ↓\n2026-01  支持 Claude Sonnet 4.5\n   ↓\n2026-06  月活突破 200 万\n",[39,12850,12848],{"__ignoreMap":268},[30,12852,12853],{"id":12853},"成功因素分析",[5341,12855,12857],{"id":12856},"_1-免费策略","1. 免费策略",[615,12859,12860,12872],{},[618,12861,12862],{},[621,12863,12864,12867,12869],{},[624,12865,12866],{},"产品",[624,12868,163],{},[624,12870,12871],{},"策略",[639,12873,12874,12886,12895],{},[621,12875,12876,12880,12883],{},[644,12877,12878],{},[48,12879,5027],{},[644,12881,12882],{},"完全免费",[644,12884,12885],{},"字节补贴，生态变现",[621,12887,12888,12890,12892],{},[644,12889,5001],{},[644,12891,8963],{},[644,12893,12894],{},"订阅制",[621,12896,12897,12899,12901],{},[644,12898,4974],{},[644,12900,8966],{},[644,12902,12894],{},[35,12904,12905],{},"对个人开发者来说，免费的 Trae 直接切走了大量轻度用户。",[5341,12907,12909],{"id":12908},"_2-中文体验","2. 中文体验",[35,12911,12912],{},"国内用户的痛点，Trae 基本都覆盖了：",[67,12914,12915,12921,12927,12933,12939],{},[70,12916,12917,12920],{},[48,12918,12919],{},"中文界面","：完整汉化，无语言障碍",[70,12922,12923,12926],{},[48,12924,12925],{},"中文 prompt 优化","：对中文指令理解更准确",[70,12928,12929,12932],{},[48,12930,12931],{},"中文文档","：官方文档中文优先",[70,12934,12935,12938],{},[48,12936,12937],{},"国内模型","：豆包 1.6-pro 专门针对中文优化",[70,12940,12941,12944],{},[48,12942,12943],{},"无需代理","：国内直连，无 VPN 烦恼",[5341,12946,12948],{"id":12947},"_3-双模型支持","3. 双模型支持",[35,12950,12951],{},"Trae 支持两个模型体系：",[615,12953,12954,12964],{},[618,12955,12956],{},[621,12957,12958,12960,12962],{},[624,12959,3607],{},[624,12961,12611],{},[624,12963,6872],{},[639,12965,12966,12979],{},[621,12967,12968,12973,12976],{},[644,12969,12970],{},[48,12971,12972],{},"豆包 1.6-pro",[644,12974,12975],{},"中文优化、速度快",[644,12977,12978],{},"中文代码、中文需求",[621,12980,12981,12986,12989],{},[644,12982,12983],{},[48,12984,12985],{},"Claude Sonnet 4.5",[644,12987,12988],{},"编程能力强",[644,12990,12991],{},"复杂重构、英文代码",[35,12993,12994],{},"开发者可以在一键切换，根据任务选择最优模型。",[30,12996,12997],{"id":12997},"当前功能",[5341,12999,13000],{"id":13000},"核心功能",[67,13002,13003,13009,13015,13021,13027,13033],{},[70,13004,13005,13008],{},[48,13006,13007],{},"AI Chat","：侧边栏对话，支持代码问答",[70,13010,13011,13014],{},[48,13012,13013],{},"AI Edit","：选中代码后 AI 改写",[70,13016,13017,13020],{},[48,13018,13019],{},"Composer","：多文件修改，类似 Cursor",[70,13022,13023,13026],{},[48,13024,13025],{},"Agent 模式","：让 AI 自动完成任务",[70,13028,13029,13032],{},[48,13030,13031],{},"MCP 支持","：可接入社区 MCP Server",[70,13034,13035,13038],{},[48,13036,13037],{},"中文优化","：对中文注释和需求理解更好",[5341,13040,13041],{"id":13041},"不足之处",[615,13043,13044,13056],{},[618,13045,13046],{},[621,13047,13048,13050,13052,13054],{},[624,13049,9794],{},[624,13051,5027],{},[624,13053,5001],{},[624,13055,6675],{},[639,13057,13058,13071,13085,13099],{},[621,13059,13060,13063,13065,13068],{},[644,13061,13062],{},"VS Code 插件生态",[644,13064,718],{},[644,13066,13067],{},"完整",[644,13069,13070],{},"Trae 插件较少",[621,13072,13073,13076,13079,13082],{},[644,13074,13075],{},"团队协作",[644,13077,13078],{},"计划中",[644,13080,13081],{},"Team 版",[644,13083,13084],{},"企业功能仍在开发",[621,13086,13087,13090,13093,13096],{},[644,13088,13089],{},"长任务稳定性",[644,13091,13092],{},"良",[644,13094,13095],{},"优",[644,13097,13098],{},"Claude Code 4.5 更稳",[621,13100,13101,13104,13107,13110],{},[644,13102,13103],{},"插件市场",[644,13105,13106],{},"无",[644,13108,13109],{},"有",[644,13111,13112],{},"Cursor 有插件市场",[30,13114,13115],{"id":13115},"市场影响",[5341,13117,13119],{"id":13118},"对国内-ai-ide-市场的影响","对国内 AI IDE 市场的影响",[263,13121,13124],{"className":13122,"code":13123,"language":2043},[2041],"Trae 出现前：\n┌─────────┐    ┌─────────┐    ┌─────────┐\n│ Cursor  │    │ Copilot │    │  其他   │\n│ $20\u002F月  │    │ $10\u002F月  │    │  付费   │\n└─────────┘    └─────────┘    └─────────┘\n  ↓ 门槛高 ↓\n\nTrae 出现后：\n┌─────────┐    ┌─────────┐    ┌─────────┐\n│  Trae   │ →  │ Cursor  │    │ Copilot │\n│  免费   │    │ $20\u002F月  │    │ $10\u002F月  │\n└─────────┘    └─────────┘    └─────────┘\n  ↓ 零门槛 ↓     ↓ 付费用户 ↓  ↓ 付费用户 ↓\n",[39,13125,13123],{"__ignoreMap":268},[5341,13127,13128],{"id":13128},"用户分层",[615,13130,13131,13144],{},[618,13132,13133],{},[621,13134,13135,13138,13141],{},[624,13136,13137],{},"用户类型",[624,13139,13140],{},"选择倾向",[624,13142,13143],{},"原因",[639,13145,13146,13158,13170],{},[621,13147,13148,13153,13155],{},[644,13149,13150],{},[48,13151,13152],{},"轻度个人用户",[644,13154,5027],{},[644,13156,13157],{},"免费够用",[621,13159,13160,13165,13167],{},[644,13161,13162],{},[48,13163,13164],{},"重度个人用户",[644,13166,5001],{},[644,13168,13169],{},"功能更全",[621,13171,13172,13177,13180],{},[644,13173,13174],{},[48,13175,13176],{},"企业用户",[644,13178,13179],{},"待定",[644,13181,13182],{},"需看 Trae 企业版",[30,13184,13185],{"id":13185},"企业版展望",[35,13187,13188],{},"Trae 即将推出企业版，目标客户：",[67,13190,13191,13197,13203],{},[70,13192,13193,13196],{},[48,13194,13195],{},"国企\u002F央企","：数据合规要求高",[70,13198,13199,13202],{},[48,13200,13201],{},"金融行业","：代码安全审计",[70,13204,13205,13208],{},[48,13206,13207],{},"大型企业","：团队协作需求",[35,13210,13211],{},"预期功能：",[67,13213,13214,13216,13219,13222,13225],{},[70,13215,4043],{},[70,13217,13218],{},"SSO \u002F LDAP 集成",[70,13220,13221],{},"代码审计日志",[70,13223,13224],{},"数据不出境",[70,13226,13227],{},"自定义模型",[30,13229,13230],{"id":13230},"风险与挑战",[5341,13232,13234],{"id":13233},"_1-商业模式可持续性","1. 商业模式可持续性",[35,13236,13237],{},"字节免费策略能维持多久是最大问号：",[67,13239,13240,13243,13246],{},[70,13241,13242],{},"云服务成本不小（Claude API + 服务器）",[70,13244,13245],{},"广告\u002F数据变现模式未验证",[70,13247,13248],{},"一旦收费，用户可能迁移",[5341,13250,13252],{"id":13251},"_2-技术竞争力","2. 技术竞争力",[615,13254,13255,13268],{},[618,13256,13257],{},[621,13258,13259,13261,13263,13265],{},[624,13260,626],{},[624,13262,5027],{},[624,13264,5001],{},[624,13266,13267],{},"差距",[639,13269,13270,13283,13294],{},[621,13271,13272,13275,13277,13280],{},[644,13273,13274],{},"插件生态",[644,13276,4336],{},[644,13278,13279],{},"强",[644,13281,13282],{},"明显",[621,13284,13285,13287,13289,13291],{},[644,13286,13089],{},[644,13288,13092],{},[644,13290,13095],{},[644,13292,13293],{},"存在",[621,13295,13296,13299,13302,13304],{},[644,13297,13298],{},"新功能速度",[644,13300,13301],{},"快",[644,13303,13301],{},[644,13305,13306],{},"持平",[5341,13308,13310],{"id":13309},"_3-企业市场","3. 企业市场",[35,13312,13313],{},"企业采购最看重：",[67,13315,13316,13319,13322,13325],{},[70,13317,13318],{},"SLA 保障",[70,13320,13321],{},"安全认证",[70,13323,13324],{},"技术支持",[70,13326,13327],{},"长期稳定性",[35,13329,13330],{},"这些 Trae 都还在建设中。",[30,13332,9977],{"id":9976},[35,13334,13335,13336,5775],{},"Trae 用\"免费 + 中文 + 不用代理\"三板斧，",[48,13337,13338],{},"几乎垄断了国内中小团队和学生市场",[35,13340,13341,13342,13345],{},"但",[48,13343,13344],{},"长期可持续性是问号","——字节免费策略能维持多久？等付费墙立起来时，国内开发者是否会迁移？",[35,13347,13348,13349,13352],{},"短期建议：",[48,13350,13351],{},"国内开发者优先用 Trae 上手","，同时熟悉一下 Cursor 作为长期备选。",[30,13354,908],{"id":908},[67,13356,13357,13363,13367],{},[70,13358,13359],{},[914,13360,13362],{"href":13361},"\u002Fcoding\u002Fide\u002Ftrae","Trae IDE 完整评测",[70,13364,13365],{},[914,13366,10008],{"href":10007},[70,13368,13369],{},[914,13370,13372],{"href":13371},"\u002Fcoding\u002Fcopilot\u002Ftongyi-lingma","通义灵码 评测",{"title":268,"searchDepth":313,"depth":313,"links":13374},[13375,13376,13377,13382,13386,13390,13391,13396,13397],{"id":9536,"depth":282,"text":9536},{"id":12841,"depth":282,"text":12841},{"id":12853,"depth":282,"text":12853,"children":13378},[13379,13380,13381],{"id":12856,"depth":313,"text":12857},{"id":12908,"depth":313,"text":12909},{"id":12947,"depth":313,"text":12948},{"id":12997,"depth":282,"text":12997,"children":13383},[13384,13385],{"id":13000,"depth":313,"text":13000},{"id":13041,"depth":313,"text":13041},{"id":13115,"depth":282,"text":13115,"children":13387},[13388,13389],{"id":13118,"depth":313,"text":13119},{"id":13128,"depth":313,"text":13128},{"id":13185,"depth":282,"text":13185},{"id":13230,"depth":282,"text":13230,"children":13392},[13393,13394,13395],{"id":13233,"depth":313,"text":13234},{"id":13251,"depth":313,"text":13252},{"id":13309,"depth":313,"text":13310},{"id":9976,"depth":282,"text":9977},{"id":908,"depth":282,"text":908},"Trae 凭借免费 + 中文体验在国内开发者中迅速普及，月活已突破 200 万，超过 Cursor 国内用户基数。",{},"\u002Fnews\u002F2026\u002Ftrae-2m-mau","2026-06-08",{"title":12808,"description":13398},"Trae 官方","https:\u002F\u002Fwww.trae.ai\u002Fblog\u002F2m-mau","news\u002F2026\u002Ftrae-2m-mau","Nw8rXgR3kme6JdRrLf6z3fc7LprWKK7ctAaZuvxVQZY",1782316489316]