2026年6月3日水曜日

【COLLEAGUE.SKILL入門】退職した同僚の「仕事の進め方」と「人柄」をAIに蒸留する実践セットアップガイド

組織において、優秀なメンバーの退職や異動は、単なる人員の減少にとどまりません。彼らが培ってきた「仕事の進め方」や「判断基準」といった暗黙知が失われることは、組織にとって極めて大きな損失です。従来のドキュメント化やRAG(検索拡張生成)などの手法では、業務のプロセスは記録できても、その人独自の「思考モデル」や「コミュニケーションスタイル」までを完全に再現することは困難でした。

このような課題を解決するアプローチとして、上海人工知能実験室(Shanghai Artificial Intelligence Laboratory)のAI安全センターが主導するプロジェクト「COLLEAGUE.SKILL(現在はdot-skillへアップグレード)」が注目を集めています。本プロジェクトは、特定の人物の専門知識や対話スタイルを抽出し、AIエージェント向けのポータブルなスキルへと自動変換するシステムです。

GitHubでは約18,500〜18,900のスターを獲得し、コミュニティギャラリーには215のスキルや55のメタスキルが公開されるなど、すでに大きな実績を上げています。本記事では、このCOLLEAGUE.SKILLの仕組みを紐解き、実際に導入するための手順と初期設定例を解説します。

暗黙知と人柄を切り離す「二層構造(Dual Representation)」

COLLEAGUE.SKILLの最大の特徴は、対象者を単に丸ごとクローン化するのではなく、個人の「痕跡(Trace)」から有用な専門知識を抽出し、編集可能な技術的アーティファクト(スキル)として再利用する点にあります。

これを実現するために、システムは以下の2つの独立したトラックで動作を管理・制御します。これらは個別または統合して呼び出すことが可能です。

1. 能力(Capability)トラック:work.md

業務における手順、基準、思考モデル、意思決定の優先順位などを明文化して格納します。例えば、コードレビューにおける「N+1問題の指摘ルール」や「API設計の確認手順」などがこれに該当します。

2. 振る舞い(Behavior)トラック:persona.md

対象者の口調、表現の好み、対話の境界線、修正履歴などを格納します。業務に特化した冷静な口調や、特定の表現の癖などを制御します。

このように「能力」と「人柄」を分離することで、AIの挙動が不透明になることを防ぎ、ユーザーによる「検査可能(Inspectable)」「修正可能(Correctable)」な状態を確保しています。

導入手順:主要エージェントへのワンコマンドインストール

COLLEAGUE.SKILLは、複数のエージェント環境(Claude CodeHermes AgentOpenClawCodex)に対応しており、ワンコマンドでのインストールが可能です。

以下は、実際に「同僚(colleague)」プリセットを用いてセットアップを行うロードマップです。

ステップ1:データソースの準備

まずは蒸留の元となるデータを準備します。システムは日常の多様なデジタル活動データに対応しています。
* 自動収集:Slack(Bot経由)、飛書(Feishu - API/Wiki経由)、釘釘(DingTalk - ブラウザ経由)
* 手動収集:微信(WeChat)の暗号化データベース(SQLite形式)の書き出し、PDF、画像、メール(.eml/.mbox)、直接のMarkdown入力

ステップ2:エージェント環境へのインストール

例えば、Claude Code 環境に導入する場合、提供されているCLIツールを用いてインストールを行います。

# colleague-skill(dot-skill)をインストールし、エージェント環境へ適用するコマンド例
dot-skill install --agent claude-code

ステップ3:初期設定ファイルの作成

プロジェクトのルートディレクトリに、以下のような設定ファイルを配置します。ここでは「同僚(colleague)」プリセットをベースに、バックエンドエンジニアのスキルを定義する例を示します。

# config.yaml の設定例
skill:
  name: "backend_expert"
  preset: "colleague"
  source:
    - path: "./slack_exports/"
    - path: "./code_reviews.md"
  output:
    capability: "./skills/work.md"
    behavior: "./skills/persona.md"

生成される work.mdpersona.md の記述例は以下の通りです。

