Claude Codeのサブエージェントで、他人の知識ベースを「壊さず」活用する方法
Claude Codeのサブエージェント機能は、実装・テスト・ドキュメント作成のように「コーディング作業を役割分担する」用途で紹介されることが多い。だが、この機能が本質的に持っている強みは並列作業そのものではなく、「エージェントごとに持たせる権限を絞れる」という設計にある。
この権限設計に着目すると、コーディング以外の場面でも使い道が広がる。たとえば「同僚や他チームが持っている知識ベースを、壊す心配なく横断的に調べさせる」といった用途だ。
サブエージェントは「コーディングの役割分担」だけじゃない
サブエージェントは、メインのClaude Codeセッションとは独立したコンテキストウィンドウを持ち、専用のシステムプロンプトと、利用できるツールセットを個別に設定できる仕組みだ。/agentsコマンドで作成でき、実体はYAML形式のフロントマターを持つMarkdownファイルとして.claude/agents/(プロジェクト単位)や~/.claude/agents/(ユーザー単位)に保存される。呼び出しは@メンションのほか、タスク内容に応じてClaude自身が適切なサブエージェントを自動選択することもできる。
多くの解説記事は、この仕組みを「実装担当・テスト担当・レビュー担当のように作業を分ける」文脈で紹介する。それ自体は正しい使い方だが、サブエージェントの価値をコンテキストの並列化だけに見出すのはもったいない。
「読み取り専用」を指示ではなく、ツールの有無で縛る
サブエージェントの設定には、そのエージェントが使えるツール(ファイルの読み取り・編集・実行コマンドなど)を個別に絞り込める項目がある。ここが今回の使い方の核になる部分だ。
「このディレクトリは読み取り専用として扱ってください」とプロンプトで指示するだけでは、うっかり書き込んでしまう事故を完全には防げない。指示はあくまで「守ってもらうお願い」でしかなく、AIが指示を読み飛ばしたり、長い会話の中で忘れたりするリスクが残る。
そこで、そもそも書き込み用のツール(EditやWrite)を持たせないサブエージェント種別を用意する。「性善説のプロンプト」に頼るのではなく、「そもそもできない権限設計」にしてしまう発想だ。これなら、エージェントが仮に「書き込んでもいいはずだ」と誤判断したとしても、実行時点でツールそのものが存在しないため書き込みようがない。
他人のリポジトリ・Wikiを「調べさせる」という使い方
この権限設計を応用すると、次のようなことができる。
同僚や他チームが、ObsidianやGitHub Wiki、Notionのエクスポートなどでナレッジベースを持っているとする。それをローカルにclone(またはエクスポート)してきて、読み取り専用のサブエージェントに「このテーマについて何が書かれているか調べて」と投げる。
これは、単に自分でファイルを開いて読むのとは何が違うのか。ポイントは2つある。
- 自分のメインの作業コンテキストを汚さない:他人の知識ベースを読み漁る作業を、独立したコンテキストウィンドウを持つサブエージェントに任せることで、自分の本来の作業スレッドに無関係な情報が混ざらない
- スコープを強制的に絞れる:読み取り専用ツールしか持たないエージェントに任せることで、「うっかり他人の知識ベースに書き込んでしまう」というリスク自体をゼロにできる
社内の別チームのドキュメント、退職した同僚が残したメモ、他プロジェクトのREADME群——「存在は知っているが、いちいち自分で読み込むには量が多すぎる」情報源に対して、ピンポイントで質問を投げて答えを引き出す、という使い方ができる。
実際にやってみると何が起きるのか
ここまでは概念的な話だが、実際に複数人分のダミーの知識ベースを用意して、この読み取り専用サブエージェントを動かしてみると、単に「情報を要約して持ってくる」以上のことが起き始める。
たとえば、ある人の知識ベースには「原因不明」として未解決のまま残っている記録があり、別の人の知識ベースには、それを説明できるかもしれないデータが別の文脈で存在している——といったケースだ。サブエージェントにそれぞれを読み取り専用で調べさせて結果を並べると、単独では気づけなかった仮説が浮かび上がることがある。
さらに、複数のサブエージェントを立ててエージェント同士に対話させる(Aさんの知識ベースを背負ったエージェントと、Bさんの知識ベースを背負ったエージェントに会話させる)という発展形もある。知識を1箇所に統合してしまうと薄れてしまう「誰の、どれくらい確からしい情報か」という文脈を保ったまま、複数人の専門性を掛け合わせられるのが利点だ。
この「収集型」「対話型」という2つのパターンをどう設計し、実際にどんな結果が得られたか(read-only境界の実装方法、矛盾から仮説が立った実例、対話ならではの気づきの実例、トークン数・処理時間の実測値まで)は、実際に手を動かして検証した内容としてZenn本にまとめている。
まとめ
サブエージェントの価値は「作業を並列化できること」だけではない。「エージェントごとに持たせる権限を絞れること」そのものが、コーディング以外の場面——特に、書き換えたくない/書き換えられては困る情報源を安全に活用する場面——で効いてくる。
「あの人の知識、頭の中にしかないんだよな」と思ったことがあるなら、まずは読み取り専用のサブエージェントを1つ作って、身近な誰かのドキュメントに質問を投げてみるところから試してみてほしい。
