Tools
Kelola alat yang dapat digunakan oleh LLM.
Tools memungkinkan LLM untuk melakukan tindakan di dalam codebase Anda. Dropstone dilengkapi dengan serangkaian tools bawaan, tetapi Anda dapat memperluasnya dengan custom tools atau MCP servers.
Secara default, semua tools diaktifkan dan tidak memerlukan izin untuk dijalankan. Anda dapat mengontrol perilaku tools melalui permissions.
Konfigurasi
Gunakan field permission untuk mengontrol perilaku tools. Anda dapat mengizinkan, menolak, atau memerlukan persetujuan untuk setiap tools.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"edit": "deny",
"bash": "ask",
"webfetch": "allow"
}
}
Anda juga dapat menggunakan wildcard untuk mengontrol beberapa tools sekaligus. Misalnya, untuk memerlukan persetujuan bagi semua tools dari server MCP:
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"mymcp_*": "ask"
}
}
Pelajari lebih lanjut tentang mengonfigurasi permissions.
Bawaan
Berikut adalah semua tools bawaan yang tersedia di Dropstone.
bash
Menjalankan perintah shell di lingkungan proyek Anda.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"bash": "allow"
}
}
Tools ini memungkinkan LLM untuk menjalankan perintah terminal seperti npm install, git status, atau perintah shell lainnya.
edit
Memodifikasi file yang ada menggunakan penggantian string yang tepat.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"edit": "allow"
}
}
Tools ini melakukan pengeditan yang presisi pada file dengan mengganti teks yang cocok secara tepat. Ini adalah cara utama LLM memodifikasi kode.
write
Membuat file baru atau menimpa file yang sudah ada.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"edit": "allow"
}
}
Gunakan ini untuk mengizinkan LLM membuat file baru. Tools ini akan menimpa file yang sudah ada jika file tersebut sudah ada.
Note
Tools write dikontrol oleh permission edit, yang mencakup semua modifikasi file (edit, write, apply_patch).
read
Membaca isi file dari codebase Anda.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"read": "allow"
}
}
Tools ini membaca file dan mengembalikan isinya. Tools ini mendukung pembacaan rentang baris tertentu untuk file besar.
grep
Mencari isi file menggunakan ekspresi reguler.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"grep": "allow"
}
}
Pencarian konten yang cepat di seluruh codebase Anda. Mendukung sintaks regex lengkap dan pemfilteran pola file.
glob
Menemukan file dengan pencocokan pola.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"glob": "allow"
}
}
Mencari file menggunakan pola glob seperti **/*.js atau src/**/*.ts. Mengembalikan jalur file yang cocok diurutkan berdasarkan waktu modifikasi.
lsp (eksperimental)
Berinteraksi dengan server LSP yang dikonfigurasi untuk mendapatkan fitur kecerdasan kode seperti definisi, referensi, info hover, dan hierarki panggilan.
Eksperimental
Tools LSP bersifat eksperimental dan dinonaktifkan secara default. Perilaku dapat berubah di antara rilis.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"lsp": "allow"
}
}
Operasi yang didukung meliputi goToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, goToImplementation, prepareCallHierarchy, incomingCalls, dan outgoingCalls.
Untuk mengonfigurasi server LSP mana yang tersedia untuk proyek Anda, lihat LSP Servers.
apply_patch
Menerapkan patch ke file.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"edit": "allow"
}
}
Tools ini menerapkan file patch ke codebase Anda. Berguna untuk menerapkan diff dan patch dari berbagai sumber.
Saat menangani hook tool.execute.before atau tool.execute.after, periksa input.tool === "apply_patch" (bukan "patch").
apply_patch menggunakan output.args.patchText alih-alih output.args.filePath. Jalur disematkan dalam baris penanda di dalam patchText dan relatif terhadap root proyek (contoh: *** Add File: src/new-file.ts, *** Update File: src/existing.ts, *** Move to: src/renamed.ts, *** Delete File: src/obsolete.ts).
Note
Tools apply_patch dikontrol oleh permission edit, yang mencakup semua modifikasi file (edit, write, apply_patch).
skill
Memuat skill (file SKILL.md) dan mengembalikan isinya dalam percakapan.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"skill": "allow"
}
}
todowrite
Mengelola daftar tugas selama sesi coding.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"todowrite": "allow"
}
}
Membuat dan memperbarui daftar tugas untuk melacak kemajuan selama operasi yang kompleks. LLM menggunakan ini untuk mengatur tugas multi-langkah.
Note
Tools ini dinonaktifkan untuk subagen secara default, tetapi Anda dapat mengaktifkannya secara manual. Pelajari lebih lanjut.
webfetch
Mengambil konten web.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"webfetch": "allow"
}
}
Memungkinkan LLM untuk mengambil dan membaca halaman web. Berguna untuk mencari dokumentasi atau meneliti sumber daya online.
websearch
Mencari informasi di web. Tersedia secara default saat Anda masuk ke Dropstone.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"websearch": "allow"
}
}
Melakukan pencarian web untuk menemukan informasi yang relevan secara online. Berguna untuk meneliti topik, menemukan peristiwa terkini, atau mengumpulkan informasi di luar batas data pelatihan. Tidak diperlukan API key atau pengaturan tambahan saat Anda masuk ke Dropstone.
Tip
Gunakan websearch saat Anda perlu menemukan informasi (penemuan), dan webfetch saat Anda perlu mengambil konten dari URL tertentu (pengambilan).
question
Mengajukan pertanyaan kepada pengguna selama eksekusi.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"question": "allow"
}
}
Tools ini memungkinkan LLM untuk mengajukan pertanyaan kepada pengguna selama tugas. Ini berguna untuk:
- Mengumpulkan preferensi atau kebutuhan pengguna
- Mengklarifikasi instruksi yang ambigu
- Mendapatkan keputusan tentang pilihan implementasi
- Menawarkan pilihan tentang arah yang akan diambil
Setiap pertanyaan mencakup header, teks pertanyaan, dan daftar opsi. Pengguna dapat memilih dari opsi yang disediakan atau mengetik jawaban kustom. Ketika ada beberapa pertanyaan, pengguna dapat berpindah di antara pertanyaan tersebut sebelum mengirimkan semua jawaban.
Custom tools
Custom tools memungkinkan Anda mendefinisikan fungsi sendiri yang dapat dipanggil oleh LLM. Ini didefinisikan dalam file konfigurasi Anda dan dapat mengeksekusi kode apa pun.
Pelajari lebih lanjut tentang membuat custom tools.
MCP servers
Server MCP (Model Context Protocol) memungkinkan Anda mengintegrasikan tools dan layanan eksternal. Ini mencakup akses database, integrasi API, dan layanan pihak ketiga.
Pelajari lebih lanjut tentang mengonfigurasi MCP servers.
Pola abaikan
Secara default, grep dan glob menghormati .gitignore Anda: file dan direktori yang terdaftar di sana dikecualikan dari pencarian dan daftar.
Untuk menyertakan file yang biasanya akan diabaikan, buat file .ignore di root proyek Anda. File ini dapat secara eksplisit mengizinkan jalur tertentu.
!node_modules/
!dist/
!build/
Misalnya, file .ignore ini mengizinkan pencarian di dalam direktori node_modules/, dist/, dan build/ meskipun direktori tersebut terdaftar di .gitignore.