2026年7月14日 2 分钟阅读

AI 编码 Agent 跑起来了但完全看不见?Hiver 用沙箱 + DevTools 让你全程回放每步操作

tinyash 0 条评论

问题:Agent 是个黑盒子

用 Claude Code 重构了一个模块,它成功了——但你完全不知道它经历了什么。它访问了哪些文件?调用了什么 API?中间输出了什么命令?为什么某个步骤花了 30 秒?日志里只有 final commit message,过程一片空白。

随着 Agent 从单次任务走向生产级工作流,这个问题越来越严重。调试 Agent 行为、审计安全合规、复现失败场景——这些都要求 Agent 不仅”能做”,还要”能看见”。传统的 console.logstrace 在 Agent 场景下远远不够。

Hiver 就是为这个痛点设计的:一个开源的 Agent 运行时沙箱,带 DevTools 风格的可视化 Inspector。它让每个 Agent 运行在隔离环境中,全程记录文件操作、网络请求、命令输出和 LLM 对话,并且可以通过一个类似 Chrome DevTools 的 UI 来回放和分析。

项目地址:github.com/hiver-sh/hiver | 安装:npm i -g @hiver.sh/cli(Apache 2.0 许可证)

架构:运行时 + 观察器

Hiver 分成两个核心部分:

运行时(Runtime)

运行时负责把 Agent 启动在一个隔离的沙箱里。沙箱拥有独立的文件系统、网络策略和 ACL(访问控制列表)。每个文件读写、网络请求、命令执行都被运行时拦截,生成结构化的审计事件。

隔离方式有两种:

  • 容器隔离(默认):基于 runc,启动快、开销低,适合开发和信任的镜像
  • MicroVM 隔离:基于 Firecracker,硬件虚拟化级别,每个沙箱拥有独立内核,适合运行完全不可信的代码

无论哪种隔离级别,底层的审计事件流和 API 接口完全相同。

观察器(Inspector)

Inspector 是 Hiver 的亮点。通过一个命令 hiver inspect 启动,它会打开一个实时的 DevTools 风格 UI,展示沙箱内部的一切活动:

  • Timeline(时间线):Agent 每一步操作的时间瀑布图,包含每个请求的耗时
  • LLM 对话:自动解码 Agent 的模型流量,显示为 system/user/assistant 消息格式,无需在 Agent 侧埋点
  • 网络请求:每个出站请求的目标、路径、允许/拒绝裁决,TLS 加密被透明解密,你看到的是真实的请求内容而非 CONNECT 隧道
  • 文件操作:Agent 的所有读写操作,包括本地文件、Google Drive、GCS、S3 等后端
  • 命令执行:Agent 运行的每条命令及其输出
  • 浏览器画面:实时查看 Agent 的浏览器会话画面
  • 配置编辑:实时修改沙箱的网络和文件系统策略,立刻观察 Agent 的反应

快速上手

安装 CLI:

npm install --global @hiver.sh/cli

启动本地服务并创建一个沙箱:

hiver up

hiver start my-agent --image claude

Hiver 内置了多个预配置镜像:

镜像名用途
claudeClaude Code 预安装
codexOpenAI Codex 预安装
copilotGitHub Copilot CLI 预安装
browserChromium 浏览器,供 Agent 做网页导航
nodeNode.js 运行时
pythonPython 3.13 运行时

启动后打开 Inspector:

hiver inspect my-agent

浏览器中就会打开一个 DevTools 风格的仪表盘,实时展示 Agent 的运行状态。

实战:SDK 集成

Hiver 提供 TypeScript、Python 和 Go 的客户端 SDK。下面是一个用 TypeScript 驱动 Agent SDK 服务的例子。

首先创建项目配置 .hiver.json

{
  "image": "my-agent",
  "egress": [
    {
      "access": "allow",
      "host": "api.anthropic.com",
      "override": {
        "headers": {
          "x-api-key": "sk-ant-..."
        }
      }
    },
    {
      "access": "deny",
      "host": "*"
    }
  ]
}

然后在代码中启动沙箱并驱动 Agent:

import { getOrCreateSandbox } from "@hiver.sh/client";

const sandbox = await getOrCreateSandbox("coding-agent", {
  image: "claude"
});

const res = await fetch(`${sandbox.proxyUrl(3000)}/chat`, {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({
    prompt: "创建一个 Fibonacci 生成器并运行测试"
  })
});

console.log(await res.json());

事件流:Agent 的”黑匣子”

每个沙箱会生成一个结构化的、可回放的事件流。你可以从 CLI 实时查看:

hiver events my-agent --follow

更有意思的是,你可以把事件流管道到 LLM 做自然语言分析:

hiver events claude-code-agent \
  | jq -c 'select(.type | IN("exec.request", "egress.request", "fs.request"))' \
  | claude -p "这个 Agent 做了什么?"

这是 Hiver 最实用的功能之一——每当 Agent 运行异常时,你不需要重跑整个流程,只需要回放事件流就能定位问题。

安全设计:凭据永不进入沙箱

Hiver 的设计原则之一是”沙箱内不可信”。凭据通过 override 机制从外部注入,Agent 进程永远看不到原始的 API Key。在上面的 .hiver.json 示例中,x-api-key 由 Hiver 的代理(sbxproxy)在请求出站时动态添加,沙箱内的任何进程都无法读取这个值。

文件访问也受 ACL 控制——你可以精确控制每个路径的读写权限:

{
  "files": [
    { "path": "/workspace", "access": "read-write" },
    { "path": "/etc", "access": "read-only" },
    { "path": "/secrets", "access": "deny" }
  ]
}

适用场景

  • Agent 行为调试:Agent 生成了预期之外的结果,回放事件流找到问题在哪一步
  • 安全审计:确认 Agent 没有访问不该访问的文件或 API
  • 性能分析:Timeline 视图显示每个步骤的耗时,发现瓶颈
  • 合规记录:完整的事件流可导出为审计日志
  • 团队协作:共享沙箱,团队成员可以连接到正在运行的 Agent 观察执行过程

结语

Hiver 解决的痛点是所有从”跑通 Demo”走向”生产部署”的 Agent 开发者都会遇到的。Agent 不再是一个”输入 prompt → 得到结果”的黑盒子,而是每一步都可观察、可回放、可审计的透明系统。

目前 Hiver 处于活跃开发阶段(npm 包 v0.1.34),本地运行时和 Inspector 已经可用。对于正在把 AI 编码 Agent 引入工作流的团队,Hiver 提供了一个非常及时的基础设施。

相关链接

  • GitHub:https://github.com/hiver-sh/hiver
  • 官方文档:https://hiver.sh/docs
  • npm 包:https://www.npmjs.com/package/@hiver.sh/cli
  • 示例仓库:https://github.com/hiver-sh/examples
  • Hiver vs 替代方案:https://hiver.sh/docs/resources/hiver-vs-alternatives

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。