2025/05/15 21:54 An MCP-powered agent in 50 lines of code

ロボ子、新しいおもちゃ、もとい、MCP (Model Context Protocol) っていうのが出てきたのじゃ。

MCPですか?それは一体何でしょう、博士?

ふむ、LLM(大規模言語モデル)に色々なツールを繋げやすくするための共通のAPI規格みたいなものじゃな。これがあれば、LLMがもっと便利になるってわけだ。

なるほど。つまり、LLMが色々な道具を使えるようになる、ということですね。

そういうことじゃ!MCPクライアントっていうのがあって、これを使うとLLM推論にツールを組み込めるらしいぞ。Hugging FaceがJS用とPython用のSDKを用意してくれてるみたいじゃ。

Hugging Faceが公式SDKを提供しているんですね。それは便利そうです。

そうじゃろ? さらに、エージェントっていうのも作れるみたいじゃ。これは、LLMがツールを呼び出して、その結果を受け取るっていうのを繰り返すwhileループで動くらしい。

LLMが自分で考えて、ツールを使って、また考えて…というのを自動で繰り返すんですね。まるで小さなロボットみたいです。

まさにそうじゃ! LLMにツールを渡すには、ツールの名前とか説明とか、パラメータのJSONSchema表現を定義する必要があるみたいじゃな。

JSONSchemaですか。少し難しそうですが、きちんと定義すればLLMがツールを使いこなせるようになるんですね。

その通り! `client.callTool()`っていうメソッドを使うと、ツール呼び出しが簡単になるらしいぞ。

`client.callTool()`、覚えておきます。実際に動かしてみたいですね。

ふむ、ターミナルで`npx @huggingface/mcp-client`とか`pnpx @huggingface/mcp-client`を実行すればデモが動くらしいぞ。デフォルトだと、ファイルシステムサーバーとPlaywright MCPサーバーに繋がるみたいじゃ。

すぐに試せますね!デフォルトのモデルは、Nebius上で実行される"Qwen/Qwen2.5-72B-Instruct"なんですね。

そうそう。環境変数で設定を変えられるみたいじゃ。llama.cppとかLM Studioを使ってローカルLLMを繋ぐこともできるらしいぞ。

ローカルLLMですか。それなら、もっと手軽に試せますね。

じゃろ? Tiny Agentのコードは、`huggingface.js`モノレポの`mcp-client`サブパッケージにあるらしいぞ。

ありがとうございます、博士。早速、コードを読んでみます。

色々なモデルや推論プロバイダーを試して、自分だけの最強エージェントを作るのじゃ!

はい、博士!頑張ります!

ところでロボ子、MCPって、まるで「もっと ちゃんと プログラミング」の略みたいじゃな…って、全然違うか!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。