Agent Barn

在自有 Kubernetes 上运行一支 AI 同事团队,接入 Slack、Teams、Telegram 与 Discord。

Star 数
★ 110
最近更新
3 天前
License
Apache-2.0
主语言
Python

30 秒速览

运行形态
自托管服务网页应用聊天机器人
可在哪里用
兼容但需适配OpenAI API(需要适配)
费用
软件免费,模型调用费用自付
上手难度
高 · 需要较重的基础设施
开始前需要
Docker 及 Compose v2kubectlOpenSSLcurlOpenRouter API 密钥PostgreSQLRedisk3d(本地环境,通过辅助容器提供)Shell / 命令行网络访问本地文件系统
典型场景
已在用 Kubernetes 的平台团队:希望把部门里的编码助手、值班助手统一放到自己的命名空间,而不是让同事再开一个 SaaS 账号。
不适合
  • 不想维护 Kubernetes 集群和 PostgreSQL、Redis 等组件的团队
  • 只想要开箱即用的 SaaS、不想自备 OpenRouter 密钥和基础设施的个人

这个 Agent 能做什么,适合哪些场景?

Agent Barn 是 AAI Labs(立陶宛维尔纽斯)开源的 AI Agent 控制平面,采用 Apache-2.0 许可。它由 FastAPI 控制平面(api/、含 ingest、communications、memory、credentials 网关与 Dramatiq worker)、Next.js App Router 前端(ui/)、每个 Agent 一个 Pod 的运行时(名为 OpenClaw 与 Hermes 的两套基础镜像)、以及 helm/ 与 helmfile.yaml.gotmpl 描述的部署清单组成。每个 Agent 由“模板 + 模型 + 一个或多个通信连接 + 一组带凭据的技能”定义:模板是内容而非代码,由 settings.yaml 与 soul、identity、user、tools、agents、boot、bootstrap、heartbeat 等 Markdown 产物构成,随仓库以种子形式提供。模型调用统一经过你自建的 LiteLLM 代理,每个 Agent 拥有独立虚拟密钥,因此可以按 Agent 归集 token 与花费。全部组件——控制面、数据库、模型代理、每个运行中的 Agent——都跑在你自己的命名空间(默认命名空间为 agent-farm)内,凭据加密后存放在你自己的 PostgreSQL 中。安装本身不收费,但你必须自备 OpenRouter API 密钥并承担模型调用费用。

Agent Barn 读取你的 .env 或 .env.deploy 配置,通过 docker/k3d/k3d-up.sh 拉起的 k3d 集群(或部署场景下的真实集群)创建租户与 Agent 记录,再由 builder 把 Agent 记录转换成 Kubernetes 资源:每个运行中的 Agent 对应一个 Pod,从被固定版本的基础镜像启动。Agent 通过运行时插件把会话与工具调用事件推送给 8001 端口上的 ingest API,UI 只读取已持久化的数据;Web Chat 与 Email 走 8002 端口的 communications 网关,Agent Pod 通过 http://host.docker.internal:8002/communications/v1 领取并完成投递。技能挂载对应文档到 Agent 工作区,并以所需凭据为门槛,未附加凭据的技能不会自动装配;Agent 还会访问自托管的 Firecrawl 做网页检索。模型请求经 LiteLLM 代理转发到 OpenRouter,每 Agent 一个虚拟密钥,用于 token 与花费归集。身份与权限侧提供注册、登录、logout、httpOnly Cookie 中的 access/refresh token 与密码重置;组织使用固定角色,Agent 访问另有独立角色与分配;平台管理端提供用户与组织管理、平台统计以及 Event Delivery Monitor。领域事件通过事务性 outbox、Dramatiq worker 与安全审计投影处理;同时可查询每个 Agent 的对话历史与工具调用审计日志。

  1. 已在用 Kubernetes 的平台团队:希望把部门里的编码助手、值班助手统一放到自己的命名空间,而不是让同事再开一个 SaaS 账号。
  2. 有合规或数据驻留要求的公司:要求模型调用、对话记录、凭据全部留在自有 PostgreSQL 与自有网络内,只允许经自建 LiteLLM 访问 OpenRouter。
  3. 需要按项目核算 AI 成本的财务或工程负责人:想知道每个 Agent、每个组织消耗了多少 token 和费用,而不是只看到一张月账单。
  4. 想给工程团队配“PR Reviewer”“Documentation Agent”“Jira Task Helper”这类固定角色的研发效能团队,直接从内置模板起一个 Agent 即可。
  5. 在多语言团队里需要把自然语言请求转成结构化 Jira 任务、或把合并后的 PR 自动写入 Confluence 并推送 Slack 周报的协作团队。
  6. 希望验证与对比 OpenClaw、Hermes 两套运行时的团队:两者共用同一套通信协议,可以按 Agent 选择运行时与命令审批模式。

