# agent-workorder-lab **Repository Path**: DuanYuHong/agent-workorder-lab ## Basic Information - **Project Name**: agent-workorder-lab - **Description**: agent-workorder-lab - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-25 - **Last Updated**: 2026-09-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能售后工单 Agent 面向 Java 工程师的 Agent 应用工程学习项目。第一阶段展示四个最重要的边界: - `SupportAgent`:Agent 能力接口,隔离模型供应商 - `OrderTools`:模型可以申请调用的业务工具 - `OrderRepository`:普通、确定性的业务数据访问 - `SupportController`:同步、SSE 流式和结构化输出接口 默认使用 `mock` 模式,不需要 API Key。切换为 `openai` 模式后,同一套 Controller 和 Tool 会由真实模型驱动。 ## 环境 - JDK 17+ - Maven 3.8+ - PowerShell 7 或 Windows PowerShell 本机默认 Java 仍然是 Java 8,因此仓库提供了只对当前命令生效的 JDK 17 脚本,不会修改系统配置。 ## 运行测试 ```powershell cd D:\work\agent-workorder-lab .\scripts\mvn-jdk17.ps1 test ``` ## 启动 Mock 模式 ```powershell .\scripts\mvn-jdk17.ps1 spring-boot:run ``` 另开终端测试: ```powershell curl.exe -X POST http://localhost:8080/api/support/chat ` -H "Content-Type: application/json" ` -d '{"message":"帮我查一下 ORD-20260917-001 到哪里了"}' ``` 也可以直接运行 [http/support-agent.http](http/support-agent.http) 中的请求。 ## 切换真实模型 ```powershell $env:AGENT_MODE = "openai" $env:OPENAI_API_KEY = "你的 API Key" $env:OPENAI_MODEL = "你的模型名称" .\scripts\mvn-jdk17.ps1 spring-boot:run ``` 兼容 OpenAI API 的其它服务可以额外设置: ```powershell $env:OPENAI_BASE_URL = "https://你的服务地址" ``` 不要将 API Key 写进 `application.yml` 或提交到 Git。 ## 接口 | 方法 | 地址 | 作用 | | --- | --- | --- | | POST | `/api/support/chat` | 普通 Agent 对话 | | POST | `/api/support/chat/stream` | SSE 流式对话 | | POST | `/api/support/classify` | 结构化工单分类 | | GET | `/actuator/health` | 健康检查 | 示例订单: - `ORD-20260917-001` - `ORD-20260916-002` ## 推荐阅读顺序 1. `SupportController` 2. `SupportAgent` 3. `MockSupportAgent` 4. `OrderTools` 5. `SpringAiSupportAgent` 6. 测试代码 7. [学习路线](docs/LEARNING_ROADMAP.md) 重点观察:模型只负责决定“要不要调用工具”和“如何组织答案”,订单数据、权限及实际操作始终由 Java 业务代码负责。