functionary 是开发框架领域的开源项目,由 MeetKai 开发,2023 年首次发布。
在全站 13,014 个收录项目中,它的 GitHub 星标数(1,596)位列前 30%,在开发框架分类中处于中上游。
项目仍在小幅维护中,最近一次代码更新于 2026-09-15。MIT许可证,完全免费,可自行部署使用。
它主要面向的使用场景是:构建能查天气、订票等实时信息的客服机器人。同类可对比的替代方案包括 Gorilla、Toolformer、ReAct。

让大模型学会用工具,对话中直接调API拿结果
functionary是一个能调用工具并解读结果的开源聊天语言模型。它解决的是传统大模型只能生成文本、无法执行实际动作的问题,让模型在对话中自主决定调用外部API或工具,并理解工具返回的数据。核心能力包括:基于函数定义(如JSON Schema)精准触发工具调用、支持多轮工具交互、以及将工具结果自然融入对话。项目提供模型权重和推理代码,基于Python实现,方便开发者集成到自己的应用中。它适合构建智能代理(Agent)、自动化工作流和需要实时数据查询的对话系统。
1获取项目代码
克隆仓库并进入目录,后续 pip install -e . 需要在仓库根目录执行。
git clone https://github.com/MeetKai/functionary.git
cd functionary2安装 vLLM 版本依赖
二选一:使用 vLLM 作为推理后端时执行该命令安装依赖。
pip install -e .[vllm]3安装 SGLang 版本依赖
二选一:使用 SGLang 后端时执行,需带 flashinfer 的 find-links 参数。
pip install -e .[sglang] --find-links https://flashinfer.ai/whl/cu124/torch2.5/flashinfer-python4设置 vLLM 环境变量
vLLM 必须先设置该变量,否则多进程方式可能导致启动失败。
export VLLM_WORKER_MULTIPROC_METHOD=spawn5启动 vLLM 服务
启动 OpenAI 兼容服务,按显存调整 max-model-len 与 tensor-parallel-size(示例为 2 卡)。
python server_vllm.py --model "meetkai/functionary-medium-v3.1" --host 0.0.0.0 --port 8000 --max-model-len 8192 --tensor-parallel-size 26启动 SGLang 服务
vLLM 之外的另一种启动方式,参数名不同:model-path、context-length、tp。
python server_sglang.py --model-path "meetkai/functionary-medium-v3.1" --host 0.0.0.0 --port 8000 --context-length 8192 --tp 27OpenAI 兼容方式调用
服务默认监听 8000 端口,用 OpenAI SDK 指向 http://localhost:8000/v1 并传入 tools 定义。
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="functionary")
client.chat.completions.create(
model="meetkai/functionary-v4r-small-preview",
messages=[{"role": "user",
"content": "What is the weather for Istanbul?"}
],
tools=[{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
}
},
"required": ["location"]
}
}
}],
tool_choice="auto"
)8Modal 无服务器部署
可选:安装并登录 Modal 后,创建环境、切换环境、本地 serve 调试,最后 deploy 上线。
modal environment create dev
modal config set-environment dev
modal serve modal_server_vllm
modal deploy modal_server_vllm| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
model | 是 | vLLM 启动时的模型名称,也作为请求中的 model 字段 | meetkai/functionary-medium-v3.1 |
model-path | 是 | SGLang 启动时指定模型路径或 Hugging Face 名称 | meetkai/functionary-medium-v3.1 |
host | 否 | 服务监听地址,0.0.0.0 表示对外可访问 | 0.0.0.0 |
port | 否 | 服务端口,调用接口时需保持一致 | 8000 |
max-model-len | 否 | vLLM 最大上下文长度,按显存情况调整 | 8192 |
tensor-parallel-size | 否 | vLLM 张量并行卡数,示例为 2 张 GPU | 2 |
服务启动后监听 8000 端口,用 OpenAI SDK 或 requests POST 到 http://127.0.0.1:8000/v1/chat/completions 能正常返回结果即成功。
Q:vLLM 启动时报 multiprocessing 相关错误怎么办?
A:README 提示 vLLM 需要先执行 export VLLM_WORKER_MULTIPROC_METHOD=spawn 再启动 server_vllm.py。
Q:vLLM 和 SGLang 可以都装吗?
A:README 说明二者任选其一即可,安装依赖和启动脚本都不一样,选一个后端按对应命令执行。
Q:调用时 API key 填什么?
A:OpenAI SDK 示例中 api_key 直接填 "functionary";原始 requests 示例使用 Authorization: Bearer xxxx 头部。
Q:这个项目现在还能用吗?
A:README 顶部标注项目已废弃、不再维护,仓库是较旧的快照,仅作参考,官方不再提供更新与支持。
Gorilla、Toolformer、ReAct
functionary 是开发框架领域的开源项目,由 MeetKai 开发,2023 年首次发布。
在全站 13,014 个收录项目中,它的 GitHub 星标数(1,596)位列前 30%,在开发框架分类中处于中上游。
项目仍在小幅维护中,最近一次代码更新于 2026-09-15。MIT许可证,完全免费,可自行部署使用。
它主要面向的使用场景是:构建能查天气、订票等实时信息的客服机器人。同类可对比的替代方案包括 Gorilla、Toolformer、ReAct。
上一篇:llm-chain
下一篇:ExtractThinker
ComfyUI_Custom_Nodes_AlekPet
开源
给 ComfyUI 装上语音翻译和姿态检测,工作流更全能
Custom nodes that extend the capabilities of Comfyui
langchain
开源
组装 AI 应用的乐高积木,从想法到上线不换工具
The agent engineering platform.
transformers
开源
全球最大的模型仓库全家桶,想用的模型一把抓
Transformers: the model-definition framework for state-of-the-art machine learning m···
pi
开源
一套 TypeScript 工具包,快速搭出能写代码的 AI agent
AI agent toolkit: unified LLM API, agent loop, TUI, coding agent CLI