AgentBox 市场部署(历史)
已移除的 AgentBox 容器表面,保留给任何调试旧版本的人使用。
OpenHuman 曾为 GMI Cloud 的 AgentBox 市场交付过一个容器端面。它已从 openhuman-core中移除。一个回归测试, agentbox_run_and_jobs_paths_are_no_longer_public 在 crates/openhuman-rpc/src/server/auth_tests.rs,检查 /run 和 /jobs/{job_id} 已不再存在。
OPENHUMAN_AGENTBOX_MODE 在 crates/openhuman-core/src中已没有读取方。Dockerfile 和 .env.example 仍然提到了它,而这些提法已经过时。如果你今天需要在 AgentBox 上运行 OpenHuman,请询问负责 GMI Cloud 部署的团队,那个端面现在位于何处。
本页其余部分描述的是旧端面的工作方式。仅当你在调试仍保留它的较旧构建时才阅读。
容器契约
使用 OPENHUMAN_AGENTBOX_MODE=1时,核心 HTTP 服务器公开了三个路由:
POST /run接受任务并返回202 { "job_id": "<uuid>" }。正文为{ "payload": { "message": "<string>", "thread_id": "<optional string>" } }.GET /jobs/{job_id}返回{ "status": "pending|running|completed|failed", "result": ..., "error": ... }.GET /health是一个存活检查。
/run 和 /jobs/* 在容器边界处是未认证的。AgentBox 的边缘层在流量到达容器之前处理了认证。
在 AgentBox 控制台中注册
该控制台有一个四步向导。
基本信息。 将其命名为
OpenHuman并添加描述。基础设施。 选择 Docker 镜像来源、计算规格和区域。打开“GMI MaaS”开关,以便平台注入
GMI_MAAS_BASE_URL和GMI_MAAS_API_KEY,在运行时。环境变量。 设置这些:
OPENHUMAN_AGENTBOX_MODE=1OPENHUMAN_AGENTBOX_JOB_TIMEOUT_SECS(可选,默认 600)GMI_MODELS,市场已批准的模型 ID,例如deepseek-ai/DeepSeek-V4-ProOPENHUMAN_WORKSPACE,一个可写的容器路径,例如/home/openhuman/.openhumanRUST_LOG=info(首次部署时使用debug)
审查并注册。 确认,然后从控制台面板进行测试。
平台 API 密钥只会显示一次,在注册确认页面上。请立即将其保存到你的密钥管理器中。控制台无法再次显示它。
推送镜像
从 main 构建,使用现有的 Dockerfile 并推送到你的镜像仓库:
首次部署需要 10 到 25 分钟才能到达 运行中。后续部署会更快。
长时间运行的请求
AgentBox 将超过 2 分钟的请求视为长时间运行,因此 OpenHuman 使用轮询。代理在一个工作任务内运行,由 OPENHUMAN_AGENTBOX_JOB_TIMEOUT_SECS (默认 10 分钟)限制。没有流式传输。
轮询客户端应:
发送
POST /run并保持job_id.调用
GET /jobs/{job_id}每 1 到 3 秒一次。当
状态是已完成或失败.
完成的作业会保留一小时,然后被垃圾回收。轮询与读取之间的长时间暂停可能会返回 404.
本地冒烟测试
故障排查
404 作业未找到在成功提交后:一小时保留窗口已过,或者容器已重启。作业存储仅在内存中。status: "failed"替换为error: "agentbox: agent runtime bridge not wired":你使用的是在运行时桥接接入之前的构建版本。请从当前版本重新构建main.status: "failed"替换为error: "job timeout after Ns":代理运行时间超过了OPENHUMAN_AGENTBOX_JOB_TIMEOUT_SECS。请在下次部署时提高它。[agentbox::gmi] not registering GMI MaaS provider: missing/blank: GMI_MAAS_API_KEY:平台没有注入密钥。请检查向导第 2 步中的 MaaS 开关。[agentbox::gmi] current-thread runtime detected, skipping provider registration:核心是在单线程 tokio 运行时中启动的。请使用标准的serve子命令,它会启动多线程运行时。
最后更新于