Files
SuperBizAgent-java/interview/archive/2026-07-24-legacy/demo-script.md
zhuyongxin de5a5b09d9 docs(interview): refresh materials for single-agent harness narrative
Archive pre-refactor interview notes and add current deep-dives on
architecture evolution, issue-derived stories, and evidence gates.
2026-07-24 18:14:49 +08:00

4.0 KiB
Raw Permalink Blame History

面试演示脚本

1. 30 秒开场

这是一个 Agent 工程项目,场景是企业故障诊断。
它支持两类入口:用户主动提问的 Chat 诊断,以及告警事件驱动的 AIOps 诊断。
项目重点不是单次模型回答,而是把 Agent 编排、工具证据、Verifier 评估、最终报告和反馈都沉淀成可回放的 Trace。

2. 启动服务

mvn spring-boot:run "-Dspring-boot.run.profiles=mvp-demo"

服务地址:

http://localhost:9900

mvp-demo profile 下:

  • Prometheus 告警使用 mock 数据。
  • CLS 日志使用 mock 数据。
  • MySQL、Redis、Milvus/Zilliz 和模型配置仍使用当前项目配置。

3. Demo 1:Chat 诊断

目标:展示用户问题如何进入多 Agent 诊断、调用工具、经过 Verifier,并生成 Trace。

$sessionId = "interview-chat-payment-timeout-001"
$body = @{
  Id = $sessionId
  Question = "支付接口最近出现超时,请结合知识库、日志和指标判断可能原因,并给出修复建议。"
} | ConvertTo-Json

Invoke-RestMethod `
  -Method Post `
  -Uri "http://localhost:9900/api/chat" `
  -ContentType "application/json" `
  -Body $body

讲解点:

  • ChatService 会根据问题复杂度选择轻量回答或复杂 Agent 流程。
  • 复杂问题走 Planner -> Executor -> Verifier。
  • Executor 调用知识库、日志、指标等证据工具。
  • Verifier 基于 tool_trace_summary 生成 groundedness 评估。
  • 最终写入 diagnosis_session、agent_step、tool_invocation。

查询 Trace:

Invoke-RestMethod `
  -Method Get `
  -Uri "http://localhost:9900/api/diagnosis/$sessionId/trace"

展示点:

  • data.session.agentFlow = CHAT
  • data.steps 中能看到 planner/executor/verifier
  • data.toolInvocations 中能看到证据工具
  • data.session.selfEvaluation 中有 verifier 结果

4. Demo 2:AIOps 告警诊断

目标:展示告警 payload 如何触发 AIOps,并且报告聚焦目标告警。

$aiopsSessionId = "interview-aiops-payment-cpu-001"
$aiopsBody = @{
  sessionId = $aiopsSessionId
  alertName = "HighCPUUsage"
  service = "payment-service"
  severity = "P1"
  description = "服务 payment-service 的 CPU 使用率持续超过 80%,当前值为 92%。实例: pod-payment-service-7d8f9c6b5-x2k4m。"
  timeRange = "last_15m"
  userRequest = "请结合 Prometheus 活动告警、system-metrics 日志和知识库生成告警分析报告。"
} | ConvertTo-Json

Invoke-WebRequest `
  -Method Post `
  -Uri "http://localhost:9900/api/ai_ops" `
  -ContentType "application/json" `
  -Body $aiopsBody

讲解点:

  • /api/ai_ops 接受可选 AIOpsRequest。
  • 首条 SSE 消息会返回 type=session。
  • AiOpsService 根据 payload 判断模式:
    • PAYLOAD_TARGETED:聚焦传入告警。
    • AUTO_DISCOVERY:没有 payload 时先查 active alerts。
  • AIOps 当前用 rule evaluation 检查报告完整性、payload 聚焦和证据工具覆盖。

查询 Trace:

Invoke-RestMethod `
  -Method Get `
  -Uri "http://localhost:9900/api/diagnosis/$aiopsSessionId/trace"

展示点:

  • data.session.agentFlow = AI_OPS
  • data.session.answer 有最终告警报告
  • data.toolInvocations 有 query_metrics、query_logs、lookup_knowledge
  • 报告主线聚焦 HighCPUUsage/payment-service

5. Demo 3:反馈闭环

$feedback = @{
  sessionId = $sessionId
  feedback = "useful"
} | ConvertTo-Json

Invoke-RestMethod `
  -Method Post `
  -Uri "http://localhost:9900/api/feedback" `
  -ContentType "application/json" `
  -Body $feedback

讲解点:

  • feedback 写回同一个 diagnosis_session。
  • useful 会沉淀 case_library。
  • not_useful 不改变 status,只作为质量信号。

6. 收尾总结

这个 Demo 展示的是完整 Agent 闭环:
用户问题或告警 -> Agent 编排 -> 工具证据 -> 自评估 -> Trace 回放 -> 用户反馈 -> 案例沉淀。
我关注的不是一次回答,而是这个回答能否被审计、验证和持续改进。