ツール
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
プロジェクト環境でシェルコマンドを実行します。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"bash": "allow"
}
}
このツールを使用すると、LLMはnpm install、git status、またはその他のシェルコマンドを実行できます。
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"
}
}
コードベース全体での高速なコンテンツ検索。完全な正規表現構文とファイルパターンフィルタリングをサポートしています。
glob
パターンマッチングでファイルを検索します。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"glob": "allow"
}
}
**/*.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.filePathの代わりにoutput.args.patchTextを使用します。パスは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
コーディングセッション中にTODOリストを管理します。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"todowrite": "allow"
}
}
複雑な操作中の進捗を追跡するためのタスクリストを作成および更新します。LLMはこれを使用して複数ステップのタスクを整理します。
Note:
このツールはデフォルトではサブエージェントに対して無効ですが、手動で有効にできます。詳しく学ぶ。
webfetch
Webコンテンツを取得します。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"webfetch": "allow"
}
}
LLMがWebページを取得して読み取ることができます。ドキュメントを検索したり、オンラインリソースを調査したりするのに便利です。
websearch
Webで情報を検索します。Dropstoneにサインインしている場合、デフォルトで利用可能です。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"websearch": "allow"
}
}
Web検索を実行して関連情報をオンラインで検索します。トピックを調査したり、現在のイベントを検索したり、トレーニングデータのカットオフを超えた情報を収集するのに便利です。Dropstoneにサインインしている場合、APIキーや追加のセットアップは必要ありません。
ヒント:
情報を検索する必要がある場合(発見)はwebsearchを使用し、特定のURLからコンテンツを取得する必要がある場合(取得)はwebfetchを使用してください。
question
実行中にユーザーに質問をします。
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"question": "allow"
}
}
このツールを使用すると、LLMはタスク中にユーザーに質問できます。以下の場合に便利です:
- ユーザーの好みや要件を収集する
- あいまいな指示を明確にする
- 実装の選択肢について決定を得る
- どの方向に進むかについての選択肢を提供する
各質問には、ヘッダー、質問テキスト、およびオプションのリストが含まれます。ユーザーは提供されたオプションから選択するか、カスタム回答を入力できます。複数の質問がある場合、ユーザーはすべての回答を送信する前にそれらの間を移動できます。
カスタムツール
カスタムツールを使用すると、LLMが呼び出せる独自の関数を定義できます。これらはconfig ファイルで定義され、任意のコードを実行できます。
カスタムツールの作成について詳しく学ぶ。
MCPサーバー
MCP(Model Context Protocol)サーバーを使用すると、外部ツールとサービスを統合できます。これにはデータベースアクセス、API統合、およびサードパーティサービスが含まれます。
MCPサーバーの設定について詳しく学ぶ。
無視パターン
デフォルトでは、grepとglobは.gitignoreを尊重します。そこにリストされているファイルとディレクトリは検索とリストから除外されます。
通常は無視されるファイルを含めるには、プロジェクトルートに.ignoreファイルを作成します。このファイルは特定のパスを明示的に許可できます。
!node_modules/
!dist/
!build/
例えば、この.ignoreファイルは、.gitignoreにリストされていてもnode_modules/、dist/、およびbuild/ディレクトリ内での検索を許可します。