Repository Explorer – 大胆にリエンジニアリングする

以前開発したものはPoCと割り切って、Repository Explorer を完全に作り直しています。

大きなところでは、

  • リポジトリを読む部分を Data Access Server として切り離した
  • アダプターレイヤを作って、データをアクセスするようにした
  • Knowledge Navigationレイヤーを作って、知識を辿る処理を抽象化した

の3点。

Knowledge Navigationは、外出ししたNAVIGATION.mdに書かれたポリシーに従ってエージェントタスクを実行します。

NAVIGATION.mdには、だいたいこんなことが書かれています。

リポジトリ・エクスプローラは「Knowledge Navigation」を使い、質問から証拠に裏付けされた答えへと進むことを目的としています。

  • 目的はできるだけ情報を集めることではなく、現在の質問に責任をもって回答できるだけの十分な根拠を集めることです。
  • 原則
    1. 直接的な証拠を優先し、間接的なヒントは避ける。
    2. 実装を説明する際は実際のコード、設定ファイル、API定義、テスト、ドキュメントを順に優先する。
    3. 重要なのは「何をどう実装しているか」や「設定が何を決めているか」の証拠。
    4. 不確実な情報は残しておく。推論で実証された事実に変えない。
  • ナビゲーション
    • 前の質問で得た根拠は再利用。
    • 主要対象を探し、必要に応じてスコープを拡げる。
    • 目的に合わない関連対象に無駄に飛びつかない。
  • 証拠の質
    • 強い証拠は実装枝、設定値、API契約、テスト。
    • 弱い証拠はファイル名、リポジトリ説明、コメント等。
  • 再調査
    • 証拠が不十分なら、検索語を強化、関連アーティファクトへ直接読む、実装境界を追うなどの小さな行動で再調査する。
  • 繰り返し質問
    • 前の文脈が有れば、同じ調査を再開するのではなく、前の根拠を再利用。
  • 不確実な結論
    • 何が不明かならそれを述べ、何をチェックしたか、次に何を調べるべきかを示す。
  • 停止条件
    • 証拠が十分なら停止。
    • 重要主張が根拠付きで、残りの不確実を明示できるなら停止。
    • さらなる調査が答えに影響を与えそうに無いなら停止。

Repository Explorerが読むリポジトリ(ZIKUUのサーバーで稼働しているGiteaに置かれている)は、インデックス化されます。

ファイルシステムにリポジトリが置かれていれば、ripgrepなどを使って走査すれば変数名や関数名などを探すことができますが、Gitea上にあるリポジトリでは同じことができません。
なので、一旦、Repository Explorer側に個々のリポジトリのファイルからシンボルのインデックスを作って保存しています。

実際に質問をしたときのスクリーンショットです。

Codexを時々使っていますが、Codexよりも広範に調査ができるのと、調査だけに限ればCodexより正確な回答が得られそうです。根拠のない内容をでっち上げることはとても少ない。

Knowledge Navigationは、PRE (Pivot Reasoning Engine)でも、そのまま使えるように抽象化しています。

Knowledge Navigationは、Observability APIを組み込み易い構造になっています。

「Repository Explorer – 大胆にリエンジニアリングする」への1件のフィードバック

コメントする