🌟 OpenAPI Tool Servers
这个仓库提供了一组参考实现,帮助开发者以简单且安全的方式,把外部工具和数据源集成进 LLM agent 与工作流。它使用业界广泛采用的 OpenAPI 规范 作为标准协议,因此学习成本和接入成本都很低。
借助 OpenAPI,你不需要再学习一套专有或陌生的通信协议。如果你已经会写 REST API,或者已经在使用 OpenAPI,那么你几乎可以直接开始构建或接入工具服务器。
为什么选择 OpenAPI
- 成熟标准:OpenAPI 是经过大量生产环境验证的 API 标准
- 不重复造轮子:不用再为专有协议写额外文档或适配层
- 易于集成与托管:既可以本地跑,也可以部署到外部服务
- 安全基础扎实:天然建立在 HTTP/REST、HTTPS、OAuth、JWT、API Key 等成熟方案上
- 长期稳定:社区广泛采用,演进路径清晰
局限性
相较于原生 Python Tools,OpenAPI 工具在扩展 OPL 数据空间时有两个重要限制:
- 只支持单向事件:可以通过 REST 端点发出状态更新、通知等 单向事件。 OPL 数据空间会自动传递
X-Open-WebUI-Chat-Id与X-Open-WebUI-Message-Id头。但像“要求用户输入”或“请求确认”这样的交互事件,只有原生 Python 工具才支持。 - 不支持流式输出:Tool 响应是完整结果返回,而不是 token-by-token streaming。
如果你的工具需要复杂的交互 UI 反馈,例如确认框、输入框,优先考虑实现为 原生 Python Tool。
快速开始
可以直接从 servers/ 目录下的参考实现开始,默认示例基于 FastAPI,你也可以把它们改造成自己的技术栈,例如 FastAPI、FastOpenAPI 或任何 OpenAPI 兼容框架。
git clone https://github.com/open-webui/openapi-servers
cd openapi-servers用 Bash 直接启动
cd servers/filesystem
pip install -r requirements.txt
uvicorn main:app --host 0.0.0.0 --reload启动后,filesystem server 会在 http://localhost:8000 可访 问,文档页通常也在同一路径下的 /docs。
用 Docker 启动
如果安装了 Docker Compose:
docker compose up服务默认可通过以下地址访问:
- Filesystem:
http://localhost:8081 - Memory:
http://localhost:8082 - Time Server:
http://localhost:8083
之后,把这些 URL 填给支持 OpenAPI 的客户端或 AI agent 即可。
OPL 数据空间社区
- 通用讨论、技术交流和公告可见 Community Discussions
- 有建议或反馈,欢迎直接提 issue