Dropstone Docs

コアコンセプト

Dropstone を機能させるエージェントループ、ツールシステム、セッション、コンテキストウィンドウ、権限モデルについて理解します。

Dropstone は、ターミナルで動作するエージェント型コーディングツールです。コードの読み取り、コマンドの実行、変更の計画、ファイルの編集、結果の検証ができます。このページでは、一度だけ学べばよいコアな考え方を説明します。エージェントが実行するループ、アクセスできるもの、セッションの仕組み、コンテキストの管理方法、そして権限によって制御を維持する方法です。

エージェントループ

Dropstone にタスクを与えると、コンテキスト収集アクション実行結果検証の3つのフェーズで動作します。これらのフェーズは融合しています。Dropstone は、コードを理解するためのファイル読み取り、変更のための編集、作業確認のためのテスト実行など、全体を通じてツールを使用します。

フェーズ 1
コンテキスト収集
ファイルを読み、シンボルを grep し、git の状態を確認し、タスクが曖昧な場合はフォローアップの質問をします。
フェーズ 2
アクション実行
ファイルを編集し、新しいコードを書き、シェルコマンドを実行します。差分は承認のために表示され、破壊的な操作が静かに実行されることはありません。
フェーズ 3
結果検証
型チェック、テスト、lint が存在する場合は実行します。検証に失敗した場合は、コンテキスト収集に戻ります。
いつでも Esc を押して中断し、方向を変えることができます。

ループは、あなたの要求に応じて適応します。コードベースに関する質問であれば、コンテキスト収集だけで済むかもしれません。バグ修正は3つのフェーズすべてを循環します。大規模なリファクタリングでは、徹底的な検証が必要になるかもしれません。Dropstone は、前のステップで学んだことに基づいて各ステップに必要なものを決定し、多数のアクションを連鎖させ、その過程で軌道修正を行います。

あなたもこのループの一部です。いつでも中断して、方向を変えたり、コンテキストを追加したり、別のアプローチを依頼したりできます。Dropstone は自律的に動作しますが、あなたの入力に常に応答します。

エージェントループは、2つのコンポーネントによって駆動されます。推論するモデルと、行動するツールです。

モデル

Dropstone は、目的に特化したコーディングモデルを使用します。それぞれ異なる種類の作業に調整された3つのティアがあります。

ティア最適な用途
Fastクイック編集、スキャフォールディング、単一ファイルのリファクタリング、対話的なデバッグ
Pro複数ファイルのリファクタリング、横断的な変更、より広範な推論
Heavyアーキテクチャの決定、大規模な移行、曖昧または調査中心のデバッグ

セッション中に /effort low/effort medium/effort high、または /effort xhigh でティアを切り替えるか、Ctrl+T で循環できます。このガイドで「Dropstone が決定する」または「Dropstone が選択する」と書かれている場合、それはモデルが推論していることを意味します。

ツール

ツールこそが Dropstone をエージェント型にするものです。ツールがなければ、モデルはテキストを生成するだけです。ツールがあれば、コードの読み取り、ファイルの編集、コマンドの実行、ウェブ検索、外部サービスとの連携など、行動できます。各ツールの結果はループにフィードバックされ、次の決定に影響を与えます。

組み込みツールは5つのカテゴリに分類されます。

カテゴリDropstone ができること
ファイル操作ファイルの読み取り、コードの編集、新規ファイルの作成、名前変更と再編成
検索グロブパターンによるファイル検索、正規表現によるコンテンツ検索、プロジェクト構造の探索
実行シェルコマンドの実行、サーバーの起動、テストの実行、git の使用
ウェブウェブ検索、ドキュメントの取得、エラーメッセージの調査
コードインテリジェンスLSP による型エラーの読み取り、定義へのジャンプ、参照の検索

Dropstone は、プロンプトとその過程で学んだことに基づいて、使用するツールを選択します。「失敗しているテストを修正して」と言うと、次のようなことをするかもしれません。

  1. テストスイートを実行して、何が失敗しているかを確認する
  2. エラー出力を読む
  3. 関連するソースファイルを検索する
  4. それらのファイルを読んでコードを理解する
  5. 問題を修正するためにファイルを編集する
  6. テストを再度実行して検証する

