以前はどう解決したか
エージェントが記録したアクティビティをPathruleが作業エピソードにまとめ、チームが以前に何を、どこで、いつ解決したかを後のセッションで呼び出せるようにする仕組みを説明します。
AIセッションは作業をひとつ終えるたびに、その内容を記録できます。触れた領域、行ったアクション、関係したファイル、短い要約です(記録される内容の詳細はAIセッションが記録するものを参照してください)。ただ、個々のログは長い一覧の中の1行にすぎません。作業エピソードは、この一覧を将来のセッションが実際に活用できる形に変えます。
Pathruleは、作業セッション中の関連するアクティビティを作業エピソードにまとめます。作業エピソードは、チームが解決したひとつの事柄をタイトル付きで残した記録で、扱った主題、触れたパスとファイル、関わったAIクライアント、作業の日時が含まれます。数か月後に誰かが同じ領域に取り組むことになったとき、このエピソードを呼び出せます。
呼び出しはプロンプトごとではなく必要なときだけ
作業エピソードがすべてのリクエストに付いて回ることはありません。通常のプロンプトには履歴が一切追加されないため、使っていないメモリのためにコンテキストウィンドウを消費することはありません。
エージェントが過去の経緯が重要になる作業(バグ修正、デバッグ、リファクタリング、不慣れな領域の調査)をしているときは、Pathruleが返すコンテキストに、特に関連性の高い過去のエピソードがいくつか含まれることがあります。エージェントが過去の作業を明示的に求めることもでき、「前回はこれをどう扱ったか」のような過去をはっきり尋ねる質問であれば、それだけで検索が行われます。小さなUIの調整やまったく新しい機能の開発では、エピソードは表示されません。新しい作業を古いパターンに引きずらせると、得られるものより失うもののほうが大きくなりがちだからです。
エピソードの関連性を決めるもの
関連性は推測ではなく、2つの単純なシグナルと1つの優先基準から算出されます。
- 作業の内容。認証に関するエピソードは、認証の作業に戻ったときには候補になりますが、表の書式を整えているときには候補になりません。
- 作業した場所。あるパスに触れたエピソードは、そのパスかその配下で作業しているときに候補になります。この関係はどちらの方向でも成り立ちます。
- 作業の新しさ。古い作業よりも最近の作業が優先されます。コードは時間とともに変わり、古いエピソードはもう存在しないかもしれないコードベースを記述しているからです。
結果として得られるのは、優先順位を付けた短いリストです。エピソードは多くても数件で、それぞれ一目で読める程度にまとまっています。
誤るより表示しない
Pathruleは、誤ったものを表示するくらいなら何も表示しないことを選びます。今の作業と実質的に重なりのないエピソードは表示されません。システムに確信がなければ、何も表示しません。ワークスペースにまだ十分な履歴がなく信頼できるスコアを付けられない場合、呼び出しは途中で打ち切られ、何も返しません。漠然と関連する作業がずらりと並ぶことはなく、表示されるのは表示に値する数件のエピソードだけか、まったくないかのどちらかです。
記録した内容から作られ、コードからは作られない
作業エピソードは、エージェントがPathruleを通じて記録したアクティビティだけから作られます。エピソードを作るためにPathruleがソースファイルを読み取ったり、スキャンしたり、インデックス化したりすることはありません。エピソードにも、ワークスペースの他の部分と同じアクセス制御が適用されます。スコープはワークスペースに限定され、チームのユーザー単位のアクセス権によって保護され、閲覧できる全員に同じ内容が表示されます。
Cloudでの呼び出しは、保持されているアクティビティの記録をもとに行われます。180日より古いアクティビティは定期メンテナンスで削除されるため、呼び出しはすべてのセッションを永続的に残す記録ではありません。ローカルでの保持はこれとは別です。
確認できる場所
作業エピソードは、AIクライアントが受け取るコンテキストを通じて、役立つ種類のタスクで表示されます。リポジトリごとに設定する必要はなく、プロンプトごとに有効にする必要もありません。実際に記録された作業が蓄積されたワークスペースであれば、自然に備わる機能です。保存されたメモリやルールがコードと食い違ってきたときに、それがどのように検出され修正されるかについては、提案とセルフ監査を参照してください。