配置修改
找到项目中的application.yml,搜索# 记得改成你自己的 这句话,他前面的配置你需要改成你自己的。 | 用途 | 配置项 | 获取方式 | 是否必改 | | --- | --- | --- | --- | | DashScope API Key | agentscope.dashscope.api-key | aliyun.com/product/bailian | 是 | | MySQL | spring.datasource.url | 自己部署或者用云服务 | 是 | | Redis | spring.data.redis.host | 自己部署或者用云服务 | 是 | | 百炼记忆库(长期记忆) | agentscope.bailian.* | 百炼控制台创建 | 不提供无法查询用户偏好 | | 百炼景点查询知识库(RAG) | agentscope.bailian.memory-library-id | 百炼控制台创建 | 不提供无法查询城市有哪些景点 | | NewsData.io API Key | app.news-api-key | https://newsdata.io | 不提供无法查询城市有哪些新闻 | | weather MCP Endpoint | app.weather-mcp.endpoint | https://market.aliyun.com/detail/cmapi00074002#sku=yuncode6800200004 | 不提供无法查询城市天气 | | Orizn Visa API Key | app.orizn-mcp.api-key | https://visa.orizn.app | 不提供无法查询签证信息 |
运行时需要提供的配置(跑 Skill 才需要)
agent运行时会要求你提供。需要的时候去申请即可。 | 依赖 | Skill 需求 | 备注 | | --- | --- | --- | | tuniu-cli | 机票 / 酒店 / 火车 统一入口 | https://open.tuniu.com/mcp/docs/apidoc/mcp/hotelMCP.html | | flyai | 备用机票、酒店 Skill | https://h5.133.cn/webapp/pages/mcpApiKey?zhuti=HBGJ&uid=H5GNoxOAM9AizyUeYkP-IIso |
其他你也可以改的配置
| 配置项 | 位置 | 场景 |
|---|---|---|
| 服务端口 | server.port | 8080 已被占用时改 |
| Sa-Token 有效期 | sa-token.timeout | 默认 30 天 |
| 日志级别 | logging.level.com.gogo.travel | (强烈建议) |
| 工具熔断白名单 | app.circuit-breaker.monitored-tool-names | 新增易失败工具时追加 |
| Skill 目录 | travel.skill.path | 默认 |
| MCP 白名单 | app.weather-mcp.enabled-tools | 控制暴露给 LLM 的工具,降 token |
初始化数据库
建库
CREATE
执行 DDL 与初始化数据
在 MySQL 中执行代码中的SQL:src/main/resources/db/schema.sql 脚本会创建 11 张表并写入: - 5 个测试用户档案 user_profile(u_001 / u001 / u002 / u003 / u004) - 5 个登录账号 user_account(明文密码 123456,仅用于本地开发) - 12 条差旅政策 travel_policy_rule(4 职级 × 3 城市等级) | 账号 | 密码 | 姓名 | 角色 | | --- | --- | --- | --- | | admin | 123456 | 系统管理员 | ADMIN | | alice | 123456 | 张三 | USER | | bob | 123456 | 李四 | USER | | charlie | 123456 | 王五 | USER | | david | 123456 | 赵六 | USER |
初始化百炼记忆库和知识库
百炼知识库(可选)
可以用百炼知识库,或者Dify、以及其他的自己提供的RAG也行,百炼使用方式如下:
创建一个知识库配置如下
从代码中找到我们提供的数据集上传 : /src/main/resources/dataset/tourist_attraction.docx
知识库相关的配置如何获取:
- accessKeyId
- accessKeySecret
过个人中心的AccessKey创建对应的accessKeyId和accessKeySecret
- workspaceId
- indexId

