Agent 调通了却上不了线?Trinity 用一容器一实例把生产运行时补齐

Agent 调通了却上不了线?Trinity 用一容器一实例把生产运行时补齐

Agent 调通了却上不了线?Trinity 用一容器一实例把生产运行时补齐

笔记本上把 Agent 聊通很容易,真正卡住的是下一公里:谁能触发它、它半夜干了什么、花了多少 Token、会不会把隔壁 Agent 的文件删掉、出事之后有没有可查的审计。这些问题跟「模型聪不聪明」无关,却决定 demo 能不能进生产。

Abilityai/Trinity(github.com/Abilityai/trinity,Apache-2.0)的定位很干脆:Claude Code 负责写 Agent,Trinity 负责在你自己的边界里把它跑起来。每个 Agent 独占一个 Docker 容器,带调度、可观测、委派协作与只追加审计。本文基于官方 README、docs/DEPLOYMENT.md、安装脚本与社区拆解深度改写;源微信页若抓取失败,以仓库与文档为准,不臆造能力。

封面:Trinity 一容器一 Agent 生产运行时


一、它解决的不是「再写一个 Agent」,而是框架下面那一层

市面上的 Agent 框架、本地 harness、托管团队服务各管一段:框架帮你拼工具调用,Claude Code 帮你在本机迭代,SaaS 帮你「开箱即用」但数据出边界。Trinity 抢的是框架之下的控制面——多用户、定时触发、舰队健康、成本与审计。官方对照表写得很清楚:

你在用… 它擅长 什么时候该看 Trinity
Claude Code 本机写 Agent、快速迭代 要上生产:多用户、有调度、可观测、可审计
OpenClaw / Hermes 自控的开放 Agent harness 想给它一个生产之家:按 Agent 隔离、调度、审计,不必自造平台
托管 Agent 团队服务 开箱即用 要自托管、公司自治——基础设施与边界在自己手里

这一定位决定了它的「重量」:需要 Docker 与 Docker Compose v2+,起来的是一整套栈——Vue 前端(80)、FastAPI 后端(8000)、MCP Server(8080)、Scheduler(8001)、Redis、数据库,以及日志收集(Vector,8686)。可选 OpenTelemetry Collector 做指标导出。它不是「一个二进制跑起来」的路线,更接近小型 Kubernetes + 审计系统,只是调度单位是 Agent 容器而不是 Pod。

v0.9.0(2026-08-17)把 Workspace 客户端面、远程模板注册表、多源 Skills 库、双向 A2A、自动库备份等推进了一步;版本仍在 0.x,功能长但成熟度需要你自己压测。README 声明项目通过了 UnderDefense 独立渗透测试(Grade A)——开源 Agent 平台里主动做第三方渗透的并不多。


二、硬设计:一个 Agent 一个容器,护栏写在运行时而不是提示词里

Trinity 最硬的一条承诺是:每个 Agent 跑在独立 Docker 容器里,带独立资源配额。某个 Agent 抽风,不至于把整套控制面一起拖下水;出了问题能看容器日志与执行记录,而不是只剩一句「模型好像没回」。

围着这个粒度,运行时控制项也排得很齐:

  • 多 Runtime:每个 Agent 可选 Claude Code(Anthropic)、OpenAI Codex 或 Gemini CLI
  • 模型可选:任务或调度可指定 Opus / Sonnet / Haiku 等
  • 只读模式:保护源码不被改,只允许往指定目录写输出
  • 完整能力模式:需要 apt-get、sudo 的 Agent 可单独提权
  • 失控预防:max_turns 限制执行深度
  • 护栏(Guardrails):确定性安全强制,可按 Agent 覆盖
  • 持久异步积压:超出并行容量的任务进 SQLite 支撑的 FIFO 队列,重启不丢

注意后几条的性格——它默认假设 Agent 会失控,然后用架构拦住。max_turns 和护栏不是提示词里写一句「请不要」,而是运行时硬限制。容器协作走三条通路:层级委派(细粒度权限)、Docker volume 共享目录、无状态并行任务(orchestrator-worker)。

控制面侧还有四层 RBAC(user < operator < creator < admin)、只追加平台审计日志(生命周期 / 认证 / MCP,管理员 API)、Operator Queue(人在环审批)、统一邮箱白名单(Web / Slack / Telegram),以及可导出到 Grafana / Datadog 的 OpenTelemetry。生产治理要的是「事后可查、不可乱改」——Trinity 至少把这条设计意图写进了产品面。

插图:一容器一 Agent 与控制面


三、把实例拉起来:一键安装、无人值守与 Agent 自装

先决条件很简单:Docker + Compose v2+,外加 Anthropic 或 Google 的 API Key(看你跑哪系 Agent)。官方提供三条路径。

路径 A:一键安装脚本

curl -fsSL https://raw.githubusercontent.com/abilityai/trinity/main/install.sh | bash

脚本会 clone 仓库(默认 ~/trinity)、准备 .env、构建 Agent 基础镜像,再 docker compose up。真上服务器时务必盯一眼密钥与权限边界——「一键」省的是步骤,不是运维责任。

路径 B:手动克隆(更可控)

git clone https://github.com/abilityai/trinity.git
cd trinity
cp .env.example .env
# 交互模式:至少改 ADMIN_PASSWORD(12 位以上)
# SECRET_KEY、加密密钥、Redis 密码由 start.sh 首次生成

./scripts/deploy/build-base-image.sh
./scripts/deploy/start.sh

完全无人值守可用 ./scripts/deploy/start.sh --unattended,或设置 TRINITY_UNATTENDED=1——管理员密码会自动生成并打印在摘要末尾。

