安全公告 — 恶意 litellm 版本 1.82.7 与 1.82.8 已从 PyPI 移除(存在 API 密钥外泄风险)。请卸载、轮换已暴露凭据,并升级至安全版本(如 1.82.9+)。运行 pip show litellm 以确认。 PyPI · README

排障指南

常见问题与处置。更完整脚本说明见 ../scripts/README.md。

排障指南

常见问题与处置。更完整脚本说明见 ../scripts/README.md


启动与环境

现象原因处置
start-dev.sh 报缺 AUTH_JWT_*未 bootstrap 或 PEM 被删bash scripts/bootstrap.sh
前台 chat history operation failedPG/Redis 未起bash scripts/start-dev-with-infra.sh
端口占用 3000/3001/8088旧进程lsof -i :8088 后 kill
Turbo TUI Ctrl+C 无反应TUI 捕获信号先 Esc 再 q,或 --ui=stream
手动 pnpm 前台登录缺 JWT key未展开 *_FILElocal-dev.md 手动 export

登录与 IAM

现象原因处置
admin 密码错误seed 后改了 password env重跑 bootstrap 或 reset-dev-data.sh --with-seed
staff@... Invalid credentials无此种子用户用 owner 或后台创建
前台无模型可选未分配可见模型 / PG 空admin 模型服务 + 用户可见模型;或 migrate:legacy-runtime
IAM 403scope 不足rbac/scopes.md

Gateway 与模型

现象原因处置
只有 mock 回复无 Keyadmin 配 Provider 或 env *_API_KEY
策略不拦截快照路径错 / 未发布确认 policy-snapshot 路径;admin 点发布;重启 gateway
规则已保存仍不生效userIds 占位不匹配applies_to 留空或填真实 id
blocked=false 但选了拦截测试接口用库内旧 action/api/policy/test 合并表单预览
Channel 不健康GATEWAY_INTERNAL_BASE_URL 端口错对齐 8088 与 internal token

策略与审计

现象原因处置
reset --full 后无策略命中快照被清admin 重新发布 + 重启 gateway
后台有审计、PG pending 涨PG 短暂不可用runbooks/audit-pg-backfill.md
部门审计 403audit:read:dept升级角色 scopes

SSO

现象原因处置
SSO 按钮不显示未配 NEXT_PUBLIC_SSO_PROVIDERS配 env 并完整重启 Next 进程
oidc.discovery_failedissuer 不可达或占位pnpm sso:oidc-smoke 自检
改 SSO env 不生效Next 热更新不读 env完整重启 admin + portal

Runbooks:sso-oidc-setup.md · sso-saml-setup.md


Vercel 分体部署

现象原因处置
Gateway 空 providersGATEWAY_REMOTE_* URL 错 / token 不一致internal-api.md
前台 0 条历史、后台有数据不同 DATABASE_URL核对 Vercel env
Token 永远 0usage 未回写确认 gateway DATABASE_URL 与 portal 同库

清单:deployment/vercel-env-checklist.md


E2E / 视觉

现象原因处置
chromium not found未装 Playwrightpnpm visual-tour:install
visual-tour 超时未起 dev server / 未 export 密码start-dev.sh,export 登录密码

日志位置

组件日志
Gateway 审计 JSONLapps/gateway/.runtime/audit/
Gateway 计量 JSONLGATEWAY_USAGE_LOGapps/gateway/.runtime/usage.jsonl
PG pending 审计apps/gateway/.runtime/audit/.pg-pending
Quota 本地.runtime/gateway/quota-usage.json

数据库迁移

`db:migrate` 失败但终端几乎无报错

现象:pnpm --filter @agenticx/db-schema db:migratebootstrap.sh 在迁移阶段以

Exit status 1 / ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL 退出,终端只有一行失败摘要,看不到具体 SQL 错误。

如果日志停在这里:

text
1postgres is ready
2running db:migrate
3...
4ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL ... drizzle-kit migrate

说明 Docker 和 Postgres 已经起来了,失败点是数据库迁移。不要继续反复执行 bootstrap.sh,先拿到底层错误。

第一步:看脚本落盘日志

bash
1cd enterprise
2ls -lt .runtime/logs/
3tail -n 120 .runtime/logs/bootstrap-*.log
4tail -n 120 .runtime/logs/db-migrate-*.log 2>/dev/null || true
5docker logs --tail=120 agenticx-postgres-dev

终端摘要不是根因。真正的 PostgreSQL 错误通常在 `.runtime/logs/bootstrap-.log`、`db-migrate-.log` 或 Postgres 容器日志里。

第二步:确认是不是“只清镜像,没有清数据库”

Docker 镜像和 Postgres 数据卷是两回事。执行过 docker rmi 或“清镜像”后,旧数据库数据通常仍在 Docker volume 里。旧表、半成品迁移或旧迁移记录仍可能导致 db:migrate 失败。

开发 / POC 环境如果可以清库,直接走重建路径:

bash
1cd enterprise
2bash scripts/bootstrap.sh --reset-db
3bash scripts/start-dev-with-infra.sh --ui=stream

--reset-db 会删除本地 Postgres 数据卷后重新建库。不要在需要保留数据的环境使用。

第三步:不能清库时,保留现场继续查

bash
1cd enterprise
2docker ps
3docker exec -it agenticx-postgres-dev psql -U postgres -d agenticx -c '\dt'
4docker exec -it agenticx-postgres-dev psql -U postgres -d agenticx -c 'select * from drizzle.__drizzle_migrations order by created_at desc limit 5;'

如果 drizzle.__drizzle_migrations 不存在或表结构与预期不一致,把输出和日志一起回传。

第四步:排查是否有并发迁移

如果同时出现大量 CREATE TABLE waitingtoo many clients already,参考 PostgreSQL DDL 锁等待 Runbook。这通常是多个进程 / 多个副本同时执行迁移,不是正常应用访问。


获取帮助

  1. 确认 DATABASE_URL 指向预期库(尤其 reset 脚本会 echo URL)
  2. curl --noproxy '*' http://127.0.0.1:8088/healthz
  3. Admin GET /api/gateway/health
  4. Gateway 进程日志(--ui=stream 模式)