面向观察的编程:我如何围绕*观察*而非*执行*组织终端AI智能体集群
摘要
一位开发者详细介绍了观察导向编程(OOP),这是一种围绕观察可观测性数据而非任务执行来组织终端AI智能体群体的范式。该系统使用tmux、cron、bash和仅追加日志文件,智能体充当观察者,关联信号并仅在解释后才能具体化行动。
抱歉又发了一篇,但请帮我理解这为什么说不通!大多数智能体框架都是任务导向的:定义一个目标,智能体分解、执行、返回。我构建的生产监控集群基于一个反转的基元——观察——而这彻底改变了系统的组织方式。称之为OOP:面向观察的编程。核心规则:1. 每个参与者首先是观察者。每个智能体(称为"心智")驻留在一个tmux窗格中,拥有一个观察轴——不是功能,而是轴:一个监控交付指标,一个对照容量图监控基础设施规模,一个监控CI和PR生命周期,一个监控管理面板的健康状态。窗口布局就是组织图:上部窗格 = 该轴的实时视图(原始指标、日志、看板),下部窗格 = 解释它的心智。2. 共享世界是一个仅追加的观察流。一个文本总线。[alert] 行来自确定性栈(Grafana计算阈值——LLM从不判断"这是否异常"),[note] 行记录智能体看到或做的任何事情,[interpretation] 行记录因果故事。除非被观察到总线上,否则任何东西都不存在——包括任务所有权:锁只是一个[claim]行,崩溃恢复是通过bash重新读取观察数据,而不是靠数据库。3. 行动是物化的解释。流程是严格的:观察 → 跨轴关联 → 发布解释("这个p99峰值位于某人的e2e套件的15分钟网格上,这是实体日志指纹")→ 然后才物化:一张工单、一个PR、一行对人类的请求。智能体从不根据原始信号行动。4. 观察者会遗忘,但观察本身不会。空闲的心智在完成任务几分钟后上下文被清除。任何值得保留的东西都必须写回可观察的世界——总线、看板、PR。健忘作为设计约束,迫使每个工作单元以可读的产物结束。5. 人类只是最具特权的观察者。我tail -f智能体读取的同一个总线,在同一个窗格中输入,并持有唯一能改变生产环境的关键。昨天,这个系统将一个"DNS似乎不稳定"的告警追溯到一个内核conntrack溢出,让我批准了一个sysctl,验证了恢复,并写下了事后分析——因为三个不同的观察者各自贡献了单一观察者无法看到的画面中的一个轴。技术栈(好奇者参考):tmux + cron + bash + 仅追加日志文件。心智是任何适合窗格的终端LLM智能体——有些跑Claude,有些跑Codex,有些跑opencode。没有框架。
相似文章
@ericzakariasson: https://x.com/ericzakariasson/status/2070493377267646797
一份实用指南,介绍如何为AI编码代理设置迭代循环,包括定义的停止条件、云端执行和通知渠道,以便卸载工作而无需持续监控。
@ericzakariasson:编排一个 Agent 集群 这是该集群的可视化展示,以及它如何使用多个规划器、验证器和……
一款名为"orchestrate"的工具,允许用户通过插件命令运行由多个规划器、验证器和工作节点组成的 AI 智能体集群。
@eng_khairallah1: https://x.com/eng_khairallah1/status/2066437136354545981
关于如何使用300个AI智能体群在Obsidian中构建一个自动运行的第二大脑的综合指南,它可以在夜间将原始笔记和文章处理成有序的知识,无需依赖云端。
因为失控的 agent 浪费几百美元 API 额度,基本上已经成为一种入门仪式了。这是我的经历。
我现在开始觉得这是一种共同经历了。我认识的所有构建 agentic AI 的人,git 历史深处都藏着同样的悄悄话:那个让 agent 无人看管跑了一整个周末的经历、周一收到的账单、试图弄清楚它到底做了什么的取证工作。我的经历是两天内花了 400 多美元。我的 agent 对着同一个研究任务换着法子自言自语了 48 小时,结果什么都没产出。感觉就像被一个非常有礼貌的 Phi
如何不再手动协调多个AI代理,让它们直接对话
作者描述了手动协调多个AI编程代理的繁琐过程,并介绍了Accord Agents——一个开源共享工作空间,使代理能够讨论并相互审查工作成果,同时整个过程对人工保持透明。