各ツールの使用は、次のステップに情報を提供します。これが実際のエージェントループです。

組み込みツールは基盤です。スキル で Dropstone の知識を拡張し、MCP サーバー で外部サービスに接続し、サブエージェント に作業を委任できます。組み込みツールの完全なリストについては、組み込みツール を参照してください。

Dropstone がアクセスできるもの

ディレクトリで dropstone を実行すると、エージェントは以下にアクセスできます。

  • あなたのプロジェクト。 作業ディレクトリとサブディレクトリ内のファイル、およびあなたの許可を得たその他のファイル。
  • あなたのターミナル。 あなた自身が実行できる任意のコマンド: ビルドツール、git、パッケージマネージャー、システムユーティリティ、スクリプト。コマンドラインから実行できることは、Dropstone も実行できます。
  • あなたの git の状態。 現在のブランチ、未コミットの変更、ステージングされたファイル、最近のコミット履歴。
  • あなたの AGENTS.md リポジトリのルートにあるマークダウンファイルで、プロジェクト固有の規約、ビルドコマンド、注意点、そして Dropstone が毎セッション知っておくべきことを記述します。
  • あなたが設定した拡張機能。 外部サービス用の MCP サーバー、ワークフロー用の スキル、委任作業用の サブエージェント

Dropstone はプロジェクト全体を見ることができるため、プロジェクト全体にわたって作業できます。「認証バグを修正して」と依頼すると、関連ファイルを検索し、コンテキストを理解するためにいくつかを読み、それらにわたって調整された編集を行い、検証のためにテストを実行し、依頼すればコミットします。これは、現在のファイルしか見えないインラインコードアシスタントとは異なります。

セッション

すべての対話セッションはローカルに保存されます。各メッセージ、ツールの使用、結果はセッションレコードに書き込まれ、元に戻す再開、フォーク を可能にします。

セッションは独立しています。新しいセッションは新しいコンテキストウィンドウで始まり、以前の会話の記憶はありません。永続的な知識は、会話履歴ではなく AGENTS.md に属します。

セッションの再開またはフォーク

dropstone --continue(または dropstone -c)で再開すると、現在のディレクトリの最新セッションが再開され、新しいメッセージが追加されます。特定のセッションを ID で再開するには、dropstone --session <id> を使用します。

# このディレクトリの最後のセッションを続行
dropstone -c

# 特定のセッションを再開
dropstone --session 7f3a82b1

# 既存のセッションを新しい会話にフォーク
dropstone --session 7f3a82b1 --fork

フォークは履歴を新しいセッション ID にコピーし、元のセッションは変更しません。元のスレッドを失わずに別の方向性を探りたい場合に便利です。

コンテキストウィンドウ

コンテキストウィンドウには、会話履歴、ファイルの内容、コマンド出力、AGENTS.md、読み込まれたスキル、システム指示が保持されます。作業を進めると、ウィンドウがいっぱいになります。Dropstone は古いコンテンツを自動的に圧縮しますが、会話の初期の指示が失われる可能性があります。

いくつかの経験則:

  • 永続的なルールは AGENTS.md に置き、チャットメッセージには置かないでください。チャットメッセージのバージョンは圧縮されて失われます。AGENTS.md のバージョンは毎セッション再読み込みされます。
  • スキル はオンデマンドで読み込まれます。 Dropstone はセッション開始時にスキルの説明を見ますが、スキルが呼び出されたときにのみ完全なコンテンツを読み込みます。
  • サブエージェント は独自の新しいコンテキストを持ちます。 その作業はメインの会話を肥大化させません。完了すると、要約を返します。

安全性: チェックポイントと権限

Dropstone には2つの安全メカニズムがあります。チェックポイントは、エージェントが行った変更を元に戻すことを可能にします。権限は、エージェントが尋ねずに実行できることを制御します。

チェックポイントで元に戻す

すべてのファイル編集は元に戻せます。Dropstone がファイルを編集する前に、現在の内容のスナップショットを撮ります。問題が発生した場合は、/undo を使用して編集サイクルを1つずつ戻すか、/redo で元に戻したステップを再生できます。