# work.md (能力トラックの例)
- 意思決定の優先順位:
  1. APIのパフォーマンス(特にN+1問題の回避)
  2. 規定フォーマットの遵守
- 思考モデル:
  - コンテキストが不足している提案には、まず背景の説明を求める。
# persona.md (振る舞いトラックの例)
- 口調: 冷静かつ客観的、業務志向
- 表現の好み: 冗長な挨拶を省き、結論から述べる
- 修正履歴:
  - [2026-05-10] ユーザーのフィードバックに基づき、過度に攻撃的な表現を抑制するように修正。

よくあるエラーと対処法:対話を通じた継続的修正

実際に運用を開始すると、AIの回答が本人の実際の判断や口調とズレてしまうことがあります。COLLEAGUE.SKILLには、このズレを補正するための「修正・更新ループ(Correction & Update Loop)」が備わっています。

エラー1:判断基準が実際の業務と異なる場合

ユーザーが「彼女ならここで別の判断をするはずだ」と自然言語で指摘すると、システムは自動的にMarkdownパッチを作成し、work.md の能力記述を自動更新します。

エラー2:口調や振る舞いが不自然な場合

「彼はそんな冷たい言い方はしない」といったフィードバックに対しては、システムが構造化データ({状況, 誤り, 修正})として記録し、persona.md の振る舞いを補正します。これらは自動でバージョン管理やロールバックが可能です。

エラー3:不適切なプライバシー情報の露出

チャット履歴などから不要な個人情報が抽出されてしまった場合は、ローカル環境で直接Markdownファイルを開き、該当箇所を手動で削除・編集してください。本システムは成果物が明示的なファイル構造として出力されるため、安全にガバナンスを確保できます。

結論

COLLEAGUE.SKILL(dot-skill)は、単なるAIによるキャラクター模倣ツールではありません。組織の「暗黙知」という無形資産を、検査可能で編集可能な「技術的資産」へと変換するための強力なエコシステムです。

退職者が残したプロセスや思考の痕跡をAIに蒸留することで、組織の知識のポータビリティを高め、継続的な成長を支える基盤を構築できます。まずはローカルのプライベート環境での試行から始めてみてはいかがでしょうか。

2026年6月1日月曜日

MCP Appsの基本構造:Resources・Prompts・Toolsの役割分担からマルチエージェント、Smitheryへの展望

LLM外部連携における「密結合」の限界とMCPの登場

現在のLLMアプリケーション開発において、外部データや既存システムとの連携は避けて通れません。しかし、これまでの開発手法では、特定のLLMやAPIに依存した「個別最適化された密結合なシステム」になりがちでした。クライアントごとに独自の統合コードを書く必要があり、システムの柔軟性や拡張性が著しく制限されていたのです。

この課題を解決するために登場したのが、Anthropic社が提唱した「Model Context Protocol(MCP)」です。MCPは、LLMと外部システム(コンテキスト)を接続するためのオープンな標準規格です。AIモデルとデータソースの間に標準化されたインターフェースを設けることで、一度構築した連携機能を多様なクライアントから再利用可能にします。ビジネスの視点から言えば、これはAI統合にかかる開発コストを劇的に削減し、システム全体のポータビリティを向上させるインフラの誕生を意味します。

3つの基本機能:Resources・Prompts・Toolsの設計思想

MCPの仕様は極めてシンプルでありながら、強力です。その根幹を支えるのが「Resources」「Prompts」「Tools」という3つの基本抽象概念です。これらは、LLMにコンテキストを提供する際の「関心の分離」を厳密に定義したものです。なぜこれらが分かれているのか、その設計上の意図とトレードオフを理解することが重要です。

Resources:安全性が担保された読み取り専用データ

「Resources」は、LLMがコンテキストとして自由に読み取ることができるデータ源です。データベースのレコード、ローカルファイル、APIの実行結果などがこれに該当します。

設計上の重要なポイントは、Resourcesが「読み取り専用(Read-only)」であり、「冪等性(何度実行しても結果が同じであること)」が期待されている点です。LLMに対してデータを提供する際、意図しないシステムの改ざんを防ぎつつ、必要なコンテキストを安全に供給するための防御壁として機能します。

Prompts:定型的なコンテキスト生成と制御の分離

