Launch HN: HyperProbe (YC S26) – 在生产环境中进行只读调试的智能体
摘要
HyperProbe 是一个由 YC 支持的 AI 值班智能体,通过放置只读虚拟断点来捕获精确的变量状态,从而自动处理生产环境事件,无需重新部署即可将根因定位时间从数小时缩短到数分钟。
<p>大家好,HN,我们是 Shailendra 和 Karan。我们正在构建一种快速且安全的方式,让编码智能体能够在生产环境中实时调试问题。</p><p>当生产环境出问题时,它能让 Cursor、Claude 等工具在你的运行代码中安全地放置虚拟断点或探针,并提取日志中没有的精确变量值。</p><p>这一切为工程师节省了时间和精力,否则他们需要翻查日志和链路追踪,或者通过 console.log 或 print 语句重新部署,直到找到根本原因。</p><p>这是解释此功能的视频链接: <a href="https://www.youtube.com/watch?v=ivV7I--ta5c" rel="nofollow">https://www.youtube.com/watch?v=ivV7I--ta5c</a></p><p>现在大多数代码都是由智能体编写的。这减少了工程师调试 AI 编写代码所需的有用上下文,而 AI 在同一代码中添加的有限遥测也无助于解决这个问题。</p><p>因此,当生产环境出现问题时,工程师的第一反应是打开日志或把问题丢给智能体。但如果你要找的那行不在日志里,智能体就会开始根据不存在的数据猜测根本原因,迫使你添加日志并重新部署。</p><p>这种智能体基于现有数据进行分析推理的循环代价不菲,会消耗大量 token。而且添加日志、重新部署的循环既慢又痛苦,让工程师讨厌值班。</p><p>我们的方法让智能体能够在故障的确切时刻和位置按需捕获遥测数据,消除日志-重新部署循环,在消耗更少 token 的同时获得最准确的根因分析(RCA)。</p><p>显而易见的问题是如何让它在一个运行中的服务上工作。你不能像在笔记本电脑上暂停调试器那样暂停一个实时服务。安全地从运行中的进程中获取值,而不暂停线程或拖慢主机,这正是我们所面临的挑战。我们正在实现这一点。</p><p>在此之前,我曾领导一个 100 人团队的工程工作。后来 Karan 和我花了三年时间打造 HyperTest,那是一个测试工具。</p><p>在 HyperTest,我们使用 OpenTelemetry 将生产流量转化为集成测试。那也是一种生产环境插桩。在不破坏服务的情况下从运行中的服务提取真实运行时状态,这些难点正是我们学会解决的。</p><p>我们也以艰难的方式学到了其他教训。HyperTest 试图通过更好的测试来预防 bug,但每次推广都像一场战斗。电话总是被取消,因为团队都在忙于扑灭生产环境的大火。测试是卫生问题,而生产环境出故障则如同头发着火。这让我们看清了优先事项所在。</p><p>这催生了构建一个真正自主的值班智能体的想法,即接收到告警后,在几分钟内完成探测、诊断和修复。但目前的工作方式是:</p><p>你像平常一样与你的编码智能体对话。告诉它出了什么问题:“结账返回 200,但有些用户看到订单失败,找出原因。” 它会在你的本地代码中定位到那一行,通过 MCP 连接到我们,并在运行中的服务的那一行上放置一个探针。该探针是只读的,在真实流量到达之前一直处于休眠状态。当被命中时,它会在那一瞬间捕获调用栈每一帧的局部变量,并将它们交给智能体,智能体则用真实数据进行诊断。</p><p>这里有两个部分:一个在你的服务内部运行的 SDK,以及一个你的编码智能体与之通信的 MCP 服务器。SDK 使得无需重新部署即可设置探针(虚拟断点、日志或指标)成为可能。在 Node 和 Python 中,它在进程内进行钩挂;在 Java 中,它作为 JVM agent 附加,以字节码级别进行插桩。无论哪种方式,服务都持续运行并处理流量,一切都不会暂停。</p><p>当你的智能体想要查看某一行时,它会调用 MCP 服务器,MCP 服务器告诉 SDK 在那里放置一个探针。当请求到达这一行时,SDK 捕获探针所请求的内容,在进程内进行脱敏,并通过 MCP 将数据流式传回给智能体。</p><p>这可以在生产环境内部运行,因此探针可以读取该变量中的任何值。我们确保脱敏在进程内、在你自己的容器内存中完成。这发生在任何数据通过网络传输之前。诸如 password、token、authorization、ssn 和 credit card 等字段默认会被脱敏,你也可以添加自己的字段。</p><p>此外,探针只读从不写入,如果你希望捕获的状态永远不离开你的网络,你可以在自己的基础设施中自托管服务器、broker,甚至数据库。</p><p>关于开销:空闲时,SDK 增加的内存可忽略不计,对吞吐量和响应时间几乎没有影响。探针只在主动捕获时才会产生成本。此外,捕获是有界的。一个单独的监控器会实时监视,如果开销出现峰值,它会移除所有活动探针。</p><p>每个日志和追踪工具都会把现有数据交给智能体,并让它逆向推理可能发生了什么。我们认为,让智能体对运行中的代码拥有“眼睛”和“耳朵”更有用,这样它们就能在需要的时刻、在故障点上捕获所需的数据。</p><p>这似乎是调试生产环境故障最简单、最快的方式。</p><p>我们希望社区在任意环境中试试这个功能,只需与你的编码智能体聊天即可调试任何已知或未知的问题。并请告诉我们,你还需要哪些功能,才能让这成为真正自主的值班智能体。</p><p>支持的平台:NodeJs、Java、Python。</p>
查看缓存全文
缓存时间: 2026/08/05 16:54
# HyperProbe — 你的 24/7 AI 值班代理
来源:https://www.hyperprobe.co/
HyperProbe (https://www.hyperprobe.co/)Y
由 Y Combinator 支持 · AI 值班代理
02:47 AM · order-service · 847 次失败 / 10 分钟 · @priya 收到呼叫
已触发
## 你的工程师不是为了*值班*才加入公司的。
他们在作战室度过的每一小时,都是没有在构建产品的一小时。HyperProbe 替他们处理事件,在他们打开笔记本电脑之前,就已经从告警推进到确认根因。
Node.js · TypeScript · Java · Python · 兼容 Cursor、Claude Code、Codex、Opencode
01
### 你最优秀的工程师在值班,产品路线图却在滑步。
事件不只是搞垮生产环境,它们还会搞垮你的路线图。你最优秀的工程师变成了你的值班团队,每花一小时调试,就少一小时构建。
02
### 你“修复”了事件,却完全不知道原因。
热修复只是有根据的猜测。没人确认到底是什么导致了问题。如果下周出现同样的条件,同样的事件会再次触发。
03
### 修复只需 10 分钟,找到问题却要花几个小时。
事件每多持续一分钟,代价就多一分。修复只需要几分钟,但找到问题却要几小时,因为能解释失败的那个值,从来不会被记录。
解决方案
## 这个 AI 负责处理事件,你的工程师不必亲力亲为。
HyperProbe 让你的编码代理在生产环境出问题的确切代码行上放置一个只读探针。它能捕获你的日志没有的数据,无需重新部署或重启服务。
其他所有工具都是在你已有的数据上拼命推理。HyperProbe 捕获的是确凿证据。
3 到 4 小时 → <10 分钟 —— 定位根因时间
3 到 4 → 0 —— 每次事件的重新部署次数
2 到 3 → 0 —— 参与调查的高级工程师人数
“同步问题以前要花好几天才能本地复现。HyperProbe 第一次就抓住了生产环境中的静默数据不匹配。”
“在流量高峰期,我们的列表服务把失败完全黑盒化了。HyperProbe 让我们在流量尖峰时检查实时内存状态。我们在同一小时内就修复了竞态条件。”
Bhagwan Bansal
SDE,Housing.com
工作原理
## 事件触发时会发生什么。
01
告警
自动从 PagerDuty、Datadog 或 Slack 接收告警。
02
规划
读取日志和链路追踪,自动定位有问题的文件和代码行,并规划调试流程。
03
探针
日志不够用?在可疑代码行上放置一个只读虚拟断点。无需重新部署。
04
捕获
断点在实时流量上触发。捕获该代码行处的精确变量状态。
05
确认
根据真实证据验证诊断结果。交付已确认的 RCA。
什么是探针?
探针是运行中服务在特定代码行处的**只读、非阻塞的实时变量状态快照**。它会在真实流量上触发,捕获当时的精确值,捕获后即消失。你的服务永不暂停,对用户零影响。
#### 始终只读。
代理只捕获状态,不能写入内存或执行代码。每个探针都会记录在不可篡改的审计日志中。在你信任它之前,需要审批授权。
#### 运行在你的基础设施内部。
自托管或私有 VPC。任何数据都不会离开你的环境。PII 在捕获之前于代理端脱敏。你的安全团队定义哪些内容可以被观测。
#### 零线程暂停。
断点异步触发。请求以全速完成,用户毫无感知。在 3,000 RPS 下开销小于 1%。
我们覆盖的场景
## 有些故障永远不会呼叫你。
没有异常,没有告警。即使是最难找的问题,HyperProbe 也能出色应对。
#### 静默失败
返回 200 但响应内容错误。链路追踪全部绿色。那个值从未被记录。
#### 异常离真正原因很远
堆栈跟踪指向第 82 行。真正原因在第 18 行,或者在另一个文件里。
#### 行为错误,却没有任何异常抛出
异常被捕获并被吞掉。没有告警,没有报错,只是业务指标发生变化。
#### 竞态与重复处理
需要重叠发生那一刻的线程状态。没有任何日志会记录这个。
#### 第三方契约漂移
供应商新增了字段或状态值,你的解析器没有对应的处理分支。
#### 业务指标下降
支付失败、订单减少。堆栈中任何地方都没有异常。
本月上线:内存泄漏诊断 · OOM 根因 · CPU 尖峰隔离 · 延迟尖峰追踪
一次真实事件,从头到尾
## 从告警到根因,无需作战室。
这不是功能演示。这就是 HyperProbe 替你处理事件时实际发生的全过程。
02:47 AM
告警触发
### 订单状态错误率升高,23% 的请求失败。
PagerDuty 触发告警。GET /api/orders/{id}/status 对近四分之一的请求返回 500。最近 10 分钟有 847 次失败。日志中没有异常。
PagerDuty 告警
高错误率 · order-service GET /api/orders/{id}/status · 500 · 23% 错误率 847 次失败 / 10 分钟 · 超过阈值
02:48 AM
侦察
### HyperProbe 跟随链路追踪,发现上游一次静默写入失败。
HyperProbe 读取分布式链路追踪并跟随失败链路。订单服务正常。下游支付服务返回 404。支付在支付网关中存在,但在系统中不存在。
失败请求的链路追踪
GET /api/orders/{id}/status
500
└──
GET payment-service/api/getPaymentsByOrder/{orderId}
404
支付在支付网关中存在,在系统中却找不到。某次写入在上游某个位置静默失败了。
02:49 AM
探针放置
### HyperProbe 在 webhook 处理器上放置了一个虚拟断点。
HyperProbe 发现支付是在支付网关调用 webhook 时被记录的。在 /src/api/webhooks.ts 第 78 行的 webhook 处理器上放置了一个虚拟断点。无需重新部署,服务持续运行。
探针已激活
POST /api/webhooks/payments
文件:/src/api/webhooks.ts · 第 78 行
非阻塞 · 只读 · 无需重新部署
02:50 AM
发现 Bug
### 快照在 webhook 触发的精确时刻捕获了实时请求。
网关正在发送 PENDING。代码中没有处理这个状态的分支。幂等检查在确认状态之前就把支付标记为已处理。支付从未写入数据库。没有任何异常触发。
实时快照 · webhooks.ts:78 · 捕获于 02:50:14 UTC
status="PENDING" ← 支付网关发送了这个值,但没有任何处理器
duplicate=null ← 首次出现,通过了检查
db.insert → 从未被调用
redis.set → 仍然被调用,支付被永久锁定
支付网关开始发送 PENDING——你的代码从未处理过的状态。幂等键在状态被检查之前就已写入。支付被标记为已处理,却从未被记录。
02:52 AM
修复建议
### 根因已确认,修复方案就绪。距离告警仅 5 分钟。
支付网关开始发送 PENDING——你的代码从未处理过的状态。幂等键在状态被检查之前就已写入。支付被标记为已处理,却从未被记录。
前后对比
## 同一次事件,两种现实。
你最优秀的工程师不应该成为你的值班团队。HyperProbe 处理调查工作,让他们回去构建产品。
没有 HyperProbe
02:47 AM
告警触发,工程师被呼叫。
02:50 AM
堆栈跟踪指向第 82 行。但导致问题的变量是在上面几帧设置的,在另一个文件里。那里没有任何日志捕获它。
03:10 AM
定位到那一帧,但变量值不可见。添加一条日志来捕获它。
03:40 AM
CI/CD 部署。30 分钟过去了。等待条件在生产环境重现。
04:15 AM
第一条日志可见,数据不完整。不够。再加一条日志。又一个 30 分钟的部署周期。
05:20 AM
经过 2 到 3 次重新部署周期后,根因确认。耗时 2 小时 33 分钟。
有 HyperProbe
02:47 AM
告警触发,HyperProbe 接管。
02:48 AM
HyperProbe 使用你的编码代理定位探针应该放置的确切帧。全程在后台进行。
02:49 AM
HyperProbe 在那一行激活一个虚拟断点。无需重新部署。
02:53 AM
断点在下一个请求时安全触发,精确的变量值被捕获。服务持续运行。
02:56 AM
根因确认。从告警到有证据支撑的诊断,仅 9 分钟。
03:00 AM
工程师提交修复。
定价
## 按服务计费,绝不按工程师计费。
每个套餐的探针和捕获次数都不限。你不应该在事件处理中途撞上一堵墙。
免费版
$0
永久免费
1 个服务 · 托管云
当天下午即可安装 SDK 并看到一次真实捕获。
- 1 个服务
- 无限探针和捕获
- 通过单条代理提示即可安装
大多数团队
专业版
$99
每个服务每月
$79 按年计费 · 至少 3 个服务
适合运行真实生产流量、希望整个技术栈都被插桩而不只是一个服务的团队。
- 无限服务
- 30 天捕获历史
- 共享工作区和已保存的探针
立即试用 (https://docs.hyperprobe.co/quickstart)
企业版
自定义
年度合同 · 阶梯定价
适合安全审查必须先批准、之后才能接触生产环境的团队。
- 自托管或私有 VPC
- RBAC 和审批门禁
- 自定义 PII 脱敏规则
联系我们 (https://calendly.com/shailendra-hyperprobe/30min)
我们与你一起处理的第一个事件免费 · 可随时取消 · 无席位数量 · 无主机数量 · 无捕获限制
查看完整定价和各套餐内容 → (https://www.hyperprobe.co/pricing)
这就是为你而生的
## 你认得出下面这些场景。
如果你认不出,我们可能还不适合你。如果你认得出,那就聊聊吧。
### 你上一次在作战室里花了 2-3 小时,结果发现只是一行代码的修复,是什么时候?
如果你对那个夜晚记忆犹新,HyperProbe 就是为你而生的。你当时需要的数据从来就不在日志里。你 grep、猜测、重新部署、然后祈祷。事情不必非得这样。
### 你最优秀的工程师是你的值班团队,而不是你的产品团队。
生产环境出问题时,你最昂贵的人力被呼叫去做一件机器应该做的事。每一个值班的夜晚,都是他们心生不满的夜晚。而你最优秀的人,从来不缺选择。
### 同样的事件还会再次发生,因为没有任何东西确认过它第一次发生的原因。
没有失败时刻的精确变量状态,每一次修复都是猜测。猜测能撑住,直到撑不住。HyperProbe 确认根因,让修复是彻底的,而不是被推迟的。
开启 POC
## 让我们处理你技术栈中的一次*真实事件*。
30 分钟。你的服务。你的事件。通话结束前你会看到已确认的根因——否则就没有什么可谈的了。
Node.js · TypeScript · Java · Kotlin · 运行在你自己的基础设施中 · 15 分钟内启用
相似文章
Launch HN: Hoplite (YC S26) – 轻松部署云端编码智能体
Hoplite(YC S26)推出一个平台,用于部署云端编码智能体,可迁移本地设置,并支持跨用户流程、API 和 CLI 对功能进行并发 QA。创始人 Bence 和 Ryan 在 AWS、Temporal、Modal 和 Planetscale 上构建了自定义智能体框架,可通过代码 'HACKERNEWS' 获取免费额度。
Launch HN: Superlog (YC P26) – 自行安装并修复bug的可观测性工具
Superlog是一种自行安装的可观测性工具,可自动检测代码、分组错误,并使用AI代理调查和修复bug,旨在减少告警疲劳和手动设置。
Launch HN: Hyper (YC P26) – 公司大脑,驱动智能体开发
Hyper 是一个共享的公司大脑,它摄入内部数据(Slack、文档、电子邮件等),生成知识图谱,并采用事件与事实混合记忆系统,使 AI 智能体能够拥有更好的上下文,从而更有效地执行复杂任务。
Launch HN: Superset (YC P26) – 面向智能体时代的IDE
Superset 是一个开源IDE,用于并行编排多个基于CLI的AI编码智能体,具有隔离的git工作树、内置监控和差异查看器。它支持多种智能体,如Claude Code、Codex CLI和Gemini CLI。
Launch HN:Traceforce (YC S26) – 面向AI应用的全面企业安全监控
Traceforce 提供对所有设备上AI应用(如ChatGPT和Claude)的全公司可见性和控制,通过MCP发现使用情况和连接,并包含一个开源的MCP渗透测试工具。