跳到主要内容

🛠️ Tools & Functions

⚠️ 关键安全警告

Tools、Functions、Pipes、Filters 和 Pipelines 都会在你的服务器上执行任意 Python 代码。

这正是它们强大的原因,但也意味着:

  1. 只从可信来源安装
  2. 导入前先审查代码
  3. 保护好 data 目录
  4. 严格限制 Workspace 访问权限
  5. 定期审计已安装插件

恶意代码完全可能导致数据外传、植入恶意程序、挖矿、横向移动或直接破坏你的实例。

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 数据空间本身加能力。

例如你可能想:

  1. 新增一个 AI provider(例如 Anthropic)
  2. 在工具栏中放一个自定义按钮
  3. 实现更强的输入 / 输出过滤逻辑

这些就属于 Functions 的范畴。

它们分别在哪里管理

  • 扩展功能 更偏模型使用,通常位于 Workspace
  • Functions 更偏平台能力扩展,通常位于 管理员面板

差异总结

  • 扩展功能:让模型“能做更多事”
  • Functions:让 OPL 数据空间“能做更多事”

两者都支持从社区一键导入。

什么是 Pipelines

Pipelines 是 OPL 数据空间的另一层扩展能力,重点在于把 Tools 和 Functions 延伸成更加 API 兼容、可外部部署的工作流。

多数初学者和普通团队其实不一定需要 Pipelines,只有在这些场景下会很有价值:

  • 你要把重处理从主实例卸载到其他机器
  • 你需要 GPU 或大依赖,但不想污染主实例
  • 你想把一整套复杂处理流程封装成兼容 OpenAI API 的服务

想马上试试?

可以直接去社区导入一个天气 Tool,或者安装一个自定义 Function,亲手感受 OPL 数据空间的扩展性到底有多强。