Files
socweb/test.md
T
gongzhiyongandClaude Opus 4.6 251c6586f4
Deploy LangGraph Server to Azure Web App / build-and-deploy (push) Failing after 27s
Deploy LangGraph UI to Azure Static Web Apps / build-and-deploy (push) Failing after 1m20s
feat: Phase 1 — ReAct loop + Markdown rendering + Docker deployment
Backend:
- Enterprise Agent refactored from single-round to ReAct multi-turn loop
- New agent.ts (LLM decision node) + tool-executor.ts (tool execution + Gen-UI)
- tool-defs.ts extracted for shared tool schemas
- MAX_ITERATIONS=6 safeguard against infinite loops

Frontend:
- MessageBubble: Markdown + code highlighting + LaTeX + tables
- ThemeToggle: light/dark/system theme cycling
- chart-result Gen-UI card: recharts bar/line/pie/area charts

Infrastructure:
- Docker Compose (lightweight): only LangGraph + Frontend, Azure cloud for PG/Redis/Blob
- Dockerfiles for dev (hot reload) and prod
- Makefile with dev/prod/down/logs commands
- Updated CLAUDE.md and agent definitions for LangGraph.js architecture

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 01:29:56 +08:00

4.1 KiB

SOC LangGraph.js 本地 Docker 部署复测报告

测试环境

测试结果汇总

# 测试项 端点 结果 备注
1 后端健康检查 GET /info PASS 返回 {"flags":{"assistants":true,"crons":false}}
2 创建 Thread POST /threads PASS 返回 thread_id, status=idle
3 Agent 流式对话 (generalInput) POST /threads/{id}/runs/stream PASS Router -> generalInput, AI 正常回复中文
4 Agent 非流式对话 POST /threads/{id}/runs/wait PASS 返回 2 条消息, AI 回复正确
5 Chat Graph POST /threads/{id}/runs/wait (chat) PASS 独立 chat graph 正常工作
6 Enterprise - KB 搜索 POST /threads/{id}/runs/wait (agent) PASS Router -> enterprise, 调用 kb_search, 检索到 5 条结果, UI 组件 knowledge-result 正常
7 Enterprise - 工单列表 POST /threads/{id}/runs/wait (agent) PASS 调用 ticket_list, 返回 3 条工单, UI 组件 ticket-summary 正常
8 Enterprise - 网络搜索 POST /threads/{id}/runs/wait (agent) PASS 调用 web_search, 找到 5 条结果, UI 组件 search-result 正常
9 Thread 历史记录 POST /threads/{id}/history PASS 返回 4 条历史条目
10 Thread 状态 GET /threads/{id}/state PASS 返回消息列表及��态
11 助手列表 POST /assistants/search PASS 3 个 graph: agent, chat, email_agent
12 前端 HTML GET http://localhost:3002/ PASS 返回 200, 完整 HTML
13 前端 API 地址 JS bundle 检查 PASS 指向 http://localhost:8080
14 后端日志 docker logs PASS 最近运行无 error 日志

修复的问题

问题 1: AZURE_OPENAI_ENDPOINT 格式错误 (已修复)

  • 原值: https://ai-gzy0016231ai975636166896.cognitiveservices.azure.com/openai/responses?api-version=2025-04-01-preview/
  • 修正: https://ai-gzy0016231ai975636166896.cognitiveservices.azure.com
  • 原因: LangChain AzureChatOpenAI 会自动拼接 /openai/deployments/{name}/chat/completions 路径,endpoint 只需基础 URL
  • 文���: /Users/gongzhiyong/go/SOC/langgraph/.env (第 2 行)

问题 2: 多个 Agent 节点使用 ChatOpenAI 而非 AzureChatOpenAI (已修复)

  • 现象: Router 节点成功路由后, generalInput/chat 等节点报 OPENAI_API_KEY environment variable is missing
  • 原因: 这些节点使用 new ChatOpenAI({model: "gpt-4o-mini"}), 需要普通 OpenAI API Key, 但项目用的是 Azure OpenAI
  • 修复方案: 创建共用工厂函数 createLlm(), 统一使用 AzureChatOpenAI
  • 修改的文件:
    • src/agent/utils/create-llm.ts -- 新建, 共用 LLM 工厂函数
    • src/agent/supervisor/nodes/router.ts -- 改用 createLlm()
    • src/agent/supervisor/nodes/general-input.ts -- ChatOpenAI -> createLlm()
    • src/agent/chat-agent/index.ts -- ChatOpenAI -> createLlm()
    • src/agent/enterprise/nodes/tools.ts -- 内联 createLlm -> 共用 createLlm
    • src/agent/trip-planner/nodes/classify.ts -- ChatOpenAI -> createLlm()
    • src/agent/trip-planner/nodes/tools.ts -- ChatOpenAI -> createLlm()
    • src/agent/trip-planner/nodes/extraction.ts -- ChatOpenAI -> createLlm()
    • src/agent/email-agent/nodes/write-email.ts -- ChatOpenAI -> createLlm()
    • src/agent/email-agent/nodes/rewrite-email.ts -- ChatOpenAI -> createLlm()
    • src/agent/stockbroker/nodes/tools.ts -- ChatOpenAI -> createLlm()

已知的外部依赖状态

外部服务 状态 备注
Azure OpenAI (gpt-5.4) 正常 所有 LLM 调用成功
KB Agent (知识库) 正常 检索到 5 条结果
Gongdan (工单) 正常 返回 3 条工单
Jina (网络搜索) 正常 搜索到 5 条结果
Daytona (沙盒) 未测试 需要特定代码执行场景

通过率

14/14 通过 (100%)

所有后端 API 端点和前端页面均正常工作。两个核心 Bug 已修复并验证。