路径 C:让编码 Agent 按 runbook 装

Agent 调通了却上不了线?Trinity 用一容器一实例把生产运行时补齐

README 提供面向 Agent 的确定性循环(docs/AGENT_INSTALL_GUIDE.md:验证 → 安装 → 确认 → 报告下一步)。你可以直接对 Claude 说:按该 runbook 在本机安装 Trinity。装完入口大致是:Web UI http://localhost,API 文档 http://localhost:8000/docs,MCP http://localhost:8080/mcp。

数据库策略很克制:默认 SQLite(/data/trinity.db),适合本地评估;生产推荐 PostgreSQL,设一个 DATABASE_URL,后端与调度器一起切换。选择非黏性:注释掉 DATABASE_URL 重启即回 SQLite。已有实例迁移可由 trinity-ops-public 的 /migrate-to-postgres skill 做校验后切流,SQLite 文件不被覆盖,回滚成本低。

远程服务器还可走 abilities 市场的 /trinity:deploy-new-instance,顺带脚手架 Ops Agent(健康检查、日志、更新、回滚、库迁移)。


四、实例起来之后:插件、CLI 与 YAML 舰队怎么部署 Agent

站起来只是 Phase A。Phase B 是把本机写好的 Agent 部署进舰队。官方主推 abilities 插件市场(与 Claude Code 深度绑定):

/plugin marketplace add abilityai/abilities
/plugin install trinity@abilityai
/trinity:connect
/trinity:create-agent my-agent
/trinity:onboard

onboard 会做兼容性检查、生成 Trinity 相关文件、部署并启动容器。连上后,MCP 工具(list_agents、chat_with_agent、调度与执行查询等)可直接在编辑器里用,少在网页、终端、配置文件之间来回切。

Trinity CLI 是终端优先替代路径:

pip install trinity-cli   # 或 brew install abilityai/tap/trinity-cli
trinity init # 实例 URL + 邮箱验证码 → JWT + MCP key
cd my-agent/ && trinity deploy .
trinity agents list
trinity chat my-agent "Hello, what can you do?"
trinity logs my-agent
trinity health fleet

多 Agent 系统可用一份 YAML 声明整套协同,再经 MCP deploy_system 或 REST POST /api/systems/deploy 部署。示意:

name: content-production
description: Autonomous content pipeline

agents:
orchestrator:
template: github:abilityai/agent-corbin
resources: {cpu: "2", memory: "4g"}
folders: {expose: true, consume: true}
schedules:
- name: daily-review
cron: "0 9 * * *"
message: "Review today's content pipeline"

writer:
template: github:abilityai/agent-ruby
folders: {expose: true, consume: true}

permissions:
preset: full-mesh

调度侧是 cron + 独立 scheduler + Redis 分布式锁(防多实例重复触发);另有带 HMAC-SHA256 与限流的公开 webhook。模板可来自内置库、远程注册表或 github:org/repo@branch(私有仓需 GITHUB_PAT)。

插图:从本机 Agent 到舰队部署


五、边界、排坑与什么人该上这套栈

先说代价,避免「一键部署」滤镜过强:

1. 很重:七个服务起步,磁盘与内存占用明显高于「单进程管家」类运行时;树莓派级环境不现实。

2. 工作流绑定 Claude Code:完整 scaffold → develop → deploy → iterate 在 abilities 市场;不用 Claude Code 也能用 CLI / Web UI,但体验会缺一块。

3. 私有子模块可选:克隆会自动跳过、不需凭据,但说明存在你看不到的企业能力面;Apache-2.0 覆盖你能 clone 到的部分。

4. 商业双生:ability.ai 提供托管与咨询;开源可完整自托管,但要清楚这是「开源 + 商业」模型。

5. 0.x 成熟度:Issue 活跃、功能列表长,生产前务必做渗透回归、备份演练与成本告警。

排坑清单(按官方文档常见路径整理):

场景 建议
构建基础镜像很慢 build-base-image.sh 首次 5–10 分钟属正常,先完成再 start.sh
生产仍用 SQLite 尽快设 DATABASE_URL;大并发与多副本别赌单文件库
拉 dev 后服务异常 重建平台镜像再 start.sh;升级路径需备份优先
密钥散落 .env 限制文件权限;不要把真实 Key 写进 Agent 仓库明文
Agent 权限过大 默认优先只读 / 护栏 / max_turns;完整能力模式按需开
需要日常运维 接 trinity-ops-public:/status /logs /update /rollback /diagnose

适合谁:已经把 Agent 写通、但卡在「定时 + 多用户 + 留痕 + 隔离」的团队;以及不想自造控制面、又拒绝数据出边界的自托管场景。不适合谁:只想本机玩一轮对话的人——栈太重,收益不对等。

一句话验证路径:先 --unattended 起本地实例,把一个真实定时任务包成 Agent,打开只追加审计日志与成本面板,看信息量是否够你半夜排障。够,再谈上云与 Postgres。

仓库与文档入口:Abilityai/trinity、官方文档部署页、trinity-ops-public。装之前先读 AGENTS.md 与 docs/AGENT_INSTALL_GUIDE.md,比盲目抄命令省半宿。

💻 配套实训环境与动手练习

本文涉及的相关技术指令、开发环境与工具链已内置在边学边练在线实验室中,无需繁琐安装配置,随时在浏览器中实践体验:

文章版权声明:除非注明,否则均为边学边练网络文章,版权归原作者所有

最新文章

热门文章

本栏目文章