UStackUStack
Linchpin icon

Linchpin

Linchpin 是可自托管的 AI 代理运行时,支持通过 OpenRouter 的云模型与 Ollama 的本地模型;具备隔离会话与工具/凭据管理。

Linchpin

什么是 Linchpin?

Linchpin 是一个可自托管的 AI 代理运行时,支持多种模型提供商和本地模型运行。它旨在让您将请求路由到不同的 LLM,在隔离环境中运行每个代理会话,并提供受控的内置和外部工具集。

其核心目的是减少模型/提供商锁定,同时为代理提供沙箱执行上下文,以及对工具、凭据和事件流的托管访问。

主要特性

  • 任意模型,一体适配: Linchpin 可通过 OpenRouter 路由约 200 个云模型(包括 Claude、GPT、Gemini、Llama、DeepSeek、Mistral 和 Qwen),并通过 Ollama 运行本地拉取的模型;您可为每个代理切换提供商。
  • 沙箱会话,每会话 Docker 容器: 每个会话运行在独立的 Docker 容器中,预装 Python、Node、git 和 ripgrep,提供一致的工具环境。
  • 每环境可配置网络: 网络可设置为 none 以严格限制,或 open egress 以较宽松配置。
  • 八个内置容器工具: 代理可使用包括 bashreadwriteeditglobgrepweb_fetchweb_search 的工具,执行受限于容器内。
  • MCP 和 HTTP 工具集成: Linchpin 可通过 stdio 接入 Model Context Protocol (MCP) 服务器,或连接任意 HTTP 端点;连接器管理进程生命周期和凭据注入。
  • 加密凭据保险库: 凭据使用 Fernet 加密存储;代理在配置中按名称引用密钥,会话启动时解密,且不以明文写入磁盘。
  • 每会话追加式事件流: Linchpin 为每会话记录追加式事件日志,支持游标分页;客户端可通过 SSE 订阅,从游标重放事件并流式接收实时更新。

如何使用 Linchpin

  1. 选择模型路径: 配置代理通过 OpenRouter(用于提供商选择)使用云模型,和/或通过 Ollama 使用本地模型。
  2. 在沙箱中运行代理会话: 启动会话时知晓每个会话使用独立的 Docker 容器及预装运行时工具;根据环境需求设置网络(none vs open egress)。
  3. 为代理选择工具: 使用 Linchpin 内置工具(bash、文件操作、搜索/获取),可选添加 MCP 服务器(通过 stdio)或连接 HTTP 端点作为外部工具。
  4. 安全提供凭据: 将凭据存储在 Linchpin 的 Fernet 加密保险库中,并在代理配置中按名称引用密钥。
  5. 向 UI 或服务流式传输事件: 通过 SSE 订阅,使用游标分页重放先前事件并继续接收更新。

使用场景

  • 多提供商代理部署: 您希望对不同 LLM 运行相同代理工作流(例如,一任务用 Claude,另一任务用 GPT),同时保持工具和沙箱设置一致。
  • 本地模型代理运行: 您有本地拉取的模型,偏好通过 Ollama 运行,无论模型运行位置如何,都使用相同的容器化工具和会话隔离。
  • 沙箱代码和文件工作流: 需要编辑和搜索项目文件或运行 shell 命令的代理,可在其独立 Docker 容器内执行,并在需要时限制网络。
  • 通过 MCP 服务器的工具集成: 您有现有 MCP 服务器向代理暴露能力;Linchpin 可通过 stdio 连接它们,并管理连接器生命周期和凭据注入。
  • 实时 UI 事件源: 您正在构建需要历史和实时更新的界面;可从游标重放事件日志条目,然后通过 SSE 实时流式传输事件。

常见问题

  • Linchpin 需要特定模型提供商吗? 不需要。Linchpin 通过 OpenRouter 路由到多种云模型,也可通过 Ollama 运行本地模型,按代理配置提供商选择。

  • 代理会话如何隔离? 每个会话运行在自己的 Docker 容器中,预装 Python 和 Node 等工具。网络可根据环境限制(无)或允许(开放出口)。

  • 代理可以使用哪些工具? Linchpin 内置八个工具(bashreadwriteeditglobgrepweb_fetchweb_search),并可通过 MCP 服务器(stdio)或 HTTP 端点集成外部工具。

  • Linchpin 如何处理凭据? 凭据存储在 Fernet 加密保险库中,在代理配置中按名称引用。会话启动时解密,且不会以明文写入磁盘。

  • 可以将代理活动流式传输到前端吗? 可以。Linchpin 为每个会话维护追加式事件日志,并支持 SSE 订阅,可回放游标前事件并实时流式传输新事件。

替代方案

  • 带沙箱的自托管代理运行时: 在隔离容器中运行代理的替代平台也可提供受控工具执行;差异通常在于模型与工具集成方式(提供商路由、MCP/HTTP 支持及事件流式传输模型)。
  • 仅本地代理框架: 专注于本地模型的框架(例如基于本地推理构建的)可避免外部提供商路由,但可能提供不同程度的提供商切换及工具/凭据管理。
  • 专注 MCP 的工具连接器: 如果主要需求是 MCP 连接,可找到强调 MCP 工具集成的替代方案;与 Linchpin 相比,需要评估其会话隔离、凭据存储及流式传输处理。
  • 自定义 SSE/事件日志实现: 一些团队围绕代理系统构建自己的事件日志和 SSE 流式传输;权衡是需更多工程努力来重现基于游标的回放、追加式会话日志及一致的代理工具行为。