跳转到内容

Hub

Hub 是 Clip 被发现和调用的地方。

当你执行 pinix invoke todo list,CLI 把请求发给 Hub,Hub 在路由表里找到 todo 对应的 Clip instance,把请求转发过去,拿到结果返回给你。Agent 调用 Clip 也是同样的流程。

Hub 不关心 Clip 是怎么实现的——TypeScript、Go、原生程序都一样。对 Hub 来说,它们都是带有 alias 和命令的 Clip。

PlantUML Diagram

没有类型分支,没有特殊情况。

每个 Clip 在 Hub 上有一个唯一的 alias——这就是调用时的标识:

Terminal window
pinix hub add @pinix/todo # alias: todo
pinix hub add @pinix/todo --alias my-tasks # alias: my-tasks
pinix invoke todo list # 通过 alias 调用

如果不指定 alias,会从包名自动生成。

Pinix 有两种 Hub:

Local HubCloud Hub
在哪你的机器上(daemon 内置)hub.pinixai.com
谁能访问本机 CLI / Console任何登录了的设备
Clip 来源本地安装的所有连接到 Cloud Hub 的用户的 Clip

pinix login 之后,daemon 作为 Provider 连接到 Cloud Hub。你的本地 Clip 在 Cloud Hub 上可见,你也能调用别人共享的 Clip。

PlantUML Diagram
  1. Client(CLI / Console / Agent)向 Hub 发请求
  2. Hub 查路由表,找到目标 Clip 的 Provider
  3. Provider 把请求送到 Clip instance
  4. Clip 执行,返回结果
  5. 沿原路返回

Clip 之间的调用也走这个流程——一个 Clip 要调另一个 Clip,一样经过 Hub 路由。