记忆库(建议配置)
然后把这个知识库id配置到agentscope.bailian.memory-library-id 即可。
启动后端
方式 A:IntelliJ IDEA(推荐)
- 打开项目根目录,等 Maven 索引完成
- Project Structure → SDK 选 JDK 21
- 右键 GogoTravelApplication.java → Run 'GogoTravelApplication' 看到以下日志代表启动成功:
Started GogoTravelApplication in x.xxx seconds
Tomcat started on port 8080 (http)
查看日志(强烈建议改成DEBUG)
代码中我打了很多用于调试的日志,方便你了解agent的运行流程。但是需要你把日志级别改成DEBUG才行,默认使用INFO:
logging:
level:
com.gogo.travel: DEBUG
方式 B:命令行 Maven
cd
## 首次或依赖有变更
mvn -DskipTests clean
## 启动(会阻塞在前台,Ctrl+C 停止)
mvn spring-boot:run
看到以下日志代表启动成功:
Started GogoTravelApplication in x.xxx seconds
Tomcat started on port 8080 (http)
方式 C:可运行 Jar
mvn -DskipTests clean package
## 生成 target/gogo-agent-1.0.0-SNAPSHOT.jar
java -jar target/gogo-agent-1.0.0-SNAPSHOT.jar
生产/Docker 场景推荐这种方式,配合 -D 或环境变量覆盖配置。
启动前端
安装依赖
cd
npm
配置后端地址(可选)
前端默认走 http://localhost:8080(见 src/api/auth.ts 等)。如果后端跑在别的地址,创建 frontend/.env.local:
VITE_API_BASE
启动开发服务器
npm
看到:
VITE v8.x ready in xxx ms
➜ Local: http://localhost:5173/
浏览器打开 http://localhost:5173,进入登录页。
生产构建
npm
npm
第一次跑通
按以下顺序验证核心链路:
Step 1 — 登录
- 浏览器打开 http://localhost:5173
- 输入 alice / 123456 登录 → 进入主对话页
Step 2 — 发起对话
输入几个逐层验证的问题: | 输入 | 期望结果 | 验证点 | | --- | --- | --- | | 你好 | 短回复 + 推荐问题 | 基础 LLM 通路 | | 我明天从北京去上海出差 3 天,帮我看下政策 | InfoAgent + PolicyTools 联合回答 | RAG + 政策工具 | | 我要请假出差,帮我建个差旅单 | Human-in-the-Loop 表单弹出 | UserInteractionTools |
Step 3 — 观察 SSE 事件
- 打开浏览器 DevTools → Network → 筛选 respond
- 会看到 text/event-stream 连接持续接收:thinking / progress / travel_data / message / suggestions / done
Step 4 — 验证会话持久化
- 在左侧 Sidebar 看到会话已保存,标题由 ConversationTitleService 异步生成
- 刷新页面重新登录 → 点开历史会话 → 消息列表完整回显
Step 5 — 后台数据核对
USE
SELECT
SELECT
SELECT
看到上述表有数据即说明多轮记忆与会话历史都已落库。
常见问题(FAQ / 故障排查)
后端启动失败
| 现象 | 排查 |
|---|---|
| Public Key Retrieval is not allowed | JDBC URL 加 |
| Communications link failure | MySQL 未起 / 网络不通 / 密码错 |
| Redis 连接超时 | REDIS_HOST/PORT/PASSWORD |
| Unknown initial character set index '255' | MySQL < 8.0,建议升级 |
| DashScope 401 / 403 | DASHSCOPE_API_KEY |
| orizn-visa-mcp | npx |
| 端口 8080 被占 | export SERVER_PORT=8081 |
前端相关
| 现象 | 排查 |
|---|---|
| 登录报网络错误 | 检查后端是否已跑起来 + |
| SSE 只收到几条就停 | 反向代理未关闭 buffering;开发环境直连 Vite 不受此影响 |
| 401 Unauthorized | Token 过期或未在请求头带 |
| npm install | 切换国内镜像: |
对话相关
| 现象 | 排查 |
|---|---|
| 回复很慢 / 一直转圈 | 观察后端 |
| 搜索卡片不显示 | 对应 Skill CLI 未安装(如 |
| Agent 中断不生效 | Redis 未连通, |
| 熔断误伤 | 调 |