面向值班工程师与产品验收:Workbench 里你看到的回复是不是大模型?数据从哪来? 本文描述 G7/G8 当前实现(真实后端 · 禁止 Mock 降级)。
deepseek-chat)agentsvc → http://litellm:4000/v1/chat/completions值ç班 一类乱码,原因是 JWT 里含中文显示名,旧版前端用 atob() 解析未按 UTF-8 解码。
已修复(web/shared/auth/eash-roles.ts 使用 TextDecoder)。
请硬刷新 Workbench(Cmd+Shift+R)或重新登录后应显示正常中文/英文用户名。
sequenceDiagram
participant U as 值班员浏览器
participant WB as Workbench :5174
participant GW as accessgw :8080
participant AG as agentsvc :8090
participant TG as toolgate :8083
participant LLM as LiteLLM → DeepSeek
participant N4 as Neo4j / CMDB / ITSM
participant PG as PostgreSQL
U->>WB: 输入问题(流式)
WB->>GW: POST /v1/chat/stream + JWT
GW->>AG: 转发 RCA 或 问数 stream API
AG->>TG: 只读工具(get_alert / query_service_assets …)
TG->>N4: 真查询图谱 / 变更 / 告警
N4-->>TG: JSON 事实
TG-->>AG: 工具结果
AG-->>WB: SSE event: trace(办事步骤)
AG->>LLM: chat/completions stream=true
LLM-->>AG: token 流
AG-->>WB: SSE event: delta(打字机)
AG-->>WB: SSE event: done(reply + context + trace)
GW->>PG: 持久化会话消息 + task_records
| 环节 | 是否真数据 | 说明 |
|---|---|---|
| 左侧「今日会话」 | 真 | PostgreSQL eash.sessions,经 accessgw GET /v1/sessions |
| 左侧「自动推送」 | 真 | Prometheus → Webhook → PG alert_events,最多展示 3 条 |
| 右侧「当前上下文」 | 真 | 来自工具链结果(告警 ID、CI、业务、变更单等),非前端编造 |
| 中间「助手回复」 | 大模型 | DeepSeek 根据工具 JSON 事实生成自然语言;可流式输出 |
| 办事进度 / 数据依据 | 真 | trace 数组;含一步 「大模型推理」(tool=litellm) |
| 前端欢迎语 / 占位 | 固定文案 | 仅会话为空时的引导句;不是你的问答回复 |
| Mock / 模板降级 | 禁止 | G6/G7 铁律;见 docs/编码及开发规范 §3.6 |
验收句示例:「这次支付网关超时,跟最近的变更有没有关系?」
agent_id=agt-pay-gw-rca / scene=rca 走路径ops:get_alert / ops:resolve_firing_alert,数据来自 Neo4j + Prometheus 入图ops:trace_ci_to_serviceops:list_changes、ops:get_change_detail(ITSM / PG 真数据,如 CHG00412)ops:query_metrics → Prometheusdelta 事件逐块推送;done 带 context + trace
关键代码:services/agentsvc/app/rca_runner.py ·
services/accessgw/chat_stream.go ·
web/workbench/src/api/chat.ts
验收句示例:「支付网关集群有哪些 Pod、依赖哪些业务?」 / 「好啊,给我相关的拓扑吧」
svc-pay-gw 或从问题中解析ops:query_service_assets → Neo4j 图谱 + CMDB你截图中列出的 pay-gw-01/02/03、对账/退款/在线支付等业务名,来自图谱 seed + 工具查询,由模型用自然语言表述,不是前端写死的假列表。
右侧「办事进度」与可展开的「本次数据依据」,对应后端返回的 trace 数组。典型步骤:
| trace 名称 | 含义 | 是否调模型 |
|---|---|---|
| 识别查询对象 / 查询告警 | 工具链前置 | 否 |
| 展开资产拓扑 / CI 追溯 | ToolGate 调 Neo4j/CMDB | 否 |
| 整理资产数据 / 关联变更 | 汇总 JSON | 否 |
| 大模型推理 | LiteLLM → DeepSeek;detail 含 model、tool: litellm | 是 |
消息 meta 里的 运维助手 · fc6dd777 为 trace_id 前 8 位,用于审计与办事记录关联。
| UI 区域 | API | 存储 |
|---|---|---|
| 我的智能体(2 项) | admin-bff /admin/v1/agents/published | 评测发布后的 PG 注册表 |
| 办事记录 | GET /v1/tasks | 每次对话完成后写 task_records |
| 待我审批 | GET /v1/approvals | PG approval_items |
| 顶栏「真实后端 · PostgreSQL」 | — | G7 固定 BFF 模式,无 Mock 切换 |
litellm、deepseek-chat。make test-g6-llm — 断言 trace 含「大模型推理」make test-g7-workbench — 流式 SSE + delta 事件make test-g8-closure — 对话写库 + 审批闭环
.env 中 DEEPSEEK_API_KEY 并重启 agentsvc → 对话应 失败并提示,而不是返回模板话术。scene 路由,不是无约束自由 Agent(记 G8 backlog)。
文档版本:G7/G8 · 2026-07-02 · 路径:docs/产品培训文档/EASH-智能对话运行逻辑说明.html