superagent请求问题修复
This commit is contained in:
@@ -109,6 +109,8 @@ FIRE_SAFETY_BUILD_GOPROXY=https://proxy.golang.org,direct
|
||||
FIRE_SAFETY_SUPERAGENT_ENABLED=true
|
||||
FIRE_SAFETY_SUPERAGENT_BASE_URL=https://<superagent-api-host>
|
||||
FIRE_SAFETY_SUPERAGENT_OPEN_API_KEY=<superagent-open-api-key>
|
||||
# 当前外部应用策略关闭 Trace 时保持 false;只有策略显式允许 Trace 才设置 true
|
||||
FIRE_SAFETY_SUPERAGENT_INCLUDE_TRACE=false
|
||||
|
||||
FIRE_SAFETY_CHAT_ENABLED=true
|
||||
FIRE_SAFETY_CHAT_AUTH_TOKEN=<独立的高熵xtoken>
|
||||
@@ -141,6 +143,10 @@ FIRE_SAFETY_POSTGIS_EXPECTED_SRID=4326
|
||||
- FIRE_SAFETY_CHAT_PAGE_ENABLED 默认必须为 false。开启后 Go 提供 `/chat`、`/chat/` 以及同源的
|
||||
`/chat/app.css`、`/chat/app.js`;`/chat` 会 308 到 `/chat/`,页面和资源的最终可用性仍由 Go
|
||||
开关决定。页面只用于受控测试,不嵌入或持久化 Token。
|
||||
- FIRE_SAFETY_SUPERAGENT_INCLUDE_TRACE 默认必须为 false。无 Trace 的严格成功条件是最终 AI 消息
|
||||
`finish_reason=stop`、非空顶层 `event: message.final` 加顶层 `event: end`;设置为 true 时还要求
|
||||
`run.completed(status=success)`,且外部应用策略必须开启 `trace_policy.enabled=true`。无 Trace
|
||||
只是不返回公开工具/步骤轨迹,不等于禁止 SuperAgent 调用 MCP。
|
||||
- 页面开启时 FIRE_SAFETY_CHAT_ALLOWED_ORIGINS 必须包含精确的 `https://agent.nianxx.com`,并且
|
||||
Chat 兼容 App ID、Chat Token 和 SuperAgent 配置已经可用;该静态页面不是最终用户认证。
|
||||
- 使用 FIRE_SAFETY_MCP_SCOPE_MODE=all 时,FIRE_SAFETY_MCP_ALLOWED_TOWNS 必须保持为空。all 是服务账号级的固定查询表范围,不是最终用户级授权。
|
||||
@@ -148,6 +154,10 @@ FIRE_SAFETY_POSTGIS_EXPECTED_SRID=4326
|
||||
- FIRE_SAFETY_HTTP_ADDR 在容器内应为 :8080,安全边界由 Compose 的 127.0.0.1:16587:8080 和宿主机 Nginx 提供;不要在 Compose 场景设为容器内的 127.0.0.1:8080。
|
||||
- 不要用没有 --quiet 的 docker compose config 或 docker inspect 把完整环境渲染到终端、CI 日志或工单;检查 .env 权限仍为 600。
|
||||
- 修改 `.env` 后必须重新创建容器(例如 `docker compose up -d --force-recreate --no-build`)才能加载新的 Chat 兼容开关;单独 `docker compose restart` 不会重新读取容器环境。旧短凭证仅用于受控测试/迁移,完成轮换后把开关改回 `false` 并再次 recreate。
|
||||
- 修改 `FIRE_SAFETY_SUPERAGENT_INCLUDE_TRACE` 或其他 SuperAgent 代码/配置后,至少执行
|
||||
`docker compose config --quiet`、`docker compose build --pull` 和
|
||||
`docker compose up -d --force-recreate --remove-orphans`;仅 `docker compose restart` 不会
|
||||
重新读取 `.env`,也不会把新代码构建进镜像。
|
||||
|
||||
## 4. 容器访问现有 PostgreSQL/PostGIS
|
||||
|
||||
@@ -381,7 +391,43 @@ curl -i https://agent.nianxx.com/chat/
|
||||
版本导致故障,回到维护者指定的已验证 Git revision 或 root-only Nginx 备份,先 `nginx -t`
|
||||
再 reload;不要恢复旧的全路径 DashScope 代理、关闭 Go 鉴权或把 Secret 写入 Nginx。
|
||||
|
||||
## 9. SuperAgent MCP 回调配置与冒烟
|
||||
## 9. SuperAgent Open API 无 Trace 模式
|
||||
|
||||
当前测试环境优先使用无 Trace 模式,避免外部应用策略未开放公开 Trace 导致消息流返回
|
||||
`HTTP 403` / `open_agent_trace_disabled`。在服务器 `.env` 中确认:
|
||||
|
||||
~~~text
|
||||
FIRE_SAFETY_SUPERAGENT_INCLUDE_TRACE=false
|
||||
~~~
|
||||
|
||||
无 Trace 模式仍严格要求上游最终 AI 消息的 `finish_reason=stop`、非空顶层
|
||||
`event: message.final` 和顶层 `event: end`;最终回答只取 `message.final.text`。它只是不向调用方
|
||||
返回公开工具/步骤轨迹,不等于禁止 SuperAgent 在执行中调用已配置的 MCP 工具。确认 MCP 是否
|
||||
实际被调用,必须检查 `/mcp` 日志和返回结果。只有外部应用策略显式开启
|
||||
`trace_policy.enabled=true` 时,才把该值改为 `true`;Trace 模式会额外要求
|
||||
`run.completed(status=success)`。
|
||||
|
||||
修改 `.env` 后必须重新构建并重新创建服务,使配置在运行容器中生效:
|
||||
|
||||
~~~bash
|
||||
cd /home/firee-safety-ymd
|
||||
docker compose config --quiet
|
||||
docker compose build --pull
|
||||
docker compose up -d --force-recreate --remove-orphans
|
||||
docker compose ps
|
||||
docker compose logs --tail=100 api
|
||||
curl --fail http://127.0.0.1:16587/health
|
||||
~~~
|
||||
|
||||
不要在日志或工单中粘贴 Open API Key。若仍收到 403,只记录 HTTP 状态、脱敏后的 Provider code、
|
||||
时间和请求关联 ID,交由 SuperAgent 平台核对外部应用策略;不要反复轮换无关的 Chat/MCP 凭证。
|
||||
|
||||
受控诊断已经确认:同一 Key 的 `include_trace=true` 因应用策略返回 403
|
||||
`open_agent_trace_disabled`;同一 Key 的 `include_trace=false` 已由真实探针完成严格成功判定,
|
||||
本地兼容 Chat SSE 也完成 `finish_reason=null -> stop`。公网完整消防对话、MCP 实际工具调用和
|
||||
多轮会话仍需单独验收。
|
||||
|
||||
## 10. SuperAgent MCP 回调配置与冒烟
|
||||
|
||||
在 SuperAgent 的工具/MCP 配置中新增远程 MCP 服务:
|
||||
|
||||
@@ -454,7 +500,7 @@ curl --fail \
|
||||
unset MCP_BEARER
|
||||
~~~
|
||||
|
||||
## 10. 更新、重启与回滚
|
||||
## 11. 更新、重启与回滚
|
||||
|
||||
### 发布新版本
|
||||
|
||||
@@ -515,7 +561,7 @@ cd /home/firee-safety-ymd
|
||||
docker compose down
|
||||
~~~
|
||||
|
||||
## 11. 完成判定与当前限制
|
||||
## 12. 完成判定与当前限制
|
||||
|
||||
本手册完成不代表公网部署已完成。现场交付至少应记录:
|
||||
|
||||
@@ -525,6 +571,10 @@ docker compose down
|
||||
- Chat 首轮/多轮 SSE、错误凭证、未知 app/path 的实际 HTTPS 响应。
|
||||
- 页面浏览器验收证明用户手动输入 xtoken、Token 不被页面持久化、兼容 completion SSE 及同页面 `session_id` 复用;这只是静态测试页面,不是生产认证。
|
||||
- 若为已交付旧客户端临时开启 Chat legacy 短凭证兼容,应记录受控迁移窗口,确认启动 warning 不含 Secret,并在凭证轮换后恢复 `FIRE_SAFETY_CHAT_ALLOW_LEGACY_SHORT_TOKEN=false`。
|
||||
- SuperAgent Open API 使用 `FIRE_SAFETY_SUPERAGENT_INCLUDE_TRACE=false` 时,验证最终 AI 消息
|
||||
`finish_reason=stop`、非空顶层 `message.final` 加顶层 `end`;若切换为 true,验证外部应用
|
||||
Trace 策略已开启且 `run.completed(status=success)` 仍为必要条件。无 Trace 不等同于 MCP
|
||||
禁用;完整消防对话和 MCP 工具调用仍须单独记录。
|
||||
- SuperAgent -> `/mcp` 的独立 Bearer、TLS/网络白名单、无版本配置 initialize 兼容响应、`notifications/initialized`、`tools/list` 和全部 7 个受控只读 `tools/call`。现场已有地点搜索一次成功证据,但其余工具未验收;版本字段/Header 不作为配置或拒绝门禁;公网请求到达但没有完成这条调用链,不算完成。
|
||||
- 数据库未公开 5432,运行账号保持只读,PostGIS readiness warning 和 35 条无效面几何缺口已记录。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user