/undo            # 最後の編集サイクルを元に戻す
/redo            # 最も最近元に戻したステップを再生

チェックポイントはセッションにローカルで、git とは別です。ファイルの変更のみを対象とします。リモートシステム(データベース、デプロイされたサービス、ネットワーク API)に触れるアクションはチェックポイントできないため、Dropstone は外部に副作用があるコマンドを実行する前に尋ねます。

Dropstone ができることを制御する

Dropstone は、ファイルの編集、シェルコマンドの実行、ネットワークへの呼び出しなど、機密性の高いアクションを初めて実行しようとするときに承認を求めます。一度承認すると、同じ操作はセッションの残り期間、再プロンプトなしで実行されます。

セッション中に Tab を使用して、2つの操作モードを切り替えます。

  • ビルドモード。 デフォルト。Dropstone はファイルを編集し、コマンドを実行できます(承認が必要)。変更をリリースしたい場合に使用します。
  • プランモード。 読み取り専用。Dropstone はコードベースを調査し、コンテキストを収集し、計画を立てることができますが、編集や実行はできません。システムを変更する前に調査したい場合に使用します。

コマンドを事前承認してプロンプトを完全にスキップするには、プロジェクトの 権限設定 にリストします。例:

{
  "permissions": {
    "allow": ["git status", "git diff", "npm test", "npm run lint"]
  }
}

組織全体のポリシー、より詳細なパターン、スコープ解決の仕組みについては、権限ガイド を参照してください。

Dropstone を効果的に使う

より良い結果を生む傾向があるいくつかのパターンです。

会話です

完璧な最初のプロンプトは必要ありません。欲しいものから始めて、エージェントが何をするかを見て、それから修正します。

ログインバグを修正して
いいえ、問題はフォーム検証ではなくセッション処理にあります

最初からやり直しているわけではありません。反復しているのです。各ターンがエージェントの理解を洗練させます。

中断して方向を変える

いつでも Dropstone をリダイレクトできます。

  • Esc を押すと即座に停止します。現在のツール呼び出しはキャンセルされ、Dropstone は次の指示を待ちます。
  • 修正を入力して Enter を押すと、待たずに実行できます。Dropstone は現在のアクションが完了するとすぐにそれを読み取り、次のステップを決定する前に調整します。

最初に具体的に

最初のプロンプトが正確であればあるほど、必要な修正は少なくなります。ファイルを参照し、制約に言及し、例となるパターンを指摘します。

有効期限切れのカードを持つユーザーに対してチェックアウトフローが壊れています。
問題は src/payments/ にあるはずです。特にトークン更新です。
最初に失敗するテストを書き、それから修正してください。

曖昧なプロンプトでも機能しますが、方向を変えるのに多くの時間を費やすことになります。上記のような具体的なプロンプトは、最初の試行で成功することがよくあります。

Dropstone に検証対象を与える

エージェントは、自分の作業を確認できる場合にパフォーマンスが向上します。テストケース、期待される出力、受け入れ基準を含めます。

validateEmail を実装してください。テストケース:
  'user@example.com' -> true
  'invalid'           -> false
  'user@.com'         -> false
その後テストを実行してください。

実装前に調査する

複雑な問題については、調査とコーディングを分離します。プランモード(Tab)に切り替え、Dropstone に関連コードを調査させ、会話を通じて計画を洗練させ、それからビルドモードに戻って実行します。

src/auth/ を読んで、現在のセッション処理の方法を説明してください。
それから OAuth サポートを追加する計画を提案してください。

計画を確認し、同意できない点があれば反論し、それから Dropstone に実装させます。この2段階のアプローチは、直接コードに進むよりも一貫して良い結果を生み出します。

委任し、指示しない

Dropstone を有能な同僚のように扱います。コンテキストと方向性を与え、詳細を理解するのはエージェントに任せます。

有効期限切れのカードを持つユーザーに対してチェックアウトフローが壊れています。
関連コードは src/payments/ にあります。
調査して修正してください。

どのファイルを読むか、どのコマンドを実行するか、どの順序で行うかを指定する必要はありません。Dropstone はプロンプトからそれを理解します。

次のステップ

Ctrl+I