> ## Documentation Index
> Fetch the complete documentation index at: https://docs.windsurf.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Cascade 中的 AI 模型

> Cascade 中可用的 AI 模型，包括 SWE-1.5、SWE-1、Claude、GPT，以及自带密钥（BYOK）选项及其对应的额度消耗。

export const ModelsTable = () => {
  const [activeTab, setActiveTab] = useState('recommended');
  const [showScrollHint, setShowScrollHint] = useState(true);
  const tableContainerRef = useRef(null);
  const windsurfIcon = {
    light: "https://exafunction.github.io/public/icons/docs/Windsurf-black-symbol.png",
    dark: "https://exafunction.github.io/public/icons/docs/Windsurf-white-symbol.png"
  };
  const openaiIcon = {
    light: "https://exafunction.github.io/public/icons/docs/OpenAI-black-monoblossom.png",
    dark: "https://exafunction.github.io/public/icons/docs/OpenAI-white-monoblossom.png"
  };
  const claudeIcon = {
    light: "https://exafunction.github.io/public/icons/docs/claude-logo-clay.png",
    dark: "https://exafunction.github.io/public/icons/docs/claude-logo-clay.png"
  };
  const deepseekIcon = {
    light: "https://exafunction.github.io/public/icons/docs/deepseek-logo.png",
    dark: "https://exafunction.github.io/public/icons/docs/deepseek-logo.png"
  };
  const geminiIcon = {
    light: "https://exafunction.github.io/public/icons/docs/gemini-models-icon.png",
    dark: "https://exafunction.github.io/public/icons/docs/gemini-models-icon.png"
  };
  const grokIcon = {
    light: "https://exafunction.github.io/public/icons/docs/Grok_Logomark_Dark.png",
    dark: "https://exafunction.github.io/public/icons/docs/Grok_Logomark_Light.png"
  };
  const qwenIcon = {
    light: "https://exafunction.github.io/public/icons/docs/qwen-logo.png",
    dark: "https://exafunction.github.io/public/icons/docs/qwen-logo.png"
  };
  const kimiIcon = {
    light: "https://exafunction.github.io/public/icons/docs/kimi-k2-icon.png",
    dark: "https://exafunction.github.io/public/icons/docs/kimi-k2-icon.png"
  };
  const minimaxIcon = {
    light: "https://exafunction.github.io/public/icons/docs/minimax-icon.png",
    dark: "https://exafunction.github.io/public/icons/docs/minimax-icon.png"
  };
  const zhipuIcon = {
    light: "https://exafunction.github.io/public/icons/docs/zai_light.png",
    dark: "https://exafunction.github.io/public/icons/docs/zai_dark.png"
  };
  const allModels = [{
    name: "Adaptive",
    icon: windsurfIcon,
    credits: "*",
    provider: "windsurf",
    recommended: true
  }, {
    name: "SWE-1.6",
    icon: windsurfIcon,
    credits: "0",
    hasGift: true,
    provider: "windsurf",
    recommended: true
  }, {
    name: "SWE-1.6 Fast",
    icon: windsurfIcon,
    credits: "0.5",
    provider: "windsurf"
  }, {
    name: "SWE-1.5",
    icon: windsurfIcon,
    credits: "0",
    hasGift: true,
    provider: "windsurf"
  }, {
    name: "SWE-1.5 Fast",
    icon: windsurfIcon,
    credits: "0.5",
    provider: "windsurf"
  }, {
    name: "Claude Opus 4.6",
    icon: claudeIcon,
    credits: "6",
    provider: "anthropic"
  }, {
    name: "Claude Opus 4.6 (Thinking)",
    icon: claudeIcon,
    credits: "8",
    provider: "anthropic"
  }, {
    name: "Claude Opus 4.6 1M",
    icon: claudeIcon,
    credits: "10",
    provider: "anthropic"
  }, {
    name: "Claude Opus 4.6 Thinking 1M",
    icon: claudeIcon,
    credits: "12",
    provider: "anthropic"
  }, {
    name: "Claude Opus 4.6 Fast",
    icon: claudeIcon,
    credits: "24",
    provider: "anthropic"
  }, {
    name: "Claude Opus 4.6 Fast Thinking",
    icon: claudeIcon,
    credits: "30",
    provider: "anthropic"
  }, {
    name: "Claude Opus 4.7 (Low Thinking)",
    icon: claudeIcon,
    credits: "20",
    provider: "anthropic"
  }, {
    name: "Claude Opus 4.7 (Medium Thinking)",
    icon: claudeIcon,
    credits: "40",
    provider: "anthropic"
  }, {
    name: "Claude Opus 4.7 (High Thinking)",
    icon: claudeIcon,
    credits: "60",
    provider: "anthropic"
  }, {
    name: "Claude Opus 4.7 (XHigh Thinking)",
    icon: claudeIcon,
    credits: "65",
    provider: "anthropic"
  }, {
    name: "Claude Opus 4.7 (Max Thinking)",
    icon: claudeIcon,
    credits: "75",
    provider: "anthropic"
  }, {
    name: "Claude Opus 4.8 (Low Thinking)",
    icon: claudeIcon,
    credits: "7.5",
    hasGift: true,
    provider: "anthropic",
    recommended: true
  }, {
    name: "Claude Opus 4.8 (Medium Thinking)",
    icon: claudeIcon,
    credits: "15",
    hasGift: true,
    provider: "anthropic",
    recommended: true
  }, {
    name: "Claude Opus 4.8 (High Thinking)",
    icon: claudeIcon,
    credits: "25",
    hasGift: true,
    provider: "anthropic",
    recommended: true
  }, {
    name: "Claude Opus 4.8 (XHigh Thinking)",
    icon: claudeIcon,
    credits: "28",
    hasGift: true,
    provider: "anthropic",
    recommended: true
  }, {
    name: "Claude Opus 4.8 (Max Thinking)",
    icon: claudeIcon,
    credits: "30",
    hasGift: true,
    provider: "anthropic",
    recommended: true
  }, {
    name: "Claude Opus 4.8 Fast (Low Thinking)",
    icon: claudeIcon,
    credits: "15",
    hasGift: true,
    provider: "anthropic"
  }, {
    name: "Claude Opus 4.8 Fast (Medium Thinking)",
    icon: claudeIcon,
    credits: "30",
    hasGift: true,
    provider: "anthropic"
  }, {
    name: "Claude Opus 4.8 Fast (High Thinking)",
    icon: claudeIcon,
    credits: "50",
    hasGift: true,
    provider: "anthropic"
  }, {
    name: "Claude Opus 4.8 Fast (XHigh Thinking)",
    icon: claudeIcon,
    credits: "56",
    hasGift: true,
    provider: "anthropic"
  }, {
    name: "Claude Opus 4.8 Fast (Max Thinking)",
    icon: claudeIcon,
    credits: "60",
    hasGift: true,
    provider: "anthropic"
  }, {
    name: "Claude Sonnet 4.6",
    icon: claudeIcon,
    credits: "4",
    provider: "anthropic",
    recommended: true
  }, {
    name: "Claude Sonnet 4.6 (Thinking)",
    icon: claudeIcon,
    credits: "6",
    provider: "anthropic"
  }, {
    name: "Claude Sonnet 4.6 1M",
    icon: claudeIcon,
    credits: "12",
    provider: "anthropic"
  }, {
    name: "Claude Sonnet 4.6 Thinking 1M",
    icon: claudeIcon,
    credits: "16",
    provider: "anthropic"
  }, {
    name: "Claude Opus 4.5",
    icon: claudeIcon,
    credits: "6",
    provider: "anthropic",
    recommended: true
  }, {
    name: "Claude Opus 4.5 (Thinking)",
    icon: claudeIcon,
    credits: "8",
    provider: "anthropic"
  }, {
    name: "Claude Sonnet 4.5",
    icon: claudeIcon,
    credits: "3",
    provider: "anthropic",
    recommended: true
  }, {
    name: "Claude Sonnet 4.5 (Thinking)",
    icon: claudeIcon,
    credits: "4",
    provider: "anthropic"
  }, {
    name: "Claude Haiku 4.5",
    icon: claudeIcon,
    credits: "1",
    provider: "anthropic"
  }, {
    name: "Claude Sonnet 4",
    icon: claudeIcon,
    credits: "3",
    provider: "anthropic"
  }, {
    name: "Claude Sonnet 4 (Thinking)",
    icon: claudeIcon,
    credits: "4",
    provider: "anthropic"
  }, {
    name: "GPT-5.4 (No Reasoning)",
    icon: openaiIcon,
    credits: "1.5",
    provider: "openai"
  }, {
    name: "GPT-5.4 (Low Reasoning)",
    icon: openaiIcon,
    credits: "1.5",
    provider: "openai"
  }, {
    name: "GPT-5.4 (Medium Reasoning)",
    icon: openaiIcon,
    credits: "3",
    provider: "openai"
  }, {
    name: "GPT-5.4 (High Reasoning)",
    icon: openaiIcon,
    credits: "4",
    provider: "openai"
  }, {
    name: "GPT-5.4 (Extra High Reasoning)",
    icon: openaiIcon,
    credits: "12",
    provider: "openai"
  }, {
    name: "GPT-5.4 (No Reasoning) Fast",
    icon: openaiIcon,
    credits: "3",
    provider: "openai"
  }, {
    name: "GPT-5.4 (Low Reasoning) Fast",
    icon: openaiIcon,
    credits: "3",
    provider: "openai"
  }, {
    name: "GPT-5.4 (Medium Reasoning) Fast",
    icon: openaiIcon,
    credits: "6",
    provider: "openai"
  }, {
    name: "GPT-5.4 (High Reasoning) Fast",
    icon: openaiIcon,
    credits: "8",
    provider: "openai"
  }, {
    name: "GPT-5.4 (Extra High Reasoning) Fast",
    icon: openaiIcon,
    credits: "24",
    provider: "openai"
  }, {
    name: "GPT-5.5 (No Reasoning)",
    icon: openaiIcon,
    credits: "7",
    provider: "openai"
  }, {
    name: "GPT-5.5 (Low Reasoning)",
    icon: openaiIcon,
    credits: "8",
    provider: "openai"
  }, {
    name: "GPT-5.5 (Medium Reasoning)",
    icon: openaiIcon,
    credits: "14",
    provider: "openai"
  }, {
    name: "GPT-5.5 (High Reasoning)",
    icon: openaiIcon,
    credits: "24",
    provider: "openai"
  }, {
    name: "GPT-5.5 (Extra High Reasoning)",
    icon: openaiIcon,
    credits: "32",
    provider: "openai"
  }, {
    name: "GPT-5.5 (No Reasoning) Fast",
    icon: openaiIcon,
    credits: "17.5",
    provider: "openai"
  }, {
    name: "GPT-5.5 (Low Reasoning) Fast",
    icon: openaiIcon,
    credits: "20",
    provider: "openai"
  }, {
    name: "GPT-5.5 (Medium Reasoning) Fast",
    icon: openaiIcon,
    credits: "35",
    provider: "openai"
  }, {
    name: "GPT-5.5 (High Reasoning) Fast",
    icon: openaiIcon,
    credits: "60",
    provider: "openai"
  }, {
    name: "GPT-5.5 (Extra High Reasoning) Fast",
    icon: openaiIcon,
    credits: "80",
    provider: "openai"
  }, {
    name: "GPT-5.4 Mini (Low Reasoning)",
    icon: openaiIcon,
    credits: "1.5",
    provider: "openai",
    recommended: true
  }, {
    name: "GPT-5.4 Mini (Medium Reasoning)",
    icon: openaiIcon,
    credits: "1.5",
    provider: "openai"
  }, {
    name: "GPT-5.4 Mini (High Reasoning)",
    icon: openaiIcon,
    credits: "4.5",
    provider: "openai"
  }, {
    name: "GPT-5.4 Mini (Extra High Reasoning)",
    icon: openaiIcon,
    credits: "12",
    provider: "openai"
  }, {
    name: "GPT-5.3-Codex (Low Reasoning)",
    icon: openaiIcon,
    credits: "1.5",
    provider: "openai"
  }, {
    name: "GPT-5.3-Codex (Medium Reasoning)",
    icon: openaiIcon,
    credits: "2",
    provider: "openai"
  }, {
    name: "GPT-5.3-Codex (High Reasoning)",
    icon: openaiIcon,
    credits: "2.5",
    provider: "openai"
  }, {
    name: "GPT-5.3-Codex (Extra High Reasoning)",
    icon: openaiIcon,
    credits: "3",
    provider: "openai"
  }, {
    name: "GPT-5.3-Codex (Low Reasoning Fast)",
    icon: openaiIcon,
    credits: "3",
    provider: "openai"
  }, {
    name: "GPT-5.3-Codex (Medium Reasoning Fast)",
    icon: openaiIcon,
    credits: "4",
    provider: "openai"
  }, {
    name: "GPT-5.3-Codex (High Reasoning Fast)",
    icon: openaiIcon,
    credits: "5",
    provider: "openai"
  }, {
    name: "GPT-5.3-Codex (Extra High Reasoning Fast)",
    icon: openaiIcon,
    credits: "6",
    provider: "openai"
  }, {
    name: "GPT-5.3-Codex-Spark",
    icon: openaiIcon,
    credits: "—",
    provider: "openai"
  }, {
    name: "GPT-5.2 (No Reasoning)",
    icon: openaiIcon,
    credits: "1",
    provider: "openai"
  }, {
    name: "GPT-5.2 (Low Reasoning)",
    icon: openaiIcon,
    credits: "1",
    provider: "openai"
  }, {
    name: "GPT-5.2 (Medium Reasoning)",
    icon: openaiIcon,
    credits: "2",
    provider: "openai"
  }, {
    name: "GPT-5.2 (High Reasoning)",
    icon: openaiIcon,
    credits: "3",
    provider: "openai"
  }, {
    name: "GPT-5.2 (Extra High Reasoning)",
    icon: openaiIcon,
    credits: "8",
    provider: "openai"
  }, {
    name: "GPT-5.2 (No Reasoning Fast)",
    icon: openaiIcon,
    credits: "2",
    provider: "openai"
  }, {
    name: "GPT-5.2 (Low Reasoning Fast)",
    icon: openaiIcon,
    credits: "2",
    provider: "openai"
  }, {
    name: "GPT-5.2 (Medium Reasoning Fast)",
    icon: openaiIcon,
    credits: "4",
    provider: "openai"
  }, {
    name: "GPT-5.2 (High Reasoning Fast)",
    icon: openaiIcon,
    credits: "6",
    provider: "openai"
  }, {
    name: "GPT-5.2 (Extra High Reasoning Fast)",
    icon: openaiIcon,
    credits: "16",
    provider: "openai"
  }, {
    name: "GPT-5.2-Codex (Low Reasoning)",
    icon: openaiIcon,
    credits: "1",
    provider: "openai"
  }, {
    name: "GPT-5.2-Codex (Medium Reasoning)",
    icon: openaiIcon,
    credits: "1",
    provider: "openai"
  }, {
    name: "GPT-5.2-Codex (High Reasoning)",
    icon: openaiIcon,
    credits: "2",
    provider: "openai"
  }, {
    name: "GPT-5.2-Codex (Extra High Reasoning)",
    icon: openaiIcon,
    credits: "3",
    provider: "openai"
  }, {
    name: "GPT-5.2-Codex (Low Reasoning Fast)",
    icon: openaiIcon,
    credits: "2",
    provider: "openai",
    recommended: true
  }, {
    name: "GPT-5.2-Codex (Medium Reasoning Fast)",
    icon: openaiIcon,
    credits: "2",
    provider: "openai"
  }, {
    name: "GPT-5.2-Codex (High Reasoning Fast)",
    icon: openaiIcon,
    credits: "4",
    provider: "openai"
  }, {
    name: "GPT-5.2-Codex (Extra High Reasoning Fast)",
    icon: openaiIcon,
    credits: "6",
    provider: "openai"
  }, {
    name: "GPT-5.1 (No Reasoning)",
    icon: openaiIcon,
    credits: "0.5",
    provider: "openai"
  }, {
    name: "GPT-5.1 (Low Reasoning)",
    icon: openaiIcon,
    credits: "0.5",
    provider: "openai"
  }, {
    name: "GPT-5.1 (Medium Reasoning)",
    icon: openaiIcon,
    credits: "1",
    provider: "openai"
  }, {
    name: "GPT-5.1 (High Reasoning)",
    icon: openaiIcon,
    credits: "2",
    provider: "openai"
  }, {
    name: "GPT-5.1 (No Reasoning Fast)",
    icon: openaiIcon,
    credits: "1",
    provider: "openai"
  }, {
    name: "GPT-5.1 (Low Reasoning Fast)",
    icon: openaiIcon,
    credits: "1",
    provider: "openai"
  }, {
    name: "GPT-5.1 (Medium Reasoning Fast)",
    icon: openaiIcon,
    credits: "2",
    provider: "openai"
  }, {
    name: "GPT-5.1 (High Reasoning Fast)",
    icon: openaiIcon,
    credits: "4",
    provider: "openai"
  }, {
    name: "GPT-5.1-Codex Max (Low Reasoning)",
    icon: openaiIcon,
    credits: "1",
    provider: "openai"
  }, {
    name: "GPT-5.1-Codex Max (Medium Reasoning)",
    icon: openaiIcon,
    credits: "1.25",
    provider: "openai"
  }, {
    name: "GPT-5.1-Codex Max (High Reasoning)",
    icon: openaiIcon,
    credits: "1.5",
    provider: "openai"
  }, {
    name: "GPT-5.1-Codex Low",
    icon: openaiIcon,
    credits: "0.5",
    provider: "openai"
  }, {
    name: "GPT-5.1-Codex Mini",
    icon: openaiIcon,
    credits: "0.5",
    provider: "openai"
  }, {
    name: "GPT-5.1-Codex Mini Low",
    icon: openaiIcon,
    credits: "0.25",
    provider: "openai"
  }, {
    name: "GPT-5 (Low Reasoning)",
    icon: openaiIcon,
    credits: "0.5",
    provider: "openai"
  }, {
    name: "GPT-5 (Medium Reasoning)",
    icon: openaiIcon,
    credits: "1",
    provider: "openai"
  }, {
    name: "GPT-5 (High Reasoning)",
    icon: openaiIcon,
    credits: "2",
    provider: "openai"
  }, {
    name: "GPT-5-Codex",
    icon: openaiIcon,
    credits: "0.5",
    provider: "openai"
  }, {
    name: "o3",
    icon: openaiIcon,
    credits: "1",
    provider: "openai"
  }, {
    name: "o3 (high reasoning)",
    icon: openaiIcon,
    credits: "1",
    provider: "openai"
  }, {
    name: "gpt-oss 120B (Medium)",
    icon: openaiIcon,
    credits: "0.25",
    provider: "openai"
  }, {
    name: "GPT-4o",
    icon: openaiIcon,
    credits: "1",
    provider: "openai"
  }, {
    name: "GPT-4.1",
    icon: openaiIcon,
    credits: "1",
    provider: "openai"
  }, {
    name: "Gemini 3.1 Pro Low",
    icon: geminiIcon,
    credits: "1",
    provider: "google"
  }, {
    name: "Gemini 3.1 Pro High",
    icon: geminiIcon,
    credits: "2",
    provider: "google"
  }, {
    name: "Gemini 3 Flash Minimal",
    icon: geminiIcon,
    credits: "0.75",
    provider: "google"
  }, {
    name: "Gemini 3 Flash Low",
    icon: geminiIcon,
    credits: "1",
    provider: "google"
  }, {
    name: "Gemini 3 Flash Medium",
    icon: geminiIcon,
    credits: "1",
    provider: "google"
  }, {
    name: "Gemini 3 Flash High",
    icon: geminiIcon,
    credits: "1.75",
    provider: "google"
  }, {
    name: "Gemini 2.5 Pro",
    icon: geminiIcon,
    credits: "1",
    provider: "google"
  }, {
    name: "xAI Grok Code Fast",
    icon: grokIcon,
    credits: "0.5",
    provider: "xai"
  }, {
    name: "Kimi K2.5",
    icon: kimiIcon,
    credits: "1",
    provider: "opensource"
  }, {
    name: "GLM-5",
    icon: zhipuIcon,
    credits: "1.5",
    provider: "opensource"
  }, {
    name: "Minimax M2.5",
    icon: minimaxIcon,
    credits: "1",
    provider: "opensource"
  }, {
    name: "GLM 4.7",
    icon: zhipuIcon,
    credits: "0.25",
    provider: "opensource"
  }];
  const tabs = [{
    id: 'recommended',
    label: 'Recommended'
  }, {
    id: 'windsurf',
    label: 'Windsurf'
  }, {
    id: 'anthropic',
    label: 'Anthropic'
  }, {
    id: 'openai',
    label: 'OpenAI'
  }, {
    id: 'google',
    label: 'Google'
  }, {
    id: 'xai',
    label: 'xAI'
  }, {
    id: 'opensource',
    label: 'Open Source'
  }];
  const getFilteredModels = () => {
    if (activeTab === 'recommended') {
      return allModels.filter(m => m.recommended);
    }
    return allModels.filter(m => m.provider === activeTab);
  };
  const models = getFilteredModels();
  useEffect(() => {
    const container = tableContainerRef.current;
    if (!container) return;
    const handleScroll = () => {
      if (container.scrollLeft > 10) {
        setShowScrollHint(false);
      }
    };
    container.addEventListener('scroll', handleScroll);
    return () => container.removeEventListener('scroll', handleScroll);
  }, []);
  return <>
      <style>{`
        .gift-tooltip-container:hover .gift-tooltip {
          opacity: 1 !important;
          visibility: visible !important;
        }
        .models-tab-button {
          padding: 8px 16px;
          font-size: 14px;
          font-weight: 500;
          border: none;
          background: transparent;
          cursor: pointer;
          border-bottom: 2px solid transparent;
          transition: all 0.2s ease;
          white-space: nowrap;
        }
        .models-tab-button:hover {
          background: rgba(0, 0, 0, 0.05);
        }
        .models-tab-button.active {
          border-bottom-color: #34E8BB;
        }
        .dark .models-tab-button:hover {
          background: rgba(255, 255, 255, 0.05);
        }
        #table-container {
          overflow-x: auto !important;
          overflow-y: visible !important;
          max-height: none !important;
          height: auto !important;
          -webkit-overflow-scrolling: touch !important;
        }
        #models-table {
          overflow: visible !important;
          max-height: none !important;
          height: auto !important;
        }
        @media (max-width: 768px) {
          #models-table {
            min-width: 700px !important;
          }
        }
        @keyframes scrollHintPulse {
          0%, 100% { opacity: 0.7; transform: translateX(0); }
          50% { opacity: 1; transform: translateX(4px); }
        }
        .scroll-hint-arrow {
          animation: scrollHintPulse 1.5s ease-in-out infinite;
        }
      `}</style>

      {}
      <div style={{
    display: 'flex',
    overflowX: 'auto',
    borderBottom: '1px solid',
    marginBottom: '0',
    gap: '4px'
  }} className="border-black/10 dark:border-white/10">
        {tabs.map(tab => <button key={tab.id} onClick={() => setActiveTab(tab.id)} className={`models-tab-button text-gray-700 dark:text-white ${activeTab === tab.id ? 'active' : ''}`}>
            {tab.label}
          </button>)}
      </div>

      {}
      <div style={{
    position: 'relative'
  }}>
        {}
        <div style={{
    position: 'absolute',
    top: 0,
    right: 0,
    bottom: 0,
    width: '40px',
    background: 'linear-gradient(to right, transparent, rgba(0,0,0,0.08))',
    pointerEvents: 'none',
    zIndex: 10,
    borderTopRightRadius: '8px',
    borderBottomRightRadius: '8px',
    opacity: showScrollHint ? 1 : 0,
    transition: 'opacity 0.3s ease',
    display: 'flex',
    alignItems: 'center',
    justifyContent: 'center'
  }} className="dark:[background:linear-gradient(to_right,transparent,rgba(0,0,0,0.3))]">
          <span className="scroll-hint-arrow text-gray-400 dark:text-gray-500" style={{
    fontSize: '18px',
    marginRight: '-4px'
  }}>→</span>
        </div>

        <div id="table-container" ref={tableContainerRef} style={{
    width: '100%',
    borderRadius: '8px',
    overflowX: 'auto',
    overflowY: 'visible',
    maxHeight: 'none',
    height: 'auto'
  }} className="light:bg-white dark:bg-zinc-900 border border-black/10 dark:border-white/10">
        <table id="models-table" style={{
    width: '100%',
    borderCollapse: 'collapse',
    fontSize: '14px',
    tableLayout: 'auto',
    margin: '0',
    padding: '0',
    height: 'auto',
    maxHeight: 'none'
  }}>
          <thead style={{
    margin: '0',
    padding: '0'
  }}>
            <tr className="border-b border-black/10 dark:!border-white/10">
              <th style={{
    padding: '16px 16px',
    textAlign: 'left',
    fontWeight: '500',
    minWidth: '200px'
  }} className="text-gray-700 dark:text-white">Model</th>
              <th style={{
    padding: '16px 8px',
    textAlign: 'center',
    fontWeight: '500',
    minWidth: '80px'
  }} className="text-gray-700 dark:text-white">Credits</th>
            </tr>
          </thead>
          <tbody style={{
    margin: '0',
    padding: '0'
  }}>
            {models.map((model, index) => <tr key={model.name} className={`${index === models.length - 1 ? '' : 'border-b border-black/10 dark:!border-white/10'}`}>
                <td style={{
    padding: '8px',
    fontWeight: '500',
    verticalAlign: 'middle'
  }}>
                  <div style={{
    display: 'flex',
    alignItems: 'center',
    gap: '8px',
    whiteSpace: 'nowrap'
  }}>
                    <span style={{
    display: 'inline-flex',
    alignItems: 'center',
    justifyContent: 'center',
    width: '20px',
    height: '20px',
    flexShrink: 0
  }}>
                      <img className="block dark:hidden" src={model.icon.light} alt={`${model.name} icon`} style={{
    width: '20px',
    height: '20px',
    objectFit: 'contain',
    pointerEvents: 'none',
    userSelect: 'none'
  }} />
                      <img className="hidden dark:block" src={model.icon.dark} alt={`${model.name} icon`} style={{
    width: '20px',
    height: '20px',
    objectFit: 'contain',
    pointerEvents: 'none',
    userSelect: 'none'
  }} />
                    </span>
                    <span className="text-gray-700 dark:text-white">{model.name}</span>
                  </div>
                </td>
                <td style={{
    padding: '10px',
    textAlign: 'center',
    verticalAlign: 'middle'
  }}>
                  <div style={{
    display: 'flex',
    alignItems: 'center',
    justifyContent: 'center',
    gap: '4px'
  }}>
                    <span className="text-gray-700 dark:text-white">{model.credits}</span>
                    {model.hasGift && <div className="gift-tooltip-container" style={{
    position: 'relative',
    display: 'inline-flex'
  }}>
                        <span style={{
    display: 'inline-flex',
    alignItems: 'center',
    justifyContent: 'center',
    width: '16px',
    height: '16px'
  }}>
                          <img className="block dark:hidden" src="https://exafunction.github.io/public/icons/docs/gift-black.png" alt="Gift icon" style={{
    width: '16px',
    height: '16px',
    objectFit: 'contain',
    pointerEvents: 'none',
    userSelect: 'none'
  }} />
                          <img className="hidden dark:block" src="https://exafunction.github.io/public/icons/docs/gift-white.png" alt="Gift icon" style={{
    width: '16px',
    height: '16px',
    objectFit: 'contain',
    pointerEvents: 'none',
    userSelect: 'none'
  }} />
                        </span>
                        <div className="gift-tooltip" style={{
    position: 'absolute',
    bottom: '100%',
    left: '50%',
    transform: 'translateX(-50%)',
    marginBottom: '8px',
    padding: '8px 12px',
    backgroundColor: '#333',
    color: 'white',
    borderRadius: '6px',
    fontSize: '12px',
    whiteSpace: 'nowrap',
    opacity: '0',
    visibility: 'hidden',
    transition: 'opacity 0.2s, visibility 0.2s',
    zIndex: '1000',
    pointerEvents: 'none'
  }}>
                          Promo pricing only available for a limited time
                          <div style={{
    position: 'absolute',
    top: '100%',
    left: '50%',
    transform: 'translateX(-50%)',
    width: '0',
    height: '0',
    borderLeft: '5px solid transparent',
    borderRight: '5px solid transparent',
    borderTop: '5px solid #333'
  }}></div>
                        </div>
                      </div>}
                  </div>
                </td>
              </tr>)}
          </tbody>
        </table>
        </div>
      </div>
      {models.some(m => m.name === "Adaptive") && <div style={{
    marginTop: '8px',
    fontSize: '12px'
  }} className="text-gray-600 dark:text-gray-400">
          * Adaptive uses variable per-request credit pricing based on the underlying model the router selects. <a href="https://docs.windsurf.com/windsurf/adaptive" className="text-[#34E8BB] hover:underline">Learn more</a>.
        </div>}
    </>;
};

