Files
SuperBizAgent-java/interview/archive/2026-07-24-legacy/acceptance-checklist.md
T
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.6 KiB
Raw Blame History

面试前验收清单

1. 环境检查

  • 当前分支包含最新架构文档和面试材料。
  • MySQL 可连接。
  • Redis 可连接。
  • Milvus/Zilliz 可连接。
  • 模型 API key 可用。
  • mvp-demo profile 开启 mock Prometheus 和 mock CLS。

启动服务:

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

编译检查:

mvn -q -DskipTests compile

目标测试:

mvn -q "-Dtest=AiOpsServiceTest,ChatServiceSequentialAgentTest,DiagnosisTraceServiceTest,VectorSearchServiceTest,LookupKnowledgeToolTest" test

2. Chat Demo 验收

请求:

$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

验收:

  • 返回 data.success = true。
  • 返回 data.sessionId = interview-chat-payment-timeout-001。
  • diagnosis_session.agent_flow = CHAT。
  • Trace API 返回 session、steps、toolInvocations。
  • 复杂问题下 trace 中能看到 verifier 相关数据。

SQL:

python scripts/query_mysql.py "SELECT session_id, agent_flow, status, step_count, tool_call_count FROM diagnosis_session WHERE session_id='interview-chat-payment-timeout-001'"

3. AIOps Demo 验收

请求:

$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

验收:

  • SSE 首条包含 type=session。
  • SSE 最后包含 type=done。
  • diagnosis_session.agent_flow = AI_OPS。
  • diagnosis_session.status = SUCCESS。
  • diagnosis_session.answer 有最终报告。
  • Trace API 返回 AIOps steps 和 tool invocations。
  • 报告主章节聚焦 HighCPUUsage/payment-service。
  • 其他 active alerts 不应展开成独立主根因章节。
  • self_evaluation.aiops_rule_evaluation 存在。

SQL:

python scripts/query_mysql.py "SELECT session_id, agent_flow, status, total_duration_ms, step_count, tool_call_count FROM diagnosis_session WHERE session_id='interview-aiops-payment-cpu-001'"
python scripts/query_mysql.py "SELECT tool_name, COUNT(*) AS cnt FROM tool_invocation WHERE session_id='interview-aiops-payment-cpu-001' GROUP BY tool_name ORDER BY tool_name"

Scope 检查:

python scripts/query_mysql.py "SELECT (answer LIKE '%HighCPUUsage%') AS has_main_alert, (answer LIKE '%payment-service%') AS has_service FROM diagnosis_session WHERE session_id='interview-aiops-payment-cpu-001'"

4. Trace API 验收

Invoke-RestMethod `
  -Method Get `
  -Uri "http://localhost:9900/api/diagnosis/interview-aiops-payment-cpu-001/trace"

如果 PowerShell 对长 JSON 或特殊字符不稳定,可以用:

curl.exe --silent --show-error --max-time 60 "http://localhost:9900/api/diagnosis/interview-aiops-payment-cpu-001/trace"

5. RAG 验收

Invoke-RestMethod `
  -Uri "http://127.0.0.1:9900/api/search/similar?query=ERR_TIMEOUT&topK=3" `
  -Method Get

验收:

  • 返回 code = 200。
  • top candidates 中包含 ERR_TIMEOUT 相关文档。
  • scoreLabel 能体现当前检索路径语义。
  • 如果走 VectorStore,日志应出现 Spring AI VectorStore search。

6. 常见问题

MySQL stale connection

现象:

HikariPool - Connection is not available
No operations allowed after connection closed

处理:

  • 重启服务。
  • 确认 HikariPool 使用当前配置启动成功。
  • 再跑 trace 或 AIOps 请求。

SSE 客户端显示异常

PowerShell Invoke-WebRequest 有时对 SSE 或长 JSON 处理不稳定。可以改用 curl.exe 或直接查询 MySQL 和 Trace API 验证结果。

OpenSpec 全量校验失败

openspec validate --all --strict 可能因为历史未完成 change 失败。面试演示主要依赖已归档 spec、MVP trace 和 RAG 验收材料,可以单独验证相关 spec。