a13nDocs

Envd

通过环境交互协议提供文件、命令、进程和端口操作的原生守护进程。

Envd(a13n-envd)通过 stdio、HTTP(S) 或向外建立的反向 WebSocket 连接提供环境交互协议(EIP)。

通过 Harness 环境 provider 连接 agent,也可以直接使用 Python EIP 客户端。

选择使用方式

使用场景从这里开始
使用 Harness UIHarness UI 执行权限
不连接模型,试用本地 EIP 环境Local Envd 示例
安装版本匹配的原生可执行文件安装
运行 agent 开发容器沙箱镜像
运维自己的守护进程或 EIP 传输配置与传输
排查访问问题或缺失的方法执行边界与故障排查
通过环境 provider 连接Remote Envd
实现 EIP 客户端或 providerPython EIP 客户端
管理会话、保留输出和结果不确定的操作会话与输出

提供的功能

  • 读取、写入、搜索和传输文件。
  • 运行命令、发送输入、读取输出和停止进程。
  • 检查端口并等待端口开放。
  • 可选:观测和控制共享桌面(电脑操作)。
  • 检查操作结果、取消工作和查看错误。
  • 查询不同平台与配置下可用的操作。

一个守护进程服务于一个设备(Device)和多个独立会话(Session)。每个会话分别管理自己的操作、进程、保留输出、传输和执行证据。工作目录是默认值,不是访问边界。彼此不信任的工作负载需要由宿主(Host)提供独立的外层边界;EIP 会话之间不相互隔离工作负载。

试用 Local Envd

仓库中的环境 provider 示例通过私有 Envd 设备执行文件操作,无需模型、云账号或服务器。在仓库根目录运行:

Terminal
cargo build --locked --package a13n-envd
cd examples/environment-provider
uv sync --locked
uv run environment-provider-example local_envd \
  --executable ../../target/debug/a13n-envd

示例创建自己的工作目录,通过 stdio 启动私有守护进程,为适配器创建一个会话,并验证关闭适配器后该目录仍然保留。随后由示例的 LocalEnvdProviderRuntime 关闭守护进程。接入 agent 时,通过 DynamicEnvironmentCapability 向 Harness 提供一个新建的 Local Envd 适配器;Harness 集成介绍了这条边界。Host 可以在多个适配器之间复用 LocalEnvdProviderRuntime,但每个适配器都会打开独立会话。

需要设置执行身份、Sandbox 目录授权、出站网络模式、可执行文件根目录、shell 配置或限制时,在运行时上配置 LocalEnvdLaunchConfiguration。Envd 管理会话 worker;Host 管理外层容器或虚拟机隔离。参见执行边界和会话凭据引用。

生命周期与归属

设备发现不会打开会话。会话准备会检查固定的 cwd、必需方法和就绪状态。单个适配器的取消或失败不能关闭健康的共享设备。参见守护进程生命周期。

参考主题

主题指南
构建匹配版本的二进制文件构建匹配版本的二进制文件
安装已发布的二进制文件安装已发布的二进制文件
隔离行为隔离行为
独立运行的最小配置独立运行的最小配置
启用命令启用命令
传输通道配置传输通道配置
在本仓库中验证在本仓库中验证
故障排查故障排查
参考资料参考资料

本页目录