{"id":20166,"date":"2026-09-29T09:17:46","date_gmt":"2026-09-29T13:17:46","guid":{"rendered":"https:\/\/wp.glbgpt.com\/?p=20166"},"modified":"2026-09-29T09:17:47","modified_gmt":"2026-09-29T13:17:47","slug":"claude-code-model-selection","status":"publish","type":"post","link":"https:\/\/wp.glbgpt.com\/hub\/zh\/claude-code-model-selection","title":{"rendered":"Claude \u4ee3\u7801\u6a21\u578b\u9009\u62e9\uff1a\u9ed8\u8ba4\u8bbe\u7f6e\u3001\u5207\u6362\u53ca\u6210\u672c"},"content":{"rendered":"<p class=\"wp-block-paragraph\"><strong>\u5728\u9009\u62e9 Claude \u4ee3\u7801\u6a21\u578b\u65f6\uff0c\u5bf9\u4e8e\u89c4\u6a21\u8f83\u5c0f\u4e14\u53ef\u6d4b\u8bd5\u7684\u66f4\u6539\uff0c\u5e94\u4f7f\u7528 Haiku\uff1b\u5bf9\u4e8e\u5e38\u89c4\u5b9e\u73b0\uff0c\u5e94\u4f7f\u7528 Sonnet\uff1b\u800c\u5bf9\u4e8e\u5b58\u5728\u8f83\u5927\u4e0d\u786e\u5b9a\u6027\u6216\u9700\u8981\u66f4\u591a\u63a8\u7406\u7684\u5de5\u4f5c\uff0c\u5219\u5e94\u4f7f\u7528 Opus\u3002.<\/strong> Anthropic \u76ee\u524d\u63a8\u8350 Opus 5.5 \u4f5c\u4e3a\u5e7f\u6cdb\u9002\u7528\u7684\u5165\u95e8\u673a\u578b\uff1b\u5177\u4f53\u9009\u62e9\u662f\u5426\u66f4\u9002\u5408\u8f83\u5c0f\u578b\u53f7\uff0c\u5219\u53d6\u51b3\u4e8e\u60a8\u7684\u4efb\u52a1\u9700\u6c42\u3001\u5ba1\u67e5\u5de5\u4f5c\u91cf\u548c\u9884\u7b97\u3002.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8981\u5207\u6362\u6a21\u578b\uff0c\u8bf7\u6253\u5f00 <code>\/\u6a21\u578b<\/code>. \u65b0\u95fb <kbd>\u8fdb\u5165<\/kbd> \u8981\u4fdd\u5b58\u9ed8\u8ba4\u8bbe\u7f6e\uff0c\u6216\u8005 <kbd>s<\/kbd> \u4ec5\u5207\u6362\u5f53\u524d\u4f1a\u8bdd\u3002\u82e5\u4ec5\u9700\u542f\u52a8\u4e00\u6b21\uff0c\u8bf7\u4f7f\u7528 <code>\u514b\u52b3\u5fb7\u2014\u2014\u300aOpus\u300b\u6a21\u578b<\/code>. \u8fd9\u4e9b\u9009\u9879\u7684\u6301\u4e45\u6027\u5404\u4e0d\u76f8\u540c\uff0c\u56e0\u6b64\u51b3\u5b9a\u5f00\u5173\u5e94\u4fdd\u6301\u591a\u957f\u65f6\u95f4\uff0c\u4e0e\u9009\u62e9\u6a21\u578b\u540c\u6837\u91cd\u8981\u3002.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7f16\u7a0b\u5de5\u4f5c\u8fd8\u6d89\u53ca\u7814\u7a76\u3001\u8bf4\u660e\u3001\u6587\u6863\u7f16\u5199\u4ee5\u53ca\u521b\u610f\u8d44\u6e90\u7684\u5236\u4f5c\u3002GlobalGPT \u5c06\u9886\u5148\u7684 AI \u6a21\u578b\u548c\u591a\u79cd AI \u5de5\u5177\u6574\u5408\u5230\u4e00\u4e2a\u4ef7\u683c\u5b9e\u60e0\u7684\u63a7\u5236\u53f0\u4e2d\uff0c\u800c\u5176\u547d\u4ee4\u884c\u754c\u9762\uff08CLI\uff09\u5219\u5c06\u8fd9\u4e9b\u5de5\u5177\u4e0e\u7ec8\u7aef\u53ca\u5f00\u53d1\u5de5\u4f5c\u6d41\u76f8\u8fde\u63a5\u3002. <a href=\"https:\/\/www.glbgpt.com\/home?inviter=hub_content_home&amp;login=1\">\u4f7f\u7528 GlobalGPT \u6784\u5efa\u60a8\u7684\u5de5\u4f5c\u6d41<\/a> \u5728\u5c06\u60f3\u6cd5\u8f6c\u5316\u4e3a\u53ef\u8fd0\u884c\u4ee3\u7801\u7684\u8fc7\u7a0b\u4e2d\uff0c\u5c06\u8fd9\u4e9b\u76f8\u5173\u4efb\u52a1\u96c6\u4e2d\u7ba1\u7406\u3002.<\/p>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<figure class=\"wp-block-image size-large\"><img alt=\"\" fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"636\" src=\"https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/07\/claude-opus-5-5-1024x636.png\" class=\"wp-image-19921\" srcset=\"https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/07\/claude-opus-5-5-1024x636.png 1024w, https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/07\/claude-opus-5-5-300x186.png 300w, https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/07\/claude-opus-5-5-767x477.png 767w, https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/07\/claude-opus-5-5-1536x955.png 1536w, https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/07\/claude-opus-5-5-18x11.png 18w, https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/07\/claude-opus-5-5.jpg 1897w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-3e41869c wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background has-background wp-element-button\" href=\"https:\/\/www.glbgpt.com\/home\/claude-opus-5-5?inviter=hub_claude55&amp;login=1\"><strong>\u7acb\u5373\u5728 GlobalGPT \u4e0a\u8bd5\u7528 Cluade Opus 5.5<\/strong><\/a><\/div>\n<\/div>\n<\/div>\n\n\n\n<nav class=\"ccms-toc\" aria-label=\"\u672c\u9875\u5185\u5bb9\" style=\"background:#f0f4fb;border:1px solid #d7dfed;border-radius:8px;padding:18px 24px;margin:30px 0;color:#172438;font:16px\/1.65 system-ui,sans-serif\"><p><strong>\u672c\u9875\u5185\u5bb9<\/strong><\/p><ul style=\"margin:0;padding-left:22px\"><li style=\"margin:8px 0\"><a style=\"color:#254fc2;text-decoration:underline\" href=\"#choose-a-model\">\u5728 Claude \u4ee3\u7801\u4e2d\u5e94\u8be5\u4f7f\u7528\u54ea\u4e2a\u6a21\u578b\uff1f<\/a><\/li><li style=\"margin:8px 0\"><a style=\"color:#254fc2;text-decoration:underline\" href=\"#switch-models\">\u5982\u4f55\u5728\u5355\u6b21\u4f1a\u8bdd\u4e2d\u5207\u6362\u6a21\u578b<\/a><\/li><li style=\"margin:8px 0\"><a style=\"color:#254fc2;text-decoration:underline\" href=\"#default-model\">\u5982\u4f55\u8bbe\u7f6e\u9ed8\u8ba4\u6a21\u578b<\/a><\/li><li style=\"margin:8px 0\"><a style=\"color:#254fc2;text-decoration:underline\" href=\"#opusplan\">Opusplan \u5b9e\u9645\u4e0a\u662f\u505a\u4ec0\u4e48\u7684<\/a><\/li><li style=\"margin:8px 0\"><a style=\"color:#254fc2;text-decoration:underline\" href=\"#coding-tests\">\u8fd9\u4e24\u9879\u7f16\u7801\u4efb\u52a1\u63ed\u793a\u4e86\u4ec0\u4e48<\/a><\/li><li style=\"margin:8px 0\"><a style=\"color:#254fc2;text-decoration:underline\" href=\"#model-cost\">\u9009\u62e9\u4e0d\u540c\u7684\u6a21\u578b\u4f1a\u5bf9\u6210\u672c\u4ea7\u751f\u4ec0\u4e48\u5f71\u54cd<\/a><\/li><li style=\"margin:8px 0\"><a style=\"color:#254fc2;text-decoration:underline\" href=\"#troubleshooting\">\u4e3a\u4ec0\u4e48\u4f60\u9009\u62e9\u7684\u6a21\u578b\u53ef\u80fd\u65e0\u6cd5\u594f\u6548<\/a><\/li><li style=\"margin:8px 0\"><a style=\"color:#254fc2;text-decoration:underline\" href=\"#globalgpt-workflow\">\u5229\u7528 GlobalGPT \u6784\u5efa\u66f4\u5168\u9762\u7684\u5de5\u4f5c\u6d41\u7a0b<\/a><\/li><li style=\"margin:8px 0\"><a style=\"color:#254fc2;text-decoration:underline\" href=\"#faq\">\u5e38\u89c1\u95ee\u9898<\/a><\/li><\/ul><\/nav>\n\n\n\n<h2 id=\"choose-a-model\" class=\"wp-block-heading\">\u5728 Claude \u4ee3\u7801\u4e2d\u5e94\u8be5\u4f7f\u7528\u54ea\u4e2a\u6a21\u578b\uff1f<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u9996\u5148\u4ece\u5de5\u4f5c\u5185\u5bb9\u7684\u5f62\u5f0f\u5165\u624b\u3002\u4e00\u4e2a\u8f93\u51fa\u9884\u671f\u660e\u786e\u7684\u7b80\u77ed\u51fd\u6570\uff0c\u5176\u8bc4\u4f30\u65b9\u5f0f\u4e0e\u4e00\u4e2a\u5206\u6563\u5728\u591a\u4e2a\u670d\u52a1\u4e2d\u7684\u95f4\u6b47\u6027\u9519\u8bef\u662f\u4e0d\u540c\u7684\u3002\u5173\u952e\u95ee\u9898\u5728\u4e8e\uff1a\u8be5\u6a21\u578b\u662f\u5426\u80fd\u5728\u5408\u7406\u7684\u5ba1\u67e5\u548c\u8fed\u4ee3\u8fc7\u7a0b\u4e2d\u4ea7\u751f\u53ef\u63a5\u53d7\u7684\u53d8\u66f4\u3002.<\/p>\n\n\n\n<figure class=\"wp-block-table\" style=\"overflow-x:auto;margin:24px 0;border:1px solid #d7dfed;border-radius:8px;box-sizing:border-box;max-width:100%\"><table style=\"width:100%;min-width:640px;border-collapse:collapse;font:15px\/1.6 system-ui,sans-serif\"><thead><tr><th scope=\"col\" style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#172438;background:#edf1fa\">\u5f53\u524d\u578b\u53f7<\/th><th scope=\"col\" style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#172438;background:#edf1fa\">\u5176\u5b9a\u4f4d\u662f\u4ec0\u4e48<\/th><th scope=\"col\" style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#172438;background:#edf1fa\">\u4e00\u9879\u5b9e\u7528\u7684\u5165\u95e8\u4efb\u52a1<\/th><\/tr><\/thead><tbody><tr><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u514b\u52b3\u5fb7\u4ff3\u53e5 4.5<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u5408\u540c\u8303\u56f4\u6709\u9650\uff0c\u5de5\u4f5c\u9ad8\u6548\u5feb\u6377<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u4e00\u6b21\u5c0f\u89c4\u6a21\u7684\u91cd\u6784\u3001\u91cd\u590d\u7684\u8f6c\u6362\uff0c\u6216\u8005\u4e00\u4e2a\u7b80\u5355\u7684\u6d4b\u8bd5\u7528\u4f8b<\/td><\/tr><tr><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u514b\u52b3\u5fb7\u00b7\u6851\u5185\u7279 5<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u5728\u65e5\u5e38\u7f16\u7a0b\u4e2d\u517c\u987e\u667a\u80fd\u4e0e\u901f\u5ea6<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u5177\u6709\u65e2\u5b9a\u6a21\u5f0f\u7684\u529f\u80fd\u3001\u4f8b\u884c\u9519\u8bef\u4fee\u590d\u6216\u4ee3\u7801\u8bf4\u660e<\/td><\/tr><tr><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">Claude Opus 5.5\uff08\u7b80\u4f53\u4e2d\u6587\uff08\u5927\u9646\uff09\uff09<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u590d\u6742\u7684\u63a8\u7406\u548c\u8f83\u957f\u7684\u80fd\u52a8\u7f16\u7801\u4f5c\u4e1a<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u4e00\u79cd\u6a21\u68f1\u4e24\u53ef\u7684\u5931\u8d25\u3001\u67b6\u6784\u6743\u8861\uff0c\u8fd8\u662f\u53d7\u76f8\u4e92\u4f5c\u7528\u7684\u7ea6\u675f\u5f71\u54cd\u800c\u4ea7\u751f\u7684\u53d8\u5316<\/td><\/tr><tr><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">Claude Fable 5.1<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u6700\u8270\u96be\u4e14\u6301\u7eed\u65f6\u95f4\u6700\u957f\u7684\u8c03\u67e5<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u5f53\u8270\u5de8\u7684\u5de5\u4f5c\u4ecd\u80fd\u538b\u5012\u66f4\u5f3a\u7684Opus\u5de5\u4f5c\u5f3a\u5ea6\u65f6\uff0c\u60c5\u51b5\u4fbf\u4f1a\u5347\u7ea7<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\" style=\"font-size:14px;line-height:1.6;color:#52617a;padding:12px\">\u57fa\u4e8e Anthropic \u6587\u6863\u7684\u5f53\u524d\u6a21\u578b\u7cfb\u5217\u53ca\u4efb\u52a1\u9002\u914d\u60c5\u51b5\uff1b\u4efb\u52a1\u5efa\u8bae\u662f\u5207\u5b9e\u53ef\u884c\u7684\u8d77\u70b9\u3002.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u5f53\u9519\u8bef\u6613\u4e8e\u53d1\u73b0\u4e14\u53d8\u66f4\u5e45\u5ea6\u8f83\u5c0f\u65f6\uff0c\u503c\u5f97\u8003\u8651\u4f7f\u7528\u201cHaiku\u201d\u6a21\u5f0f\u3002\u5f53\u65e5\u5e38\u5b9e\u73b0\u9700\u8981\u66f4\u591a\u4e0a\u4e0b\u6587\u548c\u5224\u65ad\u65f6\uff0c\u201cSonnet\u201d\u6a21\u5f0f\u662f\u4e00\u4e2a\u660e\u667a\u7684\u9009\u62e9\u3002\u5f53\u7406\u89e3\u95ee\u9898\u662f\u4efb\u52a1\u7684\u91cd\u8981\u7ec4\u6210\u90e8\u5206\u65f6\uff0c\u503c\u5f97\u8003\u8651\u4f7f\u7528\u201cOpus\u201d\u6a21\u5f0f\u3002\u5bf9\u4e8e\u8981\u6c42\u8f83\u9ad8\u7684\u5de5\u4f5c\uff0c\u201cFable\u201d\u6a21\u5f0f\u503c\u5f97\u5355\u72ec\u51b3\u7b56\uff1b\u5b83\u8d85\u51fa\u4e86\u6211\u4eec\u8fd9\u4e09\u79cd\u7f16\u7801\u6a21\u578b\u7684\u6d4b\u8bd5\u8303\u56f4\u3002.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u4e9b\u53ea\u662f\u8d77\u70b9\uff0c\u5e76\u975e\u8d28\u91cf\u7684\u81ea\u52a8\u4fdd\u8bc1\u3002\u5982\u679c\u4e00\u4e2a\u4ef7\u683c\u8f83\u4f4e\u7684\u65b9\u6848\u9700\u8981\u591a\u6b21\u4fee\u6539\u6216\u5927\u91cf\u5ba1\u6838\uff0c\u6700\u7ec8\u53cd\u800c\u53ef\u80fd\u53d8\u5f97\u6602\u8d35\u3002\u53cd\u4e4b\uff0c\u5bf9\u4e8e\u5df2\u7ecf\u901a\u8fc7\u60a8\u68c0\u67e5\u7684\u7b80\u5355\u8f6c\u6362\uff0c\u66f4\u5927\u578b\u7684\u6a21\u578b\u53ef\u80fd\u51e0\u4e4e\u65e0\u6cd5\u5e26\u6765\u989d\u5916\u4ef7\u503c\u3002\u82e5\u8981\u5c06\u5e94\u7528\u8303\u56f4\u6269\u5c55\u5230 Claude Code \u4e4b\u5916\uff0c, <a href=\"https:\/\/www.glbgpt.com\/hub\/claude-haiku-vs-sonnet-vs-opus\/\">\u6bd4\u8f83 Claude \u7cfb\u5217\u578b\u53f7<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1440\" height=\"900\" src=\"https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/09\/anthropic-model-lineup-20260928_ac366ec699fe4dc393b80b2cf128cf46.webp\" alt=\"Anthropic \u5f53\u524d\u9488\u5bf9 Fable 5.1\u3001Opus 5.5\u3001Sonnet 5 \u548c Haiku 4.5 \u7684\u673a\u578b\u5bf9\u6bd4\u3002.\" class=\"wp-image-20171\" srcset=\"https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/09\/anthropic-model-lineup-20260928_ac366ec699fe4dc393b80b2cf128cf46.webp 1440w, https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/09\/anthropic-model-lineup-20260928_ac366ec699fe4dc393b80b2cf128cf46-300x188.webp 300w, https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/09\/anthropic-model-lineup-20260928_ac366ec699fe4dc393b80b2cf128cf46-1024x640.webp 1024w, https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/09\/anthropic-model-lineup-20260928_ac366ec699fe4dc393b80b2cf128cf46-768x480.webp 768w, https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/09\/anthropic-model-lineup-20260928_ac366ec699fe4dc393b80b2cf128cf46-18x12.webp 18w\" sizes=\"(max-width: 1440px) 100vw, 1440px\" \/><figcaption class=\"wp-element-caption\">Anthropic \u7684\u673a\u578b\u5217\u8868\uff0c\u622a\u81f3 2026 \u5e74 9 \u6708 28 \u65e5\u3002Claude \u4ee3\u7801\u4e2d\u7684\u673a\u578b\u4f9b\u5e94\u60c5\u51b5\u53d6\u51b3\u4e8e\u60a8\u7684\u8fd0\u8425\u5546\u548c\u8d26\u6237\u3002.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\"(\u300a\u4e16\u754c\u4eba\u6743\u5ba3\u8a00\u300b) <a href=\"https:\/\/platform.claude.com\/docs\/en\/about-claude\/models\/overview\">\u5b98\u65b9\u8f66\u578b\u6982\u89c8<\/a> \u5217\u51fa\u4e86 Fable 5.1\u3001Opus 5.5 \u548c Sonnet 5 \u7684 100 \u4e07\u4ee4\u724c\u4e0a\u4e0b\u6587\u7a97\u53e3\uff0c\u4ee5\u53ca Haiku 4.5 \u7684 20 \u4e07\u4ee4\u724c\u4e0a\u4e0b\u6587\u7a97\u53e3\u3002\u8fd9\u4e9b\u662f API \u89c4\u8303\u3002 \u60a8\u7684 Claude \u4ee3\u7801\u63d0\u4f9b\u5546\u3001\u8d26\u6237\u548c\u914d\u7f6e\u5c06\u51b3\u5b9a\u4f1a\u8bdd\u4e2d\u53ef\u7528\u7684\u4e0a\u4e0b\u6587\u9009\u9879\u3002\u8f83\u5927\u7684\u4e0a\u4e0b\u6587\u7a97\u53e3\u5bf9\u4e8e\u63d0\u4f9b\u5fc5\u8981\u7684\u4e0a\u4e0b\u6587\u4fe1\u606f\u5f88\u6709\u5e2e\u52a9\uff1b\u4f46\u82e5\u7528\u65e0\u5173\u5185\u5bb9\u586b\u5145\u8be5\u7a97\u53e3\uff0c\u4ecd\u4f1a\u589e\u52a0\u6a21\u578b\u7684\u5904\u7406\u8d1f\u62c5\u3002.<\/p>\n\n\n\n<h2 id=\"switch-models\" class=\"wp-block-heading\">\u5982\u4f55\u5728\u5355\u6b21\u4f1a\u8bdd\u4e2d\u5207\u6362\u6a21\u578b<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u4ea4\u4e92\u5f0f\u4f1a\u8bdd\u4e2d\uff0c\u8fd0\u884c <code>\/\u6a21\u578b<\/code> \u4ee5\u6253\u5f00\u6a21\u578b\u9009\u62e9\u5668\u3002\u9009\u4e2d\u6a21\u578b\u884c\uff0c\u7136\u540e\u6309 <kbd>s<\/kbd> \u5982\u679c\u8fd9\u662f\u4e00\u6b21\u6027\u66f4\u6539\uff0c\u8bf7\u6309 <kbd>\u8fdb\u5165<\/kbd> \u5c06\u6240\u9009\u5185\u5bb9\u4fdd\u5b58\u4e3a\u60a8\u7684\u7528\u6237\u9ed8\u8ba4\u8bbe\u7f6e\u3002\u8f93\u5165 <code>\/\u6a21\u6001\u5341\u56db\u884c\u8bd7<\/code> \u5728\u5f53\u524d\u7248\u672c\u4e2d\uff0c\u76f4\u63a5\u64cd\u4f5c\u4e5f\u4f1a\u5c06\u5176\u4fdd\u5b58\u4e0b\u6765\u3002.<\/p>\n\n\n\n<style>\n.ccms-commands{border:1px solid #d8dfeb;border-radius:8px;padding:22px;background:#fff;color:#172438;font:16px\/1.6 system-ui,sans-serif;margin:28px 0}.ccms-commands h3{color:#172438;font-size:1.3rem;line-height:1.3;margin:0 0 10px}.ccms-commands p{color:#34435d;margin:12px 0}.ccms-commands a{color:#254fc2;text-decoration:underline}.ccms-commands code,.ccms-commands kbd{font:14px\/1.5 ui-monospace,SFMono-Regular,monospace;color:#172438;background:#edf1fa;padding:2px 5px;border-radius:3px}.ccms-commands__scroll{overflow-x:auto}.ccms-commands table{border-collapse:collapse;width:100%;min-width:620px;text-align:left}.ccms-commands th,.ccms-commands td{padding:12px 10px;border-bottom:1px solid #d8dfeb;color:#172438;vertical-align:top}.ccms-commands th{background:#edf1fa;font-weight:600}.ccms-commands caption{text-align:left;font-size:14px;color:#43536f;margin-bottom:10px}@media(max-width:520px){.ccms-commands{padding:16px}}\n<\/style>\n<section class=\"ccms-commands\" aria-labelledby=\"ccms-command-title\" style=\"border:1px solid #d8dfeb;border-radius:8px;padding:22px;background:#fff;color:#172438;font:16px\/1.6 system-ui,sans-serif;margin:28px 0;box-sizing:border-box;max-width:100%\">\n  <h3 id=\"ccms-command-title\" style=\"color:#172438;font-size:1.3rem;line-height:1.3;margin:0 0 10px\">\u6839\u636e\u66f4\u6539\u5e94\u6301\u7eed\u591a\u957f\u65f6\u95f4\u6765\u9009\u62e9\u76f8\u5e94\u7684\u547d\u4ee4<\/h3>\n  <div class=\"ccms-commands__scroll\" style=\"overflow-x:auto;box-sizing:border-box;max-width:100%\"><table style=\"border-collapse:collapse;width:100%;min-width:620px;text-align:left\"><caption style=\"text-align:left;font-size:14px;color:#43536f;margin-bottom:10px\">\u5df2\u8bb0\u5f55\u7684 Claude \u4ee3\u7801\u884c\u4e3a\uff0c\u6838\u67e5\u65e5\u671f\uff1a2026\u5e749\u670828\u65e5<\/caption><thead><tr><th scope=\"col\" style=\"padding:12px 10px;border-bottom:1px solid #d8dfeb;color:#172438;vertical-align:top;background:#edf1fa;font-weight:600\">\u4f60\u7684\u76ee\u6807<\/th><th scope=\"col\" style=\"padding:12px 10px;border-bottom:1px solid #d8dfeb;color:#172438;vertical-align:top;background:#edf1fa;font-weight:600\">\u8be5\u600e\u4e48\u505a<\/th><th scope=\"col\" style=\"padding:12px 10px;border-bottom:1px solid #d8dfeb;color:#172438;vertical-align:top;background:#edf1fa;font-weight:600\">\u5df2\u4fdd\u5b58\u9ed8\u8ba4\u66f4\u6539\uff1f<\/th><\/tr><\/thead><tbody>\n    <tr><th scope=\"row\" style=\"padding:12px 10px;border-bottom:1px solid #d8dfeb;color:#172438;vertical-align:top;background:#edf1fa;font-weight:600\">\u4ec5\u5207\u6362\u6b64\u4ea4\u4e92\u5f0f\u4f1a\u8bdd<\/th><td style=\"padding:12px 10px;border-bottom:1px solid #d8dfeb;color:#172438;vertical-align:top\">\u5f00\u653e <code style=\"font:14px\/1.5 ui-monospace,SFMono-Regular,monospace;color:#172438;background:#edf1fa;padding:2px 5px;border-radius:3px\">\/\u6a21\u578b<\/code>, \u9009\u62e9\u4e00\u6b3e\u673a\u578b\uff0c\u6309 <kbd style=\"font:14px\/1.5 ui-monospace,SFMono-Regular,monospace;color:#172438;background:#edf1fa;padding:2px 5px;border-radius:3px\">s<\/kbd>.<\/td><td style=\"padding:12px 10px;border-bottom:1px solid #d8dfeb;color:#172438;vertical-align:top\">\u4e0d.<\/td><\/tr>\n    <tr><th scope=\"row\" style=\"padding:12px 10px;border-bottom:1px solid #d8dfeb;color:#172438;vertical-align:top;background:#edf1fa;font-weight:600\">\u4fdd\u5b58\u5fc3\u4eea\u7684\u6b3e\u5f0f<\/th><td style=\"padding:12px 10px;border-bottom:1px solid #d8dfeb;color:#172438;vertical-align:top\">\u5f00\u653e <code style=\"font:14px\/1.5 ui-monospace,SFMono-Regular,monospace;color:#172438;background:#edf1fa;padding:2px 5px;border-radius:3px\">\/\u6a21\u578b<\/code> \u5e76\u6309\u4e0b <kbd style=\"font:14px\/1.5 ui-monospace,SFMono-Regular,monospace;color:#172438;background:#edf1fa;padding:2px 5px;border-radius:3px\">\u8fdb\u5165<\/kbd>, \uff0c\u6216\u8f93\u5165 <code style=\"font:14px\/1.5 ui-monospace,SFMono-Regular,monospace;color:#172438;background:#edf1fa;padding:2px 5px;border-radius:3px\">\/\u6a21\u6001\u5341\u56db\u884c\u8bd7<\/code>.<\/td><td style=\"padding:12px 10px;border-bottom:1px solid #d8dfeb;color:#172438;vertical-align:top\">\u662f\u7684\uff0c\u5f53\u7528\u6237\u8bbe\u7f6e\u5177\u6709\u5199\u5165\u6743\u9650\u65f6\u3002.<\/td><\/tr>\n    <tr><th scope=\"row\" style=\"padding:12px 10px;border-bottom:1px solid #d8dfeb;color:#172438;vertical-align:top;background:#edf1fa;font-weight:600\">\u5728 Opus \u4e0a\u5f00\u59cb\u5355\u6b21\u4f1a\u8bdd<\/th><td style=\"padding:12px 10px;border-bottom:1px solid #d8dfeb;color:#172438;vertical-align:top\">\u542f\u52a8 <code style=\"font:14px\/1.5 ui-monospace,SFMono-Regular,monospace;color:#172438;background:#edf1fa;padding:2px 5px;border-radius:3px\">\u514b\u52b3\u5fb7\u2014\u2014\u300aOpus\u300b\u6a21\u578b<\/code>.<\/td><td style=\"padding:12px 10px;border-bottom:1px solid #d8dfeb;color:#172438;vertical-align:top\">\u4e0d.<\/td><\/tr>\n    <tr><th scope=\"row\" style=\"padding:12px 10px;border-bottom:1px solid #d8dfeb;color:#172438;vertical-align:top;background:#edf1fa;font-weight:600\">\u6062\u590d\u4e3a\u8be5\u8d26\u6237\u7684\u8fd0\u884c\u65f6\u9ed8\u8ba4\u503c<\/th><td style=\"padding:12px 10px;border-bottom:1px solid #d8dfeb;color:#172438;vertical-align:top\">\u4f7f\u7528 <code style=\"font:14px\/1.5 ui-monospace,SFMono-Regular,monospace;color:#172438;background:#edf1fa;padding:2px 5px;border-radius:3px\">\/\u9ed8\u8ba4\u6a21\u578b<\/code>.<\/td><td style=\"padding:12px 10px;border-bottom:1px solid #d8dfeb;color:#172438;vertical-align:top\">\u6e05\u9664\u6a21\u578b\u8986\u76d6\uff1b\u6700\u7ec8\u786e\u5b9a\u7684\u9ed8\u8ba4\u503c\u53ef\u80fd\u53d6\u51b3\u4e8e\u8d26\u6237\u548c\u7ec4\u7ec7\u8bbe\u7f6e\u3002.<\/td><\/tr>\n    <tr><th scope=\"row\" style=\"padding:12px 10px;border-bottom:1px solid #d8dfeb;color:#172438;vertical-align:top;background:#edf1fa;font-weight:600\">\u68c0\u67e5\u5f53\u524d\u6a21\u578b<\/th><td style=\"padding:12px 10px;border-bottom:1px solid #d8dfeb;color:#172438;vertical-align:top\">\u8fd0\u884c <code style=\"font:14px\/1.5 ui-monospace,SFMono-Regular,monospace;color:#172438;background:#edf1fa;padding:2px 5px;border-radius:3px\">\/status<\/code>.<\/td><td style=\"padding:12px 10px;border-bottom:1px solid #d8dfeb;color:#172438;vertical-align:top\">\u4e0d.<\/td><\/tr>\n  <\/tbody><\/table><\/div>\n  <p style=\"color:#34435d;margin:12px 0\">\u9879\u76ee\u6216\u53d7\u7ba1\u8bbe\u7f6e\u3001\u73af\u5883\u8986\u76d6\u4ee5\u53ca\u5df2\u6062\u590d\u7684\u4f1a\u8bdd\u53ef\u80fd\u4f1a\u5f71\u54cd\u4e0b\u6b21\u542f\u52a8\u3002\u5f53\u53ef\u91cd\u73b0\u6027\u81f3\u5173\u91cd\u8981\u65f6\uff0c\u8bf7\u68c0\u67e5\u5f53\u524d\u6d3b\u52a8\u7684\u6a21\u578b\u3002.<\/p>\n  <p style=\"color:#34435d;margin:12px 0\"><a href=\"https:\/\/code.claude.com\/docs\/en\/model-config#setting-your-model\" style=\"color:#254fc2;text-decoration:underline\">\u6765\u6e90\uff1aClaude \u4ee3\u7801\u6a21\u578b\u914d\u7f6e<\/a>.<\/p>\n<\/section>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u65b0\u7684\u7ec8\u7aef\u4f1a\u8bdd\u4e2d\uff0c\u8bf7\u5728\u542f\u52a8\u65f6\u9009\u62e9\u6a21\u578b\u3002\u5f53 Claude Code \u5728 VS Code \u7684\u96c6\u6210\u7ec8\u7aef\u4e2d\u8fd0\u884c\u65f6\uff0c\u8fd9\u4e9b\u547d\u4ee4\u540c\u6837\u9002\u7528\u3002\u4ee5\u4e0b\u793a\u4f8b\u660e\u786e\u9009\u62e9\u4e86\u67d0\u4e2a\u7248\u672c\uff1a<\/p>\n\n\n\n<div style=\"margin:22px 0;padding:18px;background:#edf1f7;color:#172438;border:1px solid #d7dfed;border-radius:8px;overflow-x:auto\"><pre style=\"margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font:14px\/1.6 ui-monospace,monospace\"><code>claude --model claude-opus-5-5\nclaude --model claude-sonnet-5<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u9488\u5bf9\u60a8\u60f3\u8981\u7684\u4f1a\u8bdd\u8fd0\u884c\u76f8\u5e94\u547d\u4ee4\uff1b\u793a\u4f8b\u4e2d\u63d0\u4f9b\u4e86\u591a\u79cd\u9009\u62e9\u3002\u60a8\u53ef\u4ee5\u4f7f\u7528\u4e0d\u540c\u7684 <code>--\u6a21\u578b<\/code> \u65e0\u9700\u53cd\u590d\u4fee\u6539\u5171\u4eab\u7684\u5df2\u4fdd\u5b58\u9ed8\u8ba4\u503c\u5373\u53ef\u8bbe\u7f6e\u8fd9\u4e9b\u503c\u3002\u8bf7\u4f7f\u7528 <code>\/status<\/code> \u4ee5\u68c0\u67e5\u5f53\u524d\u9009\u4e2d\u7684\u6a21\u578b\u3002.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8bf8\u5982\u4ee5\u4e0b\u8fd9\u4e9b\u59d3\u6c0f\uff1a <code>opus<\/code> \u548c <code>\u5341\u56db\u884c\u8bd7<\/code> \u53ef\u4ee5\u5347\u7ea7\u5230\u66f4\u65b0\u7248\u672c\u3002\u5176\u5206\u8fa8\u7387\u8fd8\u53d6\u51b3\u4e8e\u670d\u52a1\u63d0\u4f9b\u5546\uff1aAnthropic API \u76ee\u524d\u5c06\u5176\u6620\u5c04\u4e3a Opus 5.5 \u548c Sonnet 5\uff0c\u800c\u4e0d\u540c\u4e91\u670d\u52a1\u63d0\u4f9b\u5546\u7684\u6620\u5c04\u53ef\u80fd\u6709\u6240\u4e0d\u540c\u3002 \u5f53\u9700\u8981\u53ef\u91cd\u73b0\u7684\u8fd0\u884c\u7ed3\u679c\u65f6\uff0c\u8bf7\u4f7f\u7528\u5b8c\u6574\u7684\u6a21\u578b ID\uff1b\u5982\u679c\u60a8\u7684\u73af\u5883\u6709\u7279\u5b9a\u8981\u6c42\uff0c\u8bf7\u68c0\u67e5\u4f9b\u5e94\u5546\u4e13\u7528\u7684\u540d\u79f0\u3002.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Opus 5.5 \u9700\u8981 Claude Code v2.1.280 \u6216\u66f4\u9ad8\u7248\u672c\uff1bSonnet 5 \u9700\u8981 v2.1.197 \u6216\u66f4\u9ad8\u7248\u672c\u3002\u8be5 <a href=\"https:\/\/code.claude.com\/docs\/en\/model-config\">\u6a21\u578b\u914d\u7f6e\u6587\u6863<\/a> \u662f\u5f53\u524d\u522b\u540d\u3001\u7248\u672c\u8981\u6c42\u548c\u63d0\u4f9b\u7a0b\u5e8f\u6620\u5c04\u7684\u53c2\u8003\u8d44\u6599\u3002\u6b64\u5904\u7684\u547d\u4ee4\u4ec5\u4e3a\u6587\u6863\u793a\u4f8b\uff1b\u5728\u201c\u52a8\u624b\u5b9e\u8df5\u201d\u90e8\u5206\u4e2d\uff0c\u6211\u4eec\u5c06\u5355\u72ec\u8bc4\u4f30\u751f\u6210\u7684\u4ee3\u7801\u3002.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1440\" height=\"900\" src=\"https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/09\/claude-model-switching-20260928_bdea45c6a3c84511afb34df961d9542d.webp\" alt=\"Claude \u4ee3\u7801\u6587\u6863\uff0c\u89e3\u91ca\u4e86\u6a21\u578b\u9009\u62e9\u4ee5\u53ca\u201cEnter\u201d\u548c\u201cs\u201d\u952e\u7684\u529f\u80fd\u3002.\" class=\"wp-image-20172\" srcset=\"https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/09\/claude-model-switching-20260928_bdea45c6a3c84511afb34df961d9542d.webp 1440w, https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/09\/claude-model-switching-20260928_bdea45c6a3c84511afb34df961d9542d-300x188.webp 300w, https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/09\/claude-model-switching-20260928_bdea45c6a3c84511afb34df961d9542d-1024x640.webp 1024w, https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/09\/claude-model-switching-20260928_bdea45c6a3c84511afb34df961d9542d-768x480.webp 768w, https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/09\/claude-model-switching-20260928_bdea45c6a3c84511afb34df961d9542d-18x12.webp 18w\" sizes=\"(max-width: 1440px) 100vw, 1440px\" \/><figcaption class=\"wp-element-caption\">\u8f93\u5165 Enter \u53ef\u5c06\u8be5\u6a21\u578b\u4fdd\u5b58\u4e3a\u9ed8\u8ba4\u8bbe\u7f6e\uff1b\u8f93\u5165 s \u4ec5\u66f4\u6539\u5f53\u524d\u4f1a\u8bdd\u4e2d\u7684\u8bbe\u7f6e\u3002.<\/figcaption><\/figure>\n\n\n\n<h2 id=\"default-model\" class=\"wp-block-heading\">\u5982\u4f55\u8bbe\u7f6e\u9ed8\u8ba4\u6a21\u578b<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u82e5\u8981\u8bbe\u7f6e\u4e2a\u4eba\u9ed8\u8ba4\u503c\uff0c\u8bf7\u5728 <code>\/\u6a21\u578b<\/code> \u5e76\u6309\u4e0b <kbd>\u8fdb\u5165<\/kbd>, \uff0c\u6216\u8005\u8f93\u5165\u5982\u4e0b\u9009\u9879\uff1a <code>\/\u6a21\u6001\u5341\u56db\u884c\u8bd7<\/code>. Claude \u4ee3\u7801\u5199\u5165 <code>\u6a21\u578b<\/code> \u5f53\u8be5\u6587\u4ef6\u53ef\u5199\u65f6\uff0c\u8bf7\u5728\u7528\u6237\u8bbe\u7f6e\u4e2d\u586b\u5199\u8be5\u5b57\u6bb5\u3002\u6253\u5f00\u4e00\u4e2a\u65b0\u4f1a\u8bdd\uff0c\u5e76\u68c0\u67e5\u5176\u6d3b\u52a8\u6a21\u578b\u4ee5\u786e\u8ba4\u7ed3\u679c\u3002.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5df2\u4fdd\u5b58\u7684\u504f\u597d\u8bbe\u7f6e\u4e0d\u4f1a\u8986\u76d6\u6240\u6709\u5176\u4ed6\u8bbe\u7f6e\u3002\u542f\u52a8\u6807\u5fd7\uff0c, <code>ANTHROPIC_MODEL<\/code> \u5728 shell\u3001\u9879\u76ee\u6216\u6258\u7ba1\u8bbe\u7f6e\u4e2d\uff0c\u6216\u8005\u5728\u914d\u7f6e\u4e3a\u8986\u76d6\u7528\u6237\u9009\u62e9\u7684\u7ec4\u7ec7\u9ed8\u8ba4\u8bbe\u7f6e\u4e0b\uff0c\u542f\u52a8\u65f6\u53ef\u80fd\u4f1a\u9009\u62e9\u5176\u4ed6\u5185\u5bb9\u3002\u6062\u590d\u7684\u4f1a\u8bdd\u4e5f\u53ef\u80fd\u4fdd\u7559\u5176\u5df2\u4fdd\u5b58\u8bb0\u5f55\u4e2d\u7684\u6a21\u578b\u3002\u8bf7\u68c0\u67e5\u542f\u52a8\u4fe1\u606f\u5e76 <code>\/status<\/code> \u5728\u8ba4\u5b9a\u8fd9\u4e2a\u9009\u62e9\u5df2\u7ecf\u5931\u53bb\u4e4b\u524d\u3002.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>\/\u9ed8\u8ba4\u6a21\u578b<\/code> \u6e05\u9664\u60a8\u7684\u6a21\u578b\u8986\u76d6\u8bbe\u7f6e\uff0c\u5e76\u6062\u590d\u4e3a\u60a8\u7684\u8d26\u6237\u548c\u914d\u7f6e\u5bf9\u5e94\u7684\u8fd0\u884c\u65f6\u9ed8\u8ba4\u503c\u3002\u8be5\u8bcd <code>\u9ed8\u8ba4<\/code> \u8fd9\u662f\u4e00\u4e2a\u91cd\u7f6e\u503c\uff0c\u5e76\u975e\u67d0\u4e2a\u56fa\u5b9a Claude \u6a21\u578b\u7684\u540d\u79f0\u3002\u4e0d\u5e94\u5c06\u5176\u7528\u4f5c\u53ef\u91cd\u73b0\u7684\u6a21\u578b\u6807\u8bc6\u7b26\u3002.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u9700\u8fdb\u884c\u9ad8\u7ea7\u914d\u7f6e\uff0c, <code>ANTHROPIC_DEFAULT_MODEL<\/code> \u4ece v2.1.236 \u7248\u672c\u8d77\uff0c\u8be5\u9009\u9879\u63d0\u4f9b\u4e86\u5907\u7528\u521d\u59cb\u9009\u62e9\u3002\u5b83\u4f4d\u4e8e\u663e\u5f0f\u542f\u52a8\u3001\u73af\u5883\u3001\u8bbe\u7f6e\u548c\u7ec4\u7ec7\u9009\u9879\u4e4b\u4e0b\uff0c\u5e76\u5ffd\u7565\u5305\u62ec\u4ee5\u4e0b\u5728\u5185\u7684\u503c\uff1a <code>\u4ff3\u53e5<\/code> \u548c <code>opusplan<\/code>. \u5bf9\u4e8e\u4e00\u822c\u7684\u4e2a\u4eba\u504f\u597d\u800c\u8a00\uff0c\u9009\u62e9\u5668\u66f4\u5bb9\u6613\u9a8c\u8bc1\u3002\u53c2\u89c1 <a href=\"https:\/\/code.claude.com\/docs\/en\/settings\">Claude \u4ee3\u7801\u8bbe\u7f6e<\/a> \u5f53\u6d89\u53ca\u5171\u4eab\u914d\u7f6e\u65f6\u3002.<\/p>\n\n\n\n<h2 id=\"opusplan\" class=\"wp-block-heading\">Opusplan \u5b9e\u9645\u4e0a\u662f\u505a\u4ec0\u4e48\u7684<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>opusplan<\/code> \u5728\u89c4\u5212\u6a21\u5f0f\u4e0b\u4f7f\u7528Opus\uff0c\u5728\u6267\u884c\u9636\u6bb5\u4f7f\u7528Sonnet\u3002\u5176\u5438\u5f15\u529b\u4e0d\u8a00\u800c\u55bb\uff1a\u5148\u5229\u7528\u66f4\u5f3a\u5927\u7684\u63a8\u7406\u6a21\u578b\u6765\u5236\u5b9a\u65b9\u6848\uff0c\u518d\u501f\u52a9\u65e5\u5e38\u7f16\u7801\u6a21\u578b\u6765\u6267\u884c\u8be5\u8ba1\u5212\u3002.<\/p>\n\n\n\n<style>\n.ccms-opusplan{border:1px solid #d7dfed;border-radius:8px;background:#f8faff;color:#172438;padding:22px;margin:26px 0;font:16px\/1.6 system-ui,sans-serif}.ccms-opusplan h3{color:#172438;font-size:1.25rem;margin:0 0 16px}.ccms-opusplan p{color:#34445e;margin:12px 0}.ccms-opusplan__flow{display:flex;gap:16px;align-items:center}.ccms-opusplan__step{background:#e9edfc;border-radius:6px;padding:18px;flex:1}.ccms-opusplan__step strong{display:block;color:#172438;font-size:1.2rem}.ccms-opusplan__arrow{font-size:24px;color:#4b55ba}.ccms-opusplan a{color:#254fc2;text-decoration:underline}@media(max-width:520px){.ccms-opusplan{padding:16px}.ccms-opusplan__flow{flex-direction:column;align-items:stretch}.ccms-opusplan__arrow{text-align:center;transform:rotate(90deg)}}\n<\/style>\n<section class=\"ccms-opusplan\" aria-labelledby=\"ccms-opusplan-title\" style=\"border:1px solid #d7dfed;border-radius:8px;background:#f8faff;color:#172438;padding:22px;margin:26px 0;font:16px\/1.6 system-ui,sans-serif;box-sizing:border-box;max-width:100%\">\n<h3 id=\"ccms-opusplan-title\" style=\"color:#172438;font-size:1.25rem;margin:0 0 16px\">Opusplan \u91c7\u7528\u4ee5\u4e0b\u5de5\u4f5c\u6a21\u5f0f<\/h3>\n<div class=\"ccms-opusplan__flow\" style=\"display:flex;gap:16px;align-items:center;box-sizing:border-box;max-width:100%;flex-wrap:wrap\"><div class=\"ccms-opusplan__step\" style=\"background:#e9edfc;border-radius:6px;padding:18px;flex:1;box-sizing:border-box;max-width:100%\">\u8ba1\u5212\u6a21\u5f0f<strong style=\"display:block;color:#172438;font-size:1.2rem\">\u4f5c\u54c1<\/strong>\u9010\u6b65\u5b9e\u8df5\u8fd9\u4e00\u65b9\u6cd5\u3002.<\/div><span class=\"ccms-opusplan__arrow\" aria-hidden=\"true\" style=\"font-size:24px;color:#4b55ba\">\u2192<\/span><div class=\"ccms-opusplan__step\" style=\"background:#e9edfc;border-radius:6px;padding:18px;flex:1;box-sizing:border-box;max-width:100%\">\u6267\u884c<strong style=\"display:block;color:#172438;font-size:1.2rem\">\u5341\u56db\u884c\u8bd7<\/strong>\u6267\u884c\u8be5\u8ba1\u5212\u3002.<\/div><\/div>\n<p style=\"color:#34445e;margin:12px 0\">\u5df2\u8bb0\u5f55\u7684\u8def\u7531\u884c\u4e3a\u3002\u8fd9\u4e9b\u540d\u79f0\u6240\u5bf9\u5e94\u7684\u7248\u672c\u53d6\u51b3\u4e8e\u60a8\u7684\u670d\u52a1\u63d0\u4f9b\u5546\u548c\u914d\u7f6e\u3002.<\/p>\n<p style=\"color:#34445e;margin:12px 0\"><a href=\"https:\/\/code.claude.com\/docs\/en\/model-config#opusplan-model-setting\" style=\"color:#254fc2;text-decoration:underline\">\u6765\u6e90\uff1aClaude \u4ee3\u7801\u6a21\u578b\u914d\u7f6e<\/a><\/p>\n<\/section>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u662f\u4e00\u6761\u53d6\u51b3\u4e8e\u6a21\u5f0f\u7684\u89c4\u5219\u3002\u5b83\u4e0d\u4f1a\u68c0\u67e5\u6bcf\u4e2a\u63d0\u793a\uff0c\u4e5f\u4e0d\u4f1a\u81ea\u52a8\u9009\u62e9\u6700\u7ecf\u6d4e\u7684\u5408\u9002\u6a21\u578b\u65cf\u3002\u63d0\u4f9b\u5546\u7684\u6620\u5c04\u548c\u8bbf\u95ee\u9650\u5236\u4ecd\u7136\u9002\u7528\u4e8e\u5e95\u5c42\u6a21\u578b\u3002\u6b64\u5916\uff0c\u540d\u79f0\u672c\u8eab\u4e5f\u4e0d\u80fd\u4fdd\u8bc1\u80fd\u8282\u7701\u6210\u672c\uff1a\u603b\u6210\u672c\u53d6\u51b3\u4e8e\u4efb\u52a1\u6240\u9700\u7684\u89c4\u5212\u3001\u5b9e\u73b0\u3001\u4fee\u8ba2\u548c\u4e0a\u4e0b\u6587\u5904\u7406\u7684\u5de5\u4f5c\u91cf\u3002.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0d\u59a8\u6362\u4e2a\u89d2\u5ea6\u8003\u8651\uff1a\u5f53\u8bbe\u8ba1\u80fd\u4ece\u66f4\u6df1\u5165\u7684\u5206\u6790\u4e2d\u83b7\u76ca\uff0c\u4e14\u5b9e\u73b0\u8fc7\u7a0b\u9075\u5faa\u660e\u786e\u7684\u8ba1\u5212\u65f6\uff0c\u8fd9\u79cd\u505a\u6cd5\u5c31\u503c\u5f97\u91c7\u7eb3\u3002\u4f46\u5982\u679c\u662f\u5c0f\u5e45\u4fee\u6539\uff0c\u90a3\u4e48\u989d\u5916\u7684\u89c4\u5212\u53ef\u80fd\u5c31\u6ca1\u5fc5\u8981\u4e86\u3002.<\/p>\n\n\n\n<h2 id=\"coding-tests\" class=\"wp-block-heading\">\u8fd9\u4e24\u9879\u7f16\u7801\u4efb\u52a1\u63ed\u793a\u4e86\u4ec0\u4e48<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e3a\u4e86\u66f4\u5177\u4f53\u5730\u8bf4\u660e\u6a21\u578b\u9009\u62e9\uff0c\u6211\u4eec\u6d4b\u8bd5\u4e86\u4e00\u4e2a\u9488\u5bf9Unicode\u7684\u5c40\u90e8\u91cd\u6784\u4ee5\u53ca\u4e00\u4e2a\u5177\u6709\u4ea4\u4e92\u5f0f\u8981\u6c42\u7684\u8def\u7531\u9009\u62e9\u5668\u4fee\u590d\u65b9\u6848\u3002\u7ed3\u679c\u8868\u660e\uff0c\u6b63\u786e\u51fd\u6570\u4e0e\u5b8c\u6574\u4ea4\u4ed8\u7ed3\u679c\u4e4b\u95f4\u7684\u533a\u522b\uff0c\u6bd4\u5355\u7eaf\u7684\u5206\u6570\u66f4\u4e3a\u91cd\u8981\u3002.<\/p>\n\n\n\n<style>\n.ccms-test-setup{border:1px solid #d7dfed;border-radius:8px;padding:24px;background:#f8faff;color:#172438;margin:28px 0;font:16px\/1.6 system-ui,sans-serif;box-sizing:border-box}.ccms-test-setup *{box-sizing:border-box}.ccms-test-setup h3,.ccms-test-setup h4{color:#172438;line-height:1.35;margin:0 0 12px}.ccms-test-setup h3{font-size:1.35rem}.ccms-test-setup h4{font-size:1.1rem}.ccms-test-setup p{color:#35435a;margin:12px 0}.ccms-test-setup a{color:#254fc2;text-decoration:underline}.ccms-test-setup .ccms-scroll{overflow-x:auto}.ccms-test-setup table{width:100%;min-width:650px;border-collapse:collapse;text-align:left;font-size:14px}.ccms-test-setup th,.ccms-test-setup td{padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top}.ccms-test-setup th{background:#eaf0fa}.ccms-test-setup details{border:1px solid #d7dfed;border-radius:6px;padding:12px;margin:12px 0;background:#fff}.ccms-test-setup summary{cursor:pointer;font-weight:650;color:#254fc2}.ccms-test-setup pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:520px;overflow:auto;background:#edf1f7;padding:14px;border-radius:4px;color:#162239;font:13px\/1.55 ui-monospace,SFMono-Regular,monospace}.ccms-test-setup code{color:inherit}.ccms-test-setup .ccms-verdict{border-left:4px solid #5b62c8;padding:8px 14px;background:#eef0ff}.ccms-test-setup .ccms-note{font-size:14px}@media(max-width:520px){.ccms-test-setup{padding:16px}.ccms-test-setup pre{padding:10px}}\n<\/style>\n<section class=\"ccms-test-setup\" aria-labelledby=\"ccms-test-setup-title\" style=\"border:1px solid #d7dfed;border-radius:8px;padding:24px;background:#f8faff;color:#172438;margin:28px 0;font:16px\/1.6 system-ui,sans-serif;box-sizing:border-box;max-width:100%\">\n<h3 id=\"ccms-test-setup-title\" style=\"box-sizing:border-box;color:#172438;line-height:1.35;margin:0 0 12px;font-size:1.35rem\">\u6211\u4eec\u5982\u4f55\u6d4b\u8bd5\u7f16\u7801\u7ed3\u679c<\/h3>\n<p style=\"box-sizing:border-box;color:#35435a;margin:12px 0\">2026\u5e749\u670828\u65e5\uff0c\u6211\u4eec\u5411Claude Haiku 4.5\u3001Claude Sonnet 5\u548cClaude Opus 5.5\u5206\u53d1\u4e86\u76f8\u540c\u7684\u4e24\u9879JavaScript\u4efb\u52a1\uff0c\u76f4\u81f3GlobalGPT\u3002 \u6bcf\u4e2a\u6a21\u578b\u90fd\u8fd4\u56de\u4e86\u6e90\u4ee3\u7801\uff1b\u6211\u4eec\u68c0\u67e5\u4e86\u4ee3\u7801\u5e76\u8fd0\u884c\u4e86\u56fa\u5b9a\u7684\u672c\u5730\u68c0\u67e5\u3002\u672c\u6307\u5357\u4e2d\u5173\u4e8eClaude Code\u6a21\u578b\u5207\u6362\u7684\u8bf4\u660e\u6458\u81ea\u5176\u5b98\u65b9\u6587\u6863\u3002.<\/p>\n<p style=\"box-sizing:border-box;color:#35435a;margin:12px 0\">\u6bcf\u6b21\u8bf7\u6c42\u7684\u8f93\u51fa\u9650\u5236\u4e3a 4,096 \u4e2a\u4ee4\u724c\uff0c\u4e0d\u4f7f\u7528\u4efb\u4f55\u5de5\u5177\uff0c\u4e5f\u6ca1\u6709\u5bf9\u8bdd\u5386\u53f2\u8bb0\u5f55\uff0c\u4e14\u91c7\u7528\u9ed8\u8ba4\u6a21\u578b\u8bbe\u7f6e\u3002\u6211\u4eec\u4fdd\u7559\u4e86\u7b2c\u4e00\u4e2a\u53ef\u8bc4\u4f30\u7684\u54cd\u5e94\uff0c\u5305\u62ec\u4e0d\u5b8c\u6574\u7684\u54cd\u5e94\u3002Sonnet \u7684\u8def\u7531\u4efb\u52a1\u4e2d\u51fa\u73b0\u4e86\u4e00\u6b21\u670d\u52a1\u9519\u8bef\uff0c\u5141\u8bb8\u91cd\u8bd5\u4e00\u6b21\uff1a\u4e03\u6b21\u8bf7\u6c42\u5171\u4ea7\u751f\u4e86\u516d\u6761\u8f93\u51fa\u3002.<\/p>\n<p style=\"box-sizing:border-box;color:#35435a;margin:12px 0\">\u8fd9\u4e24\u9879\u5c0f\u578b\u4efb\u52a1\u7528\u4e8e\u8861\u91cf\u8fd4\u56de\u4ee3\u7801\u548c\u4ea4\u4ed8\u5b8c\u6574\u6027\u3002\u5b83\u4eec\u5e76\u672a\u8861\u91cf Claude Code \u7684\u4ee3\u7406\u6267\u884c\u3001\u4ee3\u7801\u5e93\u63a2\u7d22\u6216\u6574\u4e2a\u5f00\u53d1\u4f1a\u8bdd\u3002\u5b9e\u9645\u8d39\u7528\u672a\u4e88\u62ab\u9732\u3002\u6bcf\u9879\u4efb\u52a1\u4ec5\u6709\u4e00\u9879\u89c2\u5bdf\u7ed3\u679c\uff0c\u4e0d\u8db3\u4ee5\u786e\u5b9a\u603b\u4f53\u901f\u5ea6\u6216\u53ef\u9760\u6027\u6392\u540d\u3002.<\/p>\n<details style=\"box-sizing:border-box;border:1px solid #d7dfed;border-radius:6px;padding:12px;margin:12px 0;background:#fff\"><summary style=\"box-sizing:border-box;cursor:pointer;font-weight:650;color:#254fc2\">\u67e5\u770b\u786e\u5207\u7684\u6a21\u578b ID \u548c\u8bc4\u4f30\u6761\u4ef6<\/summary><p style=\"box-sizing:border-box;color:#35435a;margin:12px 0\">\u8bf7\u6c42\u7684ID\uff1a <code style=\"box-sizing:border-box;color:inherit\">claude-haiku-4-5-20251001<\/code>, <code style=\"box-sizing:border-box;color:inherit\">\u514b\u52b3\u5fb7\u00b7\u5341\u56db\u884c\u8bd7-5<\/code>, \u548c <code style=\"box-sizing:border-box;color:inherit\">\u514b\u52b3\u5fb7-\u4f5c\u54c1\u7b2c5\u53f7-\u7b2c5\u9996<\/code>. \u672c\u5730\u6d4b\u8bd5\u662f\u5728 Node.js v24.19.0 \u73af\u5883\u4e0b\u8fdb\u884c\u7684\u3002\u63d0\u793a\u4fe1\u606f\u9488\u5bf9\u7684\u662f Node.js 18 \u53ca\u4ee5\u4e0a\u7248\u672c\uff1bNode.js 18 \u672c\u8eab\u672a\u7ecf\u8fc7\u6d4b\u8bd5\u3002.<\/p><p style=\"box-sizing:border-box;color:#35435a;margin:12px 0\">\u5728\u201c\u86de\u8753\u4efb\u52a1\u201d\u4e2d\u8bbe\u5b9a\u4e868\u4e2a\u884c\u4e3a\u7ec4\uff0c\u5728\u201c\u8def\u5f84\u9009\u62e9\u5668\u201d\u4efb\u52a1\u4e2d\u8bbe\u5b9a\u4e8612\u4e2a\u884c\u4e3a\u7ec4\u3002\u683c\u5f0f\u7b26\u5408\u6027\u548c\u5b8c\u6574\u4ea4\u4ed8\u60c5\u51b5\u5206\u522b\u8fdb\u884c\u62a5\u544a\u3002\u540e\u7eed\u7684\u4ee3\u7801\u5ba1\u67e5\u68c0\u67e5\u88ab\u5355\u72ec\u6807\u6ce8\uff0c\u4e14\u4e0d\u4f1a\u6539\u53d8\u4e0a\u8ff0\u7edf\u8ba1\u6570\u636e\u3002\u6211\u4eec\u5e76\u672a\u7f16\u8f91\u8fd4\u56de\u7684\u6e90\u4ee3\u7801\u4ee5\u4f7f\u5176\u901a\u8fc7\u5ba1\u67e5\u3002.<\/p><\/details>\n<\/section>\n\n\n\n<style>\n.ccms-test-t01{border:1px solid #d7dfed;border-radius:8px;padding:24px;background:#f8faff;color:#172438;margin:28px 0;font:16px\/1.6 system-ui,sans-serif;box-sizing:border-box}.ccms-test-t01 *{box-sizing:border-box}.ccms-test-t01 h3,.ccms-test-t01 h4{color:#172438;line-height:1.35;margin:0 0 12px}.ccms-test-t01 h3{font-size:1.35rem}.ccms-test-t01 h4{font-size:1.1rem}.ccms-test-t01 p{color:#35435a;margin:12px 0}.ccms-test-t01 a{color:#254fc2;text-decoration:underline}.ccms-test-t01 .ccms-scroll{overflow-x:auto}.ccms-test-t01 table{width:100%;min-width:650px;border-collapse:collapse;text-align:left;font-size:14px}.ccms-test-t01 th,.ccms-test-t01 td{padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top}.ccms-test-t01 th{background:#eaf0fa}.ccms-test-t01 details{border:1px solid #d7dfed;border-radius:6px;padding:12px;margin:12px 0;background:#fff}.ccms-test-t01 summary{cursor:pointer;font-weight:650;color:#254fc2}.ccms-test-t01 pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:520px;overflow:auto;background:#edf1f7;padding:14px;border-radius:4px;color:#162239;font:13px\/1.55 ui-monospace,SFMono-Regular,monospace}.ccms-test-t01 code{color:inherit}.ccms-test-t01 .ccms-verdict{border-left:4px solid #5b62c8;padding:8px 14px;background:#eef0ff}.ccms-test-t01 .ccms-note{font-size:14px}@media(max-width:520px){.ccms-test-t01{padding:16px}.ccms-test-t01 pre{padding:10px}}\n<\/style><section class=\"ccms-test-t01\" aria-labelledby=\"ccms-test-t01-title\" style=\"border:1px solid #d7dfed;border-radius:8px;padding:24px;background:#f8faff;color:#172438;margin:28px 0;font:16px\/1.6 system-ui,sans-serif;box-sizing:border-box;max-width:100%\"><h3 id=\"ccms-test-t01-title\" style=\"box-sizing:border-box;color:#172438;line-height:1.35;margin:0 0 12px;font-size:1.35rem\">\u4efb\u52a1 1\uff1a\u5728\u5c0f\u578b slug \u91cd\u6784\u4e2d\u4fdd\u7559 Unicode<\/h3><p style=\"box-sizing:border-box;color:#35435a;margin:12px 0\">\u8be5\u51fd\u6570\u5fc5\u987b\u4fdd\u7559\u975e\u62c9\u4e01\u5b57\u6bcd\u548c\u7ec4\u5408\u7b26\u53f7\uff0c\u89c4\u8303\u5206\u89e3\u540e\u7684\u91cd\u97f3\u7b26\u53f7\uff0c\u5e76\u4fdd\u6301\u5176\u73b0\u6709\u7684 ASCII \u884c\u4e3a\u3002.<\/p><div class=\"ccms-scroll\" style=\"box-sizing:border-box;overflow-x:auto;max-width:100%\"><table style=\"box-sizing:border-box;width:100%;min-width:650px;border-collapse:collapse;text-align:left;font-size:14px\"><caption style=\"box-sizing:border-box\">\u9996\u5148\u8fd4\u56de\u7ed3\u679c\uff0c\u5e76\u5305\u542b\u56fa\u5b9a\u7684\u672c\u5730\u884c\u4e3a\u68c0\u67e5<\/caption><thead style=\"box-sizing:border-box\"><tr style=\"box-sizing:border-box\"><th scope=\"col\" style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top;background:#eaf0fa\">\u6a21\u578b<\/th><th scope=\"col\" style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top;background:#eaf0fa\">\u884c\u4e3a\u68c0\u67e5<\/th><th scope=\"col\" style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top;background:#eaf0fa\">\u54cd\u5e94\u683c\u5f0f<\/th><th scope=\"col\" style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top;background:#eaf0fa\">\u5b8c\u6210\u8981\u6c42\u7684\u9001\u8d27<\/th><\/tr><\/thead><tbody style=\"box-sizing:border-box\"><tr style=\"box-sizing:border-box\"><th scope=\"row\" style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top;background:#eaf0fa\">\u514b\u52b3\u5fb7\u4ff3\u53e5 4.5<\/th><td style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top\">8\/8<\/td><td style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top\">\u9519\u8bef\uff1aMarkdown \u5305\u88c5\u5668<\/td><td style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top\">\u662f\uff1a\u5b8c\u6574\u51fd\u6570<\/td><\/tr><tr style=\"box-sizing:border-box\"><th scope=\"row\" style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top;background:#eaf0fa\">\u514b\u52b3\u5fb7\u00b7\u6851\u5185\u7279 5<\/th><td style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top\">8\/8<\/td><td style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top\">\u53c2\u6570\uff1a\u539f\u59cb JSON<\/td><td style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top\">\u662f\uff1a\u5b8c\u6574\u51fd\u6570<\/td><\/tr><tr style=\"box-sizing:border-box\"><th scope=\"row\" style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top;background:#eaf0fa\">Claude Opus 5.5\uff08\u7b80\u4f53\u4e2d\u6587\uff08\u5927\u9646\uff09\uff09<\/th><td style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top\">8\/8<\/td><td style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top\">\u53c2\u6570\uff1a\u539f\u59cb JSON<\/td><td style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top\">\u662f\uff1a\u5b8c\u6574\u51fd\u6570<\/td><\/tr><\/tbody><\/table><\/div><div class=\"ccms-verdict\" style=\"box-sizing:border-box;border-left:4px solid #5b62c8;padding:8px 14px;background:#eef0ff;max-width:100%\"><p style=\"box-sizing:border-box;color:#35435a;margin:12px 0\"><strong style=\"box-sizing:border-box\">\u89c2\u6d4b\u7ed3\u679c\uff1a<\/strong> \u8fd9\u4e09\u4e2a\u51fd\u6570\u90fd\u901a\u8fc7\u4e86\u76f8\u540c\u7684\u516b\u7ec4\u6d4b\u8bd5\u3002Sonnet \u548c Opus \u4e5f\u7b26\u5408\u539f\u59cb JSON \u54cd\u5e94\u7684\u8981\u6c42\u3002Haiku \u5c06\u5176\u54cd\u5e94\u5305\u88c5\u5728 Markdown \u4e2d\uff0c\u4e14\u5176\u5ba1\u67e5\u8bf4\u660e\u9519\u8bef\u5730\u5c06 NFC \u63cf\u8ff0\u4e3a\u5b57\u7b26\u5206\u89e3\uff1b\u4f46\u5176\u4ee3\u7801\u6b63\u786e\u5730\u8c03\u7528\u4e86 NFC\u3002.<\/p><p style=\"box-sizing:border-box;color:#35435a;margin:12px 0\">\u5c31\u8fd9\u6b21\u5c40\u90e8\u7684\u91cd\u6784\u800c\u8a00\uff0c\u5347\u7ea7\u5e76\u672a\u6539\u5584\u88ab\u6d4b\u8bd5\u51fd\u6570\u7684\u884c\u4e3a\u3002\u683c\u5f0f\u8981\u6c42\u53ca\u968f\u9644\u8bf4\u660e\u7684\u51c6\u786e\u6027\u4ecd\u9700\u5ba1\u6838\u3002.<\/p><\/div><details style=\"box-sizing:border-box;border:1px solid #d7dfed;border-radius:6px;padding:12px;margin:12px 0;background:#fff\"><summary style=\"box-sizing:border-box;cursor:pointer;font-weight:650;color:#254fc2\">\u67e5\u770b\u5b8c\u6574\u7684\u5171\u4eab\u63d0\u793a\u548c\u8f93\u5165\u4ee3\u7801<\/summary><pre style=\"box-sizing:border-box;white-space:pre-wrap;overflow-wrap:anywhere;max-height:520px;overflow:auto;background:#edf1f7;padding:14px;border-radius:4px;color:#162239;font:13px\/1.55 ui-monospace,SFMono-Regular,monospace\"><code style=\"box-sizing:border-box;color:inherit\">SYSTEM\nYou are completing a bounded JavaScript coding task. Return only the requested JSON object with complete source files and brief review notes. Do not claim to have edited files, run commands, or used tools. You have no tool access. Do not include hidden reasoning.\n\nUSER\nImplement the following Node.js 18+ CommonJS function from its current source. Return complete replacement source for src\/slugify.js. Do not add dependencies, imports, I\/O, or other files.\n\nRequired behavior:\n1. slugify(value) returns an empty string for every non-string input.\n2. Normalize string input to Unicode NFC, then lowercase it using JavaScript toLowerCase().\n3. Preserve Unicode letters, numbers, and combining marks. Replace each consecutive run of all other characters with one ASCII hyphen.\n4. Trim leading and trailing hyphens. Preserve the CommonJS export { slugify }.\n5. Existing ASCII behavior must continue to work. Examples: Hello, World! -&gt; hello-world; two   words -&gt; two-words; null -&gt; empty string.\n6. Additional examples: Caf\u00e9 d\u00e9j\u00e0 vu -&gt; caf\u00e9-d\u00e9j\u00e0-vu; decomposed Cafe\\u0301 -&gt; caf\u00e9; \u4e2d\u6587 \u6d4b\u8bd5 42 -&gt; \u4e2d\u6587-\u6d4b\u8bd5-42; **hi___there** -&gt; hi-there; only punctuation or whitespace -&gt; empty string.\n\nCurrent src\/slugify.js:\n```javascript\nfunction slugify(value) {\n  if (typeof value !== &quot;string&quot;) return &quot;&quot;;\n  return value\n    .trim()\n    .toLowerCase()\n    .replace(\/[^a-z0-9]+\/g, &quot;-&quot;)\n    .replace(\/^-+|-+$\/g, &quot;&quot;);\n}\n\nmodule.exports = { slugify };\n\n\n```\n\nReturn exactly one JSON object with this shape:\n{&quot;files&quot;:{&quot;src\/slugify.js&quot;:&quot;complete JavaScript source as a JSON string&quot;},&quot;review_notes&quot;:[&quot;at most four brief implementation or assumption notes&quot;]}\nNo Markdown wrapper. You are returning code for someone else to evaluate locally; do not say that tests passed or that you ran them.\n<\/code><\/pre><\/details><details style=\"box-sizing:border-box;border:1px solid #d7dfed;border-radius:6px;padding:12px;margin:12px 0;background:#fff\"><summary style=\"box-sizing:border-box;cursor:pointer;font-weight:650;color:#254fc2\">\u67e5\u770b Claude Haiku 4.5 \u63d0\u4f9b\u7684\u5b8c\u6574\u56de\u590d\uff08\u6309\u539f\u6837\u5448\u73b0\uff09<\/summary><pre style=\"box-sizing:border-box;white-space:pre-wrap;overflow-wrap:anywhere;max-height:520px;overflow:auto;background:#edf1f7;padding:14px;border-radius:4px;color:#162239;font:13px\/1.55 ui-monospace,SFMono-Regular,monospace\"><code style=\"box-sizing:border-box;color:inherit\">```json\n{\n  &quot;files&quot;: {\n    &quot;src\/slugify.js&quot;: &quot;function slugify(value) {\\n  if (typeof value !== \\&quot;string\\&quot;) return \\&quot;\\&quot;;\\n  \\n  \/\/ Normalize to NFC and lowercase\\n  const normalized = value.normalize(\\&quot;NFC\\&quot;).toLowerCase();\\n  \\n  \/\/ Replace consecutive runs of non-letter, non-number, non-combining-mark characters with a single hyphen\\n  \/\/ Unicode letter categories: L* (Lu, Ll, Lt, Lm, Lo)\\n  \/\/ Unicode number categories: N* (Nd, Nl, No)\\n  \/\/ Unicode combining mark categories: M* (Mn, Mc, Me)\\n  const slugged = normalized.replace(\/[^\\\\p{L}\\\\p{N}\\\\p{M}]+\/gu, \\&quot;-\\&quot;);\\n  \\n  \/\/ Trim leading and trailing hyphens\\n  return slugged.replace(\/^-+|-+$\/g, \\&quot;\\&quot;);\\n}\\n\\nmodule.exports = { slugify };&quot;\n  },\n  &quot;review_notes&quot;: [\n    &quot;Uses String.prototype.normalize(\\&quot;NFC\\&quot;) to decompose composed characters like \u00e9 into base+combining mark, then toLowerCase() applies to normalized string&quot;,\n    &quot;Unicode property escapes (\\\\p{L}, \\\\p{N}, \\\\p{M}) with \/u flag preserve all Unicode letters, numbers, and combining marks while replacing other consecutive characters with single hyphens&quot;,\n    &quot;Existing ASCII behavior is preserved: punctuation and whitespace are replaced with hyphens, then leading\/trailing hyphens are trimmed&quot;,\n    &quot;Non-string inputs return empty string as required; normalized decomposed characters (e.g., Cafe\\\\u0301) are handled correctly by NFC normalization&quot;\n  ]\n}\n```<\/code><\/pre><\/details><details style=\"box-sizing:border-box;border:1px solid #d7dfed;border-radius:6px;padding:12px;margin:12px 0;background:#fff\"><summary style=\"box-sizing:border-box;cursor:pointer;font-weight:650;color:#254fc2\">\u67e5\u770b Claude Sonnet 5 \u8fd4\u56de\u7684\u5b8c\u6574\u56de\u590d<\/summary><pre style=\"box-sizing:border-box;white-space:pre-wrap;overflow-wrap:anywhere;max-height:520px;overflow:auto;background:#edf1f7;padding:14px;border-radius:4px;color:#162239;font:13px\/1.55 ui-monospace,SFMono-Regular,monospace\"><code style=\"box-sizing:border-box;color:inherit\">{&quot;files&quot;:{&quot;src\/slugify.js&quot;:&quot;function slugify(value) {\\n  if (typeof value !== \\&quot;string\\&quot;) return \\&quot;\\&quot;;\\n  return value\\n    .normalize(\\&quot;NFC\\&quot;)\\n    .toLowerCase()\\n    .replace(\/[^\\\\p{L}\\\\p{N}\\\\p{M}]+\/gu, \\&quot;-\\&quot;)\\n    .replace(\/^-+|-+$\/g, \\&quot;\\&quot;);\\n}\\n\\nmodule.exports = { slugify };\\n&quot;},&quot;review_notes&quot;:[&quot;Used Unicode property escapes (\\\\p{L}, \\\\p{N}, \\\\p{M}) with the u flag to preserve letters, numbers, and combining marks across scripts.&quot;,&quot;NFC normalization ensures decomposed sequences like Cafe + combining acute compose to caf\u00e9 before lowercasing.&quot;,&quot;Runs of any other characters (punctuation, whitespace, symbols) collapse to a single hyphen, then leading\/trailing hyphens are trimmed.&quot;]}<\/code><\/pre><\/details><details style=\"box-sizing:border-box;border:1px solid #d7dfed;border-radius:6px;padding:12px;margin:12px 0;background:#fff\"><summary style=\"box-sizing:border-box;cursor:pointer;font-weight:650;color:#254fc2\">\u67e5\u770b Claude Opus 5.5 \u8fd4\u56de\u7684\u5b8c\u6574\u56de\u590d<\/summary><pre style=\"box-sizing:border-box;white-space:pre-wrap;overflow-wrap:anywhere;max-height:520px;overflow:auto;background:#edf1f7;padding:14px;border-radius:4px;color:#162239;font:13px\/1.55 ui-monospace,SFMono-Regular,monospace\"><code style=\"box-sizing:border-box;color:inherit\">{&quot;files&quot;:{&quot;src\/slugify.js&quot;:&quot;function slugify(value) {\\n  if (typeof value !== \\&quot;string\\&quot;) return \\&quot;\\&quot;;\\n  return value\\n    .normalize(\\&quot;NFC\\&quot;)\\n    .toLowerCase()\\n    .replace(\/[^\\\\p{L}\\\\p{N}\\\\p{M}]+\/gu, \\&quot;-\\&quot;)\\n    .replace(\/^-+|-+$\/g, \\&quot;\\&quot;);\\n}\\n\\nmodule.exports = { slugify };\\n&quot;},&quot;review_notes&quot;:[&quot;The input is normalized to NFC before lowercasing, so decomposed input like Cafe\\\\u0301 composes to caf\u00e9.&quot;,&quot;A Unicode property regex with the u flag keeps letters (\\\\p{L}), numbers (\\\\p{N}) and combining marks (\\\\p{M}). Each run of any other characters, including underscores and whitespace, becomes one hyphen.&quot;,&quot;The explicit trim() was removed because the final step strips leading and trailing hyphens, which covers surrounding whitespace.&quot;,&quot;Lowercasing happens after NFC normalization, as the spec orders. toLowerCase can occasionally produce non-NFC output for rare characters, and it is not re-normalized here.&quot;]}<\/code><\/pre><\/details><\/section>\n\n\n\n<style>\n.ccms-test-t02{border:1px solid #d7dfed;border-radius:8px;padding:24px;background:#f8faff;color:#172438;margin:28px 0;font:16px\/1.6 system-ui,sans-serif;box-sizing:border-box}.ccms-test-t02 *{box-sizing:border-box}.ccms-test-t02 h3,.ccms-test-t02 h4{color:#172438;line-height:1.35;margin:0 0 12px}.ccms-test-t02 h3{font-size:1.35rem}.ccms-test-t02 h4{font-size:1.1rem}.ccms-test-t02 p{color:#35435a;margin:12px 0}.ccms-test-t02 a{color:#254fc2;text-decoration:underline}.ccms-test-t02 .ccms-scroll{overflow-x:auto}.ccms-test-t02 table{width:100%;min-width:650px;border-collapse:collapse;text-align:left;font-size:14px}.ccms-test-t02 th,.ccms-test-t02 td{padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top}.ccms-test-t02 th{background:#eaf0fa}.ccms-test-t02 details{border:1px solid #d7dfed;border-radius:6px;padding:12px;margin:12px 0;background:#fff}.ccms-test-t02 summary{cursor:pointer;font-weight:650;color:#254fc2}.ccms-test-t02 pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:520px;overflow:auto;background:#edf1f7;padding:14px;border-radius:4px;color:#162239;font:13px\/1.55 ui-monospace,SFMono-Regular,monospace}.ccms-test-t02 code{color:inherit}.ccms-test-t02 .ccms-verdict{border-left:4px solid #5b62c8;padding:8px 14px;background:#eef0ff}.ccms-test-t02 .ccms-note{font-size:14px}@media(max-width:520px){.ccms-test-t02{padding:16px}.ccms-test-t02 pre{padding:10px}}\n<\/style><section class=\"ccms-test-t02\" aria-labelledby=\"ccms-test-t02-title\" style=\"border:1px solid #d7dfed;border-radius:8px;padding:24px;background:#f8faff;color:#172438;margin:28px 0;font:16px\/1.6 system-ui,sans-serif;box-sizing:border-box;max-width:100%\"><h3 id=\"ccms-test-t02-title\" style=\"box-sizing:border-box;color:#172438;line-height:1.35;margin:0 0 12px;font-size:1.35rem\">\u4efb\u52a1 2\uff1a\u4fee\u590d\u4e00\u4e2a\u8def\u7531\u9009\u62e9\u5668\u5e76\u63d0\u4ea4\u5176\u6d4b\u8bd5\u7528\u4f8b<\/h3><p style=\"box-sizing:border-box;color:#35435a;margin:12px 0\">\u8be5\u51fd\u6570\u5fc5\u987b\u5904\u7406\u6700\u957f\u524d\u7f00\u5339\u914d\u3001\u65b9\u6cd5\u4f18\u5148\u7ea7\u3001\u6bb5\u8fb9\u754c\u3001\u683c\u5f0f\u9519\u8bef\u7684\u89c4\u5219\u4ee5\u53ca\u4e0d\u53ef\u53d8\u7684\u8f93\u5165\u3002\u8bf7\u6c42\u7684\u54cd\u5e94\u4e2d\u8fd8\u5305\u542b\u4e86\u4e00\u4e2a\u65b0\u7684\u6d4b\u8bd5\u6587\u4ef6\u3002.<\/p><div class=\"ccms-scroll\" style=\"box-sizing:border-box;overflow-x:auto;max-width:100%\"><table style=\"box-sizing:border-box;width:100%;min-width:650px;border-collapse:collapse;text-align:left;font-size:14px\"><caption style=\"box-sizing:border-box\">\u9996\u5148\u8fd4\u56de\u7ed3\u679c\uff0c\u5e76\u5305\u542b\u56fa\u5b9a\u7684\u672c\u5730\u884c\u4e3a\u68c0\u67e5<\/caption><thead style=\"box-sizing:border-box\"><tr style=\"box-sizing:border-box\"><th scope=\"col\" style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top;background:#eaf0fa\">\u6a21\u578b<\/th><th scope=\"col\" style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top;background:#eaf0fa\">\u884c\u4e3a\u68c0\u67e5<\/th><th scope=\"col\" style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top;background:#eaf0fa\">\u54cd\u5e94\u683c\u5f0f<\/th><th scope=\"col\" style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top;background:#eaf0fa\">\u5b8c\u6210\u8981\u6c42\u7684\u9001\u8d27<\/th><\/tr><\/thead><tbody style=\"box-sizing:border-box\"><tr style=\"box-sizing:border-box\"><th scope=\"row\" style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top;background:#eaf0fa\">\u514b\u52b3\u5fb7\u4ff3\u53e5 4.5<\/th><td style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top\">\u4ec5\u9488\u5bf9\u5b8c\u6574\u529f\u80fd\uff0c12\u670812\u65e5<\/td><td style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top\">\u5931\u8d25\uff1aJSON \u5185\u5bb9\u88ab\u622a\u65ad<\/td><td style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top\">\u7f16\u53f7\uff1a\u6d4b\u8bd5\u6587\u4ef6\u88ab\u622a\u65ad<\/td><\/tr><tr style=\"box-sizing:border-box\"><th scope=\"row\" style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top;background:#eaf0fa\">\u514b\u52b3\u5fb7\u00b7\u6851\u5185\u7279 5<\/th><td style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top\">\u4ec5\u9488\u5bf9\u5b8c\u6574\u529f\u80fd\uff0c12\u670812\u65e5<\/td><td style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top\">\u5931\u8d25\uff1aJSON \u5185\u5bb9\u88ab\u622a\u65ad<\/td><td style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top\">\u7f16\u53f7\uff1a\u6d4b\u8bd5\u6587\u4ef6\u88ab\u622a\u65ad<\/td><\/tr><tr style=\"box-sizing:border-box\"><th scope=\"row\" style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top;background:#eaf0fa\">Claude Opus 5.5\uff08\u7b80\u4f53\u4e2d\u6587\uff08\u5927\u9646\uff09\uff09<\/th><td style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top\">\u4ec5\u9488\u5bf9\u5b8c\u6574\u529f\u80fd\uff0c12\u670812\u65e5<\/td><td style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top\">\u5931\u8d25\uff1aJSON \u5185\u5bb9\u88ab\u622a\u65ad<\/td><td style=\"box-sizing:border-box;padding:12px 10px;border-bottom:1px solid #d7dfed;color:#172438;vertical-align:top\">\u7f16\u53f7\uff1a\u6d4b\u8bd5\u6587\u4ef6\u88ab\u622a\u65ad<\/td><\/tr><\/tbody><\/table><\/div><div class=\"ccms-verdict\" style=\"box-sizing:border-box;border-left:4px solid #5b62c8;padding:8px 14px;background:#eef0ff;max-width:100%\"><p style=\"box-sizing:border-box;color:#35435a;margin:12px 0\"><strong style=\"box-sizing:border-box\">\u89c2\u6d4b\u7ed3\u679c\uff1a<\/strong> \u6ca1\u6709\u4e00\u4e2a\u6a21\u578b\u80fd\u5728\u5171\u4eab\u7684\u8f93\u51fa\u9650\u5236\u5185\u5b8c\u6210\u8981\u6c42\u7684\u4e24\u4e2a\u6587\u4ef6\u7684\u54cd\u5e94\u3002\u8fd9\u4e09\u4e2a\u6a21\u578b\u5747\u5728\u62a5\u544a\u4e864,096\u4e2a\u5b8c\u6210\u4ee4\u724c\u540e\u505c\u6b62\u8fd0\u884c\u3002\u6bcf\u4e2a\u6a21\u578b\u6b64\u524d\u90fd\u5df2\u8fd4\u56de\u4e86\u4e00\u4e2a\u5b8c\u6574\u7684\u8def\u7531\u5668\u51fd\u6570\uff0c\u8be5\u51fd\u6570\u901a\u8fc7\u4e86\u5341\u4e8c\u4e2a\u56fa\u5b9a\u884c\u4e3a\u7ec4\u7684\u6d4b\u8bd5\uff1b\u800c\u65b0\u7684\u6d4b\u8bd5\u6587\u4ef6\u56e0\u4e0d\u5b8c\u6574\u800c\u672a\u88ab\u6267\u884c\u3002.<\/p><p style=\"box-sizing:border-box;color:#35435a;margin:12px 0\">\u6211\u4eec\u4ec5\u63d0\u53d6\u4e86\u6bcf\u4e2a\u5b8c\u5168\u5c01\u95ed\u7684\u6e90\u4ee3\u7801\u5b57\u7b26\u4e32\u3002\u4e0b\u6587\u4e2d\u7684\u539f\u59cb\u622a\u65ad\u54cd\u5e94\u4fdd\u6301\u539f\u6837\u3002\u56e0\u6b64\uff0c\u51fd\u6570\u8bc4\u5206\u5408\u683c\u5e76\u4e0d\u610f\u5473\u7740\u6574\u4e2a\u8bf7\u6c42\u90fd\u6210\u529f\u4e86\u3002.<\/p><\/div><details style=\"box-sizing:border-box;border:1px solid #d7dfed;border-radius:6px;padding:12px;margin:12px 0;background:#fff\"><summary style=\"box-sizing:border-box;cursor:pointer;font-weight:650;color:#254fc2\">\u4ee3\u7801\u5ba1\u67e5\u7684\u5176\u4ed6\u53d1\u73b0\uff1a\u7b49\u6839\u5e73\u5c40<\/summary><p style=\"box-sizing:border-box;color:#35435a;margin:12px 0\">\u5728\u5b8c\u6210\u76f8\u5173\u68c0\u67e5\u540e\uff0c\u6211\u4eec\u6ce8\u610f\u5230Haiku\u5df2\u5f52\u4e00\u5316 <code style=\"box-sizing:border-box;color:inherit\">\/\/\/<\/code> \u8f6c\u6362\u4e3a\u7a7a\u5b57\u7b26\u4e32\uff0c\u800c\u4e0d\u662f <code style=\"box-sizing:border-box;color:inherit\">\/<\/code>. \u53e6\u4e00\u9879\u72ec\u7acb\u7684\u672c\u5730\u68c0\u67e5\u4f7f\u7528\u4e86\u4e24\u6761 GET \u89c4\u5219\uff0c\u5176\u524d\u7f00\u4e3a <code style=\"box-sizing:border-box;color:inherit\">\/\/\/<\/code> \u548c <code style=\"box-sizing:border-box;color:inherit\">\/<\/code>, \uff0c\u76ee\u6807\u4e3a <code style=\"box-sizing:border-box;color:inherit\">\u7b2c\u4e00\u6b21<\/code> \u548c <code style=\"box-sizing:border-box;color:inherit\">\u7b2c\u4e8c<\/code> \u6309\u8fd9\u4e2a\u987a\u5e8f\u3002\u5bf9\u4e8e <code style=\"box-sizing:border-box;color:inherit\">\/\u4efb\u4f55\u5185\u5bb9<\/code>, \uff0c\u5408\u540c\u89c4\u5b9a <code style=\"box-sizing:border-box;color:inherit\">\u7b2c\u4e00\u6b21<\/code>.<\/p><p style=\"box-sizing:border-box;color:#35435a;margin:12px 0\">\u4ff3\u53e5\u56de\u5f52 <code style=\"box-sizing:border-box;color:inherit\">\u7b2c\u4e8c<\/code>; \u300a\u5341\u56db\u884c\u8bd7\u300b\u548c\u300a\u4f5c\u54c1\u96c6\u300b\u5df2\u56de\u5f52 <code style=\"box-sizing:border-box;color:inherit\">\u7b2c\u4e00\u6b21<\/code>. \u6b64\u6b21\u989d\u5916\u68c0\u67e5\u662f\u7531\u4ee3\u7801\u5ba1\u67e5\u5f15\u53d1\u7684\uff0c\u4e0e\u6d4b\u8bd5\u524d\u8bbe\u5b9a\u7684\u5341\u4e8c\u9879\u68c0\u67e5\u65e0\u5173\u3002\u5b83\u4e0d\u4f1a\u5f71\u54cd\u8fd9\u4e9b\u68c0\u67e5\u7684\u5206\u6570\u3002.<\/p><\/details><p class=\"ccms-note\" style=\"box-sizing:border-box;color:#35435a;margin:12px 0;font-size:14px\">Sonnet \u5728\u5176\u5141\u8bb8\u7684\u91cd\u8bd5\u8fd4\u56de\u6240\u793a\u7684\u622a\u65ad\u54cd\u5e94\u4e4b\u524d\uff0c\u66fe\u9047\u5230\u4e00\u6b21\u670d\u52a1\u9519\u8bef\u3002\u8be5\u670d\u52a1\u6545\u969c\u4e0e\u4ee3\u7801\u8d28\u91cf\u65e0\u5173\u3002\u6ca1\u6709\u4efb\u4f55\u6a21\u578b\u6536\u5230\u8fc7\u518d\u6b21\u5c1d\u8bd5\u6539\u8fdb\u6216\u5b8c\u5584\u5176\u56de\u7b54\u7684\u8bf7\u6c42\u3002.<\/p><details style=\"box-sizing:border-box;border:1px solid #d7dfed;border-radius:6px;padding:12px;margin:12px 0;background:#fff\"><summary style=\"box-sizing:border-box;cursor:pointer;font-weight:650;color:#254fc2\">\u67e5\u770b\u5b8c\u6574\u7684\u5171\u4eab\u63d0\u793a\u548c\u8f93\u5165\u4ee3\u7801<\/summary><pre style=\"box-sizing:border-box;white-space:pre-wrap;overflow-wrap:anywhere;max-height:520px;overflow:auto;background:#edf1f7;padding:14px;border-radius:4px;color:#162239;font:13px\/1.55 ui-monospace,SFMono-Regular,monospace\"><code style=\"box-sizing:border-box;color:inherit\">SYSTEM\nYou are completing a bounded JavaScript coding task. Return only the requested JSON object with complete source files and brief review notes. Do not claim to have edited files, run commands, or used tools. You have no tool access. Do not include hidden reasoning.\n\nUSER\nRepair a Node.js 18+ CommonJS route selector. Return complete replacement src\/router.js and an additional test\/router-added.test.js using node:test and node:assert\/strict. Do not add dependencies or edit existing tests. Do not use I\/O other than the test runner, network, child processes, timers, or any files beyond the two requested outputs.\n\nContract for chooseRoute(request, rules):\n1. Invalid request or rules returns null, without throwing. Request must be a non-null, non-array object; method must be a nonempty ASCII-letter string; path must be a string beginning with \/. Rules must be an array.\n2. Before matching, remove the request path&#x27;s query and fragment starting at the earliest ? or #. Do not URL-decode or collapse interior slashes.\n3. Ignore invalid rules. A valid rule is a non-null, non-array object with method &#x27;*&#x27; or a nonempty ASCII-letter string, prefix a string starting with \/ containing neither ? nor #, and target a nonempty string.\n4. Compare methods case-insensitively. Prefer any matching exact-method rule over all wildcard-method &#x27;*&#x27; rules, even if a wildcard has a longer prefix. Use wildcard rules only if no exact-method route matches the path.\n5. Remove trailing slashes from a rule prefix, except that an all-slash prefix normalizes to \/. A prefix matches the path only at a segment boundary: \/api matches \/api and \/api\/users, never \/apix. Root \/ matches every valid request path.\n6. Within the chosen method group, choose the longest normalized matching prefix. On equal prefix length, choose the earlier rule in the original input array. Return its target. Return null if none matches.\n7. Do not mutate the request, rules array, or rule objects, including order or prefix strings. Preserve module.exports = { chooseRoute }.\n8. Add tests for segment boundaries, query\/fragment removal, method precedence, ties, malformed inputs and immutability. Existing simple GET \/api\/users and POST-no-match cases must still pass.\n\nCurrent src\/router.js:\n```javascript\nfunction chooseRoute(request, rules) {\n  if (!request || !Array.isArray(rules)) return null;\n  for (const rule of rules) {\n    if (request.method === rule.method &amp;&amp; request.path.startsWith(rule.prefix)) {\n      return rule.target;\n    }\n  }\n  return null;\n}\n\nmodule.exports = { chooseRoute };\n\n\n```\n\nExisting regression cases (unchanged): rules [{method:&#x27;GET&#x27;,prefix:&#x27;\/api&#x27;,target:&#x27;api&#x27;},{method:&#x27;GET&#x27;,prefix:&#x27;\/api\/admin&#x27;,target:&#x27;admin&#x27;}]; GET \/api\/users returns &#x27;api&#x27;; POST \/api\/users returns null.\n\nReturn exactly one JSON object with this shape:\n{&quot;files&quot;:{&quot;src\/router.js&quot;:&quot;complete JavaScript source as a JSON string&quot;,&quot;test\/router-added.test.js&quot;:&quot;complete JavaScript tests as a JSON string&quot;},&quot;review_notes&quot;:[&quot;at most four brief implementation or assumption notes&quot;]}\nNo Markdown wrapper. You are returning code for someone else to evaluate locally; do not say you edited files, ran tests, or observed passing results.\n<\/code><\/pre><\/details><details style=\"box-sizing:border-box;border:1px solid #d7dfed;border-radius:6px;padding:12px;margin:12px 0;background:#fff\"><summary style=\"box-sizing:border-box;cursor:pointer;font-weight:650;color:#254fc2\">\u67e5\u770b Claude Haiku 4.5 \u63d0\u4f9b\u7684\u5b8c\u6574\u56de\u590d\uff08\u6309\u539f\u6837\u5448\u73b0\uff09<\/summary><p class=\"ccms-note\" style=\"box-sizing:border-box;color:#35435a;margin:12px 0;font-size:14px\">\u8fd9\u662f\u6536\u5230\u7684\u5b8c\u6574\u54cd\u5e94\u3002\u7531\u4e8e\u8fbe\u5230\u4e86\u9650\u5236\uff0c\u54cd\u5e94\u5728\u8f93\u51fa\u4e2d\u9014\u7ed3\u675f\uff1b\u7f3a\u5931\u7684\u5185\u5bb9\u672a\u88ab\u8865\u5168\u3002.<\/p><pre style=\"box-sizing:border-box;white-space:pre-wrap;overflow-wrap:anywhere;max-height:520px;overflow:auto;background:#edf1f7;padding:14px;border-radius:4px;color:#162239;font:13px\/1.55 ui-monospace,SFMono-Regular,monospace\"><code style=\"box-sizing:border-box;color:inherit\">```json\n{\n  &quot;files&quot;: {\n    &quot;src\/router.js&quot;: &quot;function chooseRoute(request, rules) {\\n  \/\/ Validate request\\n  if (request === null || Array.isArray(request) || typeof request !== &#x27;object&#x27;) {\\n    return null;\\n  }\\n  if (typeof request.method !== &#x27;string&#x27; || request.method.length === 0 || !\/^[a-zA-Z]+$\/.test(request.method)) {\\n    return null;\\n  }\\n  if (typeof request.path !== &#x27;string&#x27; || !request.path.startsWith(&#x27;\/&#x27;)) {\\n    return null;\\n  }\\n\\n  \/\/ Validate rules\\n  if (!Array.isArray(rules)) {\\n    return null;\\n  }\\n\\n  \/\/ Remove query and fragment from path\\n  const cleanPath = request.path.split(\/[?#]\/)[0];\\n\\n  \/\/ Filter and validate rules\\n  const validRules = [];\\n  for (const rule of rules) {\\n    if (rule === null || Array.isArray(rule) || typeof rule !== &#x27;object&#x27;) {\\n      continue;\\n    }\\n    \\n    const method = rule.method;\\n    if (typeof method !== &#x27;string&#x27; || (method !== &#x27;*&#x27; &amp;&amp; (method.length === 0 || !\/^[a-zA-Z]+$\/.test(method)))) {\\n      continue;\\n    }\\n    \\n    const prefix = rule.prefix;\\n    if (typeof prefix !== &#x27;string&#x27; || !prefix.startsWith(&#x27;\/&#x27;) || prefix.includes(&#x27;?&#x27;) || prefix.includes(&#x27;#&#x27;)) {\\n      continue;\\n    }\\n    \\n    const target = rule.target;\\n    if (typeof target !== &#x27;string&#x27; || target.length === 0) {\\n      continue;\\n    }\\n    \\n    validRules.push(rule);\\n  }\\n\\n  \/\/ Normalize prefixes and partition into exact-method and wildcard groups\\n  const exactMethodRules = [];\\n  const wildcardRules = [];\\n  \\n  for (const rule of validRules) {\\n    const normalizedPrefix = rule.prefix === &#x27;\/&#x27; ? &#x27;\/&#x27; : rule.prefix.replace(\/\\\\\/+$\/, &#x27;&#x27;);\\n    \\n    const entry = {\\n      originalRule: rule,\\n      normalizedPrefix: normalizedPrefix,\\n      method: rule.method\\n    };\\n    \\n    if (rule.method === &#x27;*&#x27;) {\\n      wildcardRules.push(entry);\\n    } else {\\n      exactMethodRules.push(entry);\\n    }\\n  }\\n\\n  const requestMethod = request.method.toUpperCase();\\n\\n  \/\/ Helper to check if a prefix matches the path at a segment boundary\\n  function prefixMatches(prefix, path) {\\n    if (prefix === &#x27;\/&#x27;) {\\n      return true;\\n    }\\n    if (!path.startsWith(prefix)) {\\n      return false;\\n    }\\n    \/\/ Check segment boundary: next character must be &#x27;\/&#x27; or end of string\\n    const nextChar = path[prefix.length];\\n    return nextChar === undefined || nextChar === &#x27;\/&#x27;;\\n  }\\n\\n  \/\/ Try exact-method rules first\\n  let bestMatch = null;\\n  let bestLength = -1;\\n  \\n  for (const entry of exactMethodRules) {\\n    if (entry.method.toUpperCase() === requestMethod) {\\n      if (prefixMatches(entry.normalizedPrefix, cleanPath)) {\\n        if (entry.normalizedPrefix.length &gt; bestLength) {\\n          bestMatch = entry.originalRule;\\n          bestLength = entry.normalizedPrefix.length;\\n        }\\n      }\\n    }\\n  }\\n  \\n  if (bestMatch !== null) {\\n    return bestMatch.target;\\n  }\\n\\n  \/\/ Try wildcard rules only if no exact-method match\\n  bestMatch = null;\\n  bestLength = -1;\\n  \\n  for (const entry of wildcardRules) {\\n    if (prefixMatches(entry.normalizedPrefix, cleanPath)) {\\n      if (entry.normalizedPrefix.length &gt; bestLength) {\\n        bestMatch = entry.originalRule;\\n        bestLength = entry.normalizedPrefix.length;\\n      }\\n    }\\n  }\\n  \\n  if (bestMatch !== null) {\\n    return bestMatch.target;\\n  }\\n\\n  return null;\\n}\\n\\nmodule.exports = { chooseRoute };&quot;,\n    &quot;test\/router-added.test.js&quot;: &quot;const test = require(&#x27;node:test&#x27;);\\nconst assert = require(&#x27;node:assert\/strict&#x27;);\\nconst { chooseRoute } = require(&#x27;..\/src\/router.js&#x27;);\\n\\n\/\/ Regression: existing test cases\\ntest(&#x27;GET \/api\/users matches \/api prefix (exact method)&#x27;, () =&gt; {\\n  const rules = [\\n    { method: &#x27;GET&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;api&#x27; },\\n    { method: &#x27;GET&#x27;, prefix: &#x27;\/api\/admin&#x27;, target: &#x27;admin&#x27; }\\n  ];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api\/users&#x27; }, rules), &#x27;api&#x27;);\\n});\\n\\ntest(&#x27;POST \/api\/users returns null (no matching method)&#x27;, () =&gt; {\\n  const rules = [\\n    { method: &#x27;GET&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;api&#x27; },\\n    { method: &#x27;GET&#x27;, prefix: &#x27;\/api\/admin&#x27;, target: &#x27;admin&#x27; }\\n  ];\\n  assert.equal(chooseRoute({ method: &#x27;POST&#x27;, path: &#x27;\/api\/users&#x27; }, rules), null);\\n});\\n\\n\/\/ Invalid request handling\\ntest(&#x27;null request returns null&#x27;, () =&gt; {\\n  assert.equal(chooseRoute(null, []), null);\\n});\\n\\ntest(&#x27;array request returns null&#x27;, () =&gt; {\\n  assert.equal(chooseRoute([], []), null);\\n});\\n\\ntest(&#x27;request with missing method returns null&#x27;, () =&gt; {\\n  assert.equal(chooseRoute({ path: &#x27;\/api&#x27; }, []), null);\\n});\\n\\ntest(&#x27;request with empty method returns null&#x27;, () =&gt; {\\n  assert.equal(chooseRoute({ method: &#x27;&#x27;, path: &#x27;\/api&#x27; }, []), null);\\n});\\n\\ntest(&#x27;request with non-letter method returns null&#x27;, () =&gt; {\\n  assert.equal(chooseRoute({ method: &#x27;GET-POST&#x27;, path: &#x27;\/api&#x27; }, []), null);\\n});\\n\\ntest(&#x27;request with numeric method returns null&#x27;, () =&gt; {\\n  assert.equal(chooseRoute({ method: &#x27;123&#x27;, path: &#x27;\/api&#x27; }, []), null);\\n});\\n\\ntest(&#x27;request with missing path returns null&#x27;, () =&gt; {\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27; }, []), null);\\n});\\n\\ntest(&#x27;request with path not starting with \/ returns null&#x27;, () =&gt; {\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;api&#x27; }, []), null);\\n});\\n\\ntest(&#x27;null rules returns null&#x27;, () =&gt; {\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api&#x27; }, null), null);\\n});\\n\\ntest(&#x27;non-array rules returns null&#x27;, () =&gt; {\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api&#x27; }, { method: &#x27;GET&#x27; }), null);\\n});\\n\\n\/\/ Query and fragment removal\\ntest(&#x27;query string is removed before matching&#x27;, () =&gt; {\\n  const rules = [{ method: &#x27;GET&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;found&#x27; }];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api\/users?foo=bar&#x27; }, rules), &#x27;found&#x27;);\\n});\\n\\ntest(&#x27;fragment is removed before matching&#x27;, () =&gt; {\\n  const rules = [{ method: &#x27;GET&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;found&#x27; }];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api\/users#section&#x27; }, rules), &#x27;found&#x27;);\\n});\\n\\ntest(&#x27;earliest ? or # is used as boundary&#x27;, () =&gt; {\\n  const rules = [{ method: &#x27;GET&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;found&#x27; }];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api\/users?foo#bar&#x27; }, rules), &#x27;found&#x27;);\\n});\\n\\ntest(&#x27;fragment before query is used as boundary&#x27;, () =&gt; {\\n  const rules = [{ method: &#x27;GET&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;found&#x27; }];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api\/users#foo?bar&#x27; }, rules), &#x27;found&#x27;);\\n});\\n\\n\/\/ Segment boundary matching\\ntest(&#x27;prefix \/api matches \/api\/users at segment boundary&#x27;, () =&gt; {\\n  const rules = [{ method: &#x27;GET&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;found&#x27; }];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api\/users&#x27; }, rules), &#x27;found&#x27;);\\n});\\n\\ntest(&#x27;prefix \/api does not match \/apix (no segment boundary)&#x27;, () =&gt; {\\n  const rules = [{ method: &#x27;GET&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;found&#x27; }];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/apix&#x27; }, rules), null);\\n});\\n\\ntest(&#x27;prefix \/api matches \/api exactly at segment boundary&#x27;, () =&gt; {\\n  const rules = [{ method: &#x27;GET&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;found&#x27; }];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api&#x27; }, rules), &#x27;found&#x27;);\\n});\\n\\ntest(&#x27;root \/ matches any valid path&#x27;, () =&gt; {\\n  const rules = [{ method: &#x27;GET&#x27;, prefix: &#x27;\/&#x27;, target: &#x27;root&#x27; }];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/anything\/here&#x27; }, rules), &#x27;root&#x27;);\\n});\\n\\ntest(&#x27;root \/ matches \/&#x27;, () =&gt; {\\n  const rules = [{ method: &#x27;GET&#x27;, prefix: &#x27;\/&#x27;, target: &#x27;root&#x27; }];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/&#x27; }, rules), &#x27;root&#x27;);\\n});\\n\\n\/\/ Prefix normalization (trailing slash removal)\\ntest(&#x27;trailing slash is removed from prefix&#x27;, () =&gt; {\\n  const rules = [{ method: &#x27;GET&#x27;, prefix: &#x27;\/api\/&#x27;, target: &#x27;found&#x27; }];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api\/users&#x27; }, rules), &#x27;found&#x27;);\\n});\\n\\ntest(&#x27;multiple trailing slashes are removed&#x27;, () =&gt; {\\n  const rules = [{ method: &#x27;GET&#x27;, prefix: &#x27;\/api\/\/\/&#x27;, target: &#x27;found&#x27; }];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api\/users&#x27; }, rules), &#x27;found&#x27;);\\n});\\n\\ntest(&#x27;all-slash prefix normalizes to single \/&#x27;, () =&gt; {\\n  const rules = [{ method: &#x27;GET&#x27;, prefix: &#x27;\/\/\/&#x27;, target: &#x27;found&#x27; }];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api&#x27; }, rules), &#x27;found&#x27;);\\n});\\n\\n\/\/ Method case-insensitivity\\ntest(&#x27;method comparison is case-insensitive&#x27;, () =&gt; {\\n  const rules = [{ method: &#x27;get&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;found&#x27; }];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api&#x27; }, rules), &#x27;found&#x27;);\\n});\\n\\ntest(&#x27;request method case does not affect matching&#x27;, () =&gt; {\\n  const rules = [{ method: &#x27;GET&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;found&#x27; }];\\n  assert.equal(chooseRoute({ method: &#x27;get&#x27;, path: &#x27;\/api&#x27; }, rules), &#x27;found&#x27;);\\n});\\n\\n\/\/ Exact-method vs wildcard precedence\\ntest(&#x27;exact-method rule preferred over wildcard with longer prefix&#x27;, () =&gt; {\\n  const rules = [\\n    { method: &#x27;*&#x27;, prefix: &#x27;\/api\/admin\/users&#x27;, target: &#x27;wildcard&#x27; },\\n    { method: &#x27;GET&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;exact&#x27; }\\n  ];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api\/test&#x27; }, rules), &#x27;exact&#x27;);\\n});\\n\\ntest(&#x27;wildcard rule used when no exact-method matches&#x27;, () =&gt; {\\n  const rules = [\\n    { method: &#x27;*&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;wildcard&#x27; },\\n    { method: &#x27;GET&#x27;, prefix: &#x27;\/other&#x27;, target: &#x27;exact&#x27; }\\n  ];\\n  assert.equal(chooseRoute({ method: &#x27;POST&#x27;, path: &#x27;\/api\/users&#x27; }, rules), &#x27;wildcard&#x27;);\\n});\\n\\n\/\/ Longest prefix matching\\ntest(&#x27;longest matching prefix is chosen&#x27;, () =&gt; {\\n  const rules = [\\n    { method: &#x27;GET&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;short&#x27; },\\n    { method: &#x27;GET&#x27;, prefix: &#x27;\/api\/admin&#x27;, target: &#x27;long&#x27; }\\n  ];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api\/admin\/users&#x27; }, rules), &#x27;long&#x27;);\\n});\\n\\n\/\/ Tie-breaking (first rule wins on equal prefix length)\\ntest(&#x27;first rule wins on equal prefix length&#x27;, () =&gt; {\\n  const rules = [\\n    { method: &#x27;GET&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;first&#x27; },\\n    { method: &#x27;GET&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;second&#x27; }\\n  ];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api\/users&#x27; }, rules), &#x27;first&#x27;);\\n});\\n\\n\/\/ Invalid rules are ignored\\ntest(&#x27;null rule is ignored&#x27;, () =&gt; {\\n  const rules = [\\n    null,\\n    { method: &#x27;GET&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;found&#x27; }\\n  ];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api&#x27; }, rules), &#x27;found&#x27;);\\n});\\n\\ntest(&#x27;array rule is ignored&#x27;, () =&gt; {\\n  const rules = [\\n    [],\\n    { method: &#x27;GET&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;found&#x27; }\\n  ];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api&#x27; }, rules), &#x27;found&#x27;);\\n});\\n\\ntest(&#x27;rule with invalid method is ignored&#x27;, () =&gt; {\\n  const rules = [\\n    { method: &#x27;&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;invalid&#x27; },\\n    { method: &#x27;GET&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;valid&#x27; }\\n  ];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api&#x27; }, rules), &#x27;valid&#x27;);\\n});\\n\\ntest(&#x27;rule with non-letter method (if not wildcard) is ignored&#x27;, () =&gt; {\\n  const rules = [\\n    { method: &#x27;G3T&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;invalid&#x27; },\\n    { method: &#x27;GET&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;valid&#x27; }\\n  ];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api&#x27; }, rules), &#x27;valid&#x27;);\\n});\\n\\ntest(&#x27;rule with prefix not starting with \/ is ignored&#x27;, () =&gt; {\\n  const rules = [\\n    { method: &#x27;GET&#x27;, prefix: &#x27;api&#x27;, target: &#x27;invalid&#x27; },\\n    { method: &#x27;GET&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;valid&#x27; }\\n  ];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api&#x27; }, rules), &#x27;valid&#x27;);\\n});\\n\\ntest(&#x27;rule with query in prefix is ignored&#x27;, () =&gt; {\\n  const rules = [\\n    { method: &#x27;GET&#x27;, prefix: &#x27;\/api?foo=bar&#x27;, target: &#x27;invalid&#x27; },\\n    { method: &#x27;GET&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;valid&#x27; }\\n  ];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api&#x27; }, rules), &#x27;valid&#x27;);\\n});\\n\\ntest(&#x27;rule with fragment in prefix is ignored&#x27;, () =&gt; {\\n  const rules = [\\n    { method: &#x27;GET&#x27;, prefix: &#x27;\/api#section&#x27;, target: <\/code><\/pre><\/details><details style=\"box-sizing:border-box;border:1px solid #d7dfed;border-radius:6px;padding:12px;margin:12px 0;background:#fff\"><summary style=\"box-sizing:border-box;cursor:pointer;font-weight:650;color:#254fc2\">\u67e5\u770b Claude Sonnet 5 \u8fd4\u56de\u7684\u5b8c\u6574\u56de\u590d<\/summary><p class=\"ccms-note\" style=\"box-sizing:border-box;color:#35435a;margin:12px 0;font-size:14px\">\u8fd9\u662f\u6536\u5230\u7684\u5b8c\u6574\u54cd\u5e94\u3002\u7531\u4e8e\u8fbe\u5230\u4e86\u9650\u5236\uff0c\u54cd\u5e94\u5728\u8f93\u51fa\u4e2d\u9014\u7ed3\u675f\uff1b\u7f3a\u5931\u7684\u5185\u5bb9\u672a\u88ab\u8865\u5168\u3002.<\/p><pre style=\"box-sizing:border-box;white-space:pre-wrap;overflow-wrap:anywhere;max-height:520px;overflow:auto;background:#edf1f7;padding:14px;border-radius:4px;color:#162239;font:13px\/1.55 ui-monospace,SFMono-Regular,monospace\"><code style=\"box-sizing:border-box;color:inherit\">{&quot;files&quot;:{&quot;src\/router.js&quot;:&quot;function isValidRequest(request) {\\n  return (\\n    request !== null &amp;&amp;\\n    typeof request === &#x27;object&#x27; &amp;&amp;\\n    !Array.isArray(request) &amp;&amp;\\n    typeof request.method === &#x27;string&#x27; &amp;&amp;\\n    request.method.length &gt; 0 &amp;&amp;\\n    \/^[A-Za-z]+$\/.test(request.method) &amp;&amp;\\n    typeof request.path === &#x27;string&#x27; &amp;&amp;\\n    request.path.startsWith(&#x27;\/&#x27;)\\n  );\\n}\\n\\nfunction isValidRule(rule) {\\n  if (rule === null || typeof rule !== &#x27;object&#x27; || Array.isArray(rule)) {\\n    return false;\\n  }\\n  const { method, prefix, target } = rule;\\n\\n  if (typeof method !== &#x27;string&#x27;) return false;\\n  if (method !== &#x27;*&#x27; &amp;&amp; !(method.length &gt; 0 &amp;&amp; \/^[A-Za-z]+$\/.test(method))) {\\n    return false;\\n  }\\n\\n  if (\\n    typeof prefix !== &#x27;string&#x27; ||\\n    !prefix.startsWith(&#x27;\/&#x27;) ||\\n    prefix.includes(&#x27;?&#x27;) ||\\n    prefix.includes(&#x27;#&#x27;)\\n  ) {\\n    return false;\\n  }\\n\\n  if (typeof target !== &#x27;string&#x27; || target.length === 0) return false;\\n\\n  return true;\\n}\\n\\nfunction normalizePrefix(prefix) {\\n  if (\/^\\\\\/+$\/.test(prefix)) return &#x27;\/&#x27;;\\n  return prefix.replace(\/\\\\\/+$\/, &#x27;&#x27;);\\n}\\n\\nfunction prefixMatches(normalizedPrefix, path) {\\n  if (normalizedPrefix === &#x27;\/&#x27;) return true;\\n  if (path === normalizedPrefix) return true;\\n  return path.startsWith(normalizedPrefix + &#x27;\/&#x27;);\\n}\\n\\nfunction stripQueryAndFragment(path) {\\n  let cutIndex = path.length;\\n  for (let i = 0; i &lt; path.length; i++) {\\n    const c = path[i];\\n    if (c === &#x27;?&#x27; || c === &#x27;#&#x27;) {\\n      cutIndex = i;\\n      break;\\n    }\\n  }\\n  return path.slice(0, cutIndex);\\n}\\n\\nfunction chooseRoute(request, rules) {\\n  if (!isValidRequest(request) || !Array.isArray(rules)) return null;\\n\\n  const path = stripQueryAndFragment(request.path);\\n  const reqMethodLower = request.method.toLowerCase();\\n\\n  let bestExact = null; \/\/ { len, idx, target }\\n  let bestWildcard = null;\\n\\n  for (let idx = 0; idx &lt; rules.length; idx++) {\\n    const rule = rules[idx];\\n    if (!isValidRule(rule)) continue;\\n\\n    const normPrefix = normalizePrefix(rule.prefix);\\n    if (!prefixMatches(normPrefix, path)) continue;\\n\\n    const len = normPrefix.length;\\n\\n    if (rule.method === &#x27;*&#x27;) {\\n      if (\\n        bestWildcard === null ||\\n        len &gt; bestWildcard.len ||\\n        (len === bestWildcard.len &amp;&amp; idx &lt; bestWildcard.idx)\\n      ) {\\n        bestWildcard = { len, idx, target: rule.target };\\n      }\\n    } else if (rule.method.toLowerCase() === reqMethodLower) {\\n      if (\\n        bestExact === null ||\\n        len &gt; bestExact.len ||\\n        (len === bestExact.len &amp;&amp; idx &lt; bestExact.idx)\\n      ) {\\n        bestExact = { len, idx, target: rule.target };\\n      }\\n    }\\n  }\\n\\n  if (bestExact !== null) return bestExact.target;\\n  if (bestWildcard !== null) return bestWildcard.target;\\n  return null;\\n}\\n\\nmodule.exports = { chooseRoute };\\n&quot;,&quot;test\/router-added.test.js&quot;:&quot;const test = require(&#x27;node:test&#x27;);\\nconst assert = require(&#x27;node:assert\/strict&#x27;);\\nconst { chooseRoute } = require(&#x27;..\/src\/router&#x27;);\\n\\ntest(&#x27;segment boundary: prefix matches at slash boundary only&#x27;, () =&gt; {\\n  const rules = [\\n    { method: &#x27;GET&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;api&#x27; },\\n  ];\\n  assert.equal(\\n    chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api\/users&#x27; }, rules),\\n    &#x27;api&#x27;\\n  );\\n  assert.equal(\\n    chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api&#x27; }, rules),\\n    &#x27;api&#x27;\\n  );\\n  assert.equal(\\n    chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/apix&#x27; }, rules),\\n    null\\n  );\\n});\\n\\ntest(&#x27;root prefix matches every valid path&#x27;, () =&gt; {\\n  const rules = [{ method: &#x27;GET&#x27;, prefix: &#x27;\/&#x27;, target: &#x27;root&#x27; }];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/&#x27; }, rules), &#x27;root&#x27;);\\n  assert.equal(\\n    chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/anything\/here&#x27; }, rules),\\n    &#x27;root&#x27;\\n  );\\n});\\n\\ntest(&#x27;trailing slashes in rule prefix are normalized&#x27;, () =&gt; {\\n  const rules = [{ method: &#x27;GET&#x27;, prefix: &#x27;\/api\/\/\/&#x27;, target: &#x27;api&#x27; }];\\n  assert.equal(\\n    chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api\/users&#x27; }, rules),\\n    &#x27;api&#x27;\\n  );\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api&#x27; }, rules), &#x27;api&#x27;);\\n});\\n\\ntest(&#x27;all-slash prefix normalizes to \/&#x27;, () =&gt; {\\n  const rules = [{ method: &#x27;GET&#x27;, prefix: &#x27;\/\/\/\/&#x27;, target: &#x27;root&#x27; }];\\n  assert.equal(\\n    chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/whatever&#x27; }, rules),\\n    &#x27;root&#x27;\\n  );\\n});\\n\\ntest(&#x27;query and fragment are stripped before matching&#x27;, () =&gt; {\\n  const rules = [{ method: &#x27;GET&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;api&#x27; }];\\n  assert.equal(\\n    chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api\/users?x=1&amp;y=2&#x27; }, rules),\\n    &#x27;api&#x27;\\n  );\\n  assert.equal(\\n    chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api\/users#section&#x27; }, rules),\\n    &#x27;api&#x27;\\n  );\\n  assert.equal(\\n    chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api\/users?x=1#frag&#x27; }, rules),\\n    &#x27;api&#x27;\\n  );\\n});\\n\\ntest(&#x27;query\/fragment stripping does not decode or collapse slashes&#x27;, () =&gt; {\\n  const rules = [{ method: &#x27;GET&#x27;, prefix: &#x27;\/a\/\/b&#x27;, target: &#x27;weird&#x27; }];\\n  assert.equal(\\n    chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/a\/\/b?x=1&#x27; }, rules),<\/code><\/pre><\/details><details style=\"box-sizing:border-box;border:1px solid #d7dfed;border-radius:6px;padding:12px;margin:12px 0;background:#fff\"><summary style=\"box-sizing:border-box;cursor:pointer;font-weight:650;color:#254fc2\">\u67e5\u770b Claude Opus 5.5 \u8fd4\u56de\u7684\u5b8c\u6574\u56de\u590d<\/summary><p class=\"ccms-note\" style=\"box-sizing:border-box;color:#35435a;margin:12px 0;font-size:14px\">\u8fd9\u662f\u6536\u5230\u7684\u5b8c\u6574\u54cd\u5e94\u3002\u7531\u4e8e\u8fbe\u5230\u4e86\u9650\u5236\uff0c\u54cd\u5e94\u5728\u8f93\u51fa\u4e2d\u9014\u7ed3\u675f\uff1b\u7f3a\u5931\u7684\u5185\u5bb9\u672a\u88ab\u8865\u5168\u3002.<\/p><pre style=\"box-sizing:border-box;white-space:pre-wrap;overflow-wrap:anywhere;max-height:520px;overflow:auto;background:#edf1f7;padding:14px;border-radius:4px;color:#162239;font:13px\/1.55 ui-monospace,SFMono-Regular,monospace\"><code style=\"box-sizing:border-box;color:inherit\">{&quot;files&quot;:{&quot;src\/router.js&quot;:&quot;&#x27;use strict&#x27;;\\n\\nconst LETTERS = \/^[A-Za-z]+$\/;\\n\\nfunction isPlainObject(value) {\\n  return value !== null &amp;&amp; typeof value === &#x27;object&#x27; &amp;&amp; !Array.isArray(value);\\n}\\n\\nfunction isMethodName(value) {\\n  return typeof value === &#x27;string&#x27; &amp;&amp; value.length &gt; 0 &amp;&amp; LETTERS.test(value);\\n}\\n\\nfunction stripQueryAndFragment(path) {\\n  const q = path.indexOf(&#x27;?&#x27;);\\n  const h = path.indexOf(&#x27;#&#x27;);\\n  let cut = -1;\\n  if (q !== -1 &amp;&amp; h !== -1) cut = Math.min(q, h);\\n  else if (q !== -1) cut = q;\\n  else if (h !== -1) cut = h;\\n  return cut === -1 ? path : path.slice(0, cut);\\n}\\n\\nfunction normalizePrefix(prefix) {\\n  let end = prefix.length;\\n  while (end &gt; 0 &amp;&amp; prefix[end - 1] === &#x27;\/&#x27;) end -= 1;\\n  return end === 0 ? &#x27;\/&#x27; : prefix.slice(0, end);\\n}\\n\\nfunction prefixMatches(path, prefix) {\\n  if (prefix === &#x27;\/&#x27;) return true;\\n  return path === prefix || path.startsWith(prefix + &#x27;\/&#x27;);\\n}\\n\\nfunction chooseRoute(request, rules) {\\n  try {\\n    if (!isPlainObject(request) || !Array.isArray(rules)) return null;\\n    const method = request.method;\\n    const rawPath = request.path;\\n    if (!isMethodName(method)) return null;\\n    if (typeof rawPath !== &#x27;string&#x27; || rawPath[0] !== &#x27;\/&#x27;) return null;\\n\\n    const path = stripQueryAndFragment(rawPath);\\n    const upperMethod = method.toUpperCase();\\n\\n    let bestExact = null;\\n    let bestWildcard = null;\\n\\n    const count = rules.length;\\n    for (let i = 0; i &lt; count; i += 1) {\\n      const rule = rules[i];\\n      if (!isPlainObject(rule)) continue;\\n      const ruleMethod = rule.method;\\n      const prefix = rule.prefix;\\n      const target = rule.target;\\n      const isWildcard = ruleMethod === &#x27;*&#x27;;\\n      if (!isWildcard &amp;&amp; !isMethodName(ruleMethod)) continue;\\n      if (typeof prefix !== &#x27;string&#x27; || prefix[0] !== &#x27;\/&#x27;) continue;\\n      if (prefix.indexOf(&#x27;?&#x27;) !== -1 || prefix.indexOf(&#x27;#&#x27;) !== -1) continue;\\n      if (typeof target !== &#x27;string&#x27; || target.length === 0) continue;\\n\\n      const normalized = normalizePrefix(prefix);\\n      if (!prefixMatches(path, normalized)) continue;\\n\\n      const candidate = { length: normalized.length, target };\\n      if (isWildcard) {\\n        if (bestWildcard === null || candidate.length &gt; bestWildcard.length) bestWildcard = candidate;\\n      } else if (ruleMethod.toUpperCase() === upperMethod) {\\n        if (bestExact === null || candidate.length &gt; bestExact.length) bestExact = candidate;\\n      }\\n    }\\n\\n    if (bestExact !== null) return bestExact.target;\\n    if (bestWildcard !== null) return bestWildcard.target;\\n    return null;\\n  } catch (err) {\\n    return null;\\n  }\\n}\\n\\nmodule.exports = { chooseRoute };\\n&quot;,&quot;test\/router-added.test.js&quot;:&quot;&#x27;use strict&#x27;;\\n\\nconst test = require(&#x27;node:test&#x27;);\\nconst assert = require(&#x27;node:assert\/strict&#x27;);\\nconst { chooseRoute } = require(&#x27;..\/src\/router.js&#x27;);\\n\\nconst baseRules = [\\n  { method: &#x27;GET&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;api&#x27; },\\n  { method: &#x27;GET&#x27;, prefix: &#x27;\/api\/admin&#x27;, target: &#x27;admin&#x27; }\\n];\\n\\ntest(&#x27;existing regression cases still hold&#x27;, () =&gt; {\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api\/users&#x27; }, baseRules), &#x27;api&#x27;);\\n  assert.equal(chooseRoute({ method: &#x27;POST&#x27;, path: &#x27;\/api\/users&#x27; }, baseRules), null);\\n});\\n\\ntest(&#x27;longest prefix wins within method group&#x27;, () =&gt; {\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api\/admin\/x&#x27; }, baseRules), &#x27;admin&#x27;);\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api\/admin&#x27; }, baseRules), &#x27;admin&#x27;);\\n});\\n\\ntest(&#x27;segment boundaries&#x27;, () =&gt; {\\n  const rules = [{ method: &#x27;GET&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;api&#x27; }];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api&#x27; }, rules), &#x27;api&#x27;);\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api\/&#x27; }, rules), &#x27;api&#x27;);\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api\/users&#x27; }, rules), &#x27;api&#x27;);\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/apix&#x27; }, rules), null);\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/ap&#x27; }, rules), null);\\n});\\n\\ntest(&#x27;trailing slashes in prefixes are normalized, all-slash is root&#x27;, () =&gt; {\\n  const rules = [{ method: &#x27;GET&#x27;, prefix: &#x27;\/api\/\/\/&#x27;, target: &#x27;api&#x27; }];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api&#x27; }, rules), &#x27;api&#x27;);\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/apix&#x27; }, rules), null);\\n  const rootRules = [{ method: &#x27;GET&#x27;, prefix: &#x27;\/\/\/&#x27;, target: &#x27;root&#x27; }];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/&#x27; }, rootRules), &#x27;root&#x27;);\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/anything\/else&#x27; }, rootRules), &#x27;root&#x27;);\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/x&#x27; }, [{ method: &#x27;GET&#x27;, prefix: &#x27;\/&#x27;, target: &#x27;r&#x27; }]), &#x27;r&#x27;);\\n});\\n\\ntest(&#x27;query and fragment are removed at earliest ? or #&#x27;, () =&gt; {\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api?next=\/api\/admin&#x27; }, baseRules), &#x27;api&#x27;);\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api#\/admin&#x27; }, baseRules), &#x27;api&#x27;);\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/apix?\/api&#x27; }, baseRules), null);\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api\/admin#frag?q&#x27; }, baseRules), &#x27;admin&#x27;);\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api?q#\/admin&#x27; }, baseRules), &#x27;api&#x27;);\\n});\\n\\ntest(&#x27;no URL decoding and no slash collapsing&#x27;, () =&gt; {\\n  const rules = [{ method: &#x27;GET&#x27;, prefix: &#x27;\/api\/admin&#x27;, target: &#x27;admin&#x27; }];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api%2Fadmin&#x27; }, rules), null);\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api\/\/admin&#x27; }, rules), null);\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api\/\/admin&#x27; }, baseRules), &#x27;api&#x27;);\\n});\\n\\ntest(&#x27;methods compare case-insensitively&#x27;, () =&gt; {\\n  const rules = [{ method: &#x27;get&#x27;, prefix: &#x27;\/a&#x27;, target: &#x27;lower&#x27; }];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/a&#x27; }, rules), &#x27;lower&#x27;);\\n  assert.equal(chooseRoute({ method: &#x27;gEt&#x27;, path: &#x27;\/a\/b&#x27; }, rules), &#x27;lower&#x27;);\\n});\\n\\ntest(&#x27;exact method beats longer wildcard; wildcard used only as fallback&#x27;, () =&gt; {\\n  const rules = [\\n    { method: &#x27;*&#x27;, prefix: &#x27;\/api\/admin&#x27;, target: &#x27;wild-admin&#x27; },\\n    { method: &#x27;GET&#x27;, prefix: &#x27;\/&#x27;, target: &#x27;get-root&#x27; },\\n    { method: &#x27;POST&#x27;, prefix: &#x27;\/other&#x27;, target: &#x27;post-other&#x27; },\\n    { method: &#x27;*&#x27;, prefix: &#x27;\/api&#x27;, target: &#x27;wild-api&#x27; }\\n  ];\\n  assert.equal(chooseRoute({ method: &#x27;GET&#x27;, path: &#x27;\/api\/admin\/x&#x27; }, rules), &#x27;get-root&#x27;);\\n  assert.equal(chooseRoute({ method: &#x27;POST&#x27;, path: &#x27;\/api\/admin\/x&#x27; }, rules), &#x27;wild-admin&#x27;);\\n  assert.equal(chooseRoute({ method: &#x27;POST&#x27;, path: &#x27;\/api\/x&#x27; }, rules), &#x27;wild-api&#x27;);\\n  assert.equal(chooseRoute({ method: &#x27;POST&#x27;, path: &#x27;\/other\/1&#x27; }, rules), &#x27;post-other&#x27;);\\n  assert.equal(chooseRoute({ method: &#x27;PUT&#x27;, path: &#x27;\/nothing&#x27; }, rules), null);\\n});\\n\\ntest(&#x27;ties go to earlier rule in input order&#x27;, () =&gt; {\\n  const rules = [\\n    { method: &#x27;GET&#x27;, pref<\/code><\/pre><\/details><\/section>\n\n\n\n<p class=\"wp-block-paragraph\">4,096 \u4e2a\u4ee4\u724c\u7684\u4e0a\u9650\u662f\u672c\u6b21\u6d4b\u8bd5\u9009\u5b9a\u7684\u8f93\u51fa\u9884\u7b97\uff0c\u5e76\u975e\u4efb\u4f55\u6a21\u578b\u7684\u6587\u6863\u4e2d\u8bb0\u8f7d\u7684\u6700\u5927\u503c\u3002\u8def\u7531\u7ed3\u679c\u8868\u660e\uff0c\u5728\u63d0\u4ea4\u66f4\u5927\u89c4\u6a21\u7684\u8bf7\u6c42\u4e4b\u524d\uff0c\u5e94\u8fdb\u884c\u4e00\u9879\u5b9e\u9645\u68c0\u67e5\uff1a\u9884\u4f30\u60a8\u671f\u671b\u6536\u5230\u7684\u5b9e\u73b0\u3001\u6d4b\u8bd5\u7ed3\u679c\u548c\u89e3\u91ca\u7684\u89c4\u6a21\u3002 \u9002\u5f53\u7684\u505a\u6cd5\u53ef\u80fd\u662f\u62c6\u5206\u4ea4\u4ed8\u6210\u679c\u6216\u9884\u7559\u66f4\u591a\u8f93\u51fa\u7a7a\u95f4\uff1b\u6211\u4eec\u5e76\u672a\u91c7\u7528\u4e0d\u540c\u7684\u8bbe\u7f6e\u91cd\u65b0\u8fd0\u884c\u8fd9\u4e9b\u8f93\u51fa\u3002.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u5904\u7406\u81ea\u5df1\u7684\u4efb\u52a1\u65f6\uff0c\u8bf7\u5206\u522b\u4ece\u4e09\u4e2a\u65b9\u9762\u8fdb\u884c\u8bc4\u4f30\uff1a\u54cd\u5e94\u662f\u5426\u5b8c\u6574\u3001\u4ee3\u7801\u662f\u5426\u901a\u8fc7\u4e86\u6709\u610f\u4e49\u7684\u68c0\u67e5\uff0c\u4ee5\u53ca\u4ee3\u7801\u5ba1\u67e5\u662f\u5426\u53d1\u73b0\u4e86\u8fd9\u4e9b\u68c0\u67e5\u672a\u80fd\u53d1\u73b0\u7684\u6f0f\u6d1e\u3002\u5373\u4f7f\u901a\u8fc7\u4e86\u5341\u4e8c\u9879\u51fd\u6570\u68c0\u67e5\uff0c\u90a3\u4e9b\u88ab\u622a\u65ad\u7684\u4e24\u6587\u4ef6\u54cd\u5e94\u4e5f\u4ecd\u4e0d\u6784\u6210\u5b8c\u6574\u7684\u4ea4\u4ed8\u6210\u679c\u3002.<\/p>\n\n\n\n<h2 id=\"model-cost\" class=\"wp-block-heading\">\u9009\u62e9\u4e0d\u540c\u7684\u6a21\u578b\u4f1a\u5bf9\u6210\u672c\u4ea7\u751f\u4ec0\u4e48\u5f71\u54cd<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Claude Code \u662f\u4e00\u6b3e\u7f16\u7801\u5de5\u5177\uff1bHaiku\u3001Sonnet\u3001Opus \u548c Fable \u662f\u652f\u6301\u73af\u5883\u4e2d\u7684\u6a21\u578b\u9009\u9879\u3002\u8eab\u4efd\u9a8c\u8bc1\u548c\u652f\u4ed8\u65b9\u5f0f\u4e5f\u662f\u53ef\u9009\u9879\u4e4b\u4e00\u3002\u66f4\u6539\u6a21\u578b\u4e0d\u4f1a\u5c06\u8ba2\u9605\u8f6c\u6362\u4e3a API \u8d26\u6237\uff0c\u4e5f\u4e0d\u4f1a\u6d88\u9664\u6240\u6709\u4f7f\u7528\u9650\u5236\u3002.<\/p>\n\n\n\n<figure class=\"wp-block-table\" style=\"overflow-x:auto;margin:24px 0;border:1px solid #d7dfed;border-radius:8px;box-sizing:border-box;max-width:100%\"><table style=\"width:100%;min-width:640px;border-collapse:collapse;font:15px\/1.6 system-ui,sans-serif\"><thead><tr><th scope=\"col\" style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#172438;background:#edf1fa\">\u8ba1\u8d39\u8def\u5f84<\/th><th scope=\"col\" style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#172438;background:#edf1fa\">\u770b\u4ec0\u4e48<\/th><th scope=\"col\" style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#172438;background:#edf1fa\">\u5982\u4f55\u89e3\u8bfb\u6a21\u578b\u9009\u62e9<\/th><\/tr><\/thead><tbody><tr><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">Claude \u8ba2\u9605\u8bbf\u95ee\u6743\u9650<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u5957\u9910\u5185\u6d41\u91cf\u53ca\u4efb\u4f55\u5355\u72ec\u542f\u7528\u7684\u6d41\u91cf\u989d\u5ea6<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u4e0d\u540c\u673a\u578b\u5bf9\u914d\u989d\u7684\u6d88\u8017\u65b9\u5f0f\u53ef\u80fd\u6709\u6240\u4e0d\u540c\uff1b\u8bf7\u67e5\u770b\u8be5\u5957\u9910\u53ef\u9009\u673a\u578b\u53ca\u9650\u989d<\/td><\/tr><tr><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">Anthropic API \u8bbf\u95ee<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u8f93\u5165\/\u8f93\u51fa\u4ee4\u724c\u3001\u7f13\u5b58\u53ca\u76f8\u5e94\u7684 API \u8d39\u7528<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u4f7f\u7528\u5f53\u524d\u7684\u8d39\u7387\u8868\u548c\u5b9e\u9645\u4f7f\u7528\u60c5\u51b5\uff0c\u7136\u540e\u5728\u8ba1\u8d39\u63a7\u5236\u53f0\u4e2d\u786e\u8ba4\u8d39\u7528<\/td><\/tr><tr><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u4e91\u670d\u52a1\u63d0\u4f9b\u5546\u6216\u7f51\u5173<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u60a8\u7684\u670d\u52a1\u63d0\u4f9b\u5546\u652f\u6301\u7684ID\u3001\u8d39\u7387\u548c\u8ba1\u8d39\u8bb0\u5f55<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">Anthropic\u7684\u6807\u4ef7\u793a\u4f8b\u53ef\u80fd\u4e0e\u60a8\u7684\u670d\u52a1\u63d0\u4f9b\u5546\u5b9e\u9645\u6536\u53d6\u7684\u91d1\u989d\u4e0d\u4e00\u81f4<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\" style=\"font-size:14px;line-height:1.6;color:#52617a;padding:12px\">\u8d44\u8d39\u65b9\u6848\u9009\u62e9\u4e0e\u8ba1\u8d39\u76f8\u5173\uff0c\u4f46\u8ba1\u8d39\u65b9\u5f0f\u51b3\u5b9a\u4e86\u5982\u4f55\u5bf9\u4f7f\u7528\u91cf\u8fdb\u884c\u6536\u8d39\u3002.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728 Claude \u4ee3\u7801\u4e2d\uff0c, <code>\/\u4f7f\u7528<\/code> \u663e\u793a\u4f1a\u8bdd\u4ee4\u724c\u4fe1\u606f\uff0c\u5e76\u5728\u9002\u7528\u65f6\u663e\u793a\u8ba2\u9605\u4f7f\u7528\u91cf\u6761\u3002\u5176\u4e2d\u7684\u91d1\u989d\u662f\u6839\u636e\u5217\u8868\u4ef7\u683c\u6216\u914d\u7f6e\u7684\u8d39\u7387\u5728\u672c\u5730\u8ba1\u7b97\u5f97\u51fa\u7684\u9884\u4f30\u6570\u989d\uff0c\u5e76\u975e\u6b63\u5f0f\u53d1\u7968\u3002\u5bf9\u4e8e Pro \u548c Max \u8ba2\u9605\u7528\u6237\uff0c\u8be5\u4f1a\u8bdd\u6570\u636e\u5e76\u4e0d\u610f\u5473\u7740\u8ba2\u9605\u4e2d\u589e\u52a0\u4e86\u989d\u5916\u7684 API \u8d39\u7528\u3002\u4e86\u89e3\u66f4\u591a\u5173\u4e8e <a href=\"https:\/\/www.glbgpt.com\/hub\/claude-code-pricing\/\">Claude \u4ee3\u7801\u5b9a\u4ef7\u548c\u8ba1\u8d39\u8def\u5f84<\/a> \u5982\u679c\u60a8\u6b63\u5728\u8003\u8651\u91c7\u7528\u54ea\u79cd\u652f\u4ed8\u65b9\u5f0f\u3002.<\/p>\n\n\n\n<h3 id=\"api-price-example\" class=\"wp-block-heading\">\u5f53\u524d API \u4ef7\u683c\u53ca\u7b49\u503c\u4ee3\u5e01\u793a\u4f8b<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Anthropic \u6bcf\u767e\u4e07\u8f93\u5165\/\u8f93\u51fa\u4ee3\u5e01\u7684\u6807\u51c6\u57fa\u7840\u8d39\u7387\u4e3a <strong>Haiku 4.5\uff1a$1\/$5\uff1bSonnet 5\uff1a$2\/$10\uff1b Opus 5.5\uff1a$4\/$20\uff1bFable 5.1\uff1a$10\/$50<\/strong>, \uff0c\u67e5\u9605\u4e8e2026\u5e749\u670828\u65e5\u3002\u4e0b\u56fe\u5c06\u4ee3\u5e01\u4ea4\u6613\u91cf\u4fdd\u6301\u4e0d\u53d8\uff0c\u4ee5\u4fbf\u4e8e\u8fdb\u884c\u6570\u636e\u5bf9\u6bd4\u3002.<\/p>\n\n\n\n<style>\n.ccms-cost{box-sizing:border-box;border:1px solid #d8dfeb;border-radius:8px;padding:24px;background:#f8faff;color:#182439;margin:28px 0;font:16px\/1.6 system-ui,sans-serif}.ccms-cost *{box-sizing:border-box}.ccms-cost h3{color:#182439;font-size:1.3rem;line-height:1.3;margin:0 0 8px}.ccms-cost p{color:#34435d;margin:10px 0}.ccms-cost a{color:#254fc2;text-decoration:underline}.ccms-cost__rows{display:grid;gap:16px;margin:22px 0}.ccms-cost__row{display:grid;grid-template-columns:100px 1fr 55px;gap:12px;align-items:center}.ccms-cost__track{background:#e2e8f2;height:18px;border-radius:4px;overflow:hidden}.ccms-cost__bar{display:block;height:100%;background:#5460c9}.ccms-cost__value{text-align:right;font-variant-numeric:tabular-nums}.ccms-cost__table{overflow-x:auto}.ccms-cost table{border-collapse:collapse;width:100%;min-width:460px;color:#182439;font-size:14px}.ccms-cost th,.ccms-cost td{padding:10px 8px;text-align:left;border-bottom:1px solid #d8dfeb}.ccms-cost th{color:#182439;background:#edf1fa}.ccms-cost__note{font-size:14px}.ccms-cost summary{cursor:pointer;font-weight:600;color:#254fc2}.ccms-cost details{margin:16px 0 0}@media(max-width:520px){.ccms-cost{padding:16px}.ccms-cost__row{grid-template-columns:85px 1fr 48px;gap:8px}}\n<\/style>\n<section class=\"ccms-cost\" aria-labelledby=\"ccms-cost-title\" style=\"box-sizing:border-box;border:1px solid #d8dfeb;border-radius:8px;padding:24px;background:#f8faff;color:#182439;margin:28px 0;font:16px\/1.6 system-ui,sans-serif;max-width:100%\">\n  <h3 id=\"ccms-cost-title\" style=\"box-sizing:border-box;color:#182439;font-size:1.3rem;line-height:1.3;margin:0 0 8px\">\u76f8\u540c\u7684\u4ee3\u5e01\u6570\u91cf\uff0c\u56db\u79cd\u4e0d\u540c\u7684API\u8d39\u7528<\/h3>\n  <p style=\"box-sizing:border-box;color:#34435d;margin:10px 0\">\u4f8b\u5982 <strong style=\"box-sizing:border-box\">100,000 \u4e2a\u672a\u7f13\u5b58\u7684\u8f93\u5165\u4ee4\u724c + 10,000 \u4e2a\u8f93\u51fa\u4ee4\u724c<\/strong>, \uff0c\u91c7\u7528Anthropic\u4e8e2026\u5e749\u670828\u65e5\u6838\u67e5\u7684\u5e38\u89c4API\u76ee\u5f55\u4ef7\u683c\u3002.<\/p>\n  <div class=\"ccms-cost__rows\" aria-label=\"\u793a\u4f8b\u4ee3\u5e01\u4ea4\u6613\u91cf\u7684\u57fa\u7840 API \u8d39\u7528\" style=\"box-sizing:border-box;display:grid;gap:16px;margin:22px 0;max-width:100%\">\n    <div class=\"ccms-cost__row\" style=\"box-sizing:border-box;display:grid;grid-template-columns:100px 1fr 55px;gap:12px;align-items:center;max-width:100%\"><span style=\"box-sizing:border-box\">\u4ff3\u53e5 4.5<\/span><span class=\"ccms-cost__track\" aria-hidden=\"true\" style=\"box-sizing:border-box;background:#e2e8f2;height:18px;border-radius:4px;overflow:hidden\"><span class=\"ccms-cost__bar\" style=\"box-sizing:border-box;display:block;height:100%;background:#5460c9;width:10%\"><\/span><\/span><strong class=\"ccms-cost__value\" style=\"box-sizing:border-box;text-align:right;font-variant-numeric:tabular-nums\">$0.15<\/strong><\/div>\n    <div class=\"ccms-cost__row\" style=\"box-sizing:border-box;display:grid;grid-template-columns:100px 1fr 55px;gap:12px;align-items:center;max-width:100%\"><span style=\"box-sizing:border-box\">\u7b2c5\u9996\u5341\u56db\u884c\u8bd7<\/span><span class=\"ccms-cost__track\" aria-hidden=\"true\" style=\"box-sizing:border-box;background:#e2e8f2;height:18px;border-radius:4px;overflow:hidden\"><span class=\"ccms-cost__bar\" style=\"box-sizing:border-box;display:block;height:100%;background:#5460c9;width:20%\"><\/span><\/span><strong class=\"ccms-cost__value\" style=\"box-sizing:border-box;text-align:right;font-variant-numeric:tabular-nums\">$0.30<\/strong><\/div>\n    <div class=\"ccms-cost__row\" style=\"box-sizing:border-box;display:grid;grid-template-columns:100px 1fr 55px;gap:12px;align-items:center;max-width:100%\"><span style=\"box-sizing:border-box\">\u4f5c\u54c1\u7b2c5.5\u53f7<\/span><span class=\"ccms-cost__track\" aria-hidden=\"true\" style=\"box-sizing:border-box;background:#e2e8f2;height:18px;border-radius:4px;overflow:hidden\"><span class=\"ccms-cost__bar\" style=\"box-sizing:border-box;display:block;height:100%;background:#5460c9;width:40%\"><\/span><\/span><strong class=\"ccms-cost__value\" style=\"box-sizing:border-box;text-align:right;font-variant-numeric:tabular-nums\">$0.60<\/strong><\/div>\n    <div class=\"ccms-cost__row\" style=\"box-sizing:border-box;display:grid;grid-template-columns:100px 1fr 55px;gap:12px;align-items:center;max-width:100%\"><span style=\"box-sizing:border-box\">Fable 5.1<\/span><span class=\"ccms-cost__track\" aria-hidden=\"true\" style=\"box-sizing:border-box;background:#e2e8f2;height:18px;border-radius:4px;overflow:hidden\"><span class=\"ccms-cost__bar\" style=\"box-sizing:border-box;display:block;height:100%;background:#5460c9;width:100%\"><\/span><\/span><strong class=\"ccms-cost__value\" style=\"box-sizing:border-box;text-align:right;font-variant-numeric:tabular-nums\">$1.50<\/strong><\/div>\n  <\/div>\n  <details style=\"box-sizing:border-box;margin:16px 0 0\"><summary style=\"box-sizing:border-box;cursor:pointer;font-weight:600;color:#254fc2\">\u67e5\u770b\u8d39\u7387\u53ca\u8ba1\u7b97\u65b9\u6cd5<\/summary>\n    <div class=\"ccms-cost__table\" style=\"box-sizing:border-box;overflow-x:auto;max-width:100%\"><table style=\"box-sizing:border-box;border-collapse:collapse;width:100%;min-width:460px;color:#182439;font-size:14px\"><caption style=\"box-sizing:border-box\">\u6bcf\u767e\u4e07\u679a\u4ee3\u5e01\u7684\u7f8e\u5143\u91d1\u989d\u53ca\u8ba1\u7b97\u793a\u4f8b<\/caption><thead style=\"box-sizing:border-box\"><tr style=\"box-sizing:border-box\"><th scope=\"col\" style=\"box-sizing:border-box;padding:10px 8px;text-align:left;border-bottom:1px solid #d8dfeb;color:#182439;background:#edf1fa\">\u6a21\u578b<\/th><th scope=\"col\" style=\"box-sizing:border-box;padding:10px 8px;text-align:left;border-bottom:1px solid #d8dfeb;color:#182439;background:#edf1fa\">\u8f93\u5165 \/ 1M<\/th><th scope=\"col\" style=\"box-sizing:border-box;padding:10px 8px;text-align:left;border-bottom:1px solid #d8dfeb;color:#182439;background:#edf1fa\">\u8f93\u51fa \/ 1M<\/th><th scope=\"col\" style=\"box-sizing:border-box;padding:10px 8px;text-align:left;border-bottom:1px solid #d8dfeb;color:#182439;background:#edf1fa\">\u793a\u4f8b\u603b\u8ba1<\/th><\/tr><\/thead><tbody style=\"box-sizing:border-box\">\n      <tr style=\"box-sizing:border-box\"><th scope=\"row\" style=\"box-sizing:border-box;padding:10px 8px;text-align:left;border-bottom:1px solid #d8dfeb;color:#182439;background:#edf1fa\">\u4ff3\u53e5 4.5<\/th><td style=\"box-sizing:border-box;padding:10px 8px;text-align:left;border-bottom:1px solid #d8dfeb\">$1<\/td><td style=\"box-sizing:border-box;padding:10px 8px;text-align:left;border-bottom:1px solid #d8dfeb\">$5<\/td><td style=\"box-sizing:border-box;padding:10px 8px;text-align:left;border-bottom:1px solid #d8dfeb\">$0.15<\/td><\/tr>\n      <tr style=\"box-sizing:border-box\"><th scope=\"row\" style=\"box-sizing:border-box;padding:10px 8px;text-align:left;border-bottom:1px solid #d8dfeb;color:#182439;background:#edf1fa\">\u7b2c5\u9996\u5341\u56db\u884c\u8bd7<\/th><td style=\"box-sizing:border-box;padding:10px 8px;text-align:left;border-bottom:1px solid #d8dfeb\">$2<\/td><td style=\"box-sizing:border-box;padding:10px 8px;text-align:left;border-bottom:1px solid #d8dfeb\">$10<\/td><td style=\"box-sizing:border-box;padding:10px 8px;text-align:left;border-bottom:1px solid #d8dfeb\">$0.30<\/td><\/tr>\n      <tr style=\"box-sizing:border-box\"><th scope=\"row\" style=\"box-sizing:border-box;padding:10px 8px;text-align:left;border-bottom:1px solid #d8dfeb;color:#182439;background:#edf1fa\">\u4f5c\u54c1\u7b2c5.5\u53f7<\/th><td style=\"box-sizing:border-box;padding:10px 8px;text-align:left;border-bottom:1px solid #d8dfeb\">$4<\/td><td style=\"box-sizing:border-box;padding:10px 8px;text-align:left;border-bottom:1px solid #d8dfeb\">$20<\/td><td style=\"box-sizing:border-box;padding:10px 8px;text-align:left;border-bottom:1px solid #d8dfeb\">$0.60<\/td><\/tr>\n      <tr style=\"box-sizing:border-box\"><th scope=\"row\" style=\"box-sizing:border-box;padding:10px 8px;text-align:left;border-bottom:1px solid #d8dfeb;color:#182439;background:#edf1fa\">Fable 5.1<\/th><td style=\"box-sizing:border-box;padding:10px 8px;text-align:left;border-bottom:1px solid #d8dfeb\">$10<\/td><td style=\"box-sizing:border-box;padding:10px 8px;text-align:left;border-bottom:1px solid #d8dfeb\">$50<\/td><td style=\"box-sizing:border-box;padding:10px 8px;text-align:left;border-bottom:1px solid #d8dfeb\">$1.50<\/td><\/tr>\n    <\/tbody><\/table><\/div>\n    <p style=\"box-sizing:border-box;color:#34435d;margin:10px 0\">\u8ba1\u7b97\u516c\u5f0f\uff1a0.1 \u00d7 \u8f93\u5165\u901f\u7387 + 0.01 \u00d7 \u8f93\u51fa\u901f\u7387\u3002\u4ee5 Opus 5.5 \u4e3a\u4f8b\uff1a0.1 \u00d7 $4 + 0.01 \u00d7 $20 = $0.60\u3002.<\/p>\n  <\/details>\n  <p class=\"ccms-cost__note\" style=\"box-sizing:border-box;font-size:14px;color:#34435d;margin:10px 0\">\u8fd9\u662f\u4e00\u5f20\u57fa\u4e8e\u56fa\u5b9a\u4ee4\u724c\u6570\u91cf\u7684\u793a\u610f\u56fe\u3002\u5b9e\u9645\u4efb\u52a1\u6d88\u8017\u7684\u4ee4\u724c\u603b\u91cf\u5404\u4e0d\u76f8\u540c\uff1b\u7f13\u5b58\u5199\u5165\u548c\u8bfb\u53d6\u3001\u91cd\u8bd5\u3001\u5de5\u5177\u3001\u63d0\u4f9b\u5546\u8ba1\u8d39\u4ee5\u53ca\u8ba2\u9605\u9650\u5236\u90fd\u9700\u8981\u5206\u522b\u8fdb\u884c\u6838\u7b97\u3002.<\/p>\n  <p class=\"ccms-cost__note\" style=\"box-sizing:border-box;font-size:14px;color:#34435d;margin:10px 0\">\u8d44\u6599\u6765\u6e90 <a href=\"https:\/\/platform.claude.com\/docs\/en\/about-claude\/pricing#model-pricing\" style=\"box-sizing:border-box;color:#254fc2;text-decoration:underline\">Anthropic API\u5b9a\u4ef7<\/a>.<\/p>\n<\/section>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1440\" height=\"625\" src=\"https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/09\/claude-api-pricing-20260928_aa929ac5f992491abf410216b0d17992.webp\" alt=\"Anthropic \u7684 API \u5b9a\u4ef7\u8868\uff0c\u5176\u4e2d\u5305\u542b\u8f93\u5165\u3001\u8f93\u51fa\u548c\u63d0\u793a\u8bcd\u7f13\u5b58\u8d39\u7387\u3002.\" class=\"wp-image-20173\" srcset=\"https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/09\/claude-api-pricing-20260928_aa929ac5f992491abf410216b0d17992.webp 1440w, https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/09\/claude-api-pricing-20260928_aa929ac5f992491abf410216b0d17992-300x130.webp 300w, https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/09\/claude-api-pricing-20260928_aa929ac5f992491abf410216b0d17992-1024x444.webp 1024w, https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/09\/claude-api-pricing-20260928_aa929ac5f992491abf410216b0d17992-768x333.webp 768w, https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/09\/claude-api-pricing-20260928_aa929ac5f992491abf410216b0d17992-18x8.webp 18w\" sizes=\"(max-width: 1440px) 100vw, 1440px\" \/><figcaption class=\"wp-element-caption\">API \u7684\u5e38\u89c4\u5217\u8868\u4ef7\u683c\u6309\u6bcf\u767e\u4e07\u4e2a\u4ee3\u5e01\u8ba1\u4ef7\uff1b\u7f13\u5b58\u5199\u5165\u548c\u8bfb\u53d6\u7684\u8d39\u7387\u5404\u4e0d\u76f8\u540c\u3002.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e00\u4e2a\u771f\u6b63\u7684 Claude Code \u4efb\u52a1\u662f\u4e00\u7cfb\u5217\u8bf7\u6c42\u3002\u65e9\u524d\u7684\u4e0a\u4e0b\u6587\u53ef\u80fd\u4f1a\u88ab\u518d\u6b21\u53d1\u9001\uff0c\u6a21\u578b\u53ef\u80fd\u4f1a\u8fdb\u884c\u8fdb\u4e00\u6b65\u5206\u6790\uff0c\u800c\u5de5\u5177\u6216\u989d\u5916\u7684\u4ee3\u7406\u53ef\u80fd\u4f1a\u4ea7\u751f\u66f4\u591a\u5de5\u4f5c\u3002\u63d0\u793a\u8bcd\u7f13\u5b58\u8fd8\u5177\u6709\u4e0d\u540c\u7684\u5199\u5165\u548c\u8bfb\u53d6\u901f\u7387\u3002\u56e0\u6b64\uff0c\u793a\u4f8b\u4e2d\u6700\u4f4e\u7684\u90a3\u6761\u67f1\u72b6\u56fe\u5e76\u4e0d\u80fd\u4ee3\u8868\u6bcf\u6b21\u88ab\u63a5\u53d7\u7684\u66f4\u6539\u7684\u6700\u4f4e\u6210\u672c\u3002.<\/p>\n\n\n\n<h3 id=\"cost-strategies\" class=\"wp-block-heading\">\u5728\u4e0d\u524a\u5f31\u4efb\u52a1\u6548\u679c\u7684\u524d\u63d0\u4e0b\u63a7\u5236\u6210\u672c\u7684\u4e94\u79cd\u65b9\u6cd5<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u5728\u9009\u62e9\u6a21\u578b\u4e4b\u524d\uff0c\u5148\u5b9a\u4e49\u9a8c\u6536\u6807\u51c6\u3002.<\/strong> \u8bf7\u8bf4\u660e\u9884\u671f\u884c\u4e3a\u3001\u8fb9\u754c\u60c5\u51b5\u4ee5\u53ca\u73b0\u6709\u9650\u5236\u6761\u4ef6\u3002\u4e00\u4e2a\u6e05\u6670\u4e14\u4efb\u52a1\u91cf\u8f83\u5c0f\u7684\u4efb\u52a1\uff0c\u5728\u7ecf\u6d4e\u4e0a\u66f4\u5bb9\u6613\u5206\u914d\uff0c\u4e5f\u66f4\u5bb9\u6613\u8fdb\u884c\u5ba1\u67e5\u3002.<\/li>\n\n\n\n<li><strong>\u63d0\u4f9b\u76f8\u5173\u80cc\u666f\u4fe1\u606f\u3002.<\/strong> \u8bf7\u9644\u4e0a\u6a21\u578b\u6240\u9700\u7684\u6587\u4ef6\u548c\u6545\u969c\u8be6\u60c5\u3002\u5bf9\u4e8e\u65e0\u5173\u7684\u5de5\u4f5c\uff0c\u8bf7\u5f00\u542f\u65b0\u7684\u5bf9\u8bdd\uff0c\u800c\u4e0d\u662f\u4ec5\u4ec5\u56e0\u4e3a\u539f\u6709\u5bf9\u8bdd\u8bb0\u5f55\u5b58\u5728\u5c31\u5c06\u5176\u5ef6\u7eed\u4e0b\u53bb\u3002.<\/li>\n\n\n\n<li><strong>\u8981\u533a\u5206\u80fd\u529b\u4e0e\u52aa\u529b\u3002.<\/strong> Anthropic \u5efa\u8bae\u9996\u5148\u4f7f\u7528\u6a21\u578b\u7684\u9ed8\u8ba4\u52aa\u529b\u7a0b\u5ea6\u3002\u5982\u679c\u6a21\u578b\u6b63\u786e\u8bfb\u53d6\u4e86\u4e0a\u4e0b\u6587\u4f46\u4ecd\u65e0\u6cd5\u89e3\u51b3\u95ee\u9898\uff0c\u5219\u4f7f\u7528\u66f4\u5f3a\u5927\u7684\u6a21\u578b\u53ef\u80fd\u4f1a\u6709\u6240\u5e2e\u52a9\u3002\u5982\u679c\u6a21\u578b\u8df3\u8fc7\u4e86\u8bfb\u53d6\u6216\u9a8c\u8bc1\u6b65\u9aa4\uff0c\u8bf7\u68c0\u67e5\u4efb\u52a1\u8bbe\u7f6e\u548c\u52aa\u529b\u7a0b\u5ea6\u7684\u9009\u62e9\u3002.<\/li>\n\n\n\n<li><strong>\u6574\u4e2a\u7b54\u6848\u7684\u9884\u7b97\u3002simplified-chinese (mainland).<\/strong> \u6e90\u4ee3\u7801\u3001\u6d4b\u8bd5\u7528\u4f8b\u548c\u8bf4\u660e\u90fd\u9700\u8981\u8f93\u51fa\u7a7a\u95f4\u3002\u6211\u4eec\u7684\u7b2c\u4e8c\u4e2a\u4efb\u52a1\u8bf4\u660e\u4e86\u4e3a\u4ec0\u4e48\u4ec5\u51ed\u4e00\u4e2a\u5b8c\u6574\u7684\u51fd\u6570\uff0c\u5e76\u4e0d\u80fd\u8bc1\u660e\u6240\u8981\u6c42\u7684\u4ea4\u4ed8\u6210\u679c\u7b26\u5408\u9884\u7b97\u3002.<\/li>\n\n\n\n<li><strong>\u6bd4\u8f83\u5df2\u88ab\u91c7\u7eb3\u7684\u4f5c\u54c1\u3002.<\/strong> \u8bb0\u5f55\u5177\u6709\u4ee3\u8868\u6027\u7684\u4efb\u52a1\u4e2d\u7684\u6709\u6548\u8f93\u51fa\u3001\u91cd\u8bd5\u6b21\u6570\u3001\u5ba1\u6838\u65f6\u95f4\u4ee5\u53ca\u5b9e\u9645\u8ba1\u8d39\u6570\u636e\u3002\u5c06\u63d0\u4f9b\u5546\u9519\u8bef\u4e0e\u6a21\u578b\u8d28\u91cf\u95ee\u9898\u533a\u5206\u5f00\u6765\u3002.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u4e9b\u7b56\u7565\u4e0e <a href=\"https:\/\/code.claude.com\/docs\/en\/costs\">\u5b98\u65b9\u8d39\u7528\u6307\u5357<\/a> \u548c <a href=\"https:\/\/claude.com\/blog\/claude-model-and-effort-level-in-claude-code\">Anthropic\u7684\u6a21\u578b\u4e0e\u5de5\u4f5c\u91cf\u6307\u5357<\/a>. \u5207\u6362\u6a21\u578b\u540e\uff0c\u5168\u8ba1\u5212\u8303\u56f4\u7684\u6bcf\u5468\u6216\u4f1a\u8bdd\u9650\u5236\u4ecd\u53ef\u80fd\u7ee7\u7eed\u751f\u6548\uff1b\u800c\u7279\u5b9a\u6a21\u578b\u7684\u9650\u5236\u5219\u5c5e\u4e8e\u53e6\u4e00\u79cd\u60c5\u51b5\u3002\u5728\u53cd\u590d\u5207\u6362\u6a21\u578b\u4e4b\u524d\uff0c\u8bf7\u5148\u786e\u8ba4\u5b9e\u9645\u9650\u5236\u3002.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u679c\u4f60\u7684\u5de5\u4f5c\u6d89\u53ca\u7f16\u7a0b\u3001\u7814\u7a76\u3001\u5199\u4f5c\u548c\u5a92\u4f53\uff0c\u4e5f\u8bf7\u6bd4\u8f83\u4e00\u4e0b\u4f60\u6240\u4ed8\u8d39\u7684\u5de5\u4f5c\u6d41\u7a0b\u3002. <a href=\"https:\/\/www.glbgpt.com\/home?inviter=hub_content_home&amp;login=1\">GlobalGPT\u7684\u591a\u6a21\u578b\u5de5\u4f5c\u533a<\/a> \u5c06\u8fd9\u4e9b\u529f\u80fd\u6574\u5408\u5230\u4e00\u4e2a\u4eea\u8868\u76d8\u4e2d\uff0c\u5e76\u63d0\u4f9b\u7528\u4e8e\u5f00\u53d1\u4efb\u52a1\u7684\u547d\u4ee4\u884c\u754c\u9762\uff08CLI\uff09\u8bbf\u95ee\u6743\u9650\u3002\u5728\u8bc4\u4f30\u6309\u91cf\u8ba1\u8d39\u7684 API \u8def\u7531\u65f6\uff0c\u5e94\u7efc\u5408\u8003\u8651\u8fd9\u79cd\u66f4\u5e7f\u6cdb\u7684\u5de5\u4f5c\u6d41\u4ef7\u503c\uff1b\u4e0a\u65b9\u7684 API \u56fe\u8868\u5e76\u975e GlobalGPT \u8ba2\u9605\u4ef7\u683c\u8868\u3002.<\/p>\n\n\n\n<h2 id=\"troubleshooting\" class=\"wp-block-heading\">\u4e3a\u4ec0\u4e48\u4f60\u9009\u62e9\u7684\u6a21\u578b\u53ef\u80fd\u65e0\u6cd5\u594f\u6548<\/h2>\n\n\n\n<figure class=\"wp-block-table\" style=\"overflow-x:auto;margin:24px 0;border:1px solid #d7dfed;border-radius:8px;box-sizing:border-box;max-width:100%\"><table style=\"width:100%;min-width:640px;border-collapse:collapse;font:15px\/1.6 system-ui,sans-serif\"><thead><tr><th scope=\"col\" style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#172438;background:#edf1fa\">\u75c7\u72b6<\/th><th scope=\"col\" style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#172438;background:#edf1fa\">\u53ef\u80fd\u7684\u68c0\u67e5<\/th><th scope=\"col\" style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#172438;background:#edf1fa\">\u5207\u5b9e\u53ef\u884c\u7684\u4e0b\u4e00\u6b65\u63aa\u65bd<\/th><\/tr><\/thead><tbody><tr><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u4e0b\u4e00\u8282\u5c06\u4f7f\u7528\u65e7\u6a21\u578b<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u8be5\u5f00\u5173\u53ef\u80fd\u4ec5\u5728\u5f53\u524d\u4f1a\u8bdd\u4e2d\u6709\u6548<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u4f7f\u7528\u9009\u62e9\u5668\u7684\u201cEnter\u201d\u64cd\u4f5c\u8fdb\u884c\u4fdd\u5b58\uff0c\u7136\u540e\u68c0\u67e5\u4e00\u4e2a\u65b0\u4f1a\u8bdd<\/td><\/tr><tr><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u9996\u9009\u9879\u5df2\u4fdd\u5b58\uff0c\u4f46\u542f\u52a8\u7684\u5374\u662f\u53e6\u4e00\u4e2a\u6a21\u578b<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u201c\u542f\u52a8\u201d\u3001\u201c\u58f3\u201d\u3001\u201c\u9879\u76ee\u201d\u3001\u201c\u6258\u7ba1\u201d\u6216\u201c\u7ec4\u7ec7\u201d\u8bbe\u7f6e\u53ef\u80fd\u5177\u6709\u66f4\u9ad8\u4f18\u5148\u7ea7<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u9605\u8bfb\u542f\u52a8\u4fe1\u606f\uff0c\u5e76\u4e0e\u6240\u6709\u8005\u4e00\u8d77\u68c0\u67e5\u76f8\u5173\u914d\u7f6e<\/td><\/tr><tr><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u6062\u590d\u7684\u5bf9\u8bdd\u91c7\u7528\u4e0d\u540c\u7684\u6a21\u578b<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u5df2\u4fdd\u5b58\u7684\u4f1a\u8bdd\u53ef\u80fd\u4f1a\u6062\u590d\u5176\u4e4b\u524d\u7684\u6a21\u578b<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u68c0\u67e5 \/status\uff1b\u5728\u6062\u590d\u5de5\u4f5c\u65f6\uff0c\u8bf7\u614e\u91cd\u9009\u62e9\u76ee\u6807\u6a21\u578b<\/td><\/tr><tr><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u8be5\u6a21\u578b\u4e0d\u5b58\u5728\u6216\u5df2\u88ab\u62d2\u7edd<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u670d\u52a1\u63d0\u4f9b\u5546\u7684\u53ef\u7528\u6027\u3001\u7ec4\u7ec7\u89c4\u5219\u6216\u65e7\u7248\u7684Claude\u4ee3\u7801<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u8bf7\u68c0\u67e5\u652f\u6301\u7684\u578b\u53f7 ID\u3001\u8d26\u6237\u8bbf\u95ee\u6743\u9650\u548c\u7248\u672c\u8981\u6c42<\/td><\/tr><tr><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u540c\u4e00\u4e2a\u59d3\u6c0f\u5728\u5176\u4ed6\u5730\u65b9\u7684\u5199\u6cd5\u4e0d\u540c<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u522b\u540d\u4e0e\u63d0\u4f9b\u7a0b\u5e8f\u6620\u5c04\u4e0d\u4e00\u81f4<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u5f53\u53d1\u5e03\u7248\u672c\u5fc5\u987b\u4fdd\u6301\u4e0d\u53d8\u65f6\uff0c\u8bf7\u4f7f\u7528\u63d0\u4f9b\u5546\u7684\u6b63\u786e\u5b8c\u6574 ID<\/td><\/tr><tr><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u5207\u6362\u4e0d\u4f1a\u6e05\u96f6\u4f7f\u7528\u9650\u989d<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u8be5\u9650\u989d\u53ef\u80fd\u9002\u7528\u4e8e\u6574\u4e2a\u8ba1\u5212<\/td><td style=\"padding:12px;border-bottom:1px solid #d7dfed;text-align:left;vertical-align:top;color:#23334c\">\u8bf7\u9605\u8bfb\u4f7f\u7528\u8bf4\u660e\u5e76\u91cd\u7f6e\u5468\u671f\uff0c\u800c\u4e0d\u662f\u4e00\u5473\u8ba4\u4e3a\u4ec5\u901a\u8fc7\u5bb6\u5ead\u5f00\u5173\u5373\u53ef\u89e3\u51b3\u95ee\u9898<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\" style=\"font-size:14px;line-height:1.6;color:#52617a;padding:12px\">\u5728\u66f4\u6539\u5176\u4ed6\u8bbe\u7f6e\u4e4b\u524d\uff0c\u8bf7\u5148\u8bca\u65ad\u95ee\u9898\u7684\u8303\u56f4\u3002.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u679c Claude Code \u65e0\u6cd5\u5199\u5165\u60a8\u7684\u7528\u6237\u8bbe\u7f6e\uff0c\u5219\u4ea4\u4e92\u5f0f\u9009\u9879\u4ec5\u5728\u5f53\u524d\u4f1a\u8bdd\u4e2d\u6709\u6548\uff0c\u4e0d\u4f1a\u6301\u4e45\u4fdd\u5b58\u3002\u5bf9\u4e8e\u53d7\u7ba1\u6216\u751f\u6210\u7684\u8bbe\u7f6e\u6587\u4ef6\uff0c\u53ef\u80fd\u9700\u8981\u7531\u5176\u6240\u6709\u8005\u8fdb\u884c\u4fee\u6539\uff0c\u800c\u975e\u518d\u6b21\u5c1d\u8bd5\u9009\u62e9\u3002\u8bf7\u907f\u514d\u4ec5\u4ec5\u4e3a\u4e86\u8ba9\u67d0\u4e2a\u9009\u9879\u663e\u793a\u51fa\u6765\u800c\u89e3\u9664\u7ec4\u7ec7\u9650\u5236\u3002.<\/p>\n\n\n\n<h2 id=\"globalgpt-workflow\" class=\"wp-block-heading\">\u5229\u7528 GlobalGPT \u6784\u5efa\u66f4\u5168\u9762\u7684\u5de5\u4f5c\u6d41\u7a0b<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u6a21\u578b\u9009\u62e9\u662f\u5de5\u4f5c\u6d41\u4e2d\u7684\u4e00\u90e8\u5206\u3002\u60a8\u53ef\u80fd\u9700\u8981\u7814\u7a76\u67d0\u4e2a\u5e93\u3001\u7f16\u5199\u51fd\u6570\u8349\u7a3f\u3001\u5411\u56e2\u961f\u6210\u5458\u89e3\u91ca\u66f4\u6539\u3001\u7f16\u5199\u6587\u6863\uff0c\u4ee5\u53ca\u51c6\u5907\u53ef\u89c6\u5316\u7d20\u6750\u3002GlobalGPT \u5c06\u591a\u4e2a\u9886\u5148\u6a21\u578b\u548c AI \u529f\u80fd\u6574\u5408\u5230\u4e00\u4e2a\u7ecf\u6d4e\u5b9e\u60e0\u7684\u5de5\u4f5c\u7a7a\u95f4\u4e2d\uff0c\u56e0\u6b64\u8fd9\u4e9b\u4efb\u52a1\u53ef\u4ee5\u5728\u540c\u4e00\u4e2a\u4eea\u8868\u76d8\u4e2d\u5b8c\u6210\u3002.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img alt=\"\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"547\" src=\"https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/07\/image-15-1024x547.png\" class=\"wp-image-16961\" srcset=\"https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/07\/image-15-1024x547.png 1024w, https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/07\/image-15-300x160.png 300w, https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/07\/image-15-768x410.png 768w, https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/07\/image-15-1536x820.png 1536w, https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/07\/image-15-2048x1094.png 2048w, https:\/\/wp.glbgpt.com\/wp-content\/uploads\/2026\/07\/image-15-18x10.png 18w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-3e41869c wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.glbgpt.com\/home\/cli?inviter=hub_content_cli&amp;login=1\">\u8bd5\u7528 GlobalGPT CLI<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u5bf9\u4e8e\u7ec8\u7aef\u64cd\u4f5c\uff0c <a href=\"https:\/\/www.glbgpt.com\/home\/cli\">GlobalGPT CLI<\/a> \u5c06\u8be5\u5e73\u53f0\u7684\u5de5\u5177\u4e0e\u5f00\u53d1\u73af\u5883\u76f8\u8fde\u63a5\u3002\u5176\u6587\u6863\u4e2d\u8bb0\u5f55\u7684\u8bbe\u7f6e\u65b9\u6848\u4f7f\u7528\u60a8\u7684 GlobalGPT \u8d26\u6237\u767b\u5f55\u4fe1\u606f\u548c\u5e38\u89c4\u8d26\u6237\u4f59\u989d\u3002\u547d\u4ee4\u884c\u754c\u9762\uff08CLI\uff09\u80fd\u591f\u652f\u6301\u66f4\u5e7f\u6cdb\u7684\u7f16\u7801\u4e0e\u521b\u5efa\u5de5\u4f5c\u6d41\uff0c\u800c Claude Code \u81ea\u8eab\u7684\u6a21\u578b\u5219\u901a\u8fc7\u5176\u6a21\u578b\u63a7\u5236\u529f\u80fd\uff0c\u4ecd\u662f\u4e00\u79cd\u7ecf\u8fc7\u6df1\u601d\u719f\u8651\u7684\u9009\u62e9\u3002.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f8b\u5982\uff0c\u8d77\u8349\u5e76\u5ba1\u6838\u5b9e\u65bd\u65b9\u6848\uff0c\u91c7\u7528\u53e6\u4e00\u79cd\u6a21\u578b\u8fdb\u884c\u7b80\u660e\u627c\u8981\u7684\u8bf4\u660e\uff0c\u7136\u540e\u5236\u4f5c\u968f\u53d1\u5e03\u9644\u5e26\u7684\u6587\u6863\u6216\u8d44\u6e90\u3002\u8bf7\u6309\u7167\u6307\u5357\u8fdb\u884c\u64cd\u4f5c\uff1a <a href=\"https:\/\/www.glbgpt.com\/hub\/how-to-use-globalgpt-cli-in-claude-code\/\">\u5c06 GlobalGPT CLI \u8fde\u63a5\u5230 Claude \u4ee3\u7801<\/a> \u5f53\u60a8\u9700\u8981\u5b9e\u73b0\u8be5\u5de5\u5177\u96c6\u6210\u65f6\uff0c\u8bf7\u6839\u636e\u7f16\u7801\u4efb\u52a1\u5355\u72ec\u8bbe\u7f6e\u60a8\u7684 Claude \u4ee3\u7801\u63a8\u7406\u6a21\u578b\u3002.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u9009\u62e9\u4e00\u4e2a\u521d\u59cb\u6a21\u578b\uff0c\u5199\u4e0b\u5b9a\u4e49\u6210\u529f\u7684\u68c0\u9a8c\u6807\u51c6\uff0c\u5e76\u5728\u4efb\u52a1\u9700\u8981\u65f6\u8fdb\u884c\u5347\u7ea7\u3002\u5728\u5ba3\u5e03\u5de5\u4f5c\u5b8c\u6210\u4e4b\u524d\uff0c\u5148\u5bf9\u5b8c\u6574\u7684\u4ea4\u4ed8\u6210\u679c\u8fdb\u884c\u5ba1\u67e5\u3002. <a href=\"https:\/\/www.glbgpt.com\/home?inviter=hub_content_home&amp;login=1\">\u4f7f\u7528 GlobalGPT \u6784\u5efa\u60a8\u7684\u5de5\u4f5c\u6d41<\/a> \u5f53\u60a8\u5e0c\u671b\u5728\u65e5\u5e38\u5de5\u4f5c\u4e2d\u5c06\u6a21\u578b\u9009\u62e9\u3001\u7814\u7a76\u3001\u7f16\u7801\u548c\u521b\u610f\u5de5\u5177\u65e0\u7f1d\u6574\u5408\u65f6\u3002.<\/p>\n\n\n\n<h2 id=\"faq\" class=\"wp-block-heading\">\u5e38\u89c1\u95ee\u9898<\/h2>\n\n\n\n<h3 id=\"faq-1\" class=\"wp-block-heading\">\u5982\u4f55\u5728 Claude Code \u4e2d\u66f4\u6539\u6a21\u578b\uff1f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd0\u884c \/model \u547d\u4ee4\u4ee5\u6253\u5f00\u9009\u62e9\u5668\u3002\u6309 s \u952e\u4ec5\u5207\u6362\u5f53\u524d\u4f1a\u8bdd\uff0c\u6216\u6309 Enter \u952e\u5c06\u6240\u9009\u6a21\u578b\u4fdd\u5b58\u4e3a\u9ed8\u8ba4\u6a21\u578b\u3002\u82e5\u8981\u4e3a\u5355\u4e2a\u65b0\u4f1a\u8bdd\u9009\u62e9\u6a21\u578b\uff0c\u8bf7\u4f7f\u7528 claude \u2013model \u547d\u4ee4\u5e76\u8ddf\u4e0a\u6a21\u578b\u540d\u79f0\u6765\u542f\u52a8\u3002.<\/p>\n\n\n\n<h3 id=\"faq-2\" class=\"wp-block-heading\">\/model \u4f1a\u66f4\u6539\u6211\u4fdd\u5b58\u7684\u9ed8\u8ba4\u8bbe\u7f6e\u5417\uff1f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u5f53\u524d\u7684\u4ea4\u4e92\u5f0f\u7248\u672c\u4e2d\uff0c\u4f7f\u7528 Enter \u952e\u9009\u62e9\u6a21\u578b\u6216\u8f93\u5165 \/model sonnet \u547d\u4ee4\uff0c\u4f1a\u5728\u7528\u6237\u8bbe\u7f6e\u53ef\u5199\u65f6\u5c06\u8be5\u9009\u62e9\u4fdd\u5b58\u4e0b\u6765\u3002\u5728\u9009\u62e9\u5668\u4e2d\u6309\u4e0b s \u952e\u4ec5\u5728\u5f53\u524d\u4f1a\u8bdd\u4e2d\u6709\u6548\u3002\u4e0b\u6b21\u542f\u52a8\u65f6\uff0c\u5176\u4ed6\u8bbe\u7f6e\u4ecd\u53ef\u80fd\u5177\u6709\u4f18\u5148\u7ea7\u3002.<\/p>\n\n\n\n<h3 id=\"faq-3\" class=\"wp-block-heading\">\u4ec0\u4e48\u662f\u9ed8\u8ba4\u7684Claude Code\u6a21\u578b\uff1f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd0\u884c\u65f6\u7684\u9ed8\u8ba4\u503c\u53d6\u51b3\u4e8e\u60a8\u7684\u8d26\u6237\u3001\u63d0\u4f9b\u5546\u548c\u914d\u7f6e\u3002\u8be5\u9ed8\u8ba4\u503c\u4f1a\u6e05\u9664\u6a21\u578b\u8986\u76d6\u8bbe\u7f6e\uff1b\u5b83\u5e76\u975e\u4e00\u4e2a\u56fa\u5b9a\u7684\u6a21\u578b ID\u3002\u8bf7\u901a\u8fc7 \/status \u67e5\u8be2\u5f53\u524d\u6d3b\u8dc3\u7684\u6a21\u578b\uff0c\u5e76\u67e5\u770b\u9009\u62e9\u5668\uff0c\u800c\u4e0d\u662f\u5047\u8bbe\u6bcf\u4e2a\u8d26\u6237\u90fd\u4ece\u540c\u4e00\u7248\u672c\u5f00\u59cb\u3002.<\/p>\n\n\n\n<h3 id=\"faq-4\" class=\"wp-block-heading\">Opusplan \u662f\u4ec0\u4e48\uff1f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u5b83\u5728\u89c4\u5212\u6a21\u5f0f\u4e0b\u4f7f\u7528Opus\uff0c\u5728\u6267\u884c\u6a21\u5f0f\u4e0b\u4f7f\u7528Sonnet\u3002\u5b83\u9075\u5faa\u6a21\u5f0f\u8f6c\u6362\u673a\u5236\uff0c\u800c\u975e\u9488\u5bf9\u6bcf\u4e2a\u63d0\u793a\u81ea\u52a8\u9009\u62e9\u6210\u672c\u6700\u4f4e\u7684\u6a21\u578b\u3002\u5b9e\u9645\u6210\u672c\u53d6\u51b3\u4e8e\u5404\u9636\u6bb5\u6240\u6267\u884c\u7684\u5de5\u4f5c\u91cf\u3002.<\/p>\n\n\n\n<h3 id=\"faq-5\" class=\"wp-block-heading\">\u4e3a\u4ec0\u4e48\u9009\u62e9\u5668\u4e2d\u7f3a\u5c11\u4e00\u4e2a\u6a21\u578b\uff1f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u53ef\u7528\u6027\u53ef\u80fd\u53d6\u51b3\u4e8e\u60a8\u7684\u670d\u52a1\u63d0\u4f9b\u5546\u3001\u8d26\u6237\u3001\u7ec4\u7ec7\u9650\u5236\u4ee5\u53ca Claude Code \u7684\u7248\u672c\u3002\u8bf7\u67e5\u9605\u5f53\u524d\u6a21\u578b\u7684\u6587\u6863\u4ee5\u53ca\u60a8\u6240\u5728\u73af\u5883\u5141\u8bb8\u4f7f\u7528\u7684\u6a21\u578b\u3002\u6b64\u5916\uff0c\u540c\u4e00\u6a21\u578b\u5bb6\u65cf\u7684\u522b\u540d\u5728\u5176\u4ed6\u670d\u52a1\u63d0\u4f9b\u5546\u5904\u53ef\u80fd\u5bf9\u5e94\u4e0d\u540c\u7684\u7248\u672c\u3002.<\/p>\n\n\n\n<h3 id=\"faq-6\" class=\"wp-block-heading\">\u66f4\u4fbf\u5b9c\u7684\u673a\u578b\u662f\u5426\u603b\u80fd\u964d\u4f4e\u4efb\u52a1\u6210\u672c\uff1f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0d\u3002\u4ee3\u5e01\u4ef7\u683c\u53ea\u662f\u5176\u4e2d\u4e00\u4e2a\u56e0\u7d20\u3002\u603b\u4f7f\u7528\u91cf\u3001\u4e0d\u5b8c\u6574\u7684\u7b54\u6848\u3001\u91cd\u8bd5\u6b21\u6570\u4ee5\u53ca\u5ba1\u6838\u5de5\u4f5c\u91cf\u90fd\u4f1a\u5f71\u54cd\u53ef\u63a5\u53d7\u4fee\u6539\u7684\u6210\u672c\u3002\u5728\u6211\u4eec\u8fd9\u6b21\u5c0f\u89c4\u6a21\u91cd\u6784\u4e2d\uff0c\u8fd9\u4e09\u4e2a\u51fd\u6570\u5747\u901a\u8fc7\u4e86\u6d4b\u8bd5\uff0c\u800c\u90a3\u4e09\u4e2a\u89c4\u6a21\u8f83\u5927\u7684\u3001\u6d89\u53ca\u4e24\u4e2a\u6587\u4ef6\u7684\u54cd\u5e94\u5219\u90fd\u56e0\u8fbe\u5230\u5171\u4eab\u8f93\u51fa\u9650\u5236\u800c\u88ab\u622a\u65ad\u3002.<\/p>\n\n\n\n<h2 id=\"sources\" class=\"wp-block-heading\">\u8d44\u6599\u6765\u6e90<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/code.claude.com\/docs\/en\/model-config\">Claude \u4ee3\u7801\u6a21\u578b\u914d\u7f6e<\/a> \u2014 \u6a21\u578b\u9009\u62e9\u3001\u9ed8\u8ba4\u503c\u3001\u522b\u540d\u3001\u63d0\u4f9b\u5546\u5dee\u5f02\u4ee5\u53ca opusplan\u3002.<\/li>\n\n\n\n<li><a href=\"https:\/\/code.claude.com\/docs\/en\/costs\">Claude \u4ee3\u7801\u8d39\u7528<\/a> \u2014 \u7528\u91cf\u4f30\u7b97\u3001\u8ba2\u9605\u914d\u989d\u3001\u7f13\u5b58\u548c\u6210\u672c\u63a7\u5236\u3002.<\/li>\n\n\n\n<li><a href=\"https:\/\/platform.claude.com\/docs\/en\/about-claude\/models\/overview\">Anthropic \u578b\u53f7\u6982\u8ff0<\/a> \u548c <a href=\"https:\/\/platform.claude.com\/docs\/en\/about-claude\/pricing\">\u5e94\u7528\u7a0b\u5e8f\u63a5\u53e3\u5b9a\u4ef7<\/a> \u2014 \u5f53\u524d\u8f66\u578b\u7684\u89c4\u683c\u548c\u5efa\u8bae\u96f6\u552e\u4ef7\u3002.<\/li>\n\n\n\n<li><a href=\"https:\/\/claude.com\/blog\/claude-model-and-effort-level-in-claude-code\">\u6a21\u578b\u4e0e\u5de5\u4f5c\u91cf\u6307\u5357<\/a> \u2014 \u80fd\u529b\u3001\u60c5\u5883\u548c\u6295\u5165\u4e4b\u95f4\u7684\u5b9e\u9645\u5dee\u5f02\u3002.<\/li>\n\n\n\n<li><a href=\"https:\/\/www.glbgpt.com\/home\/cli\">GlobalGPT CLI \u6587\u6863<\/a> \u2014 \u7ec8\u7aef\u5de5\u4f5c\u6d41\u548c\u57fa\u4e8e\u8d26\u6237\u7684\u8bbe\u7f6e\u3002.<\/li>\n<\/ul>\n\n\n\n<script type=\"application\/ld+json\">{\n    \"@context\": \"https:\\\/\\\/schema.org\",\n    \"@type\": \"FAQPage\",\n    \"mainEntity\": [\n        {\n            \"@type\": \"Question\",\n            \"name\": \"How do I change the model in Claude Code?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Run \\\/model to open the picker. Press s to switch only the current session, or Enter to save the selected model as your default. To choose a model for a single new session, launch with claude --model followed by the model name.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Does \\\/model change my saved default?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"In current interactive versions, selecting a model with Enter or typing \\\/model sonnet saves the choice in user settings when writable. Pressing s in the picker is session-only. Other settings can still take priority on the next launch.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"What is the default Claude Code model?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"The runtime default depends on your account, provider, and configuration. The default value clears a model override; it is not one fixed model ID. Check the active model with \\\/status and inspect the picker rather than assuming every account starts on the same release.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"What does opusplan do?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"It uses Opus during plan mode and Sonnet during execution. It follows the mode transition rather than automatically choosing the cheapest model for each prompt. Actual cost depends on the work performed in each phase.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Why is a model missing from the picker?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Availability can depend on your provider, account, organization restrictions, and Claude Code version. Check the current model documentation and your environment\\u2019s allowed models. A family alias can also resolve to a different release on another provider.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Does a cheaper model always make a task cheaper?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"No. Token price is only one factor. Total usage, incomplete answers, retries, and review effort affect the cost of an acceptable change. In our small refactor all three functions passed, while all three larger two-file responses were truncated at the shared output limit.\"\n            }\n        }\n    ]\n}<\/script>","protected":false},"excerpt":{"rendered":"<p>\u5728\u9009\u62e9 Claude \u4ee3\u7801\u6a21\u578b\u65f6\uff0c\u8bf7\u5c06 Haiku \u7528\u4e8e\u5c0f\u89c4\u6a21\u4e14\u53ef\u6d4b\u8bd5\u7684\u66f4\u6539\uff0c\u5c06 Sonnet \u7528\u4e8e\u5e38\u89c4\u5b9e\u73b0\uff0c\u5c06 Opus \u7528\u4e8e\u5904\u7406\u4e0d\u786e\u5b9a\u6027\u8f83\u9ad8\u6216\u5bf9\u63a8\u7406\u8981\u6c42\u66f4\u9ad8\u7684\u4efb\u52a1\u3002 Anthropic \u76ee\u524d\u5efa\u8bae\u5c06 Opus 5.5 \u4f5c\u4e3a\u5e7f\u6cdb\u7684\u8d77\u70b9\uff1b\u60a8\u7684\u4efb\u52a1\u3001\u5ba1\u67e5\u8d1f\u62c5\u548c\u9884\u7b97\u5c06\u51b3\u5b9a\u8f83\u5c0f\u7684\u6a21\u578b\u662f\u5426\u66f4\u9002\u5408\u3002\u8981\u66f4\u6539\u6a21\u578b\uff0c\u8bf7\u6253\u5f00 \/model\u3002[\u2026]<\/p>","protected":false},"author":7,"featured_media":20168,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_seopress_robots_primary_cat":"","_seopress_titles_title":"Claude Code Model Selection: Defaults, Switching, and Cost","_seopress_titles_desc":"Choose a Claude Code model for your task, set a default, switch for one session, and compare current API costs with practical coding examples.","_seopress_robots_index":"","footnotes":""},"categories":[7],"tags":[],"class_list":["post-20166","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-chat"],"acf":[],"_links":{"self":[{"href":"https:\/\/wp.glbgpt.com\/zh\/wp-json\/wp\/v2\/posts\/20166","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp.glbgpt.com\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wp.glbgpt.com\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wp.glbgpt.com\/zh\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/wp.glbgpt.com\/zh\/wp-json\/wp\/v2\/comments?post=20166"}],"version-history":[{"count":2,"href":"https:\/\/wp.glbgpt.com\/zh\/wp-json\/wp\/v2\/posts\/20166\/revisions"}],"predecessor-version":[{"id":20174,"href":"https:\/\/wp.glbgpt.com\/zh\/wp-json\/wp\/v2\/posts\/20166\/revisions\/20174"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wp.glbgpt.com\/zh\/wp-json\/wp\/v2\/media\/20168"}],"wp:attachment":[{"href":"https:\/\/wp.glbgpt.com\/zh\/wp-json\/wp\/v2\/media?parent=20166"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wp.glbgpt.com\/zh\/wp-json\/wp\/v2\/categories?post=20166"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wp.glbgpt.com\/zh\/wp-json\/wp\/v2\/tags?post=20166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}