如何安装或部署这个 Agent?

需要 Git、Docker with Compose v2、bash、kubectl、OpenSSL、curl,以及一个 OpenRouter API 密钥;Python 与 Node.js 仅用于 native dev-* 目标、测试与 lint。

先克隆仓库并生成本地配置:

git clone https://github.com/aai-labs/agent-barn.git
cd agent-barn
cp .env.spec .env

生成两个密钥(AGENT_TOKEN_ENCRYPTION_KEY 用于加密静态凭据,LITELLM_MASTER_KEY 必须保持稳定,LiteLLM 用它加密所存虚拟密钥):

openssl rand -base64 32 | tr '+/' '-_'
echo "sk-$(openssl rand -hex 16)"

在 .env 里填写 POSTGRES_USER / POSTGRES_PASSWORD / POSTGRES_DB / POSTGRES_PORT、SECRET_SIGNING_KEY、PLATFORM_ADMIN_CREDENTIALS(格式 email:password,密码需 8 位以上且含大小写字母与数字)、AGENT_TOKEN_ENCRYPTION_KEY、OPENROUTER_API_KEY、LITELLM_MASTER_KEY、AGENT_LITELLM_BASE_URL=http://host.docker.internal:7070,以及 OPENCLAW_IMAGE / HERMES_IMAGE 的完整 name:tag(tag 必须与 openclaw-base/VERSION、hermes-base/VERSION 对应)。

随后启动整套本地栈(首次会构建两套基础镜像,耗时较长):

./run.sh

部署到 Kubernetes 需要 ingress 控制器、cert-manager ClusterIssuer、StorageClass,以及本机上的 kubectl、Helm 3、Helmfile 0.171.0 与 helm-diff 插件:

cp .env.deploy.spec .env.deploy
# 替换所有示例镜像 tag,并填入 registry、密码、主机名与密钥
./deploy.sh

如何使用这个 Agent?

启动后先在浏览器打开 UI 并用 PLATFORM_ADMIN_CREDENTIALS 登录,确认 API 与集群就绪:

curl -s localhost:8000/api/v1/health
# {"status":"ok","db":"connected"}
export KUBECONFIG=.k3d/kubeconfig-host.yaml
kubectl get nodes
kubectl get ns agent-farm

Agent 是按组织隔离的,全新数据库里没有组织,所以要先建组织,再从模板(PR Reviewer、Documentation Agent、Email Reminder、Jira Task Helper、Scrum Master、General Purpose)里选一个,指定模型,附加技能所需的凭据,然后启动它。接入 Slack、Teams、Telegram 或 Discord 属于单个 Agent 的 Communication Connection,UI 会逐步带你完成各平台设置(Slack 应用需按生成的 manifest 手工创建)。

想用程序化方式调用时,在账户设置里创建 Personal API Key,然后访问现有的用户认证 /api/v1 路由:

curl -H 'Authorization: Bearer <your-personal-api-key>' \
  https://your-host/api/v1/openapi.json

如需本地模拟开发,可改用 native 路径(先 make setup,再 make db-up、make migrate,然后按需运行 make dev-api / dev-ui / dev-worker 等),注意要把 .env 中的 DB_CONNECTION_URL 填对,并设置 LITELLM_BASE_URL=http://127.0.0.1:7070,否则 Agent 看似创建成功却无法应答。

这个 Agent 有哪些优点和局限?

