/ ディレクトリ / プレイグラウンド / fast-agent
● コミュニティ evalstate ⚡ 即起動

fast-agent

作者 evalstate · evalstate/fast-agent

@fast.agent() デコレータで MCP ネイティブなエージェントを Python で作れる。Skills・MCP・ACP・マルチモデル・eval・トレースが全て組み込まれている。

fast-agent は MCP と Skills を真剣に扱うエージェントフレームワーク。関数にデコレートしてサーバーとスキルをアタッチしモデルを選択するだけで、トレース・eval・再開可能な実行を持つエージェントが動作する。スタンドアロンのフレームワークとしても、Claude から操作できる MCP サーバーとしても活用できる。

なぜ使うのか

主な機能

ライブデモ

実際の動作

fast-agent-mcp.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "fast-agent-mcp": {
      "command": "uvx",
      "args": [
        "fast-agent-mcp"
      ]
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "fast-agent-mcp": {
      "command": "uvx",
      "args": [
        "fast-agent-mcp"
      ]
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "fast-agent-mcp": {
      "command": "uvx",
      "args": [
        "fast-agent-mcp"
      ]
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "fast-agent-mcp": {
      "command": "uvx",
      "args": [
        "fast-agent-mcp"
      ]
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "fast-agent-mcp",
      "command": "uvx",
      "args": [
        "fast-agent-mcp"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "fast-agent-mcp": {
      "command": {
        "path": "uvx",
        "args": [
          "fast-agent-mcp"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add fast-agent-mcp -- uvx fast-agent-mcp

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: fast-agent

30 行の Python で深掘り調査エージェントを構築する

👤 再現可能な調査エージェントを求める開発者 ⏱ ~60 min intermediate

使うタイミング: チャットで「X を調査して」というフローを試作済みで、それを呼び出し可能なエージェントにしたいとき。

前提条件
  • Python 3.11+ と uv — uv が未インストールの場合はインストールする。fast-agent はこれを使用する
  • fast-agent のインストール — uvx fast-agent-mcp init; プロジェクトディレクトリに移動する
フロー
  1. スキャフォールドを生成する
    Use fast-agent. Generate a research agent skeleton with tavily search + fetch + summarize tools.✓ コピーしました
    → @fast.agent デコレータ付きの agent.py が生成される
  2. MCP を接続する
    Attach the tavily-mcp and filesystem MCP servers in fastagent.config.yaml.✓ コピーしました
    → 設定が検証され、サーバーが接続される
  3. 実行してイテレーションする
    Run with: research 'state of small embedding models 2026'. Inspect the trace.✓ コピーしました
    → トレースで検索→フェッチ→要約のチェーンが確認できる。出典付きのブリーフが出力される
  4. eval を追加する
    Author a 5-prompt eval; run nightly. Fail if any source citation is missing.✓ コピーしました
    → eval 出力が緑か赤で表示される。夜間 cron が設定される

結果: チームメンバーに渡せる再現可能な調査パイプラインが完成する。

注意点
  • デコレータのマジックがエージェントの動作を隠してしまう — 常にトレースを確認する。エージェントが動作すると宣言する前に各ツール呼び出しを理解すること
組み合わせ: tavily-mcp · filesystem

fast-agent を MCP サーバーとして公開する

👤 エージェントをチーム間で共有したい開発者 ⏱ ~25 min intermediate

使うタイミング: fast-agent で内部エージェントを構築済みで、他の人が Claude から呼び出せるようにしたいとき。

フロー
  1. エージェントを公開対象としてマークする
    Add @fast.agent(expose=True) to the decorator; specify name and description for tool discovery.✓ コピーしました
    → エージェントが MCP ツールとしても公開される
  2. MCP サーバーとして実行する
    Run: fast-agent serve --transport stdio.✓ コピーしました
    → stdio MCP サーバーが起動し、エージェントがツールとして一覧表示される
  3. クライアントに追加する
    Add the fast-agent stdio config to my Claude Desktop config.✓ コピーしました
    → Claude でツールが見えるようになり、呼び出すとエージェントが動作する

結果: 他の MCP と同様にチーム全体で再利用できるカスタムエージェントが完成する。

注意点
  • エージェントが作者しか持っていないローカルファイルに依存している — 設定とアセットをエージェントのパッケージに含める。必要な環境変数を文書化する

eval ランナーで 2 つのプロンプトバージョンを比較する

👤 本番向けのプロンプトを調整している方 ⏱ ~45 min intermediate

使うタイミング: 2 つのプロンプトの表現を比較し、データで選択したいとき。

フロー
  1. eval を書く
    Define an eval with 12 representative inputs and golden outputs.✓ コピーしました
    → evals/<name>.yaml が作成される
  2. 2 回実行する
    Run eval against prompt v1, then v2. Compare pass rates + token usage.✓ コピーしました
    → 差分付きの比較テーブルが表示される
  3. 採用して固定する
    Save the winning prompt to prompts/winning.md; tag the eval as the regression baseline.✓ コピーしました
    → ベースラインが確定し、将来の PR でそれに対して実行される

結果: データに基づくプロンプト選択と回帰ネットが完成する。

注意点
  • 12 件の入力が全て正常系 — 敵対的なケースを追加する。空の入力・不正な入力・矛盾する事実など

組み合わせ

他のMCPと組み合わせて10倍の力を

fast-agent-mcp + tavily-mcp + filesystem

Web と filesystem の MCP をアタッチした調査エージェントを構築する

Build a research agent that uses tavily for search, filesystem for note persistence.✓ コピーしました
fast-agent-mcp + mcpjam-inspector

リリース前に MCPJam UI で fast-agent サーバーを検証する

Run fast-agent as MCP server; connect via mcpjam-inspector to verify tool schemas.✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
agent.run messages, agent_name? エージェントをエンドツーエンドで動作させる Model + tool calls
agent.list 公開されているエージェントを確認する 0
eval.run eval_name, prompt_version? コミット前・夜間の回帰チェック Model API per prompt
trace.get run_id 特定の実行をデバッグする 0

コストと制限

運用コスト

APIクォータ
選択したモデルプロバイダーのクォータに依存する
呼び出しあたりのトークン
エージェントの設計によって大きく変わる
金額
フレームワークは無料。モデルプロバイダーへの支払いが必要
ヒント
開発中は --model haiku-4.5 を使う。本番実行と eval にのみ Sonnet に切り替える

セキュリティ

権限、シークレット、影響範囲

最小スコープ: Whatever attached MCPs need
認証情報の保管: fastagent.secrets.yaml(gitignore 済み)または環境変数
データ送信先: アタッチした MCP サーバーと選択したモデルプロバイダーへの通信
絶対に付与しない: 開発環境に本番への書き込みトークンを渡さない

トラブルシューティング

よくあるエラーと対処法

エージェントが収束せずにループする

max_steps を設定する。トレースを検証してループを見つける。多くの場合、ツールが曖昧な出力を返しモデルが無限にリトライしている

確認: trace.get(run_id)
eval が 0% と報告するが手動実行は成功する

golden_output のフォーマットを確認する。厳密一致か意味論的一致か

設定の MCP サーバーがアタッチに失敗する

まずサーバーのコマンドを単独で実行して確認する。fastagent.secrets.yaml に環境変数が存在するか確認する

初回実行が遅い

uv は初回呼び出し時に依存関係を取得する。2 回目以降はキャッシュされる。CI で事前ウォームアップを行う

代替案

fast-agent 他との比較

代替案代わりに使う場面トレードオフ
PrefectHQ/fastmcp完全なエージェントフレームワークではなく正規の MCP サーバーフレームワークが欲しいときfastmcp はサーバーを構築するもの。fast-agent はそれを消費するエージェントの構築・オーケストレーション向け
LangGraphチームがすでに LangChain エコシステムに投資しているときより汎用的。MCP ネイティブではない
mcp-agent (lastmile-ai)よりミニマルなチュートリアル向けのフレームワークを好む場合スコープが小さい。バッテリーが少ない

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る