slateにプロンプトを入力する際は、入力ボックスに入力してEnterキーを押すだけです。
入力ボックスは以下をサポートしています:
@ mentions (@path/to/file)
Copy+paste
Esc でクリア
Ctrl-a で先頭にジャンプ
Ctrl-e で末尾にジャンプ
option/alt+enter で改行
入力ボックスへの入力方法よりも重要なのは、何を入力するかです。
slateは他のエージェントよりも自律的に扱われた方が良いパフォーマンスを発揮します。
プロンプト作成時に役立ついくつかの原則があります:
slateに自身のコンテキストを管理させる
他のコーディングエージェントでは、多くのエージェントルールや指示が必要な場合が多いです。
slateはユーザーからより高レベルの指示を受け、自身で探索プロセスを管理する方が最適に機能します。
これはslateが長時間作業するように設計されており、自身のコンテキストをより適切に管理できるためです。
slateに提供すべきもの:
現在のセッションの高レベルの目標。
実行順序に関するガイダンス:
"Hey slate, research this section of my codebase @directory and then we are going to write a plan"
"I want you to explore X, update Y to do Z, and then update A following the same pattern"
解決策の一般的な形に関するガイダンス:
- 特定のファイルに限定すべき場合
- 良い解決策が必ず持つべき特定のパターンがある場合
- 解決策がどのようなものであるべきか(例:「リファクタリングすべきか、コードベースに追加するだけでよいか」)
- 実行中にslateが遭遇する可能性のある特定の落とし穴
以下のようなプロンプトは避けてください:
"Make no mistakes"
"You're a really smart engineer"
"ALWAYS MAKE SURE TO DO X"
これらのプロンプトは一般的にslateの全体的なパフォーマンスを低下させる結果になります。
明確さ
slateにプロンプトを出す際の目標は、できるだけ明確で詳細に記述することです。
slateはかなり中立的なエージェントであり、あなたが望む正確なプロセスと求めるものを明確に説明すると最も効果的に機能します。
次のように言う代わりに:
「Xを処理する新しいAPIミドルウェアを作成して」
このように言いましょう:
「Xのための新しいミドルウェアが必要で、以下のエンドポイントに実装する必要があります…」
エージェントルールは必要な場合のみ使用する
エージェントルールファイルは理想的には簡潔で、以下の情報を含むべきです:
- コードベースの概要
- コードベース開発における制約
- コードベースで操作を実行するための有用なコマンドやステップ
長いタスクの処理
slateを使用する主な理由の一つは、長いセッションを通じて作業を継続する能力です。
これを行うための最良の方法は次の通りです:
- slateに問題を最初に調査して計画を立てるよう依頼する
Hey slate, please research my codebase for <X>,
and then make a plan for implementing <Y>.
Make sure you look at @path/to/important/file
slateと計画を立てる際は、slateが明確に理解していることを確認することが重要です。ここでは、<Y>が明確な説明を持っていることを確認したいと思います。
slateは現在のタスクに取り組むための計画を返してくれます。
- slateに提供された計画を改善するよう依頼する
slateが計画を返してきたら、slateはその計画についてのあなたの意見を求めることがあります。あなたの回答はできるだけ明確で完全なものであるべきです:
No don't do A, make sure you do it the same way B is done.
その後、slateは引き続き改善を行うことができます。完了したら、計画を承認してください。
- 計画の実行
Slateはタスク管理のためのtodoツールを持っています。計画が確認されると、Slateはしばしば従うべきタスクリストを作成します。
もしTODOについて不明な点があれば、Slateに質問するか、懸念事項を伝えるようにしてください。
これによりSlateはリアルタイムで計画とTODOを更新し、あなたと一緒にタスクを進めることができます。
その後、Slateは関連する停止ポイント(おそらくタスクの完了)に達するまで自律的に作業を続けます。
非常に長いタスクの場合、Slateは長時間サブセクションに取り組んだ後、目標について再確認が必要になることがあります。
Slateとバックグラウンドジョブを使用したシステムのデバッグ
Slateを使用する二つ目の大きな利点は、バックグラウンドジョブとうまく連携できる能力です。
これを行うための最良の方法は以下の通りです:
- システムのどの部分をデバッグする必要があるかを理解する
- Slateがうまく機能できるように環境を設定する(ワークスペースのセットアップを参照)
- Slateにプロセスを進めるようプロンプトする
最良の結果を得るためには、以下の情報が必要です:
- デバッグが必要なシステム
- 関連するスタックトレース
- バグが発生する場所と方法に関するコンテキスト
- 関連するライブラリ情報
- 解決策に関する意見