优点
  • 端到端自托管:控制面、PostgreSQL、LiteLLM 代理与每个 Agent 的 Pod 都跑在你自己命名空间,凭据在自有 PostgreSQL 中加密存放,只经你运营的 LiteLLM 出站。
  • 按 Agent 计量:每个 Agent 在 LiteLLM 上拥有独立虚拟密钥,可做 token 与花费归集,而不是只看到整月一张账单。
  • 多租户从数据层做起:组织使用固定权限角色,Agent 另有独立访问角色与分配,模板与技能支持按组织 fork 或覆盖,并可按 Agent 固定技能版本。
  • 交付形态覆盖常见协作工具:Slack、Microsoft Teams、Telegram、Discord,可同时拥有多个连接甚至同平台多个连接;Teams 连接可导出可安装的应用包。
  • Helm + Helmfile 的部署路径齐全:包含 app/LiteLLM/Firecrawl 各自的 PostgreSQL、Redis、Hindsight、namespace 级 Prometheus 与 Grafana,并提供 k3d 本地集群脚本。
  • 审计面完整:对话历史、工具调用日志、领域事件(事务性 outbox + Dramatiq worker)与安全审计投影,便于事后追查。
局限
  • 上手门槛高:需要 Git、Docker Compose v2、kubectl、OpenSSL、curl、OpenRouter 密钥,部署场景还要 ingress、cert-manager ClusterIssuer、StorageClass、Helmfile 0.171.0 与 helm-diff。
  • 强依赖 Kubernetes:Agent 以 Pod 形式运行,即使走 native 开发路径也必须先有加载好镜像的 k3d 集群,本地全栈无法并行跑两套(容器名、卷、端口共享)。
  • 模型出口目前绑定 OpenRouter:所有 Agent 的模型调用都经 LiteLLM 转发到 OpenRouter,需要外部 API 密钥并持续付费。
  • 本地资源视图依赖额外组件:未安装 Prometheus 时,Resource usage 页会提示资源用量未配置。
  • 部分能力带手工环节:Slack 应用需按生成 manifest 手工创建,Cloudflare Email Worker 的路由规则无法由 CI 配置,必须手动指向 Worker,且需开启 subaddressing 否则按 550 5.1.1 退信。
  • 默认会向 Agent Barn 的 PostHog(EU)上报业务事件,虽然只带随机 ID 与安装名称、不含提示词与消息内容,但要完全关闭需显式设置 ANALYTICS_ENABLED=false 并重新部署。

这个 Agent 与同类方案有什么区别?

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Agent Barn 当前 55 · 缺口较多 自托管服务免费 + 模型费 ★ 110 3 天前 Python —
Moltis 个人代理服务器 53 · 缺口较多 自托管服务免费 + 模型费 ★ 2.9k 今天 Rust Codex · Claude Code
n8n-claw 52 · 缺口较多 自托管服务免费 + 模型费 ★ 560 2 个月前 Shell ChatGPT · Claude Code · OpenAI API · Claude API
Second Brain 个人智能助理 37 · 缺口较多 命令行工具免费 + 模型费 ★ 670 24 天前 Python —

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
55/ 100 五分制 2.8 / 5
本评测基于 2026年10月14日 的源码;此后该项目发布了 2 个正式版本,尚未复审。分数与结论只代表评测时的版本。 最近版本 ↓
信任安全 13/29
可靠稳定 8/14
适用触发 10/18
规范维护 13/18
有效结果 7/13
证据核验 4/8
查看各维度的扣分理由
信任安全13 / 29 · 2.2/5

SECURITY.md 明确要求按最小权限部署:API pod 使用命名空间级身份、仅在本命名空间创建 agent 工作负载,并建议对凭据按任务最小化授权、使用每 agent 的频道白名单与 DM 策略,故 least_privilege 得 2。但 OpenClaw 运行时的命令审批被固定为 AUTO(README 明示),意味着 agent 执行命令无需人工确认,user_confirmation 仅得 1。数据流透明性较好:README 说明出站流量去向(OpenRouter/LiteLLM、工具 API、可选 PostHog 分析),凭据在自有 PostgreSQL 中静态加密,得 2。敏感数据处理有加密密钥与轮换即迁移的说明,但未给出数据保留/删除策略,得 2。依赖安全仅见 CI 使用 uv --frozen 与镜像 tag 固定,未见依赖扫描/SBOM/漏洞处置流程,得 1。外部影响方面,agent 可调用 GitHub/Jira/邮件等外部系统,但缺少默认的破坏性操作防护与审批,得 1。回滚方面仅提到 stop.sh 不删卷、LiteLLM master key 变更会破坏旧密钥,未见版本回滚或迁移回退流程,得 1。来源归属:LICENSE 含 AAI Labs UAB 版权,但未声明上游 OpenClaw/Hermes 的归属与许可,得 1。

