工具
管理 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 install、git 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 權限控制,該權限涵蓋所有檔案修改(edit、write、apply_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 模式(例如 **/*.js 或 src/**/*.ts)搜尋檔案。傳回符合條件的檔案路徑,並依修改時間排序。
lsp(實驗性)
與您設定的 LSP 伺服器互動,以取得程式碼智慧功能,例如定義、參考、懸停資訊和呼叫階層。
實驗性
LSP 工具是實驗性的,且預設為停用。行為可能會在版本之間有所變更。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"lsp": "allow"
}
}
支援的操作包括 goToDefinition、findReferences、hover、documentSymbol、workspaceSymbol、goToImplementation、prepareCallHierarchy、incomingCalls 和 outgoingCalls。
若要設定專案可用的 LSP 伺服器,請參閱 LSP 伺服器。
apply_patch
將修補程式套用至檔案。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"edit": "allow"
}
}
此工具將修補程式檔案套用至您的程式碼庫。適用於套用來自各種來源的 diff 和修補程式。
在處理 tool.execute.before 或 tool.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 權限控制,該權限涵蓋所有檔案修改(edit、write、apply_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 伺服器的資訊。
忽略模式
預設情況下,grep 和 glob 會遵循您的 .gitignore:列在其中的檔案和目錄會從搜尋和清單中排除。
若要包含通常會被忽略的檔案,請在專案根目錄建立 .ignore 檔案。此檔案可以明確允許特定路徑。
!node_modules/
!dist/
!build/
例如,此 .ignore 檔案允許在 node_modules/、dist/ 和 build/ 目錄中進行搜尋,即使它們列在 .gitignore 中也是如此。