🛠️ Tools & Functions
⚠️ 关键安全警告
Tools、Functions、Pipes、Filters 和 Pipelines 都会在你的服务器上执行任意 Python 代码。
这正是它们强大的原因,但也意味着:
- 只从可信来源安装
- 导入前先审查代码
- 保护好
data目录 - 严格限制 Workspace 访问权限
- 定期审计已安装插件
恶意代码完全可能导致数据外传、植入恶意程序、挖矿、横向移动或直接破坏你的实例。
TL;DR
- 扩展功能 扩展的是 LLM 的能力,让模型能拿到天气、股价、网页内容、代码执行结果等实时外部信息
- Functions 扩展的是 OPL 数据空间本身,例如新增模型提供方、添加自定义按钮、实现过滤逻辑
- Pipelines 更适合高级场景,把重处理转成独立 API 兼容工作流,卸载到其他容器或机器上
这些能力都已经是 OPL 数据空间核心系统的一部分。很多场景下你甚至不需要自己写代码,只要在社区中点 Import 就能直接导入。
插件系统的能力比文档看起来更大
后续页面会完整记录插件 API:类结构、生命周期方法、参数、事件、返回约定、pipeline 钩子等。
但真正重要的是,它已经被社区用来实现过很多看上去像“必须改内核”的事情,例如:
- 实时 HTML dashboard
- 按用户计费与限流
- 长上下文压缩与替换
- 交互式 UI 组件
- 聊天中的 MCP 应用
- 法证水印和输出后处理
如果你准备提一个“需要内核改动”的需求,先想一遍它是否其实可以用插件系统单独实现。
什么是 Tools,什么是 Functions
先把 OPL 数据空间看作一个已经能做很多事的“基础平台”。但总会有一些能力它默认不带,这时 Tools 和 Functions 就派上用场了。
Tools
Tools 让 LLM 不止能处理文本,而是拥有外部能力。
例如:
- 实时天气查询
- 股票价格抓取
- 航班跟踪
- 内部 API 调用
- 特定格式计算或数据抓取
可以把 Tool 理解为“给模型加外挂能力”。模型在对话过程中,按上下文决定是否使用这些能力。
Functions
与其说 Tool 是给模型加能力,不如说 Functions 是给 OPL 数据空间本身加能力。
例如你可能想:
- 新增一个 AI provider(例如 Anthropic)
- 在工具栏中放一个自定义按钮
- 实现更强的输入 / 输出过滤逻辑
这些就属于 Functions 的范畴。
它们分别在哪里管理
- 扩展功能 更偏模型使用,通常位于 Workspace 中
- Functions 更偏平台能力扩展,通常位于 管理员面板
差异总结
- 扩展功能:让模型“能做更多事”
- Functions:让 OPL 数据空间“能做更多事”
两者都支持从社区一键导入。
什么是 Pipelines
Pipelines 是 OPL 数据空间的另一层扩展能力,重点在于把 Tools 和 Functions 延伸成更加 API 兼容、可外部部署的工作流。
多数初学 者和普通团队其实不一定需要 Pipelines,只有在这些场景下会很有价值:
- 你要把重处理从主实例卸载到其他机器
- 你需要 GPU 或大依赖,但不想污染主实例
- 你想把一整套复杂处理流程封装成兼容 OpenAI API 的服务
想马上试试?
可以直接去社区导入一个天气 Tool,或者安装一个自定义 Function,亲手感受 OPL 数据空间的扩展性到底有多强。