更新时间:2026-07-08 gmt 08:00
http-j9九游会登录
介绍代理应用中 http 协议的实现要求,基于 http 搭建 rest api 接口以适配传统请求响应模式,同时部署 websocket 接口实现实时双向流式通信。
http(/invocations)和websocket(/ws)端点可部署在同一个容器中并使用8080端口,单个代理服务可同时兼容传统 api 交互与实时双向流式通信。
镜像要求
需满足以下容器化应用:
- host:0.0.0.0
- 端口:基于http代理通信的标准端口8080
- 系统:arm64 容器
路径要求
- /invocations - post
主要的代理交互端点,提供json输入和json/sse输出。
- 目的:接收来自用户或应用的请求,并通过代理业务逻辑进行处理。
- 使用场景
- 用户互动与对话
- 与外部系统的api集成
- 多请求的批量处理
- 长期运行操作的实时流响应
请求格式示例
content-type: application/json { "prompt": "what color do you like?" }响应格式
可以根据使用场景使用以下两种格式进行响应:
- json 响应(非流式)
目的:为请求提供完整的响应,适用于快速处理。
使用场景
- 简单的问答场景
- 确定性计算
- 快速数据查询
- 状态确认
json 响应格式示例
content-type: application/json { "response": "i like red" } - sse响应(流式传输)
服务器发送事件(sse)能够实时传递流式响应。
目的:支持增量响应交付,实现长期运营和提升用户体验。
使用场景
- 实时对话体验
- 渐进式内容生成
- 具有中间结果的长期计算
- 实时数据流与更新
sse响应格式示例
content-type: text/event-stream data: {"event": "response 1"} data: {"event": "response 2"} data: {"event": "response"}
- /ws - websocket(可选)
实现实时双向通信的主要websocket连接端点。
目的:接受websocket升级请求,并维护流代理交互的持久连接。
使用场景
- 实时对话接口
- 互动代理会话,提供即时反馈
- 双向通信的流式数据处理
连接建立
websocket 连接以 http 升级请求开始:
http升级请求示例
get /ws http/1.1 host: agent-endpoint connection: upgrade upgrade: websocket sec-websocket-version: 13 sec-websocket-key: 8zjk2cv7l9ax3pr5sq7tw2ey1bn4md6hg8jk0fs9da2= x-hw-agentarts-session-id: session-uuid
websocket升级响应示例
http/1.1 101 switching protocols connection: upgrade upgrade: websocket sec-websocket-accept: 8zjk2cv7l9ax3pr5sq7tw2ey1bn4md6hg8jk0fs9da2=
消息处理要求
- 连接接受:调用 await websocket.accept() 建立连接。
- 消息接收:支持基于应用需求的文本或二进制消息类型。
- 消息处理:根据代理的业务逻辑处理接收到的消息。
- 响应发送:发送适当的响应,使用 send_text() 或 send_bytes()。
- 连接生命周期:管理连接的建立、维护和终止。
消息格式
- json格式(推荐)
请求示例
{ "prompt": "what color do you like?" }响应示例
{ "response": "i like red" } - 纯文本格式
使用场景
- 多模态代理交互
- 文件上传与下载
- 压缩数据传输
- 二进制协议数
websocket协议过程
- 连接建立
- http 握手:客户端发送 websocket 升级请求
- 升级响应:代理接受并返回101交换协议
- websocket激活:双向通信开始
- 会话绑定:将连接与会话标识符关联
- 消息交换
- 连续循环:实现消息监听环路
- 消息处理:异步处理消息
- 响应生成:发送合适的回复
- 错误处理:管理异常和连接问题
- /ping - get
目的:验证代理是否已运行并准备好处理请求。
使用场景:服务监控以检测和修复问题。
响应格式
返回状态代码,显示代理健康状况:
- 类型:application/json
- http 状态码:
- agent 启动后,ping 接口不可用
- 表现:端口无法连接,或者连接后无法返回应答。
- 状态:initing
- 含义:agent 正在启动,尚未准备好处理请求。
- agent 启动中,ping 接口已经可用,返回 initing 状态
- http 返回状态码:200
- 应答返回的状态:{"status": "initing"}
- 含义:agent 正在初始化,暂时未完成,还没有就绪。
- agent 就绪,初始化完成,ping 返回 healthy 状态
- http 返回状态码:200
- 应答返回的状态:{"status": "healthy"}
- 含义:agent 健康,当前没有异步后台任务。
- 空闲超时:如果一个 agent 连续处于 healthy (idle) 状态超过空闲超时时间(例如 15 分钟),则应该发起删除 sandbox 的流程。
- agent 启动了后台异步任务,ping 返回 healthybusy 状态
- http 返回状态码:200
- 应答返回的状态:{"status": "healthybusy"}
- 含义:agent 健康,有后台异步任务正在运行。这对于支持 agent 运行工作时间远超过空闲超时的长任务至关重要。
- agent 不健康
- 表现:ping 接口无法连接,或者无应答,或者返回 http 200 之外的状态码。
- 状态:不健康
- 含义:agent 不健康,多次健康检查失败则会发起删除 sandbox 的流程。
示例 ping 响应格式
{ "status": "healthy" } - agent 启动后,ping 接口不可用
父主题:
相关文档
意见反馈
文档内容是否对您有帮助?
提交成功!非常感谢您的反馈,我们会继续努力做到更好! 您可在查看反馈及问题处理状态。
系统繁忙,请稍后重试
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