Dropstone CLI

工具

管理 LLM 可以使用的工具。

工具允許 LLM 在您的程式碼庫中執行動作。Dropstone 附帶一組內建工具,但您也可以透過自訂工具MCP 伺服器來擴充。

預設情況下,所有工具都是啟用的,且不需要權限即可執行。您可以透過權限來控制工具行為。


設定

使用 permission 欄位來控制工具行為。您可以允許、拒絕或要求每個工具需經核准。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "edit": "deny",
    "bash": "ask",
    "webfetch": "allow"
  }
}

您也可以使用萬用字元一次控制多個工具。例如,要求所有來自 MCP 伺服器的工具需經核准:

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "mymcp_*": "ask"
  }
}

了解更多關於設定權限的資訊。


內建工具

以下是 Dropstone 中所有可用的內建工具。


bash

在您的專案環境中執行 shell 指令。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "bash": "allow"
  }
}

此工具允許 LLM 執行終端機指令,例如 npm installgit status 或任何其他 shell 指令。


edit

使用精確字串替換來修改現有檔案。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "edit": "allow"
  }
}

此工具透過替換精確的文字相符項目來對檔案進行精確編輯。這是 LLM 修改程式碼的主要方式。


write

建立新檔案或覆寫現有檔案。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "edit": "allow"
  }
}

使用此工具允許 LLM 建立新檔案。如果檔案已存在,它會覆寫現有檔案。

Note

write 工具由 edit 權限控制,該權限涵蓋所有檔案修改(editwriteapply_patch)。


read

從您的程式碼庫讀取檔案內容。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "read": "allow"
  }
}

此工具讀取檔案並傳回其內容。它支援讀取大型檔案的特定行範圍。


grep

使用正規表示式搜尋檔案內容。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "grep": "allow"
  }
}

在您的程式碼庫中進行快速內容搜尋。支援完整的 regex 語法和檔案模式篩選。


glob

透過模式比對尋找檔案。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "glob": "allow"
  }
}

使用 glob 模式(例如 **/*.jssrc/**/*.ts)搜尋檔案。傳回符合條件的檔案路徑,並依修改時間排序。


lsp(實驗性)

與您設定的 LSP 伺服器互動,以取得程式碼智慧功能,例如定義、參考、懸停資訊和呼叫階層。

實驗性

LSP 工具是實驗性的,且預設為停用。行為可能會在版本之間有所變更。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "lsp": "allow"
  }
}

支援的操作包括 goToDefinitionfindReferenceshoverdocumentSymbolworkspaceSymbolgoToImplementationprepareCallHierarchyincomingCallsoutgoingCalls

若要設定專案可用的 LSP 伺服器,請參閱 LSP 伺服器


apply_patch

將修補程式套用至檔案。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "edit": "allow"
  }
}

此工具將修補程式檔案套用至您的程式碼庫。適用於套用來自各種來源的 diff 和修補程式。

在處理 tool.execute.beforetool.execute.after 鉤子時,請檢查 input.tool === "apply_patch"(而非 "patch")。

apply_patch 使用 output.args.patchText 而非 output.args.filePath。路徑嵌入在 patchText 內的標記行中,且相對於專案根目錄(例如:*** Add File: src/new-file.ts*** Update File: src/existing.ts*** Move to: src/renamed.ts*** Delete File: src/obsolete.ts)。

Note

apply_patch 工具由 edit 權限控制,該權限涵蓋所有檔案修改(editwriteapply_patch)。


skill

載入技能(一個 SKILL.md 檔案)並在對話中傳回其內容。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "skill": "allow"
  }
}

todowrite

在編碼工作階段期間管理待辦事項清單。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "todowrite": "allow"
  }
}

建立和更新任務清單,以在複雜操作期間追蹤進度。LLM 使用此工具來組織多步驟任務。

Note

此工具預設對子代理停用,但您可以手動啟用它。了解更多


webfetch

擷取網頁內容。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "webfetch": "allow"
  }
}

允許 LLM 擷取和讀取網頁。適用於查閱文件或研究線上資源。


websearch

搜尋網路以取得資訊。當您登入 Dropstone 時,預設即可使用。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "websearch": "allow"
  }
}

執行網路搜尋以在線上尋找相關資訊。適用於研究主題、尋找時事,或收集超出訓練資料截止日期以外的資訊。當您登入 Dropstone 時,不需要 API 金鑰或額外設定。

Tip

當您需要尋找資訊(探索)時使用 websearch,而當您需要從特定 URL 擷取內容(取得)時使用 webfetch


question

在執行期間詢問使用者問題。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "question": "allow"
  }
}

此工具允許 LLM 在任務期間詢問使用者問題。它適用於:

  • 收集使用者偏好或需求
  • 釐清模糊的指示
  • 取得實作選擇的決策
  • 提供關於接下來方向的選擇

每個問題都包含標題、問題文字和選項清單。使用者可以從提供的選項中選擇,或輸入自訂答案。當有多個問題時,使用者可以在提交所有答案之前於問題之間導覽。


自訂工具

自訂工具讓您定義自己的函式,供 LLM 呼叫。這些函式在您的設定檔中定義,且可以執行任意程式碼。

了解更多關於建立自訂工具的資訊。


MCP 伺服器

MCP(Model Context Protocol)伺服器讓您整合外部工具和服務。這包括資料庫存取、API 整合和第三方服務。

了解更多關於設定 MCP 伺服器的資訊。


忽略模式

預設情況下,grepglob 會遵循您的 .gitignore:列在其中的檔案和目錄會從搜尋和清單中排除。

若要包含通常會被忽略的檔案,請在專案根目錄建立 .ignore 檔案。此檔案可以明確允許特定路徑。

!node_modules/
!dist/
!build/

例如,此 .ignore 檔案允許在 node_modules/dist/build/ 目錄中進行搜尋,即使它們列在 .gitignore 中也是如此。

Ctrl+I