2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VoltAgent(TypeScript の AIエージェントフレームワーク)を軽く試してみる

Last updated at Posted at 2025-05-19

はじめに

はてなブックマークのテクノロジーカテゴリの新着ページで、技術情報を見ていた時にみかけた「VoltAgent」を試してみました。

最近、TypeScript(や Python)の AIエージェントフレームワークを複数試して記事に書いたりもしていたのですが、そのような流れもあって「VoltAgent」が気になりました。

公式の情報

以下が「VoltAgent」の公式ページなどです。

●VoltAgent - Open Source TypeScript AI Agent Framework
 https://voltagent.dev/

●VoltAgent/voltagent: Open Source TypeScript AI Agent Framework
 https://github.com/VoltAgent/voltagent

Mastra との違い

TypeScript の AIエージェントフレームワークの 1つに Mastra がありますが、それとの違いを公式が書いていたポストを見かけたので、以下に掲載してみます。

Mastra を試した話

冒頭に TypeScript の AIエージェントフレームワークをいくつか試して記事に書いた話を書いていましたが、Mastra についてもお試しをして記事に書いたものがあります。

●「mastra user:youtoy」の検索結果 - Qiita
 https://qiita.com/search?q=mastra%20user%3Ayoutoy&sort=created

さっそく VoltAgent を試す

VoltAgent を試してみます。

今回は「公式の ⚡ Quick Start」の内容を動かしてみました。

image.png

下準備

下準備として、以下のコマンドでパッケージをインストールします(← 公式手順の @latest はつけずに試してみました)。

npm create voltagent-app

image.png

image.png

上記のプロジェクト名は、薄く表示されていた「my-voltagent-app」にして、その後の選択肢は「npm」を選びました。以下は、その後の画面です。

image.png

続きの処理

続きを進めていきます。画面に表示されている内容を参考に、以下を順番に実行していきます。

cd my-voltagent-app
npm i
npm run dev

そして、以下の表示が出てきました。

image.png

環境変数に APIキーを設定する感じかな、とも思いつつ、いったん先に進めます(あと、アップデートに関する表示も、いったんスルーしつつ)。

サーバーにアクセスしてみる

HTTP Server にアクセスする

「HTTP Server」となっている http://localhost:3141 にアクセスしたところ、以下の表示が出ました。

image.png

公式の手順だと、ここから「VoltAgent Developer Console」にアクセス・ログインする流れになっています。

ローカルサーバーに PC内からアクセスする方法を探っていく

しかし、これを上記のコンソールを使わず扱えるか、ちょっと調べて試してみました。

ローカルにサーバーが立ち上がっているので、普通に PC内から API を扱えそうに思えます。その方法を、公式ドキュメントから探してみることにしました。

API を扱う

公式のドキュメントを見ていくと、以下のページを見つけました。

●API Overview | VoltAgent
 https://voltagent.dev/docs/api/overview/

image.png

ローカルで立ち上げたサーバーに、HTTPリクエストでアクセスしてレスポンスを得られそうな感じです。

curl でのお試し1

上記の公式ドキュメントに書いてあったコマンドのうち、以下を実行してみます。

curl http://localhost:3141/agents

そうすると以下のレスポンスが得られました。

image.png

id の情報や、その他、システムのプロンプトとして設定された内容などが出力されているようです。

curl でのお試し2

次は以下を試します。

curl -X POST http://localhost:3141/agents/your-agent-id/text \
     -H "Content-Type: application/json" \
     -d '{ "input": "Tell me a joke!" }'

上記の「your-agent-id」の部分は書きかえる必要があるようです。その部分は「my-voltagent-app」に変えた以下の内容にしました。

curl -X POST http://localhost:3141/agents/my-voltagent-app/text \
     -H "Content-Type: application/json" \
     -d '{ "input": "Tell me a joke!" }'

実行結果は以下で、この時点では処理に失敗しています。

image.png

おそらく、先ほど少し触れていた APIキーの問題かと思われました。

curl でのお試し3

現状、srcフォルダ内を確認すると、以下の内容の「index.ts」が作られています。

index.ts
import { VoltAgent, Agent } from "@voltagent/core";
import { VercelAIProvider } from "@voltagent/vercel-ai";

import { openai } from "@ai-sdk/openai";

const agent = new Agent({
  name: "my-voltagent-app",
  instructions: "A helpful assistant that answers questions without using tools",
  llm: new VercelAIProvider(),
  model: openai("gpt-4o-mini"),
  tools: [],
});

new VoltAgent({
  agents: {
    agent,
  },
});

model: openai("gpt-4o-mini") という部分があるので、OpenAI の APIキーを設定してやれば良さそうです。

公式ドキュメント内の別ページの「Manual Setup」という項目内に、以下の記載があるので、それで大丈夫そうです。

image.png

上記の「.env」で環境変数を設定する以外の方法で、「サーバーを立ち上げる際に環境変数をコマンドで設定する」という方法でも大丈夫かと思います。とりあえず今回は、コマンドで環境変数 OPENAI_API_KEY に OpenAI の APIキーを設定しました。

あらためて curlコマンドで API を使ってみます。プロンプトを日本語のものに変えてみたりしました。

curl -X POST http://localhost:3141/agents/my-voltagent-app/text \
     -H "Content-Type: application/json" \
     -d '{ "input": "あなたは誰?" }'

上記を実行すると、以下のとおり無事にレスポンスを得られました。

image.png

おわりに

今回、VoltAgent を軽く試してみました。シンプルな内容ではありますが、かなり簡単に使うことができました。

まだ詳細をあまり見られてないので、公式ドキュメントなどを見ていければと思います。

余談

試している途中で、こんなリプライがきました(こちらは、キーワードベースで自動で、とかでしょうか)

またお試し中の内容を X にポストしていたら、公式アカウントや中の人kら、その投稿へのリアクションやコメントもいただけました。

image.png

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?