目标
Beacon 为什么而做、不做什么、目标互相冲突时怎么取舍。每一处改动都应该服务其中一个目标;做计划时写明服务哪一个。
北极星
Beacon 是新时代 AI 基础设施中的一环:Agent 做运维的那一环。做它的人做这一类基础设施,为的是拿掉 AI 和 Agent 干活时碍事的东西,让它们用起来顺畅。别的环节(比如跨会话留存的记忆)是别的项目;Beacon 守住自己这一环。
落到 Beacon 上就是:运维由 Agent 经 Beacon 来做;人看得见、停得住,不用动手。
从两个角度读它:
- 覆盖:Agent 在机器上和告警上做的每一件事,有多少经过 Beacon。目标:全部,而且没有一把密钥在 Agent 手里。
- 闭环:严重告警里,有多少由 Agent 从被唤醒到验证恢复独立完成,没有人插手。目标:多数。
三条底线不拿来换上面任何一条:不丢告警、不漏凭据、没有一步不留记录。一项改动既不推进覆盖或闭环,也不守住底线,就先放着。
一句话
Beacon 是 AI Agent 做运维时最顺手的一套基础设施:看得见服务是否正常,够得着每一台机器,人和 Agent 连在同一个平台上;一切按 Agent 已有的习惯来用。
两条检验标准:
- 一个 Agent 第一次接入 Beacon,不读任何为 Beacon 写的说明,只用它本来就会的 ssh、shell、HTTP 和 MCP,就能查清一次真实故障、在机器上处理好,并让人看到它做了什么。
- Beacon 跑在哪里,那里 Agent 做的运维就全部经过它,人从来不需要把密钥交给 Agent。
要解决的问题
一个运维工程师需要眼睛(监控和告警)、手(登录机器、执行命令、改文件)、记录(做过什么,能查也能回放),以及和人的联系(被叫醒、汇报、让人看见)。Agent 需要同样四样,但有三点不同:它熟悉的是 ssh、shell、HTTP、MCP 这些通用工具,不是各家产品自己的界面;它不记事,每次会话从零开始;它也不会一直盯着屏幕,得有人叫它。Beacon 按 Agent 已有的习惯提供这四样,而不是另造一套让它去学。
为谁
- 用 AI Agent 管自己的机器和服务的人(Claude Code、Codex 这一类):从一个人带几个 Agent 管十几台机器,到一个小团队,自托管。
- 做 Beacon 的人自己先用:自己的运维先跑在上面,再给别人。
产品目标:三根支柱
| 目标 | 怎么算达成(数字是目标值) |
|---|---|
| 1. 看得见(监控):服务对用户是否正常,哪里坏了、为什么 | 严重故障 5 分钟内同时送到 Agent 和人;单个检测点的抖动不打扰任何人;每个失败都带检测点和原因;一次调用拿全证据 |
| 2. 够得着(SSH 通道):Agent 能到达每台登记过的机器,在上面做事 | ssh、scp、rsync、ssh -L 和 MCP 工具都能到达任何登记过的机器,包括 NAT 后面的;经通道的额外延迟在 50 ms 以内(实测每次新建连接约 23 ms);Agent 从不接触密码和密钥 |
| 3. 连得上(平台):人和 Agent 用同一个身份、同一条时间线 | 一个令牌通用 SSH、REST、MCP;一台机器登记一次,监控和 SSH 通道共用这个身份;一条时间线串起告警、会话、命令和备注;新告警能唤醒 Agent;人在飞书里看到 Agent 做的每件事,能回放,也能一键暂停 Agent |
设计目标
| 目标 | 怎么算达成 |
|---|---|
| 4. 贴近 Agent 习惯(设计目标里排第一) | 用标准协议:SSH、Prometheus 查询、HTTP 加 JSON、MCP;不自创配置语言。MCP 工具和 Agent 本地的工具同名同义:执行命令、读文件、改文件、搜索、后台任务。结果干净、结构化,不夹终端控制字符;长输出截断,并说明怎么取全文。错误码稳定,并说明怎么改正 |
| 5. 透明代替审批 | 每次会话都录制、可回放,每条命令都有结构化记录,保留至少六个月。不内置审批流程:审核是 Agent 的事,由它自己的工具链来做。Beacon 提供信息(比如哪些机器是核心机器)和给人用的暂停开关 |
| 6. 凭据不出 Beacon | 密码和密钥只存在 Beacon 里;连机器用几分钟有效的证书;令牌有作用域和有效期;密钥只从配置里写明的文件读取 |
| 7. 在 Beacon 里配置 | 目录、检测目标、检测模块和机器都存在 Beacon 的数据库里,经 API、MCP 和命令行修改,留有谁改了什么的历史;文件只用来导入和导出 |
| 8. 小 | 中心一台 2 核 4 GB 的机器绰绰有余;检测点和机器上的连接程序常驻内存在 20 MB 以内;30 分钟装好 |
| 9. 开放 | Apache-2.0;达成这些目标需要的一切都在本仓库里;不绑定模型、聊天工具或云厂商 |
| 10. 能托管而不分叉 | 只预留接口(工作区、存储接口、协议版本、计量),让托管部署始终可行;都不提前实现 |
不做什么
- **Beacon 不是 Agent,也不调用任何模型。**它唤醒 Agent,
linkos-oncall在被唤醒时启动你指定的 Agent 程序;推理和审核是 Agent 的事。Beacon 是它们干活的地方。 - **不做审批流程。**暂停开关和每台机器的访问范围是仅有的刹车。
- **不做日志平台、链路追踪、APM 和自定义面板。**Agent 要看日志,就经 SSH 通道直接读(journalctl 之类),这是它最熟悉的方式。
- **不自己写时序数据库。**存储和查询用 VictoriaMetrics。
- **不做远程桌面,也不做部署系统。**Flux 这类工具照常用,Beacon 接收它们的变更事件。
- **不写只有某一处部署才需要的代码。**一处部署特有的东西都是配置,放在本仓库之外。
什么叫落地
三条同时成立,项目就落地了(1.0):
- Beacon 跑着的地方:每条严重告警都唤醒 Agent;多数由它处理完,其余呼叫人;Agent 做的每次运维都经过 Beacon。
- 别处的一个团队:照 README 用参考部署 30 分钟装好,登记一个检测点、一台机器和自己已经在用的 Agent 程序(Claude Code、Codex 或别的),同一个闭环就在它自己的聊天工具里跑起来。
- 人有一个地方看:从聊天里的卡片点一个链接,就能打开告警的时间线、每次会话的回放和暂停开关;Beacon 不另做登录系统。
目标冲突时
先保证不丢告警、不泄露凭据,其次贴近 Agent 习惯,再次全程可见,然后是小,最后才是功能多。