AI・機械学習
中級

Functionary(ファンクショナリー)

OpenAIのfunction calling仕様と完全互換のオープンソースLLM。ツール呼び出しと通常応答を同一モデルで処理し、低レイテンシなエージェント構築を実現する。

0 回閲覧
0 いいね
2026/6/7 更新
関連タグ
function-calling
openai-compatible
open-source
llm-agent
mistral
tool-use

Functionary — OpenAI互換のオープンソース Function Calling LLM

Functionaryは、meetkai社が開発・公開しているfunction calling特化のオープンソースLLMシリーズだ。OpenAIのfunction calling API仕様と完全互換の設計を採用しており、既存コードをほぼ変更せずにセルフホスト環境に切り替えられるdrop-in代替として利用できる。

モデルラインアップ(2025年時点)

  • Functionary-small-v2.5: Mistral-7B-v0.3ベース、7B、コスト効率最優先
  • Functionary-medium-v2.5: LLaMA-3-8Bベース、8B、バランス型
  • Functionary-v3.2: LLaMA-3.1-70Bベース、70B、高精度・本番向け

function callingの仕組み

OpenAI互換のツール定義JSONをそのまま受け付け、関数呼び出しまたは通常テキスト応答を選択して生成する。

{
  "choices": [{
    "message": {
      "role": "assistant",
      "tool_calls": [{
        "id": "call_abc123",
        "type": "function",
        "function": {
          "name": "get_weather",
          "arguments": "{"location": "Tokyo", "unit": "celsius"}"
        }
      }]
    },
    "finish_reason": "tool_calls"
  }]
}

このJSON出力はOpenAI APIのレスポンスと完全に同じ構造を持つため、既存のLangChainエージェントコードを変更せずに使用できる。

構造化出力の保証

Functionaryはllama.cppのGBNF(GGML BNF)文法機能と組み合わせることで、JSONスキーマに完全準拠した出力を構造的に保証できる。文法制約によってモデルが無効なJSONを出力する可能性を排除する。

llama-server --model functionary-small-v2.5.Q4_K_M.gguf \
  --grammar-file functionary.gbnf --port 8080

セルフホスト環境での展開

LiteLLM経由:

litellm --model ollama/functionary-small-v2.5
# → localhost:4000でOpenAI互換エンドポイント起動

vLLM経由:

python -m vllm.entrypoints.openai.api_server \
  --model meetkai/functionary-medium-v3.2

評価

BFCL(Berkeley Function Calling Leaderboard)v3での評価(2025年):

  • Functionary-v3.2(70B): Overall Accuracy 82.3%
  • Functionary-small-v2.5(7B): Overall Accuracy 71.2%

採用事例

LiteLLM・PrivateGPT・OpenWebUI等のセルフホストLLMスタックでOpenAI function calling互換レイヤーとして採用されている。

この記事について
カテゴリーAI・機械学習
難易度中級
作成日2026/6/7