為什麼文件很重要

文件提供了當前、準確的上下文。沒有文件,模型會使用過時或不完整的訓練資料。文件幫助模型理解以下內容:
  • 當前的 API 和參數
  • 最佳實踐
  • 組織慣例
  • 領域術語
以及更多內容。請繼續閱讀,了解如何在 Cursor 中直接使用文件,而無需切換上下文。

模型知識截止點

大型語言模型是基於特定時間點之前的資料進行訓練的,這個時間點稱為「知識截止點」。這意味著:
  • 最近的函式庫更新可能不會反映在模型中
  • 新的框架或工具可能是未知的
  • 截止日期之後的 API 變更會被遺漏
  • 最佳實踐可能在訓練後已經演進
例如,如果一個模型的知識截止點是 2024 年初,它就不會知道 2024 年底發布的功能,即使是熱門框架也是如此。

我應該使用哪個工具?

使用此決策樹快速確定滿足您文檔需求的最佳方法:

心理模型

工具心理模型
@Docs就像瀏覽和閱讀官方文檔
@Web就像在網路上搜尋解決方案
MCP就像存取您的內部文檔

公開文檔

外部文檔涵蓋了模型可能具有有限或過時知識的公開可用資訊。Cursor 提供兩種主要方式來存取這些資訊。

使用 @Docs

@Docs 將 Cursor 連接到熱門工具和框架的官方文檔。當您需要最新、權威的資訊時使用它:
  • API 參考:函數簽名、參數、返回類型
  • 入門指南:設置、配置、基本用法
  • 最佳實踐:來源推薦的模式
  • 框架特定除錯:官方故障排除指南
@
@Docs Next.js 如何設置帶有 catch-all 路由的動態路由?
Agent⌘I
Auto

使用 @Web

@Web 搜尋即時網路以獲取最新資訊、部落格文章和社群討論。當您需要以下內容時請使用它:
  • 最新教學: 社群產生的內容和範例
  • 比較: 比較不同方法的文章
  • 最新更新: 非常新的更新或公告
  • 多重觀點: 解決問題的不同方法
@
@Web latest performance optimizations for React 19
Agent⌘I
Auto

內部文件

內部文件包含您組織特有的資訊,這些資訊是 AI 模型在訓練過程中從未接觸過的。這可能包括:
  • 內部 API:自訂服務和微服務
  • 公司標準:編碼慣例、架構模式
  • 專有系統:自訂工具、資料庫、工作流程
  • 領域知識:業務邏輯、合規要求

使用 MCP 存取內部文件

Model Context Protocol (MCP) 提供了一種標準化的方式,將您的私有文件和系統整合到 Cursor 中。MCP 在 Cursor 和您的內部資源之間充當一個薄層。 為什麼 MCP 很重要:
  • 模型無法猜測您的內部慣例
  • 自訂服務的 API 文件並非公開可用
  • 業務邏輯和領域知識對您的組織來說是獨特的
  • 合規性和安全性要求因公司而異

常見的 MCP 整合

整合存取範例
Confluence公司 Confluence 空間架構文件、內部服務的 API 規格、編碼標準和指南、流程文件
Google Drive共享文件和資料夾規格文件、會議記錄和決策記錄、設計文件和需求、團隊知識庫
Notion工作區資料庫和頁面專案文件、團隊 wiki、知識庫、產品需求、技術規格
自訂內部系統和資料庫專有 API、舊版文件系統、自訂知識庫、專業工具和工作流程

自訂解決方案

對於獨特的需求,您可以建立自訂的 MCP 伺服器來:
  • 爬取內部網站或入口網站
  • 連接到專有資料庫
  • 存取自訂文件系統
  • 從內部 wiki 或知識庫提取資料
如果您建立了自訂的 MCP 伺服器,您也可以公開工具讓 Cursor 更新文件
用於爬取內部文件的自訂 MCP 伺服器範例:
import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
import TurndownService from "turndown";

// 建立用於爬取內部文件的 MCP 伺服器
const server = new McpServer({
  name: "internal-docs",
  version: "1.0.0"
});

const turndownService = new TurndownService();

// 新增爬取內部文件的工具
server.tool("get_doc",
  { url: z.string() },
  async ({ url }) => {
    try {
      const response = await fetch(url);
      const html = await response.text();
      
      // 將 HTML 轉換為 markdown
      const markdown = turndownService.turndown(html);
      
      return {
        content: [{ type: "text", text: markdown }]
      };
    } catch (error) {
      return {
        content: [{ type: "text", text: `爬取 ${url} 時發生錯誤:${error.message}` }]
      };
    }
  }
);

// 開始在 stdin 上接收訊息並在 stdout 上發送訊息
const transport = new StdioServerTransport();
await server.connect(transport);

保持文件同步更新

文件很容易過時。Cursor 可以根據您的實際程式碼和開發對話來生成和更新文件,幫助您維護最新且實用的文件。

從現有程式碼

使用 Cursor 直接從您的程式碼庫建立文件:
@
為這個 Express 路由器產生 API 文件,包含所有端點、參數和回應格式
Agent⌘I
Auto

從聊天會話中

您與 Cursor 的對話包含寶貴的意圖,可以轉化為文件。
解決複雜問題後:
@
將我們關於設置身份驗證的對話總結成團隊 wiki 的逐步指南
Agent⌘I
Auto

重點摘要

  • 將文件作為上下文可以讓 Cursor 更準確且保持最新狀態
  • 使用 @Docs 獲取官方文件,使用 @Web 獲取社群知識
  • MCP 在 Cursor 和您的內部系統之間建立橋樑
  • 從程式碼和對話中生成文件以保持知識的時效性
  • 結合外部和內部文件來源以獲得全面的理解