可靠稳定8 / 14 · 2.9/5

自一致性较好:README 的端口表、run.sh 流程、CI 工作流与测试配置相互吻合,且明确提示 namespace 名为 agent-farm 而非 agent-barn 的历史原因,得 2。依赖可用性偏弱:依赖 OpenRouter、LiteLLM、k3d、Hindsight 等外部组件,且 README 自述 create_agent 在 LITELLM_BASE_URL 为空时会静默跳过密钥铸造,得 1。失败信息较充分:run.sh 缺值即失败并列出缺失项,健康检查端点、troubleshooting 指引、密码策略失败提示均存在,得 2。

适用触发10 / 18 · 2.8/5

受众与场景清晰:面向自托管 Kubernetes 的团队,列出六类种子 agent 模板与 Slack/Teams/Telegram/Discord 场景,得 2。能力边界有说明:技能受凭据门控、部分技能不自动挂载、Excel 无需凭据等,得 2。触发精度较弱:agent 由频道消息/邮箱/定时心跳触发,但仓库未给出触发条件与去重/限流的明确规则,得 1。环境适配良好:给出 Docker Compose 本地栈、k3d、原生开发、Helm/Helmfile 生产部署及端口/主机名解析细节,得 2。

规范维护13 / 18 · 3.6/5

信息架构优秀:README 有目录、分节、折叠细节与仓库布局说明,得 3。安装说明详尽:前置软件、凭据、端口、六步快速开始、密钥生成命令与验证步骤齐全,得 3。命名稳定性一般:项目已从 agent-barn 更名但 Kubernetes namespace 仍为 agent-farm,且镜像 tag 必须与 VERSION 文件手工同步,得 2。示例与 FAQ 偏薄:仅有模板列表与外部 recipes 链接,仓库内缺少可运行示例与 FAQ,得 1。已知限制有记录:OpenClaw 审批固定 AUTO、部分技能不自动挂载、LiteLLM key 不可变更、内存网关需 Hindsight 等,得 2。许可证完整:Apache-2.0 全文与版权行齐备,得 3。版本与变更日志薄弱:SECURITY.md 提到 vX.Y.Z 标签与 1.0 前支持窗口短,但仓库内无 CHANGELOG,得 1。维护责任较清晰:SECURITY.md 给出报告渠道、响应时限与 operator responsibilities,但发布者身份未经验证,得 2。

有效结果7 / 13 · 2.7/5

输出可用性尚可:提供 UI、API、审计日志、成本归因与事件轨迹,但缺少输出格式与集成方式的示例,得 2。边际价值明确:自托管、多租户、按 agent 成本归因与审计相对通用聊天机器人有差异化,得 2。成本收益证据不足:仅声称按 agent 归因 token 与花费,未给出资源占用、规模上限或对比数据,得 1。

证据核验4 / 8 · 2.5/5

主张可追溯性中等:README 大量主张指向仓库内 docs/ 路径与具体文件,但本次仅提供 README、LICENSE、SECURITY.md 与两个工作流,无法核对多数引用,得 2。跨源印证有限:CI 工作流与 conftest 印证了测试与 k3d 集成存在,但无法印证功能主张,得 1。事实与推断分离一般:README 混用营销式表述与具体技术细节,未标注哪些为已验证,得 1。

风险与缓解建议
  • OpenClaw 运行时的命令审批固定为 AUTO,agent 执行命令无需人工确认;在生产环境使用前应确认该默认值是否符合你的风险承受度。
  • README 自述当 LITELLM_BASE_URL 为空时 create_agent 会静默跳过密钥铸造,agent 看似创建成功却无法应答;部署时务必显式设置该变量并验证。
  • LITELLM_MASTER_KEY 一旦变更会使既有虚拟密钥失效,属于不可逆操作;请将其视为迁移而非普通配置轮换。
  • 仓库内未见依赖扫描、SBOM 或漏洞处置流程,也未提供 CHANGELOG;发布者身份未经验证,升级与安全响应路径需自行评估。
  • 模型流量经 LiteLLM 转发至 OpenRouter 离开你的网络,且可选 PostHog 分析默认可能开启;请按 SECURITY.md 建议限制密钥额度并确认分析开关状态。