「Prompts」は、LLMに対する指示のテンプレートをサーバー側で管理・提供する機能です。これにより、開発者はシステム特有のプロンプトエンジニアリングのノウハウを、クライアント側ではなくサーバー側に「カプセル化」できます。

クライアントは必要に応じてサーバーから最適なプロンプトテンプレートを取得し、動的なパラメータを流し込むだけで済みます。プロンプトの更新がシステム全体の再デプロイを伴わずに実行できるため、プロンプトのライフサイクル管理が非常に容易になります。

Tools:副作用を伴うアクションの実行

「Tools」は、外部システムの状態を変更する、あるいは動的な計算処理を実行するための「関数(Function)」をLLMに提供します。ファイルの書き込み、API経由でのデータ更新、特定コマンドの実行などがこれにあたります。

ToolsはResourcesとは異なり、システムに「副作用(Side effects)」をもたらします。そのため、セキュリティ設計上、実行前にユーザーの承認を挟む「Human-in-the-loop」の仕組みが推奨されます。この強力な権限移譲こそが、LLMを単なる「回答者」から「実行エージェント」へと進化させる鍵となります。

実装コードから学ぶMCPの構造

実際にMCPサーバーを構築する際の、Pythonを用いたシンプルな実装例を以下に示します。ここでは、公式が提供する「FastMCP」フレームワークを使用します。ResourcesとToolsがどのように区別され、定義されているかに注目してください。

from mcp.server.fastmcp import FastMCP

# MCPサーバーの初期化
app = FastMCP("System-Integration-Server")

# 1. Resourcesの定義(読み取り専用コンテキスト)
@app.resource("system://status")
def get_system_status() -> str:
    """システムのステータス情報を取得します(読み取り専用)"""
    # 実際にはDB参照やAPIコールなどを行う
    return "System Status: Normal. Database connection is active."

# 2. Toolsの定義(副作用を伴う書き込み処理)
@app.tool()
def update_user_role(user_id: str, role: str) -> str:
    """ユーザーのロールを更新します(副作用あり)"""
    # データベースの更新処理を想定
    print(f"Executing database update for user {user_id} with role {role}")
    return f"Successfully updated user {user_id} to role {role}."

このコードが示すように、デコレータを使い分けることで、システムに危害を加えない安全なデータ取得(@app.resource)と、慎重な取り扱いが必要な書き込み処理(@app.tool)が、コードレベルで明確に分離されています。LLMクライアントはこのスキーマを自動的に解釈し、適切に呼び出すことが可能になります。

マルチエージェントとパッケージ管理「Smithery」が拓く未来

MCPの登場により、AIエコシステムは「単一のエージェントによる対話」から「自律的なマルチエージェント連携」へと急速にシフトしています。複数の特化型MCPサーバーをオーケストレーターが束ねることで、複雑な業務プロセスを自動化するエコシステムが形成されつつあります。

このエコシステムの普及において重要なマイルストーンとなるのが、MCPサーバーのパッケージ管理ツール「Smithery」です。Smitheryは、Dockerコンテナ技術や各種設定を抽象化し、多様なMCPサーバーの発見、インストール、そしてデプロイを標準化します。開発者は手元で作成したMCPサーバーを迅速に共有し、他のシステムにシームレスに組み込めるようになります。これは、オープンソースのソフトウェアライブラリが現代の開発を爆発的に加速させたのと同様のダイナミズムを、AIコンテキストの領域にもたらします。

さらに、Next.jsなどを用いた独自エージェントUIの多様化も進んでいます。企業は自社専用のインターフェースを用意し、背後で稼働する複数のMCPエージェントと連携させることで、真に実用的な「AI駆動型アプリケーション」を内製化することが可能になります。

テクノロジーをシステムとして統合する

AIを単なる個人の生産性向上ツールとしてではなく、企業全体の「自律的なエコシステム」として捉え直す時期が来ています。MCPは、その基盤となる接続標準を提供するものです。Resources、Prompts、Toolsの役割分担を正しく理解し、適切に設計されたMCPサーバーを配置することは、変化の激しいAI技術に追従し続けるための最も賢明な投資となるでしょう。