关于 antrieb
antrieb 是面向 LLM 生成网络与基础设施配置的远程 MCP 服务,可在真实虚拟机组成的临时集群中执行和验证代码。它支持多节点与自定义网络拓扑,并可将配置好的镜像或操作步骤保存为可复用资产。
主要功能
- 01创建临时多节点虚拟机集群
- 02配置多网络和多网卡拓扑
- 03在节点上执行命令并验证结果
- 04保存镜像或可执行操作手册
- 05搜索镜像、操作手册和活动集群
适用场景
- 01在隔离集群中验证防火墙或路由配置
- 02测试面向多节点的基础设施脚本
- 03搭建网络拓扑并检查节点间通信
- 04保存已验证的多节点部署流程
MCP 相关
这是远程 MCP 服务,通过 provision、exec、save、search 和 delete 工具,让客户端创建和操作临时 VM 集群,并管理镜像、操作手册及集群。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://antrieb.sh/mcpclaude mcp add --transport http sh-antrieb-antrieb https://antrieb.sh/mcp{"mcpServers":{"sh-antrieb-antrieb":{"type":"http","url":"https://antrieb.sh/mcp"}}}在 Cursor 中打开{"servers":{"sh-antrieb-antrieb":{"type":"http","url":"https://antrieb.sh/mcp"}}}在 VS Code 中打开{"mcpServers":{"sh-antrieb-antrieb":{"type":"http","url":"https://antrieb.sh/mcp"}}}{"mcpServers":{"sh-antrieb-antrieb":{"serverUrl":"https://antrieb.sh/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
Antrieb MCP 服务
为 LLM 生成的网络和基础设施提供即用即弃集群。
假设 LLM 编写了 VyOS NAT 配置、OpenWrt 防火墙规则集,或用于加固 CentOS 集群的 bash 脚本。在它影响你的环境之前,你要在哪里运行它?Antrieb 为 LLM 提供一个即用即弃的多节点集群,包含真实的 VM 和真实的网络,让它试运行生成的内容。弄坏了,就快速重新配置,再试一次。无需清理。
与你的 LLM 生成代码在生产环境中将要针对的 OS 和设备完全相同:CentOS Stream、Ubuntu、Debian、Alma、Alpine、VyOS、OPNsense、SONiC、OpenWrt。支持为每个 NIC 单独分配的多网络拓扑。不是容器,不是微型 VM,也不是未知的 Linux——与你真实设备群运行的内核和软件包完全相同。
Root 访问权限、专用网络、节点间无密码 SSH。每个集群可使用十分钟。每次都是全新环境。即用即弃的集群,让 LLM 犯错的成本大幅降低。
快速开始
Antrieb 是一个远程 MCP 服务。无需安装任何内容,只需将其添加到配置中并开始配置资源。
Claude 网页版 / ChatGPT
使用基于 Web 的 AI 客户端时,可将 Antrieb 添加为自定义连接器。
在 claude.ai 中:前往 Settings → Connectors,点击 Add custom connector。输入:
- 名称:
Antrieb - URL:
https://antrieb.sh/mcp
点击 Add,然后点击 Connect 并登录。返回聊天页面,试试这样的请求:
创建一个包含 3 个节点的 Kubernetes 集群,让 node1 同时作为控制平面和工作节点运行,让 node2/node3 仅作为工作节点。安装 nginx,并运行 3 个 pod,设置 pod 反亲和性。
操作演示视频:https://youtu.be/8nts8ol-yeA
MCP 客户端(Claude Desktop、Claude Code、Codex、自定义客户端)
在 antrieb.sh/dash 获取免费的 API 密钥,然后将以下内容添加到 MCP 客户端配置中(例如 Claude Desktop 的 .mcp.json):
Claude Code
将此 JSON 放在当前文件夹中名为 .mcp.json 的文件里。Claude Code 会自动找到它。
{
"mcpServers": {
"antrieb": {
"type": "http",
"url": "https://antrieb.sh/mcp",
"headers": {
"Authorization": "Bearer ant_YOUR_API_KEY"
}
}
}
}
Codex
将此 TOML 内容放入 ./.codex/config.toml。然后在启动 Codex 前,设置包含 API 密钥的 ANTRIEB_TOKEN 环境变量。
[mcp_servers.antrieb]
url = "https://antrieb.sh/mcp"
bearer_token_env_var = "ANTRIEB_TOKEN"
无需本地安装,无需依赖项,无需 Docker。
工作原理
LLM 通过 5 个工具控制真实的 VM:
1. provision → Spin up a cluster (sub-second per VM, declare custom networks and NICs)
2. exec → Run commands on any node (cluster-scoped env vars auto-injected)
3. save → Snapshot a node as an image, or save a runbook
4. search → Discover images, runbooks, or active clusters
5. delete → Destroy a cluster, or decommission a saved artifact
LLM 驱动整个工作流:配置集群,逐条命令安装软件,验证每个步骤,并反复调整直至运行正常。Antrieb 提供基础设施;LLM 提供智能。
工作流示例
You: provision 3 ubuntu nodes and install nginx on all nodes
LLM: provision(cluster: ["ubuntu24.04 x3"])
→ { session_id: "abc12", nodes: ["node1", "node2", "node3"], provision_time_ms: 720 }
LLM: exec(session_id: "abc12", node: "node1", command: "apt-get update && apt-get install -y nginx")
→ { exit_code: 0, stdout: "..." }
LLM: exec(session_id: "abc12", node: "node1", command: "systemctl start nginx && curl -s localhost")
→ { exit_code: 0, stdout: "<html>Welcome to nginx...</html>" }
LLM: save(type: "image", session_id: "abc12", node: "node1", name: "my-nginx", commands: [...])
→ { ani: "antrieb:my-nginx:v1" }
LLM: delete(type: "cluster", name: "abc12")
→ { success: true }
可用镜像
基础镜像
| ANI | 描述 |
|---|---|
ubuntu24.04 | Ubuntu 24.04 LTS:apt、bash、Python 3、curl、wget、jq |
almalinux9 | AlmaLinux 9(兼容 RHEL):dnf、bash、Python 3 |
centos-stream10 | CentOS Stream 10:dnf、bash、Python 3 |
debian13 | Debian 13:apt、bash、Python 3、curl、wget、jq |
alpine | Alpine Linux 3.23:apk、精简系统、musl libc |
sonic | SONiC:用于数据中心交换机的开源网络 OS |
vyos | VyOS:基于 Linux 的路由器 / 防火墙,采用统一 CLI |
openwrt | OpenWrt 25.12:基于 Linux 的固件,使用 UCI 配置 |
opnsense | OPNsense:基于 FreeBSD 的防火墙 / 路由器,带 Web UI |
堆栈镜像
堆栈镜像是通过在基础镜像中添加额外软件包创建的自定义镜像。
| ANI | 描述 |
|---|---|
terraform-aws | Terraform,搭配真实 AWS(免费套餐、Antrieb 的凭据、由 Vault 代理的 STS) |
ansible-controller | 带有集合的 Ansible 控制节点 |
podman | Podman、Buildah、Skopeo(无根运行,兼容 Docker API) |
mongodb | MongoDB 服务端镜像,用于数据库预配和集成测试 |
postgresql | PostgreSQL 服务端镜像,用于 SQL 数据库测试 |
vault | HashiCorp Vault 镜像,用于密钥工作流和由 Terraform 支持的凭据 |
mariadb | MariaDB 服务端镜像,用于兼容 MySQL 的数据库测试 |
nginx | NGINX 镜像,用于 Web 服务端和反向代理场景 |
helm-k3s | K3s 搭配 Helm,用于轻量级 Kubernetes 场景 |
asterisk-pbx | Asterisk PBX 镜像,用于 SIP 和电话通信场景 |
使用 search 发现所有可用镜像及其完整描述,或者只指定发行版名称,由 Antrieb 选择合适的镜像。
集群网络
网络是 provision 的首要输入,而非事后考虑的事项。每个集群都与其他所有集群(包括你拥有的集群)实现 L2 隔离,同时具备主机名解析、自身节点间的免密 SSH,以及自动注入每次 exec 调用的集群范围环境变量。每次运行中 有所不同 的是节点的连接和控制方式,这由 provision 的可选参数 networks 和 nics 决定。
共有两种模式:默认网络(扁平的单子网、可访问互联网)和 声明式网络(一等公民级的多子网、多 NIC 拓扑)。
每个集群(两种模式均适用)
- **主机名解析:**每个节点的
/etc/hosts中都有node1、node2、node3。 - **免密 SSH:**为每个集群生成 ed25519 密钥对并分发给所有节点。
ssh node2 hostname可直接使用。 - **L2 隔离:**不同集群中的节点无法互相访问,不受 CIDR 重叠或账户影响。
- 每次
exec调用均提供环境变量:NODE_NAME、NODE_INDEX、NODE_IP、CLUSTER_HOSTS(多行IP NAME,可直接用于/etc/hosts)、CLUSTER_SSH_PUBKEY、CLUSTER_SSH_PRIVKEY。
LLM: exec(node: "node1", command: "ssh node2 hostname")
→ { stdout: "node2" }
默认网络(省略 networks / nics 时)
LLM: provision(cluster: ["ubuntu24.04 x3"])
你将获得:
- 一个自动分配的
/24网络,名称为default,每个节点配有一个 NIC,IP 由 DHCP 分配。 - 可通过网络出口访问互联网,采用精选的端口允许列表(HTTP、HTTPS、DNS、SSH、包管理器)。任意出站流量都会被阻止。
- 无需路由器 VM、无需防火墙区域,也无需配置拓扑。节点之间以及节点与外部世界之间均可通信。
如果你要测试的不是 网络,请使用此模式——例如应用层工作、特定发行版配置、Ansible playbook、CI 流水线,以及在三台 Ubuntu 上运行 Kubernetes。
已声明的网络(多网络、多网卡)
当拓扑本身就是测试对象时,传入 networks 和 nics:例如路由器、防火墙、DMZ、隔离的后端子网、双宿主节点和 BGP 网状网络。
LLM: provision(
cluster: ["vyos", "ubuntu24.04", "ubuntu24.04"],
networks: [
{ name: "wan", egress: true },
{ name: "lan", cidr: "10.10.1.0/24", egress: false }
],
nics: {
node1: [{ net: "wan" }, { net: "lan" }], // vyos: dual-homed router
node2: [{ net: "lan" }], // ubuntu backend
node3: [{ net: "lan" }] // ubuntu backend
}
)
约定:
- 每个已声明的网络都是独立的 L2 网段,拥有自己的 DHCP 服务和
/24网段。未指定时会自动分配 CIDR;仅支持/24。 egress: true— 可通过默认端口允许列表访问互联网。egress: false— 流量仅在网络内部传输;没有默认出站路由。dhcp: true(默认值)— 平台分配 IP。dhcp: false— 由你分配 IP(路由器 VM 管理地址分配或需要精确的 /31 链路时使用)。- 网卡顺序很重要。
nics.<node>中的每个条目会按列出的顺序成为eth0、eth1等网卡。 - 每个启用 DHCP 的网络中的
.1都保留给平台桥接网关。 路由器 VM 应使用.254(或通过 DHCP 客户端获取)— 将.1分配给 VM 会导致 ARP 地址来回切换。
这让你能够开展复杂的网络工作:配置带有 WAN/LAN 区域的 VyOS / OPNsense 防火墙、将 SONiC 用作 L2 交换机或 L3 路由器、使用其 fw3 区域模型配置 OpenWrt、在反向代理 LAN 后部署 nginx、通过 /31 传输链路建立 BGP 对等关系、配置 NAT 回环和 DNAT 端口转发。每种模式的完整操作指南都收录在 @antrieb/* runbook 库中。
可复用的拓扑应保存为 runbook。网络在 provision 期间内联声明;如果同一拓扑适用于多个场景,请将拓扑、命令和验证步骤一并保存为 runbook。
网络实验示例
默认的 antrieb/* runbook 库包含经过验证的场景,例如:
- VyOS: 基于区域的 DMZ 防火墙、DNAT 端口转发、DHCP/DNS 转发、DHCP 中继、双 WAN 故障切换、基于策略的路由、eBGP、OSPF、VRRP、WireGuard、IPsec、VLAN 中继、QoS 流量整形。
- SONiC: L2 桥接、L3 路由、VLAN 分段、带策略的 VLAN 间路由、使用 FRR 的 BGP、OSPF、DHCP 中继、LAG、SPAN 镜像、VXLAN L2 扩展。
- OPNsense: DNAT 端口转发、三区域 DMZ、WireGuard 远程接入、使用 HAProxy 的 HTTPS 负载均衡。
- OpenWrt: 家用路由器 NAT、访客区域隔离、端口转发、dnsmasq 静态 DHCP 和本地 DNS 覆盖。
- 服务拓扑: nginx 反向代理、由 Ansible 管理的 nginx 后端,以及使用 HAProxy 的负载均衡和故障切换演练。
Runbook 是可执行的验证方案:包含拓扑、命令、预期的数据包行为,以及使用 tcpdump、路由表、conntrack、BGP/OSPF 状态、DHCP 跟踪、VPN 握手和故障切换测试等工具进行的验证步骤。
Runbook
Runbook 用于保存复杂的多节点场景,也会记录一些小而关键、可能不值得专门写成博客的注意事项。它们是采用特定结构、可供大模型执行的 Markdown 文档:
## Topology required— 适用的集群结构(镜像、网络、网卡)## Variables— 如<LAN_SUBNET>这样的占位符,调用方在应用时替换## Steps— 编号步骤;说明性文字解释原因,围栏 shell 代码块是实际命令,每个代码块都标明目标节点## Verify— 如何确认成功
使用 save(type: "runbook", session_id: "...", name: "...", body: "...markdown...") 保存。session_id 必须指向一个其 exec 历史记录能证明该 runbook 的会话。使用 search(type: "runbook", fq_name: "namespace/name") 获取正文。
Runbook 与镜像相辅相成:镜像记录已安装状态(预先打包到 qcow2 中的软件包和配置)。Runbook 记录工作流(按顺序执行的多节点操作,用于生成可用系统)。对于任何涉及多个节点的内容,优先使用 runbook,因为单个镜像无法表达 VM 之间的协同操作。
所有保存的内容都位于你组织的命名空间中;antrieb/* 命名空间包含只读默认内容。
自定义镜像
将任何已配置的节点保存为可重复使用的镜像:
- 配置基础镜像
- 通过
exec安装并配置软件 - 使用成功执行的命令列表调用
save(type: "image", ...) - Antrieb 会生成
build-image.sh、startup.sh和说明 - 该镜像可立即用于后续的
provision调用
立即试用
无需 MCP 客户端。使用你的 API 密钥和 curl:
# 1. Provision a single Ubuntu node
curl -s -X POST https://antrieb.sh/mcp \
-H "Authorization: Bearer ant_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"provision","arguments":{"cluster":["ubuntu24.04"]}}}'
→ { "session_id": "abc12...", "nodes": ["node1"], "provision_time_ms": 680 }
# 2. Run a command on the node
curl -s -X POST https://antrieb.sh/mcp \
-H "Authorization: Bearer ant_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"exec","arguments":{"session_id":"abc12...","node":"node1","command":"cat /etc/os-release | head -3"}}}'
→ { "node": "node1", "exit_code": 0, "stdout": "PRETTY_NAME=\"Ubuntu 24.04 LTS\"\nNAME=\"Ubuntu\"\nVERSION_ID=\"24.04\"" }
# 3. Tear it down
curl -s -X POST https://antrieb.sh/mcp \
-H "Authorization: Bearer ant_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"delete","arguments":{"type":"cluster","name":"abc12..."}}}'
将
ant_YOUR_KEY替换为你的 API 密钥,并将abc12...替换为步骤 1 中的session_id。
常见问题
为什么选择 Antrieb?
AI 正进入运营的各个层面:云端、本地部署、旧系统、安全、网络和边缘环境。错误配置云服务器会带来很多麻烦。在现场错误配置一万台边缘设备则是灾难性的。
Antrieb 是大模型与运维之间的验证层。在 AI 生成的基础设施代码接触你的环境之前,它必须先在真实、可销毁的环境中证明自己;该环境需要足够贴近目标架构,以暴露运维故障。相同的操作系统、相同的软件包、相同的行为。不是容器,也不是近似模拟。Antrieb 是一个可审计的验证场所,用于验证 AI 生成的运维变更。
为什么集群只有 10 分钟?
10 分钟的 TTL 主要不是为了限制计算资源。集群可以快速重新创建。设置 TTL 是为了让验证可复现,并防止大模型积累意外状态。
不要保留实验环境,要保留经验。
- **状态漂移:**大模型不能依赖遗留文件、部分修复或先前尝试留下的隐藏变更。每个解决方案都必须从干净状态开始运行。
- **可复现性:**如果某个解决方案无法在全新集群上复现,就不算成功。
- **认知漂移:**长期运行的集群会让大模型过度依赖最初的计划。环境仍然存在且保留了部分进展时,它可能会不断修补错误的方法。严格的 TTL 会强制设置检查点:大模型必须总结所学内容,丢弃意外状态,选择更简洁的命令序列,并从头复现结果。
- **防止滥用:**TTL 还能防止扫描、机器人活动、挖矿或托管等长期运行的滥用行为。
为什么集群不可变?
集群的架构在配置时就已固定:镜像、节点数量、网络和 NIC 分配。如果大模型需要不同的拓扑结构,应使用更合适的设计配置新集群。
这样可以防止架构漂移。如果没有不可变性,大模型就可能不断添加节点、网络、路由和例外情况,直到实验环境不再符合原本要验证的系统。结果可能“能用”,但只是因为环境围绕错误做法不断演变。
不可变性迫使拓扑结构成为明确的假设:
- 选择架构。
- 配置架构。
- 测试实现。
- 如果架构有误,就丢弃它并配置一个更简洁的架构。
这样一来,验证目标就清晰、可重复,也值得保存为运行手册。
免费吗?
是的。前往 antrieb.sh/dash 获取免费 API 密钥。
每台 VM 的资源规格是什么?
大多数 Linux 基础镜像和堆栈镜像配备 4 个 vCPU、2 GB 内存和 20 GB 磁盘。网络设备和较小的边缘镜像可能有所不同;search(type: "image") 会返回当前规格和完整的镜像说明。
一个集群最多可以有多少个节点?
每个集群最多 4 个节点。如果拓扑结构需要专用的控制器节点(例如管理一组设备的 Ansible 控制节点),则允许额外增加 1 个节点,最多为 5 个。
我可以同时运行多少个集群?
每个账户最多可同时运行 2 个集群。
节点可以访问互联网吗?
是的,默认情况下可以访问。默认网络上的每个节点都能直接访问互联网,不过出于安全原因,只有特定端口允许访问。包管理器、curl、pip、npm:都可以正常使用。如果你声明了带有 egress: false 的显式网络,该网络上的节点就会与互联网完全隔离。
集群会运行多久?
经过身份验证的集群有 10 分钟的硬性 TTL。之后,集群将被彻底销毁:计算资源、网络,一切都会被清除。TTL 无法延长。如果你再次获得与之前会话相同的 IP 地址,该虚拟机也是全新的。
聊天会话结束后,集群会怎样?
集群会一直运行,直到你删除它或 TTL 到期。之后,IP 地址可能会被重新分配给后续的虚拟机。你的命令会单独记录,并可在控制面板中查看。
虚拟机真的会自动销毁吗?我会不会遇到不干净的节点?
是的,虚拟机完全是临时的。会话虚拟机不会在不同会话间重复使用。会话结束或 TTL 到期后,虚拟机就会被销毁。你创建的每个节点都是全新的。
谁能看到在我的虚拟机上运行的命令?
只有你。其他任何人都无法访问你的命令历史记录。
我的大模型会不会意外在命令日志中暴露敏感数据?
请勿在命令中包含机密或凭据等敏感数据。你可以通过控制面板访问命令日志,请妥善处理其中的内容。
我的虚拟机与其他用户的虚拟机隔离吗?
是的。同一集群中的节点可以互相访问,但节点无法访问其他集群中的节点,包括你自己的其他集群。你可以这样验证:告诉你的大模型:*"创建两个各包含一个节点的集群,获取每个节点的 IP,然后分别通过 SSH 登录并尝试 ping 另一个节点。"*你会看到 ping 失败。
我可以不通过大模型,亲自 SSH 登录节点吗?
不可以。所有交互都通过大模型进行。告诉它你想做什么,它就会帮你完成。一切都通过对话进行。
会记录哪些数据?你们会存储我的命令吗?
会。所有命令都会记录,并可在你的控制面板中查看:antrieb.sh/dash。
哪些客户端可以使用?
Claude.ai、ChatGPT Web、Claude Desktop、Cursor、Windsurf 和 Claude Code。如果你的客户端支持通过 HTTP 使用远程 MCP 服务,就应该可以使用。
它支持 Claude 以外的模型吗?
支持。Antrieb 只是一个 MCP 服务;智能完全来自你的大模型。它适用于你的 MCP 客户端支持的任何模型。
保存的镜像需要多久才能就绪?
我们的目标是 2 分钟,最长为 5 分钟。Runbook 会立即保存——它们是元数据,而不是 qcow2 镜像。
自定义镜像和 Runbook 是私有的吗?
是的,默认情况下为私有。若要在团队内共享,请前往 antrieb.sh/dash 上的个人资料页面,为你的组织设置命名空间。之后,你保存的所有内容都只能由你组织的成员访问。
Antrieb 如何防止滥用?
- 命令记录和 AI 监控。 每个节点上执行的每条命令都会被记录。我们使用 AI 严厉检测并防止滥用行为,包括加密货币挖矿、DDoS、垃圾信息和未经授权的扫描。
- 集群限制。 每位用户最多同时运行 2 个集群。每个集群最多包含 4 个节点。
- 集群间隔离。 同一集群中的节点可以互相通信。不同集群中的节点无法通信,即使它们属于同一个账户也是如此。
- 出站端口允许列表。 默认网络的出站流量仅限于经过筛选的一组端口(HTTP、HTTPS、DNS、SSH、包管理器)。任意出站连接都会被阻止。使用
egress: false声明的网络完全没有出站通道。
这与 E2B、Morph 有何不同? 与 E2B 相比: E2B 非常适合代码执行沙箱。它针对运行代码进行了优化,而非基础设施。你获得的是单个沙箱,而不是集群,并且其环境在操作系统层面与你的环境并不一致。如果你要测试基础设施(Ansible playbook、systemd 行为、SELinux 策略、网络),就需要真正的操作系统和软件包。
与 Morph Cloud 相比: Morph 为你的 Agent 提供开发环境。Morph 的 devbox 非常适合构建和迭代软件的编码 Agent。Antrieb 则用于基础设施工作,此时与实际发行版保持一致至关重要:Ubuntu、AlmaLinux、Alpine、Arch、SONiC,与你实际运行的操作系统相同,而不是经过定制的 devbox。
这与直接使用 Docker 容器或 GitHub Codespaces 有什么不同?
Docker 容器共享主机内核,因此无法在容器中可靠地测试 SELinux 策略、内核模块、systemd 行为或特定发行版的软件包问题。Antrieb 为你的大模型提供真正的虚拟机,运行与你的环境中实际使用的操作系统完全相同的版本。
除了 Linux 发行版之外,许多网络设备和基础设施平台(SONiC、Cisco IOS-XE、Palo Alto、F5、Juniper)只提供虚拟机镜像,或仅有限支持容器。即使存在容器版本,它几乎总是真实产品的子集:缺少功能、API 不同、行为不完整。追踪各厂商的容器版本实际支持哪些功能,本身就会成为一个问题。使用虚拟机,你可以运行真实的设备镜像,获得完整保真度。
Codespaces 是为人类打造的。你打开浏览器或编辑器,点击操作并输入内容。Antrieb 则专为大模型验证工作成果而打造。你的大模型会配置集群、运行命令、读取输出并不断迭代,全程在同一段对话中通过工具调用完成。这就像是给大模型一张截图让它点击操作,与提供直接 API 之间的区别。
工具参考
provision
启动虚拟机集群。返回会话句柄、节点名称、TTL 和配置所用时间。节点会获得私有 IP、/etc/hosts 条目,以及用于免密 SSH 的共享 ed25519 密钥对。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
cluster | array | 是 | 虚拟机拓扑。每个条目可以是简写字符串("ubuntu24.04" = 1 台虚拟机,"ubuntu24.04 x3" = 3 台虚拟机),也可以是对象 {image, count?}。 |
networks | array | 否 | 集群级私有网络。每个网络可以是 {name, cidr?, egress?, dhcp?},也可以是引用已保存配置的字符串 @namespace/name。默认:一个名为 default 且具有 NAT 出口的网络。 |
nics | object | 否 | 按节点名称指定各节点的 NIC 分配,例如 { "node1": [{"net":"lan"}] }。默认:每个节点在第一个网络上分配一个 NIC。 |
返回 session_id、nodes、provision_time_ms、ttl_seconds、expires_at。
exec
在指定节点上运行 shell 命令。返回标准输出、标准错误和退出代码。每条命令都可以访问集群环境变量(NODE_NAME、NODE_INDEX、NODE_IP、CLUSTER_HOSTS、CLUSTER_SSH_PUBKEY、CLUSTER_SSH_PRIVKEY),以便在节点间进行协作。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
session_id | string | 是 | 来自 provision |
node | string | 是 | 节点名称(例如 "node1") |
command | string | 是 | 要执行的 shell 命令原文 |
save
持久化一个制品。已保存的制品位于你所在组织的命名空间中,并可立即用于后续的 provision / search 调用。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
type | string | 否 | "image"(默认值)或 "runbook" |
name | string | 是 | 仅包含小写字母和连字符的标识符(镜像会变为 antrieb:<name>:v1,运维手册会变为 @<namespace>/<name>) |
description | string | 否 | 用于搜索的简短描述(强烈建议为运维手册填写——这是大模型在浏览模式下看到的内容) |
session_id | string | 若 type=image 或 type=runbook 则必填 | 对于镜像,这是包含要创建快照的节点的会话。对于运维手册,这是其执行历史能够演示该场景的会话。 |
node | string | 若 type=image 则必填 | 要保存的节点 |
commands | array | 若 type=image 则必填 | 在节点上成功执行的命令列表,按执行顺序排列 |
body | string | 若 type=runbook 则必填 | Markdown 文档(结构请参阅运维手册) |
search
浏览目录,或获取特定运维手册。提供两种模式:浏览(使用关键词或不提供参数 → 元数据列表)和获取(type=runbook,fq_name=namespace/name → 返回单篇运维手册及其完整正文;应用前必须先获取)。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
type | string | 否 | "image"(默认值)、"cluster" 或 "runbook" |
keywords | string | 否 | 按名称、描述和 fq_name 进行全文筛选 |
fq_name | string | 否 | 按完整限定名称获取特定运维手册,并返回其完整 Markdown 正文。对镜像和集群无效。 |
limit | number | 否 | 最大结果数(默认值为 20,最大值为 100) |
delete
销毁集群或停用已保存的制品。antrieb/* 默认项不可删除。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
type | string | 是 | "cluster"、"image" 或 "runbook" |
name | string | 是 | 对于集群,填写 session_id;其他情况填写短名称或 namespace/short fq_name |
许可证
Apache 2.0
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。