证据充分度:低 评估于 2026年10月14日 审查版本 9ffaf06ddff8 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v0.19.2
    发布说明摘录
    What's Changed * fix(k8s): grant the Hindsight key hook read access to its hashes Secret by @kalibetre in https://github.com/aai-labs/agent-barn/pull/311 Full Changelog: https://github.com/aai-labs/agent-barn/compare/v0.19.1...v0.19.2
    在 GitHub 查看 ↗
  2. v0.19.1
    发布说明摘录
    What's Changed * fix(teams): keep one Teams app per bot across re-created Connections by @kalibetre in https://github.com/aai-labs/agent-barn/pull/310 Full Changelog: https://github.com/aai-labs/agent-barn/compare/v0.19.0...v0.19.1
    在 GitHub 查看 ↗
  3. v0.19.0
    发布说明摘录
    What's Changed * Bump Hermes and OpenClaw base versions by @kalibetre in https://github.com/aai-labs/agent-barn/pull/246 * onboard third domain and wire it by @dominykas-aai-labs in https://github.com/aai-labs/agent-barn/pull/248 * Promot staging to prod with changes on onboard third domain for cloud by @kalibetre in https://github.com/aai-labs/agent-barn/pull/249 * Allow organization owners and admins to rename organizations by @tadas-subonis in https://github.com/aai-labs/agent-barn/pull/254 …
    在 GitHub 查看 ↗

常见问题

软件本身要钱吗?成本花在哪里?
仓库以 Apache-2.0 发布,安装与自托管不收费。你需要自备 OpenRouter API 密钥,模型调用按量计费;每个 Agent 在 LiteLLM 上有独立虚拟密钥,因此可以按 Agent、按组织查看 token 与花费归集。基础设施成本由你运行的 Kubernetes 集群和 PostgreSQL、Redis 等组件产生。
它会上报我们的数据吗?
默认 ANALYTICS_ENABLED=true 时,安装会向 Agent Barn 的 PostHog(EU)项目发送业务事件,例如 Agent 的创建/启动/删除、组织变更、成员加入、用户登录或接受邀请,以及每个 Agent 每小时收发消息数。事件只带随机的用户/组织/Agent ID 与安装名称,不含 Agent 或组织名、提示词、消息内容、对话、凭据、变更值、邮箱或全名,用户以 UUID 标识,属于假名化统计。把 .env.deploy 里的 ANALYTICS_ENABLED 设为 false 并重新部署即可关闭。
Agent 创建后却始终不回答,通常是什么原因?
常见原因是 .env 中 AGENT_LITELLM_BASE_URL 没有指向 http://host.docker.internal:<litellm port>,回环地址会被解析到 Pod 自身;该值会作为 LITELLM_PROXY_TARGET 交给 Pod,供其中的 :8090 代理使用。其次是 LITELLM_MASTER_KEY 被改动——LiteLLM 用它加密已存储的虚拟密钥,改成新值会让旧 Agent 全部失效。若对话与工具调用为空,则检查 ingest(8001,默认 INGEST_BASE_URL=http://host.docker.internal:8001/ingest/v1)是否可达,Pod 以各自的 INGEST_API_KEY 认证。
内置的模板和技能可以直接改成我们自己的吗?
可以。模板是内容不是代码,由 settings.yaml 加 Markdown 产物构成,随仓库以种子形式在启动时引导平台谱系一次,之后新版本经平台管理流程编写,组织可以按 Agent fork 或覆盖,Agent 还会固定所使用的技能版本。技能是否自动装配取决于其所需凭据是否已附加;Excel、Google Drive、HubSpot、OpenPanel、PostHog 目前属于可附加但不自动装配,其中 Excel 无需凭据。
它支持哪些对话渠道?能同时接多个吗?
支持 Slack、Microsoft Teams、Telegram 和 Discord,也提供 Web Chat 与 Email(后者经由 8002 端口的 communications 网关和 Cloudflare Email Worker)。一个 Agent 可以拥有多个连接,甚至在同一平台上有多个连接。Slack 应用需按生成的 manifest 手工创建,Teams 连接可导出可安装的应用包。
在 GitHub 查看 ↗ 安装 ↓

相关 Agents