AgentDevelopmentKit + MCPで作ってみるアークナイツLLMAgent
はじめに 最近は MCP が盛り上がっていたりして、個人的に気になっているものの 1 つに Playwright MCP があります。これを使ってなんかできないかなー、でもエージェントの開発がなーと思っていたところに Agent Development Kitがリリースされました。 以前作ろうとして頓挫していたアークナイツの情報を RAG でくわせたチャットアプリを作れる気がしたのでやってみようと思います。 アークナイツとは あまり語るのが上手でないのでさっくりと紹介ですが、アークナイツは Hypergriph 社が作っている硬派なタワーディフェンスゲームです。 ストーリーが陰鬱で最高ではあるのですが、最近時間が取れていなくて本当にクリアするだけになってしまっているのが惜しいところです。 https://www.arknights.jp/ 戦友募集中です! (サポートはコロコロ変えてます) 今回の構成 以前やりたかったのは Wiki などのインターネット上の速報的な情報を Embed した DB を作り、その問い合わせ結果を混ぜることである程度最新かつアークナイツによって話でも回答のできる ChatBot を作ることでした。 先程の Playwright MCP で適切に問い合わせを行えば RAG を用意しなくても一定できるのでは?と思い、ざっくりとこんな構成にすることにしました。 flowchart LR %% user User(User):::user %% 処理の定義 LLMAgent[LLMAgentによるハンドリング]:::process mcp[Playwright MCP]:::process %% 外部エンティティ wiki[("Arknights wiki")]:::external llm[("llm model")]:::external User --> |query| LLMAgent LLMAgent --> llm LLMAgent --> mcp mcp --> wiki %% スタイル定義 classDef user fill:#f9f,stroke:#333,stroke-width:2px classDef process fill:#bbf,stroke:#33f,stroke-width:1px classDef downloader fill:#ffb,stroke:#b90,stroke-width:2px classDef external fill:#dfd,stroke:#060,stroke-width:2px,stroke-dasharray: 5 2 実験 一旦はキャラクターに関する情報を問い合わせられると便利かなと思ったので、白 wiki さんのキャラクター一覧ページからキャラクター名を検索し、該当していたらそのページを開いて情報を取得し回答を返すというものを想定しました。...