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互換レイヤーとして採用されている。