在 Cascade 中，你可以轻松在所选的不同 AI 模型之间切换。

根据你选择的 AI 模型，每次输入的提示会消耗不同数量的[提示额度](/zh/windsurf/cascade/usage)。

在文本输入框下方，你会看到一个模型选择下拉菜单，其中包含以下 AI 模型：

<ModelsTable />

<div id="swe-15-swe-grep-swe-1">
  # SWE-1.5、swe-grep、SWE-1
</div>

我们的内部前沿 SWE AI 模型系列专为软件工程任务打造。

我们最新的前沿 AI 模型 SWE-1.5，在更短时间内实现了接近 SOTA 的表现。

我们的自研 AI 模型包括：

* `SWE-1.5`：迄今我们发布的最佳智能代理编程 AI 模型。性能接近 Claude 4.5，速度快 13 倍。阅读我们的[研究公告](https://cognition.ai/blog/swe-1-5)。
* `SWE-1`：我们的首个智能代理编程 AI 模型。以更低成本实现了接近 Claude 3.5 的性能。
* `SWE-1-mini`：为 Windsurf Tab 中的被动建议提供支持，并针对实时时延进行了优化。
* `swe-grep`：为上下文检索和 [Fast Context](context-awareness/fast-context) 提供支持

<div id="bring-your-own-key-byok">
  # 自带密钥 (BYOK)
</div>

<Warning>此功能仅适用于免费和付费的个人用户。</Warning>

对于某些 AI 模型，我们允许用户使用自有的 API 密钥。在模型下拉菜单中，个人用户会看到标注为 `BYOK` 的模型。

要输入你的 API 密钥，请前往订阅设置中的[此页面](https://windsurf.com/subscription/provider-api-keys)并添加你的密钥。

如果尚未配置 API 密钥，尝试使用 BYOK 模型时会返回错误。

目前，我们仅对以下模型支持 BYOK：

* `Claude 4 Sonnet`
* `Claude 4 Sonnet (Thinking)`
* `Claude 4 Opus`
* `Claude 4 Opus (Thinking)`
