跳转到内容
use-cases / tail-your-agent-on-the-train / hero
PIPE · TAIL · 通知

在火车上 tail 你的 agent,落地时收到推送

你下班前启动了一个四十分钟的 agent。现在你在火车上。agent 把 trace 流到一条管道路径;你在手机上 curl 同一个 URL,看着状态信息一行行飘过。当循环结束,hoody-notifications 给你震动。两个 URL 加一次震动——无 SDK、无仪表盘、无轮询。

阅读 Pipe API
use-cases / tail-your-agent-on-the-train / surfaces

一部手机,两个表面

上面是实时 tail,下面是推送——同一部手机,同一个 agent。trace 是你瞄一眼的运行独白;推送是结束句号。你不必选择只接哪一个:两者都来自 agent,两者都落到你口袋里那部已经存在的设备上。

01 · 实时 TAIL

trace 一字一字落下

agent 的循环用 PUT 把每条事件发到一条路径。在火车上,你在终端 app 里 GET 同一条路径。事件发生时即落地——无五秒刷新、无"上次更新"时间戳。瞄一眼屏幕,确认 agent 还活着,把手机收起来。

[think] plan: dump → diff → write[tool_use] sql.exec("SELECT …")[result] 412 rows · 88 ms
02 · 推送

在去下一站的路上震动

外层循环结束时,agent 的最后一次调用打到 hoody-notifications,带一行总结。你的手机震动。你不必解锁——读一下横幅就知道,在到下一站之前这次跑已经完成了。

AGENT · billing-reconcile-7对账完成 · 412 行 · 0 个错误用时 41:08 · 08:55

Hoody Pipe 承载实时 tail;hoody-notifications 承载那次震动。agent 把它们当作普通的 HTTP 调用——一个 PUT 和一个 POST,中间没有 SDK。

use-cases / tail-your-agent-on-the-train / wire

agent 发出三次调用。你的笔记本一次都不用。

你出门前在服务器上把 agent 跑起来。在路上,手机是这条链路里唯一的客户端。agent 干所有的活;手机做所有的看。

agent.loop · pipe + notify
01 · AGENT把每一步 PUT 到一条管道路径

在循环里,每一次事件——think、tool_use、result——都被 pipe 到一条路径。管道流给读它的人;如果还没人在读,这条路径会保持打开最多五分钟。

PUT https://agent-pipe.…hoody.com/api/v1/pipe/agent-trace
02 · 手机在火车上 GET 同一条路径

在手机上打开终端。curl -N 这条路径。trace 落地即打印——无 SSE 管道、无 broker、无需安装 app。不想看了就关标签页。

$ curl -N https://agent-pipe.…hoody.com/api/v1/pipe/agent-trace
03 · 通知agent 的最后一步是 POST 到 /notify

外层循环返回时,agent POST 一行总结到 hoody-notifications。你的手机从那里收到系统推送——和日历提醒一样的震动,无需任何 app。

POST /notify ["summary":"billing-reconcile-7","body":"completed in 41:08"]

两条 HTTP 路径,加上承载震动的第三条。agent 不知道你的手机存在;它只是说 HTTP。手机不知道 agent 的容器;它只是打开一个 URL。

use-cases / tail-your-agent-on-the-train / anatomy

瞄一眼的解剖

你不会逐字读。你扫三个 token:一个想法、一次调用、一个结果。它们在动,说明 agent 还活着。它们停了,你就在下一次推送里看时间。

01 · 蓝色

[think] — 模型在计划什么

agent 为什么挑这个工具、它期待回什么、它可能在哪里分支。在火车上读这些,就是实时读 agent 的脑子——每条推理一行。

[think] reconcile invoices for jul
02 · 中性

[tool_use] — 它刚发出的调用

agent 决定调用的精确函数和参数。每次调用一行,按发出顺序排列。无 SDK 抽象、无不透明 ID——就是线路级别的请求。

[tool_use] sql.exec("SELECT …")
03 · 绿色

[result] — 返回了什么,以及那次震动

行数、耗时、状态码——下一条 [think] 会拿来推理的东西。当外层循环完成,最终结果落到线上,hoody-notifications 给你口袋里的手机震动。

[result] 412 rows · 88 ms
use-cases / tail-your-agent-on-the-train / punchline

你的手机就是 agent 的状态栏。

无仪表盘。无 app。无下发到设备的 SDK。agent 在服务器上跑,状态在你手机上,中间只有 HTTP。你可以换车、换运营商、丢两站信号——重新连上后,下一行 [result] 接着打印。

  • 无仪表盘
  • 无 app
  • 无轮询
  • 只有 HTTP
阅读 Pipe API
use-cases / tail-your-agent-on-the-train / replaces

这取代了什么

看一个长跑的 agent,过去意味着一份 SaaS、一个仪表盘标签页或一份自定义 webhook + bot。在"我直接用手机 curl 它呢?"的拷问下,这些都没活下来。

  • AgentOps / LangSmith 仪表盘为读自己日志多套一层 SaaS
  • 面向 agent 的 Datadog APM为服务设计的,套到循环上别扭
  • 自定义 agent webhook写一次,debug 一辈子的胶水
  • Pushover 告警多一个账号、多一个 API key
  • Telegram 状态机器人每个项目一个 bot · token 总过期
  • 每 5 秒轮询 /status你自己造的延迟 · 你自己烧的电池
use-cases / tail-your-agent-on-the-train / cta

把 trace 管道出去,把震动 POST 出去。你的手机就是 agent 的状态栏——无需 app。

阅读 Pipe API
use-cases / tail-your-agent-on-the-train / related

阅读其他内容