diff --git a/AI核心技能原理说明.html b/AI核心技能原理说明.html new file mode 100644 index 0000000..df50487 --- /dev/null +++ b/AI核心技能原理说明.html @@ -0,0 +1,512 @@ + + + + + +AI 核心技能原理说明 + + + +
+ +← 返回知识库 +

AI 核心技能原理说明

+

系统梳理大模型应用开发的关键技术原理,涵盖从基础模型到上层应用的完整技术栈。

+ +
+ LLM 基础Prompt EngineeringAgent 架构 + Skills 编排RAG 知识库AI CodingYOLO 视觉 +
+ + +

大语言模型(LLM)基础

+ +

核心原理

+ + +

训练三阶段

+
    +
  1. Pre-training(预训练):海量语料上做 Next Token Prediction,学习语言的统计规律和世界知识
  2. +
  3. SFT(监督微调):用高质量指令-回答对训练,让模型学会"对话"
  4. +
  5. RLHF(人类反馈强化学习):用人类偏好数据训练奖励模型,再用 PPO 优化,对齐人类价值观。解决"模型能力强但不一定听话"的对齐问题
  6. +
+ +

关键概念

+ + + + + + + + +
概念说明
Token模型处理的最小文本单元,中文约 1.5-2 字符/token
Context Window模型一次能处理的 token 上限(如 128K、200K)
Temperature控制输出随机性,0 = 确定性,1 = 高随机
Top-P / Top-K采样策略,限制候选 token 范围,平衡多样性与质量
+ +

主流模型对比

+ + + + + + + + +
模型特点适用场景
GPT-4o多模态,综合能力最强复杂推理、多模态任务
Claude 4长上下文 200K,安全性高,代码能力强长文档分析、代码生成
DeepSeek-V3开源,MoE 架构,性价比极高国内部署、成本敏感场景
通义千问中文优化,阿里云生态深度集成政务、企业中文场景
+ + +

Prompt Engineering

+ +

核心方法论

+ + + + + + + + + +
技术原理示例
Zero-shot不给示例,直接提问"将以下文本分类为正面/负面:..."
Few-shot给 2-5 个示例,模型学习输入输出模式示例 1 → 示例 2 → 新输入
CoT(思维链)要求模型"一步步思考",激活推理能力"让我们一步步分析:首先...其次..."
结构化输出约束输出格式(JSON / XML)"请以 JSON 格式返回,包含 name、age 字段"
Self-Consistency多次采样 + 投票,提升推理准确率同一问题跑 5 次,取多数答案
+ +

为什么 CoT 有效

+ + +

Function Calling 原理

+
    +
  1. 定义函数的 JSON Schema(函数名、参数、描述)
  2. +
  3. 模型判断用户意图 → 返回函数名 + 结构化参数(而非自然语言)
  4. +
  5. 应用层执行函数 → 结果回传模型 → 模型生成最终回复
  6. +
  7. 本质:让模型"学会"输出结构化指令,模型不直接调用函数,而是输出参数由应用层执行
  8. +
+ + +

Agent 智能体

+ +

核心架构:ReAct 循环

+
用户输入 → Agent Core(LLM)
+              │
+              ├─ 规划(Plan)
+              ├─ 调用工具(Tool Use)
+              ├─ 观察结果(Observation)
+              ├─ 反思调整(Reflection)
+              └─ 循环直到目标达成 → 输出
+ +

关键设计模式

+ + + + + + + +
模式原理适用场景
ReActReasoning + Acting 交替:思考一步 → 执行一步 → 观察 → 再思考需要与外部交互的任务
Plan-and-Execute先生成完整计划,再逐步执行复杂多步任务
Multi-Agent多个 Agent 分工协作,各司其职跨领域复杂流程
+ +

多 Agent 协作

+ + +

安全护栏(Guardrails)

+ + +
+ Agent vs 普通 LLM 调用:Agent 的核心区别在于拥有自主规划 + 工具调用 + 循环决策能力,不是一次问答,而是多步自主完成任务。 +
+ + +

Skills 编排系统

+ +

设计理念

+

将业务能力封装为标准化、可复用的 Skill 模块,由 LLM 根据用户意图自动选择并编排执行。

+ +

架构流程

+
用户输入
+    ↓
+意图识别(LLM)
+    ↓
+Skill 路由(语义匹配最相关的 Skill 组合)
+    ↓
+编排执行(串行 / 并行 / 条件分支)
+    ↓
+结果聚合 → 输出
+ +

Skill 定义规范

+
{
+  "name": "report_generator",
+  "description": "根据查询条件生成业务报表",
+  "parameters": {
+    "report_type": "销售报表 / 库存报表 / 财务报表",
+    "date_range": "起止日期",
+    "format": "PDF / Excel"
+  },
+  "auth_required": true
+}
+ +

关键机制

+ + + + + + + + +
机制说明
热加载Skill 注册/下线不重启系统,通过配置中心或数据库动态生效
自动路由LLM 用语义匹配(Embedding 相似度)找到最相关的 Skill
依赖解析Skill A 的输出可能是 Skill B 的输入,编排引擎自动处理依赖顺序
降级策略首选 Skill 不可用时,自动回退到备选方案或转人工
+ +
+ 与 Function Calling 的关系:Skills 编排是更高层的抽象,一个 Skill 可能包含多个 Function Call。类比:Skills 编排 ≈ 微服务 + API 网关 + 服务编排,只是"路由规则"由 LLM 动态决定。 +
+ + +

知识库(RAG)系统

+ +

为什么需要 RAG

+ + +

核心流程

+
文档入库(离线):
+  原始文档 → 解析 → 分块 → Embedding → 存入向量数据库
+
+在线问答:
+  用户提问 → Embedding → 向量检索(Top-K)→ 拼接 Prompt → LLM 生成 → 返回
+ +

分块策略(Chunking)

+ + + + + + + +
策略适用场景优缺点
固定长度通用场景实现简单但可能切断语义
语义分块长文档按段落/章节切分,语义完整
滑动窗口需要上下文相邻块有重叠,避免信息断裂
+ +

Embedding 模型选择

+ + +

检索优化

+ + + + + + + +
技术说明
混合检索语义检索(向量)+ 关键词检索(BM25)加权融合,提升召回率
Rerank粗召回后用精排模型重排序,提升 Top-N 精度
元数据过滤按时间/分类/权限等结构化字段预过滤,缩小检索范围
+ + +

AI Coding

+ +

主流工具原理

+ + + + + + + + +
工具底层原理特点
Claude CodeClaude 模型 + 工具调用(文件读写/Shell/搜索),Agent 模式自主执行复杂任务拆解,长期上下文
GitHub CopilotCodex 模型,实时上下文(当前文件+相邻Tab+项目结构)补全IDE 深度集成,毫秒级响应
Cursor多模型支持,全文件上下文编辑,Composer 模式重构友好,Diff 预览
AiderCLI 工具,Git 集成,Map-Reduce 处理大代码库终端场景,可脚本化
+ +

三种工作模式

+
    +
  1. 补全模式:根据光标上下文,实时续写代码(Copilot 类)
  2. +
  3. 对话模式:自然语言描述需求 → AI 生成/修改代码(Cursor / Claude Code)
  4. +
  5. Agent 模式:AI 自主规划 → 读写文件 → 执行命令 → 检查结果 → 迭代修复(Claude Code)
  6. +
+ +

工程化实践

+ + + +

AI 视觉(YOLO)

+ +

核心思想

+ + +

演进路线

+ + + + + + + +
版本关键改进年份
YOLOv5工程化最成熟,社区生态好2020
YOLOv8无锚框检测,多任务(检测/分割/姿态)统一框架2023
YOLOv10NMS-Free,端到端,效率进一步提升2024
+ +

训练部署流程

+
数据采集 → 标注(LabelImg / LabelStudio)→ 数据集划分(训练/验证/测试)
+    → 数据增强(翻转/旋转/色彩抖动/Mosaic)
+    → 模型训练(预训练权重微调)
+    → 模型转换(ONNX / TensorRT)
+    → 边缘/服务端部署
+ +

网络架构:Backbone + Neck + Head

+ + + + + + + +
组件作用YOLOv8 示例
Backbone特征提取网络,从原始图像中提取多尺度特征图CSPDarknet + C2f 模块(跨阶段局部网络,提升梯度流动)
Neck特征融合层,将不同尺度的特征图进行融合,增强多尺度检测能力PAN-FPN(路径聚合网络 + 特征金字塔),自顶向下 + 自底向上双向融合
Head检测头,输出最终的边界框坐标 + 类别概率 + 置信度解耦头(Decoupled Head):分类和回归分支分离,各自优化
+ +

关键技术原理

+ +

锚框(Anchor Box)

+ + +

NMS(非极大值抑制)

+ + +

损失函数

+ + + + + + + +
损失类型说明常用函数
分类损失衡量类别预测的准确性BCE Loss(二元交叉熵)
定位损失衡量边界框坐标的准确性CIoU Loss(考虑重叠面积 + 中心点距离 + 宽高比)
置信度损失衡量"该框包含目标"的置信度BCE Loss + Focal Loss(聚焦难分样本)
+ +

核心评估指标

+ + + + + + + + + +
指标定义意义
IoU预测框与真实框的交集 / 并集衡量定位精度,> 0.5 通常认为检测正确
mAP所有类别 AP 的平均值综合衡量检测精度,最常用的整体指标
mAP@0.5IoU 阈值 = 0.5 时的 mAP宽松标准,反映"找得到"的能力
mAP@0.5:0.95IoU 从 0.5 到 0.95(步长 0.05)取平均严格标准,反映"定位准"的能力(COCO 数据集主要指标)
FPS每秒处理帧数衡量推理速度,实时场景通常需要 ≥ 25 FPS
+ +

模型优化与加速

+ + + + + + + + + +
技术原理效果
模型量化(INT8)将 FP32 权重和激活值映射到 INT8,降低计算精度换取速度推理速度 2-4x 提升,精度损失 < 1%
模型剪枝移除不重要的通道/层,减少参数量和计算量模型体积缩减 30-50%,速度提升
TensorRT 加速NVIDIA 推理优化引擎:层融合、显存优化、内核自动调优推理速度 3-5x 提升,适合 GPU 部署
ONNX 导出将 PyTorch 模型导出为 ONNX 通用格式,跨框架/跨硬件部署一次导出,多端部署(GPU / CPU / Edge TPU)
OpenVINOIntel 推理引擎,针对 CPU / VPU / FPGA 优化x86 平台 CPU 推理加速,无需 GPU
+ +

主流检测模型对比

+ + + + + + + + + +
模型类型精度 (mAP)速度适用场景
YOLOv8单阶段 Anchor-Free实时检测、边缘部署
YOLOv10单阶段 NMS-Free更高更快端到端实时检测
Faster R-CNN两阶段最高高精度离线分析
SSD单阶段中等轻量级移动端
RT-DETR基于 Transformer较快端到端 + 全局上下文建模
+ +

视频流推理 Pipeline(工程实践)

+
+┌──────────┐    ┌──────────┐    ┌──────────┐    ┌──────────┐    ┌──────────┐
+│  RTSP    │───→│  解码    │───→│  抽帧    │───→│  YOLO    │───→│  告警    │
+│  取流    │    │ FFmpeg   │    │ (1-N fps)│    │  推理    │    │  推送    │
+└──────────┘    └──────────┘    └──────────┘    └──────────┘    └──────────┘
+                                                     │
+                                                     ▼
+                                              ┌──────────┐
+                                              │ 目标跟踪  │
+                                              │ DeepSORT │
+                                              └──────────┘
+
+ + +

常见应用场景与模型选型

+ + + + + + + + + +
场景检测目标推荐模型部署方式
安全生产安全帽、反光衣、烟火、区域入侵YOLOv8s边缘盒子(Jetson Orin)
智慧交通车牌、车型、车流统计、违停YOLOv8m + LPRNet边缘服务器(T4 GPU)
农业物联网病虫害识别、果实计数、生长阶段YOLOv8n边缘网关 / 云端 GPU
工业质检产品缺陷、尺寸偏差、装配完整性YOLOv8x工业相机 + GPU 工控机
安防监控人脸、人体、异常行为、物品遗留YOLOv8lNVR + 算力卡 / 中心服务器
+ +

实施场景注意事项(实战经验)

+ +
+ 以下基于实际项目踩坑经验总结——涉及 GB/T 28181 国标平台、海康/大华 SDK、开源方案(FastBee / WVP-GB28181 / FFmpeg + YOLO)在真实场景中的落地要点。 +
+ +

摄像头接入与取流

+ + + + + + + + +
问题常见坑对策
协议兼容不同品牌摄像头支持的协议不同——海康优先 ISUP / EHOME,大华有私有 SDK,ONVIF 各厂商实现程度不一优先对接 GB/T 28181 国标(强制标准),兜底 RTSP;海康/大华单独适配 SDK 以获得完整 PTZ 控制和报警回调
RTSP 稳定性RTSP 基于 UDP,网络抖动导致花屏、断流;长时间运行 TCP 会话可能被防火墙断开使用 TCP 传输模式(?tcp 参数);增加断线重连 + 指数退避策略;FFmpeg 设置 -rtsp_transport tcp -stimeout 5000000
多路并发直接拉 50+ 路 RTSP 流导致带宽和连接数爆炸,单台服务器网卡成为瓶颈分级架构:边缘网关(NVR / 工控机)本地拉流 + 推理,只上传告警事件到中心;或使用流媒体服务(ZLM / SRS)统一收流转发
视频编码H.265 摄像头越来越普及,但部分开源推理框架对 H.265 硬解支持不佳确认 GPU 硬解能力(NVIDIA NVDEC / Intel QSV);必要时在接入层统一转码为 H.264;优先选 H.264 流的摄像头子码流做推理
+ +

推理性能与资源规划

+ + + + + + + + + +
问题常见坑对策
GPU 资源估算低估了多路视频并发推理的显存和算力需求,上线后发现 GPU 跑不满或 OOM单路 YOLOv8s 约占用 1.5-2GB 显存;一张 T4(16GB)实际可跑 8-12 路(需留显存给解码 + 前后处理);做好压测再承诺路数
抽帧策略全部 25fps 逐帧推理,GPU 资源浪费且告警风暴(同一个目标连续告警几十次)按场景定抽帧率:周界入侵 5fps、烟火检测 2fps、车牌识别 10fps;配合跳帧 + 告警去重(同一目标同一区域 N 秒内只告警一次)
子码流推理用主码流(1080P/4K)做推理,分辨率远超模型输入尺寸(640×640),浪费解码 + 预处理算力摄像头开启子码流(704×576 或 640×480),专门用于 AI 推理;主码流仅用于录像存储和人工调阅
批处理 vs 实时为提升吞吐量攒批次推理,但引入几百毫秒延迟,告警不及时安防场景优先低延迟:单帧推理、不攒批;离线分析(如事后检索)可以用大 batch 提升吞吐
模型选型误区追求大模型高精度(YOLOv8x),忽略边缘设备算力限制边缘设备用 YOLOv8n/s + TensorRT INT8 量化;中心服务器可用大模型做二次复核(小模型初筛 → 大模型确认)
+ +

告警策略与误报控制

+ + + + + + + + + +
问题常见坑对策
误报泛滥检测灵敏度设太高或未做区域过滤,一天几百条误报告警,客户直接关系统多级过滤:置信度阈值(≥0.6)+ 检测区域 ROI 绘制(排除马路/绿化带等干扰区)+ 时间策略(工作时间告警、非工作时间静默)
告警风暴同一事件持续触发(如一个烟头在画面中 5 分钟,告警 300 次)告警去重窗口:同一摄像头 + 同一目标类别 + N 秒内合并为一条;告警升级机制:持续超过 M 分钟升级为严重告警
目标跟踪丢失DeepSORT 在遮挡、光照变化、密集场景下 ID Switch 严重,导致计数不准结合 ROI 区域限定跟踪范围;遮挡后给 ReID 特征匹配设置合理的超时时间(如 30 帧);密集场景考虑 ByteTrack(低分框也做匹配,抗遮挡更好)
昼夜差异白天训练模型用在夜间红外画面,检测率断崖下降训练集必须包含红外/微光场景样本(至少 20%);或分时段加载不同模型(白天模型 + 夜间模型)
天气影响雨雪雾天气导致画面模糊,检测失效数据增强时加入高斯模糊、亮度抖动、模拟雨雪噪声;极端天气自动切换为移动侦测兜底方案
+ +

存储与回溯

+ + + + + + + +
问题常见坑对策
告警截图丢失只存告警记录不存截图/短视频,事后追查无依据告警触发时同时保存:告警时刻前后各 3 秒的短视频片段 + 关键帧截图 + 检测框标注图;存储策略:热数据 SSD(7 天)、冷数据 NAS/对象存储(90 天)
录像回溯告警记录和录像时间戳不对齐,事后查证时找不到对应录像片段告警记录强制记录 NTP 时间戳(精确到毫秒)+ 摄像头编号 + 帧序号;对接 NVR 录像回放 API 实现一键跳转到告警时刻回放
存储成本全量录像 7×24 存储,100 路 1080P 一个月几十 TB常态录像:低码率 + 移动侦测录像(只录有动静的);告警录像:高清 + 完整片段;定期清理策略自动化
+ +

系统可靠性与运维

+ + + + + + + + + +
问题常见坑对策
单点故障AI 推理服务挂了,所有摄像头告警全部中断,且没有感知服务健康检查 + 自动重启(systemd / k8s 探针);关键通道双机热备;监控告警通道本身的心跳(超过 1 分钟无数据触发运维告警)
GPU 掉卡GPU 长时间运行温度过高掉卡或驱动崩溃,进程无感知卡死定时检测 GPU 可用性(nvidia-smi + CUDA 可用性探针);异常时自动重启推理服务;边缘设备注意散热和防尘
模型更新模型迭代后直接全量替换,新模型在某个点位效果变差,缺乏回滚能力灰度发布:先在 10% 通道上验证新模型,对比告警准确率;保留上一版本模型,支持一键回滚;记录模型版本 + 通道的告警效果基线
时钟同步服务器、摄像头、NVR 时钟不同步,告警时序混乱,多路联动失败全系统强制 NTP 对时;摄像头每天自动校时;告警时间以服务器收到帧的时间戳为准(而非摄像头 OSD 时间)
日志与审计出了事故查不到为什么没告警——是模型没检测到?还是告警规则过滤了?还是推送通道断了?全链路埋点:取流状态 → 抽帧计数 → 推理耗时 → 检测结果 → 过滤规则命中 → 告警推送状态,每个环节都可追溯
+ +

国标 GB/T 28181 对接注意事项

+ + + +

技术全景总结

+ + + + + + + + + + + +
方向核心原理
LLMTransformer + 三阶段训练,Self-Attention 是核心
Prompt通过输入设计引导模型行为,CoT 通过中间推理 token 约束输出路径
AgentLLM + 规划 + 工具调用 + 循环决策 = 自主完成任务
Skills 编排业务能力模块化,LLM 语义匹配 + 动态路由,自动编排执行
RAG检索外部知识增强 LLM,离线入库 + 在线问答双 Pipeline,解决幻觉与知识时效
AI CodingAI 辅助代码生成/审查/测试,Agent 模式实现自主开发闭环
YOLO单阶段目标检测,Backbone+Neck+Head 架构,一次前向传播同时输出检测框与类别,适合实时视频流推理
+ +
+ + \ No newline at end of file diff --git a/AI核心技能原理说明.md b/AI核心技能原理说明.md new file mode 100644 index 0000000..f33bc00 --- /dev/null +++ b/AI核心技能原理说明.md @@ -0,0 +1,268 @@ +# AI 核心技能原理说明 + +> 面试快速回顾用,每条控制在 2-3 分钟可讲完。 + +--- + +## 1. 大语言模型(LLM)基础 + +### 核心原理 +- **Transformer 架构**:所有现代 LLM 的基础。核心是 Self-Attention 机制——每个 token 计算与序列中所有其他 token 的相关性权重,并行处理,突破 RNN 的串行瓶颈。 +- **训练三阶段**: + 1. **Pre-training**(预训练):海量语料上做 Next Token Prediction,学习语言的统计规律和世界知识 + 2. **SFT**(监督微调):用高质量指令-回答对训练,让模型学会"对话" + 3. **RLHF**(人类反馈强化学习):用人类偏好数据训练奖励模型,再用 PPO 优化,对齐人类价值观 + +### 关键概念 +| 概念 | 说明 | +|------|------| +| **Token** | 模型处理的最小文本单元,中文约 1.5-2 字符/token | +| **Context Window** | 模型一次能处理的 token 上限(如 128K、200K) | +| **Temperature** | 控制输出随机性,0=确定性,1=高随机 | +| **Top-P / Top-K** | 采样策略,限制候选 token 范围 | + +### 主流模型对比 +| 模型 | 特点 | 适用场景 | +|------|------|----------| +| GPT-4o | 多模态,综合最强 | 复杂推理、多模态任务 | +| Claude 4 | 长上下文 200K,安全性高 | 长文档分析、代码生成 | +| DeepSeek-V3 | 开源,性价比高,MoE 架构 | 国内部署、成本敏感场景 | +| 通义千问 | 中文优化,阿里云生态 | 政务、企业中文场景 | + +### 面试要点 +- 说清楚 Transformer 的 Self-Attention 解决了什么问题(长距离依赖、并行化) +- 能解释为什么需要 RLHF(对齐问题——模型能力强但不一定听话) +- 知道怎么选模型:看场景(精度/成本/延迟)、看上下文长度、看部署方式 + +--- + +## 2. Prompt Engineering + +### 核心方法论 +| 技术 | 原理 | 示例 | +|------|------|------| +| **Zero-shot** | 不给示例,直接提问 | "将以下文本分类为正面/负面:..." | +| **Few-shot** | 给 2-5 个示例,模型学会模式 | 示例1 → 示例2 → 新输入 | +| **CoT**(思维链) | 要求模型"一步步思考",激活推理能力 | "让我们一步步分析:首先...其次..." | +| **结构化输出** | 约束输出格式(JSON/XML)| "请以 JSON 格式返回,包含 name、age 字段" | +| **Self-Consistency** | 多次采样 + 投票,提升推理准确率 | 同一问题跑 5 次,取多数答案 | + +### 为什么 CoT 有效 +- LLM 是自回归的——每个 token 基于前文生成 +- 写出推理过程 = 给模型更多"思考空间",中间步骤的 token 约束了后续输出的方向 +- 复杂推理任务(数学、逻辑)中 CoT 可将准确率从 ~20% 提升到 ~80% + +### Function Calling 原理 +1. 定义函数的 JSON Schema(函数名、参数、描述) +2. 模型判断用户意图 → 返回函数名 + 结构化参数(而非自然语言) +3. 应用层执行函数 → 结果回传模型 → 模型生成最终回复 +4. 本质:让模型"学会"输出结构化指令,而非直接回答 + +### 面试要点 +- 能解释 CoT 的原理(通过中间 token 约束推理路径) +- 能说清楚 Function Calling 的流程(不是模型调用函数,是模型输出参数,应用层执行) +- 准备一个实际案例(如:好差评系统中用 Few-shot + CoT 做评价分类) + +--- + +## 3. Agent 智能体 + +### 核心架构 +``` +用户输入 → Agent Core(LLM)→ 规划(Plan) + → 调用工具(Tool Use) + → 观察结果(Observation) + → 反思调整(Reflection) + → 循环直到目标达成 → 输出 +``` + +### 关键设计模式 +| 模式 | 原理 | 适用场景 | +|------|------|----------| +| **ReAct** | Reasoning + Acting 交替:思考一步 → 执行一步 → 观察 → 再思考 | 需要与外部交互的任务 | +| **Plan-and-Execute** | 先生成完整计划,再逐步执行 | 复杂多步任务 | +| **Multi-Agent** | 多个 Agent 分工协作,各司其职 | 跨领域复杂流程 | + +### 多 Agent 协作 +- **分工原则**:每个 Agent 有明确角色和工具集,互不越界 +- **通信方式**: + - 共享内存/消息队列:Agent A 输出 → Agent B 输入 + - 中央调度器:Orchestrator 统一分发任务、汇总结果 +- **冲突仲裁**:定义优先级规则或由调度 Agent 决策 + +### 安全护栏(Guardrails) +- **输入护栏**:敏感词过滤、注入攻击检测 +- **输出护栏**:内容合规校验、事实性核查 +- **行为护栏**:限制可调用的工具范围、设置最大循环次数防止死循环 + +### 面试要点 +- 说清楚 Agent 和普通 LLM 调用的区别(Agent 有自主规划 + 工具调用 + 循环决策能力) +- 能画出 Agent 的 ReAct 循环图 +- 准备一个落地案例(如:民政 AI 客服中,Agent 判断用户意图 → 调用知识库检索 → 查办事进度 API → 生成回答) + +--- + +## 4. Skills 编排系统 + +### 设计理念 +将业务能力封装为标准化、可复用的 Skill 模块,由 LLM 根据用户意图自动选择并编排执行。 + +### 架构 +``` +用户输入 + │ + ▼ +意图识别(LLM) + │ + ▼ +Skill 路由(匹配最相关的 Skill 组合) + │ + ▼ +编排执行(串行/并行/条件分支) + │ + ▼ +结果聚合 → 输出 +``` + +### Skill 定义规范 +```json +{ + "name": "report_generator", + "description": "根据查询条件生成业务报表", + "parameters": { + "report_type": "销售报表 / 库存报表 / 财务报表", + "date_range": "起止日期", + "format": "PDF / Excel" + }, + "auth_required": true +} +``` + +### 关键机制 +| 机制 | 说明 | +|------|------| +| **热加载** | Skill 注册/下线不重启系统,通过配置中心或数据库动态生效 | +| **自动路由** | LLM 用语义匹配(Embedding 相似度)找到最相关的 Skill | +| **依赖解析** | Skill A 的输出可能是 Skill B 的输入,编排引擎自动处理依赖顺序 | +| **降级策略** | 首选 Skill 不可用时,自动回退到备选方案或转人工 | + +### 面试要点 +- 类比:Skills 编排 ≈ 微服务 + API 网关 + 服务编排,只是"路由规则"由 LLM 动态决定 +- 能说清楚和 Function Calling 的关系:Skills 编排是更高层的抽象,一个 Skill 可能包含多个 Function Call +- 准备一个例子:用户说"帮我生成上月销售报表并推送到钉钉"→ 路由到 `report_generator` + `dingtalk_notifier` 两个 Skill + +--- + +## 5. 知识库(RAG)系统 + +### 为什么需要 RAG +- LLM 训练数据有截止日期,无法回答最新问题 +- LLM 可能产生幻觉(编造不存在的事实) +- 企业私有数据不能用于训练公共模型 +- RAG = **检索(Retrieve)+ 增强(Augment)+ 生成(Generate)** + +### 核心流程 +``` +文档入库(离线): + 原始文档 → 解析 → 分块 → Embedding → 存入向量数据库 + +在线问答: + 用户提问 → Embedding → 向量检索(Top-K)→ 拼接 Prompt → LLM 生成 → 返回 +``` + +### 关键技术细节 + +**分块策略(Chunking)** +| 策略 | 适用 | 优缺点 | +|------|------|--------| +| 固定长度 | 通用场景 | 简单但可能切断语义 | +| 语义分块 | 长文档 | 按段落/章节切分,语义完整 | +| 滑动窗口 | 需要上下文 | 相邻块有重叠,避免信息断裂 | + +**Embedding 模型选择** +- 中文:bge-large-zh、text2vec-large-chinese、m3e +- 多语言:text-embedding-3-large(OpenAI)、bge-m3 + +**检索优化** +| 技术 | 说明 | +|------|------| +| 混合检索 | 语义检索(向量)+ 关键词检索(BM25)加权融合 | +| Rerank | 粗召回后用精排模型重排序,提升 Top-N 精度 | +| 元数据过滤 | 按时间/分类/权限等结构化字段预过滤 | + +### 面试要点 +- 画出 RAG 的架构流程图(离线入库 + 在线问答两条线) +- 能解释 Embedding 的本质(将文本映射到高维向量空间,语义相近的文本向量距离近) +- 准备一个踩坑经验:分块大小怎么定?检索不准怎么优化? + +--- + +## 6. AI Coding + +### 主流工具原理 +| 工具 | 底层原理 | 特点 | +|------|----------|------| +| **Claude Code** | Claude 模型 + 工具调用(文件读写/Shell/搜索),Agent 模式自主执行 | 复杂任务拆解,长期上下文 | +| **GitHub Copilot** | Codex 模型,实时上下文(当前文件+相邻Tab+项目结构)补全 | IDE 深度集成,毫秒级响应 | +| **Cursor** | 多模型支持,全文件上下文编辑,Composer 模式 | 重构友好,Diff 预览 | +| **Aider** | CLI 工具,Git 集成,Map-Reduce 处理大代码库 | 终端场景,可脚本化 | + +### AI Coding 的工作模式 +1. **补全模式**:根据光标上下文,实时续写代码(Copilot 类) +2. **对话模式**:自然语言描述需求 → AI 生成/修改代码(Cursor/Claude Code) +3. **Agent 模式**:AI 自主规划 → 读写文件 → 执行命令 → 检查结果 → 迭代修复(Claude Code) + +### 工程化实践 +- **小步提交**:每次 AI 修改控制在 200 行 diff 以内,便于 Review 和回滚 +- **测试驱动**:先让 AI 写测试,再让 AI 写实现,"测试是 AI 的 spec" +- **代码审查**:AI 生成代码必须人工 Review,关注边界条件和安全问题 +- **Prompt 工程**:清晰的上下文(项目结构 + 技术栈 + 编码规范)大幅提升 AI 输出质量 + +### 面试要点 +- 能对比主要工具(Copilot vs Cursor vs Claude Code)的差异和选型理由 +- 能用实际案例说明效率提升(如:原本 3 天的 CRUD 模块,AI 辅助 4 小时完成) +- 对 AI 代码的局限性有清醒认识(复杂业务逻辑、安全敏感代码需人工把关) + +--- + +## 7. AI 视觉(YOLO) + +### YOLO 核心思想 +- **You Only Look Once**:将目标检测转化为回归问题 +- 输入图片 → 单次 CNN 前向传播 → 同时输出边界框 + 类别概率 +- 相比 R-CNN 系列的两阶段方法(先提候选区 → 再分类),YOLO 更快,适合实时场景 + +### 演进路线 +| 版本 | 关键改进 | 年份 | +|------|----------|------| +| YOLOv5 | 工程化最成熟,社区生态好 | 2020 | +| YOLOv8 | 无锚框检测,多任务(检测/分割/姿态)统一框架 | 2023 | +| YOLOv10 | NMS-Free,端到端,效率进一步提升 | 2024 | + +### 训练部署流程 +``` +数据采集 → 标注(LabelImg/LabelStudio)→ 数据集划分(训练/验证/测试) + → 数据增强(翻转/旋转/色彩抖动/Mosaic) + → 模型训练(预训练权重微调) + → 模型转换(ONNX/TensorRT) + → 边缘/服务端部署 +``` + +### 面试要点 +- 能解释 YOLO 为什么快(单阶段,一次前向传播出所有结果) +- 能说清楚 mAP@0.5 是什么(IoU 阈值 0.5 时的平均精度) +- 准备一个实际场景(如:安全帽检测的完整 Pipeline——RTSP 取流 → 抽帧 → YOLO 推理 → 告警推送) + +--- + +## 面试速查:一句话总结每个方向 + +| 方向 | 一句话 | +|------|--------| +| LLM | Transformer + 三阶段训练,Self-Attention 是核心 | +| Prompt | 通过输入设计引导模型行为,CoT 通过中间推理提升准确率 | +| Agent | LLM + 规划 + 工具调用 + 循环决策 = 自主完成任务 | +| Skills 编排 | 业务能力模块化,LLM 动态路由,自动编排执行 | +| RAG | 检索外部知识增强 LLM,解决幻觉和知识截止问题 | +| AI Coding | AI 辅助代码生成/审查/测试,Agent 模式实现自主开发 | +| YOLO | 单阶段目标检测,一次前向传播出检测框+类别,实时性好 | diff --git a/Claude Code 工程师使用指南/报告/claude-code-engineering-guide.html b/Claude Code 工程师使用指南/报告/claude-code-engineering-guide.html index 753b6c3..e9d314a 100644 --- a/Claude Code 工程师使用指南/报告/claude-code-engineering-guide.html +++ b/Claude Code 工程师使用指南/报告/claude-code-engineering-guide.html @@ -355,6 +355,7 @@
+ ← 返回知识库

Claude Code 工程师使用指南

v2.1 · 2026-04-29
diff --git a/Graphify 深度分析报告/代码/graphify-analysis.html b/Graphify 深度分析报告/代码/graphify-analysis.html index 8763b09..b54dec4 100644 --- a/Graphify 深度分析报告/代码/graphify-analysis.html +++ b/Graphify 深度分析报告/代码/graphify-analysis.html @@ -450,6 +450,7 @@ a { color: var(--color-primary); }
+ ← 返回知识库

Graphify-rs 深度分析报告

22K+ Stars diff --git a/MySQL转PostgreSQL迁移工具/报告/mysql-to-pg-migration-tools.html b/MySQL转PostgreSQL迁移工具/报告/mysql-to-pg-migration-tools.html index 79114e1..dd06bcb 100644 --- a/MySQL转PostgreSQL迁移工具/报告/mysql-to-pg-migration-tools.html +++ b/MySQL转PostgreSQL迁移工具/报告/mysql-to-pg-migration-tools.html @@ -350,6 +350,7 @@
+ ← 返回知识库

MySQL 转 PostgreSQL 迁移工具对比

diff --git a/YqBoot系统说明书/系统说明书-演示文稿.html b/YqBoot系统说明书/系统说明书-演示文稿.html index 2141857..c3c8a8b 100644 --- a/YqBoot系统说明书/系统说明书-演示文稿.html +++ b/YqBoot系统说明书/系统说明书-演示文稿.html @@ -57,6 +57,7 @@ +← 返回知识库
diff --git a/YqBoot系统说明书/系统说明书.html b/YqBoot系统说明书/系统说明书.html index 80f5f79..57ff7aa 100644 --- a/YqBoot系统说明书/系统说明书.html +++ b/YqBoot系统说明书/系统说明书.html @@ -323,6 +323,7 @@
+ ← 返回知识库

YqBoot 企业级敏捷开发平台

一套平台 · 多种场景 · 快速交付 · 安全可控

diff --git a/crmeb-mer-graph-report.html b/crmeb-mer-graph-report.html index d3dc527..54d5c6c 100644 --- a/crmeb-mer-graph-report.html +++ b/crmeb-mer-graph-report.html @@ -500,6 +500,7 @@ code {

+ ← 返回知识库
CRMEB-MER 项目图谱报告
graphify-rs · 2026-05-06 · JAVA-MER-2.2
diff --git a/graphify-rs使用手册/报告/graphify-rs-usage-guide.html b/graphify-rs使用手册/报告/graphify-rs-usage-guide.html index 8757f3b..e204959 100644 --- a/graphify-rs使用手册/报告/graphify-rs-usage-guide.html +++ b/graphify-rs使用手册/报告/graphify-rs-usage-guide.html @@ -254,6 +254,7 @@ tr:hover td { background: var(--bg-tertiary); }
+ ← 返回知识库

graphify-rs 使用手册

v1.x
diff --git a/mcp-services-guide/index.html b/mcp-services-guide/index.html index f263463..59a4248 100644 --- a/mcp-services-guide/index.html +++ b/mcp-services-guide/index.html @@ -400,6 +400,7 @@ li { margin: 4px 0; color: var(--text-secondary); font-size: 0.92rem; }
+ ← 返回知识库

MCP 服务大全 — 开发者指南

2026-04 · 20+ 服务
diff --git a/szihl-soe-reform-report.html b/szihl-soe-reform-report.html index 6213995..08373cf 100755 --- a/szihl-soe-reform-report.html +++ b/szihl-soe-reform-report.html @@ -119,6 +119,7 @@ body{
+ ← 返回知识库 diff --git a/中医馆内部管理系统/报告/中医馆内部管理系统_需求分析对比报告.html b/中医馆内部管理系统/报告/中医馆内部管理系统_需求分析对比报告.html index b5e979d..9c842bb 100644 --- a/中医馆内部管理系统/报告/中医馆内部管理系统_需求分析对比报告.html +++ b/中医馆内部管理系统/报告/中医馆内部管理系统_需求分析对比报告.html @@ -359,6 +359,7 @@
+← 返回知识库

中医馆内部管理系统 — 需求分析对比报告

基于现有需求文档,逐模块进行完整性、合理性和风险分析,每项建议注明理由
diff --git a/中医馆内部管理系统/报告/中医馆内部管理系统_需求分析对比报告_mobile.html b/中医馆内部管理系统/报告/中医馆内部管理系统_需求分析对比报告_mobile.html index ecfe580..e902651 100644 --- a/中医馆内部管理系统/报告/中医馆内部管理系统_需求分析对比报告_mobile.html +++ b/中医馆内部管理系统/报告/中医馆内部管理系统_需求分析对比报告_mobile.html @@ -236,6 +236,7 @@ body {
+ ← 返回知识库

中医馆内部管理系统

需求分析对比报告 · 2026/05/23
diff --git a/交互式演示/tetrahedron-interactive.html b/交互式演示/tetrahedron-interactive.html index 0d13239..c16175a 100644 --- a/交互式演示/tetrahedron-interactive.html +++ b/交互式演示/tetrahedron-interactive.html @@ -36,6 +36,7 @@ canvas:active { cursor: grabbing; } +← 返回知识库

正四面体旋转动画

鼠标拖拽旋转 · 铰链展开

diff --git a/代码图谱工具调研/报告/code-structure-tools-analysis.html b/代码图谱工具调研/报告/code-structure-tools-analysis.html index 78eae7c..845baa1 100644 --- a/代码图谱工具调研/报告/code-structure-tools-analysis.html +++ b/代码图谱工具调研/报告/code-structure-tools-analysis.html @@ -407,6 +407,7 @@
+ ← 返回知识库

代码结构分析工具对比分析

diff --git a/全域智能认证与门户平台/报告/identity-auth-center-tech-analysis.html b/全域智能认证与门户平台/报告/identity-auth-center-tech-analysis.html index 518c5af..5944925 100644 --- a/全域智能认证与门户平台/报告/identity-auth-center-tech-analysis.html +++ b/全域智能认证与门户平台/报告/identity-auth-center-tech-analysis.html @@ -228,6 +228,7 @@ code {
+ ← 返回知识库

身份认证中心

技术解析与开源项目匹配度分析报告
diff --git a/全域智能认证与门户平台/报告/opensource-iam-selection-report.html b/全域智能认证与门户平台/报告/opensource-iam-selection-report.html index db4e277..944d4b4 100644 --- a/全域智能认证与门户平台/报告/opensource-iam-selection-report.html +++ b/全域智能认证与门户平台/报告/opensource-iam-selection-report.html @@ -210,6 +210,7 @@ code {
+ ← 返回知识库

开源 IAM 项目选型报告

身份认证中心匹配度分析
diff --git a/全域智能认证与门户平台/报告/unified-auth-portal-requirements.html b/全域智能认证与门户平台/报告/unified-auth-portal-requirements.html index aa64124..ee6f6ab 100644 --- a/全域智能认证与门户平台/报告/unified-auth-portal-requirements.html +++ b/全域智能认证与门户平台/报告/unified-auth-portal-requirements.html @@ -204,6 +204,7 @@ code {
+ ← 返回知识库

全域智能认证与门户平台

需求分析报告
diff --git a/分销商城推广模式调研/报告/分销商城推广模式全景调研.html b/分销商城推广模式调研/报告/分销商城推广模式全景调研.html index 2068e55..28f0cb7 100644 --- a/分销商城推广模式调研/报告/分销商城推广模式全景调研.html +++ b/分销商城推广模式调研/报告/分销商城推广模式全景调研.html @@ -169,6 +169,7 @@ pre {
+ ← 返回知识库

分销商城推广模式全景调研报告

四大类 20+ 种模式 · 微三云特色模式 · 价格体系 · 合规框架 · 收益分析
diff --git a/在线下单配送抢单小程序调研/报告/delivery-order-grabbing-mini-program-research.html b/在线下单配送抢单小程序调研/报告/delivery-order-grabbing-mini-program-research.html index 83c06be..e878575 100644 --- a/在线下单配送抢单小程序调研/报告/delivery-order-grabbing-mini-program-research.html +++ b/在线下单配送抢单小程序调研/报告/delivery-order-grabbing-mini-program-research.html @@ -259,6 +259,7 @@ code {
+ ← 返回知识库

在线下单配送抢单小程序调研报告

Top 5 开源项目横向对比分析
diff --git a/张德海_简历.docx b/张德海_简历.docx new file mode 100644 index 0000000..c6dce00 Binary files /dev/null and b/张德海_简历.docx differ diff --git a/张德海_简历.html b/张德海_简历.html index bf2ee7a..9535ad6 100644 --- a/张德海_简历.html +++ b/张德海_简历.html @@ -3,706 +3,419 @@ -张德海 — 个人简历 +张德海 · 个人简历 - -
-

张德海

-
Java 全栈工程师 · 技术管理者 · AI 应用实践者
-
- 📍 沈阳 - 📅 20年经验 - 🎓 沈阳工业大学 本科 - 📞 13840243721 -
-
+
-
- - -
-

专业概述

-
- 20年Java技术栈全栈开发老兵,从JSP/Servlet时代到微服务/云原生,亲历并主导了Web开发技术的多次迭代。具备10+年技术团队管理经验,擅长技术架构选型、团队搭建与绩效管理。累计服务50+客户,覆盖电商、物联网、医疗、政务、工业制造等多个垂直行业。近年深耕AI/大模型应用落地,在智能体(Agent)、Skills编排、知识库(RAG)等方向有完整的项目实践经验。 -
-
- 技术广度:全栈 + 视频协议 + AI落地 - AI落地能力:Agent · Skills · RAG - AI Coding:Claude Code / Copilot / Cursor - 行业深耕:医疗 · 供热 · 电商供应链 - 管理成熟:10年+全流程管控 - 驻场实战:三甲医院 · 部队医院 · 供热企业 + +
+ ← 返回知识库 +

张德海

+
+ 沈阳 + 20年 Java 全栈 + 沈阳工业大学 · 计算机科学与技术 + 13840243721
-
+
- -
+ +
+

概述

+
+

+ 20年Java全栈开发,从Servlet到微服务完整演进。具备10年+技术管理经验,累计服务50+客户,覆盖电商、物联网、医疗、政务、工业制造等领域。近年深耕AI/大模型应用落地—— Agent智能体、Skills编排、RAG知识库均有完整项目交付。精通Claude Code、Copilot等AI Coding工具。 +

+
+ 全栈 · 视频协议 · AI落地 + Agent · Skills · RAG + AI Coding: Claude Code / Copilot / Cursor + 医疗 · 供热 · 电商 深耕 + 10年+ 技术管理 + 驻场: 三甲医院 · 供热企业 +
+
+
+ + +

技术能力

+
- - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + +
技术领域具体技术熟练度
领域技术熟练度
后端框架Spring Boot / Spring Cloud / MyBatis / Hibernate / JSP+Servlet⭐⭐⭐⭐⭐
前端技术Vue.js / React / 微信小程序 / Uni-App / HTML5⭐⭐⭐⭐
数据库MySQL / PostgreSQL / Oracle / Redis / MongoDB⭐⭐⭐⭐⭐
视频协议GB/T 28181 / ONVIF / RTSP / 海康ISUP / 大华SDK⭐⭐⭐⭐⭐
AI / 大模型LLM应用(ChatGPT/Claude/DeepSeek/通义千问)/ Agent智能体 / Skills编排 / RAG知识库 / Function Calling / Prompt Engineering / LangChain⭐⭐⭐⭐⭐
AI CodingClaude Code / GitHub Copilot / Cursor / Windsurf / Aider / AI代码审查与重构 / 自动化测试生成⭐⭐⭐⭐⭐
AI视觉视频智能识别 / 目标检测(YOLO系列)/ 自定义模型训练与部署⭐⭐⭐⭐
物联网MQTT / Modbus RTU&TCP / 时序数据库(InfluxDB/TDengine)/ 规则引擎 / OTA固件升级 / 边缘计算⭐⭐⭐⭐⭐
DevOpsDocker / Jenkins / Git / Linux运维⭐⭐⭐⭐
项目管理敏捷开发 / 需求分析 / 技术方案编写 / 团队绩效评估⭐⭐⭐⭐⭐
后端框架Spring Boot / Spring Cloud / MyBatis / Hibernate / JSP+Servlet★★★★★
前端技术Vue.js / React / 微信小程序 / Uni-App / HTML5★★★★
数据库MySQL / PostgreSQL / Oracle / Redis / MongoDB★★★★★
视频协议GB/T 28181 / ONVIF / RTSP / 海康 ISUP / 大华 SDK★★★★★
AI / 大模型LLM 应用 / Agent / Skills 编排 / RAG / Function Calling / Prompt Engineering / LangChain★★★★★
AI CodingClaude Code / Copilot / Cursor / Windsurf / Aider / AI代码审查 / 自动测试生成★★★★★
AI 视觉视频智能识别 / 目标检测(YOLO)/ 自定义模型训练部署★★★★
物联网MQTT / Modbus / 时序数据库(InfluxDB/TDengine)/ 规则引擎 / OTA / 边缘计算★★★★★
DevOpsDocker / Jenkins / Git / Linux 运维★★★★
项目管理敏捷开发 / 需求分析 / 技术方案 / 团队绩效★★★★★
-
+
+ - -
+ +

工作经历

-
-
- 沈阳跃迁大数据有限公司 - 技术部经理 - 2023.06 — 至今 · 沈阳 +
+
+ 上海电气集团数字科技有限公司 + 技术部经理 + 2023.06 — 至今 · 上海 · 大客户及解决方案中心
+
  • 全面负责技术部日常开发管理,主导技术路线规划与架构选型;面向大客户提供定制化解决方案
+
物联网
    -
  • 全面负责技术部日常开发管理工作,管理 X人 研发团队;主导技术路线规划与技术架构选型、搭建
  • -
-
▎物联网方向
-
    -
  • 主导物联网综合管理平台整体架构设计与开发,支持MQTT、Modbus、HTTP多协议设备接入
  • -
  • 搭建设备管理与监控中心:设备注册、状态监控、OTA远程升级、故障诊断与告警
  • -
  • 设计时序数据存储方案(InfluxDB/TDengine + Redis + MySQL),支撑万级设备并发上报
  • -
  • 构建数据可视化大屏:设备GIS分布、实时仪表盘、历史趋势、异常告警推送
  • -
  • 实现规则引擎:自定义阈值告警、联动控制策略;多租户权限体系
  • +
  • 主导物联网综合管理平台架构设计与开发,支持 MQTT、Modbus、HTTP 多协议接入
  • +
  • 设备管理中心:注册鉴权、状态监控、OTA 升级、故障诊断;时序存储(InfluxDB/TDengine + Redis + MySQL)
  • +
  • 规则引擎 + 数据可视化大屏(ECharts/G2)+ 多租户 SaaS + 边缘计算(断网续传)
  • 覆盖场景:工业设备监控、农业物联网、能源能耗管理
-
▎AI方向
+
AI
    -
  • 搭建企业级AI Agent智能体平台,实现业务自动化与智能决策
  • -
  • 设计并落地Skills编排系统,将核心业务能力封装为可插拔Skill模块
  • -
  • 搭建基于RAG架构的企业知识库平台,覆盖制度问答、产品咨询、合同审查等场景
  • -
  • 完成多个AI项目从0到1交付:模型选型 → Prompt工程 → Agent架构 → 效果评测
  • -
  • 推动AI Coding工具在团队中的落地应用,建立AI辅助开发最佳实践
  • +
  • 搭建企业级 AI Agent 智能体平台,实现业务自动化与智能决策
  • +
  • 设计并落地 Skills 编排系统,业务能力封装为可插拔 Skill,LLM 自动路由
  • +
  • 搭建 RAG 企业知识库平台(向量检索 + 混合检索),覆盖制度问答、产品咨询、合同审查
  • +
  • 推动 AI Coding 工具在团队落地,建立 AI 辅助开发最佳实践
-
▎政务项目
+
政务
    -
  • 主导某省政务服务"好差评"系统开发与长期运维,覆盖省/市/县/乡镇四级政务大厅
  • -
  • 承接省总工会数字化服务平台:会员管理、活动发布、在线投票、法律援助等
  • -
  • 主导某市民政局AI智能客服:基于大模型+RAG实现民政业务智能咨询问答
  • -
  • 负责政务项目信创适配与等保合规工作
  • +
  • 某省政务服务"好差评"系统:四级大厅覆盖,多渠道评价,差评整改闭环,信创适配 + 等保
  • +
  • 省总工会数字化平台:会员管理、活动发布、在线投票、法律援助、普惠商城
  • +
  • 某市民政局 AI 智能客服:大模型 + RAG 民政知识库,Function Calling 办事查询,人工接管
-
-
- 沈阳易住网络科技有限公司 - 网络工程师(技术管理岗) - 2017.07 — 2023.05 · 沈阳 +
+
+ 沈阳易住网络科技有限公司 + 技术经理 + 2017.07 — 2023.05 · 沈阳
    -
  • 业务调研:深入客户现场进行需求挖掘与业务流程梳理,输出解决方案
  • -
  • 方案设计:独立及协作完成技术解决方案编写,参与售前技术支持
  • -
  • 团队管理:负责任务分配、进度跟踪、技术攻关协调,直接向技术副总汇报
  • -
  • 薪酬评估:参与团队成员的绩效评估与薪酬调整建议
  • -
  • 工作覆盖电商、医疗、视频融合、小程序等多个业务线
  • +
  • 软件外包服务商,面向政企客户提供定制化方案;从技术骨干成长为管理岗,深度参与公司技术体系建设
  • +
  • 团队管理:全面负责研发团队管理,任务分配、进度跟踪、技术攻关与代码审查,直接向技术副总汇报;负责绩效评估与梯队培养
  • +
  • 业务与售前:主导多项目客户现场需求调研,独立及协作完成技术方案编写,参与售前答辩与投标
  • +
  • 技术架构:主导技术栈从 SSH/SSM 单体架构向 Spring Boot + Vue 前后端分离演进;解决视频协议适配、医院异构系统对接等核心技术难题
  • +
  • 业务线:电商(多商户商城/供应链/进销存)、医疗(HIS/DRGs/预约挂号/院内导航)、视频融合(国标+AI识别)、小程序(到家/预约/配送)、办公(药品/铸沙/钢铁 行业OA)
-
-
- 沈阳普峰国际旅行社 - 技术部经理 - 2016.05 — 2017.06 · 沈阳 +
+
+ 沈阳普峰国际旅行社 + 技术部经理 + 2016.05 — 2017.06 · 沈阳 +
+
  • 负责技术团队管理,主导旅游电商平台新产品设计开发
+
+ +
+
+ 大连海心信息工程有限公司 + 软件工程师 → 项目经理 + 2012.05 — 2016.05 · 大连
    -
  • 负责技术团队管理,主导旅游电商平台新产品设计开发
  • +
  • 前半年负责供热行业遗留系统维护与现场需求确认;后 3.5 年任项目经理,全面负责项目管理与交付
  • +
  • 深入理解供热行业:经营管理、生产调度、安全管理,热源→管网→换热站→热用户全链条
  • +
  • 代表项目:天津能源投资集团(集团级供热信息化平台)、北京寰慧(供热数字化升级)、河南鹤壁(供热信息化实施)、扎兰屯(供热系统交付)
-
-
- 大连海心信息工程有限公司 - 软件工程师 → 项目经理 - 2012.05 — 2016.05 · 大连 +
+
+ 大连英极软件 + 软件工程师 → 高级软件工程师 + 2007.12 — 2012.05 · 大连
    -
  • 前半年负责供热行业遗留系统维护与客户现场需求确认、数据调整
  • -
  • 后3.5年担任项目经理,全面负责项目管理、实施交付、需求调研、开发进度跟踪
  • -
  • 深入理解供热行业全貌,覆盖经营管理、生产调度、安全管理等核心模块
  • -
  • 天津能源投资集团 — 项目经理,集团级供热信息化平台项目管理与实施交付
  • -
  • 北京寰慧 — 项目经理,供热系统数字化升级需求分析与开发交付
  • +
  • 公司主营对日金融软件外包,系统学习工程化的 Java 企业级开发流程
  • +
  • 保证金交易系统:核心交易模块开发——保证金计算、风控规则引擎、持仓管理,SSH + Oracle,与日方技术联调
  • +
  • 个人信贷系统:独立运维保障,主导版本迭代——利率模型、还款计划、逾期管理;优化审批流程,人工节点从 8 步缩减至 5 步
  • +
  • 从初级开发成长为项目核心骨干,后期承担新人指导与代码审查,养成严谨工程习惯
-
-
- 大连英极软件 - 软件工程师 - 2007.12 — 2012.05 · 大连 +
+
+ 泰华卓信科技发展有限公司 + 软件工程师 + 2007.01 — 2007.11 +
+
  • 从事 Java Web 开发,正式入行企业级开发
+
+ +
+
+ 沈阳工业大学网络管理中心 + 软件工程师(实习) + 在校期间
    -
  • 保证金交易系统:参与金融交易类系统开发
  • -
  • 个人信贷系统:负责运维保障与功能迭代
  • -
  • Java Web项目:承担多个企业级Web项目开发
  • +
  • 本校 OA 系统:15 人团队协作开发;战场炮火抢修系统(沈阳某军区):3 人团队 2 个月交付
  • +
  • 毕业生资格审查系统(辽宁省教育厅):负责自动审查及统计分析模块
  • +
  • 科技评审系统(辽宁省科技协会):独立完成系统分析、界面设计、代码实现
  • +
  • 技术栈:JSP + JavaBean + Servlet
+
-
-
- 泰华卓信科技发展有限公司 - 软件工程师 - 2007.01 — 2007.11 -
-
  • 从事Java Web开发,正式入行企业级开发
-
- -
-
- 沈阳工业大学网络管理中心 - 软件工程师(实习) - 在校期间 · 沈阳 -
-
    -
  • 本校OA系统:15人团队协作开发校园办公自动化系统
  • -
  • 战场炮火抢修系统(沈阳某军区):3人团队,2个月完成交付
  • -
  • 毕业生资格审查系统(辽宁省教育厅):负责自动资格审查及统计分析模块
  • -
  • 科技评审系统(辽宁省科技协会):独立完成系统分析、界面设计、代码实现
  • -
  • 以上项目均采用 JSP + JavaBean + Servlet 经典技术架构
  • -
-
-
- - -
+ +

行业项目经验

- -
-
-

🛒 电商类系统

+
+
+

电商类系统

+
  • 单商户 / 多商户商城
  • 供应链 / 进销存管理
  • 服务数十个客户
+
+
+

移动端应用

+
  • 到家 / 预约 / 配送小程序
  • 微信生态:支付、推送
  • Uni-App 跨端开发
+
+
+

医疗领域

+
  • HIS / DRGs 管控系统
  • 预约挂号 / 院内导航
  • 驻场:三甲·部队·中小医院
+
+
+

办公类系统

+
  • 药品销售行业 OA
  • 铸沙模型 / 钢铁生产 ERP
  • 多行业定制开发
+
+
+

供热行业

    -
  • 单商户B2C商城系统
  • -
  • 多商户B2B2C平台
  • -
  • 供应链管理系统
  • -
  • 进销存与仓库管理系统
  • -
  • 服务数十个客户
  • +
  • 天津能源 · 北京寰慧 · 河南鹤壁 · 扎兰屯
  • +
  • 收费 / 客服 / 调度 / 安全
  • +
  • 换热站监控 · 管网平衡 · 能耗分析
- -
-

📱 移动端应用

+
+

视频融合平台

+
  • GB/T 28181 / ONVIF / RTSP
  • 海康 ISUP / 大华 SDK
  • AI 视频识别 + 模型训练
+
+
+

物联网综合管理平台

    -
  • 「到家」小程序(家政、维修等)
  • -
  • 「预约」小程序(场馆、服务等)
  • -
  • 微信生态开发(公众号、支付、推送)
  • -
  • Uni-App跨端开发
  • +
  • 设备接入:MQTT / Modbus RTU&TCP / HTTP,适配主流 PLC、传感器、网关
  • +
  • 数据存储:InfluxDB/TDengine + Redis + MySQL,万级设备并发;设备管理:注册鉴权、状态监控、OTA 升级、故障诊断
  • +
  • 规则引擎 + 可视化大屏(ECharts/G2)+ 多租户 SaaS + 边缘计算(断网续传)
- -
-

🏥 医疗领域

+
+

政务类系统

    -
  • HIS系统(医院信息系统)
  • -
  • DRGs管控系统(医保控费)
  • -
  • 预约挂号小程序
  • -
  • 院内导航系统
  • -
  • 驻场:中小型医院 · 三甲医院 · 部队医院
  • -
-
- -
-

🏭 办公类系统

-
    -
  • 药品销售行业办公管理
  • -
  • 铸沙模型生产行业ERP
  • -
  • 钢铁生产办公自动化
  • -
  • 多行业定制开发经验
  • -
-
- -
-

🔥 供热行业(4年 · 大连海心)

-
    -
  • 天津能源投资集团 — 项目经理,集团级供热信息化平台
  • -
  • 北京寰慧 — 项目经理,供热系统数字化升级
  • -
  • 供热收费、客服报修、生产调度
  • -
  • 换热站远程监控、管网平衡调节
  • -
  • 能耗统计、精准供热与节能降耗
  • -
  • 热源→管网→换热站→热用户全链条
  • -
-
- -
-

📹 视频融合平台

-
    -
  • 国标GB/T 28181协议对接
  • -
  • ONVIF / RTSP流媒体协议
  • -
  • 海康ISUP / 大华SDK
  • -
  • 视频智能识别 + 自定义模型训练
  • +
  • 某省"好差评"系统:四级大厅覆盖,多渠道评价接入,实时汇聚与可视化,差评整改闭环,信创适配 + 等保测评
  • +
  • 省总工会数字化平台:会员管理、活动发布、在线投票、法律援助、普惠商城,微信双端覆盖
  • +
  • 某市民政局 AI 智能客服:大模型 + RAG 民政知识库(婚姻/低保/养老/残疾/殡葬),Function Calling 主动服务,人工接管
+
- -
-
-

🌾 物联网综合管理平台

+ +
+

AI / 大模型应用落地

+
+
+

Agent 智能体平台

    -
  • 设备接入:MQTT、Modbus RTU/TCP、HTTP/WebHook,适配主流PLC、传感器、网关
  • -
  • 数据存储:InfluxDB/TDengine + Redis + MySQL,支撑万级设备并发上报
  • -
  • 设备管理:注册鉴权、在线监控、OTA固件升级、故障诊断与日志追溯
  • -
  • 规则引擎:可视化阈值告警与联动策略(温度超限→告警→自动启动降温设备)
  • -
  • 可视化大屏:ECharts/G2 — GIS分布、仪表盘、趋势曲线、告警滚动播报
  • -
  • 多租户 + 边缘计算:SaaS数据隔离 + 边缘预处理 + 断网续传
  • +
  • 自主决策 Agent,多步推理与自动执行
  • +
  • 多 Agent 协作:任务分发、结果汇总、冲突仲裁
  • +
  • Function Calling / Tool Use 打通外部系统
  • +
  • 上下文管理、会话记忆、安全护栏
- -
-

🏛️ 政务类系统

-
    -
  • 某省"好差评"系统:四级政务大厅覆盖,多渠道评价接入(窗口/终端/扫码/短信),实时汇聚与可视化,差评整改闭环,信创适配+等保测评
  • -
  • 省总工会数字化平台:会员管理、活动发布、在线投票、法律援助、普惠商城,微信双端覆盖
  • -
  • 某市民政局AI智能客服:大模型+RAG架构,民政业务知识库(婚姻/低保/养老/残疾/殡葬),Function Calling办事查询,人工无缝接管
  • -
-
-
-
- - -
-

🤖 AI / 大模型应用落地(核心方向)

- -
-
-

智能体(Agent)平台

-
    -
  • 自主决策Agent,多步推理与自动执行
  • -
  • 多Agent协作:任务分发、结果汇总、冲突仲裁
  • -
  • Function Calling / Tool Use打通外部系统
  • -
  • 上下文管理与会话记忆
  • -
  • 安全护栏(Guardrails)设计
  • -
-
- -
+

Skills 编排系统

    -
  • 可插拔Skills框架,热加载与动态调用
  • -
  • LLM自动路由与编排
  • -
  • 覆盖:数据查询、报表、推送、审批流、视频分析
  • -
  • 支持行业定制Skill(医疗DRGs、供热能耗预测等)
  • +
  • 可插拔 Skills 框架,热加载与动态调用
  • +
  • LLM 自动路由与编排(数据查询/报表/推送/审批流/视频分析)
  • +
  • 支持行业定制(医疗 DRGs、供热能耗预测等)
- -
+

知识库(RAG)系统

    -
  • 向量数据库(Milvus / Chroma / FAISS)
  • -
  • 文档Pipeline:解析→分块→向量化→索引
  • +
  • 向量数据库:Milvus / Chroma / FAISS
  • +
  • 文档 Pipeline:解析 → 分块 → 向量化 → 索引
  • 混合检索:语义 + 关键词 + 元数据过滤
  • -
  • 增量更新与版本管理
  • 场景:制度问答、客服、辅助诊断、合同审查
- -
-

AI Coding(AI辅助开发)

+
+

AI Coding

  • 精通 Claude Code / Copilot / Cursor / Windsurf / Aider
  • -
  • AI驱动的代码审查与Bug自动修复
  • -
  • 自动化测试生成(单元测试/集成测试)
  • -
  • 主流方案差异分析与团队选型推荐
  • -
  • 自主编程Agent方向关注与实践
  • +
  • AI 驱动代码审查与 Bug 自动修复
  • +
  • 自动化测试生成(单元/集成)
  • +
  • 关注自主编程 Agent、MCP 协议等前沿方向
+ -
- 项目实践总结: - 独立完成从模型选型 → 架构设计 → 工程落地 → 效果评测的AI项目全流程 · 熟悉OpenAI / Anthropic / 国内模型厂商API适配切换 · 掌握Prompt Engineering(Few-shot / CoT / 结构化输出)· Token消耗优化与模型分级调用 · 关注MCP协议、Agent通信协议等前沿方向 -
-
- - -
+ +

教育背景

- - - +
学校学历专业
沈阳工业大学本科(计算机相关专业)
沈阳工业大学本科计算机科学与技术
-
+ - -
+ +

自我评价

-
- 经验丰富
- 20年Java开发生涯,亲历Web技术从Servlet到微服务的完整演进,能快速判断技术方案的可行性与风险。 -
-
- AI落地实践者
- 从0到1交付AI项目——Agent、Skills编排、RAG知识库均有落地案例。精通主流大模型API集成、Prompt Engineering、模型成本控制。精通Claude Code、Copilot、Cursor等AI Coding工具。 -
-
- 管理成熟
- 10年+技术团队管理经验,擅长目标拆解、任务分配、技术攻关与人员培养。 -
-
- 行业适应力强
- 横跨电商、医疗、供热、物联网、视频安防、AI等多个行业,快速理解陌生业务。 -
-
- 务实落地
- 多次驻场锤炼的解决实际问题能力,以交付结果为导向,不纸上谈兵。 -
-
- 持续学习
- 主动跟进AI前沿(Agent架构、MCP协议、RAG优化、AI Coding工具链),保持技术敏感度。 -
-
- 沟通协作
- 长期担任向上汇报与向下管理的桥梁角色,有效对接技术与非技术团队。 -
+
经验丰富20年Java开发,从Servlet到微服务完整演进,能快速判断方案可行性与风险。
+
AI 落地实践从0到1交付AI项目——Agent、Skills编排、RAG均有落地案例。熟悉主流模型API,掌握Prompt Engineering与成本控制。
+
管理成熟10年+技术团队管理,擅长目标拆解、任务分配、技术攻关与人员培养。
+
行业适应力横跨电商、医疗、供热、物联网、视频安防、AI、政务等多行业。
+
务实落地多次驻场锤炼,以交付结果为导向,不纸上谈兵。
+
持续学习跟进AI前沿(Agent架构、MCP协议、RAG优化、AI Coding工具链)并反哺项目。
-
+ - +
投递时可针对不同岗位方向微调侧重点
- + \ No newline at end of file diff --git a/抖音话题/报告/ai-transformation-speech-and-script.html b/抖音话题/报告/ai-transformation-speech-and-script.html new file mode 100644 index 0000000..1a49471 --- /dev/null +++ b/抖音话题/报告/ai-transformation-speech-and-script.html @@ -0,0 +1,411 @@ + + + + + + AI转型:观点独白 + 口播稿 | 软件行业正在发生的变化 + + + + +
+ ← 返回索引 +

AI转型 · 观点独白 + 口播稿

+
+ +
+ + +
+

📐 六环递进

+

一环推出一环,最终指向商业闭环。

+
+
+
+
窗口期紧迫
+
客户预期已变
采购季是deadline
+
+
+
+
岗位边界消失
+
前端=后端=移动端
全栈已是默认配置
+
+
+
+
管理层崩塌
+
邓巴数被AI打破
中层不再是常设岗
+
+
+
+
老板用AI"看见"
+
亲自用AI读产出
不再被中层过滤
+
+
+
+
精准激励
+
奖金跟产出走
不是跟办公室政治走
+
+
+
+
商业闭环
+
成本→报价
交付→投标→续约
+
+
+
+ + +
+

🎤 观点独白

+
+ ⏱ 约 12–15 分钟 +
+ +

标题:我看到软件行业正在发生的六个变化

+

不是演讲,不是说教,就是把我最近观察到的事情说清楚。先讲一个正在发生的例子,再说为什么这意味着什么。

+ + +

▍ 先讲一个正在发生的项目

+ +
+ 我最近跟的一个政务项目,整个过程中,AI深度参与。 +
+ +
+ 出方案阶段,AI辅助调研、分析、出框架。原型演示阶段,AI辅助出界面、出交互、出文档。 + 结果呢?客户满意度非常高,远远超出预期。 + 我实话实说,这个项目最后能不能拿下来,我不知道。但我知道一件事——客户的预期已经被拉到这个高度了。 + 将来不管谁来做这个项目,如果不能用好AI,根本接不住。 + 以前做项目按周做计划,现在按天交付。客户被喂过一次"三天出全套原型加接口文档",他就回不去了。他的预期被永久性地拉高了。 + 这就是窗口期。不是技术窗口,是客户预期窗口。下个采购季来的时候,还没跟上节奏的,连投标资格都没有。 + 而且不光是政务。企业客户也是一样的。今年,不管是哪个行业,客户都会陆续感受到AI对项目交付的冲击——又快又好。然后他们的预期就会上去,下不来。 +
+ + +

▍ 变化一:岗位边界消失了

+ +
+ 前端、后端、移动端——现在是同一个岗位。 +
+ +
+ 以前说"全栈"是一个高级标签,要加粗写在简历上的。现在呢?默认配置。 + 一个开发者加Cursor加Claude,前端后端移动端测试运维全干了。一个人就是一支团队,不是比喻,每天都在发生。 + 但打开招聘网站,还在分三个岗位招人。HR不知道这个变化,老板也不知道。还在看"3年Vue经验"、"5年Java经验"——按技术栈分组已经没意义了。 +
+ + +

▍ 变化二:管理层崩塌

+ +
+ 岗位合并之后,下一个就是管理层。小组长、研发经理、项目经理,不需要设为常设岗位了。 +
+ +
+ 管理学有个铁律:一个人最多有效管理7个人。大公司必须分层——组长、经理、总监。组织架构的数学基础就是这个"管理幅度"。 + 但AI打破了这个约束。AI能同时追踪所有人的工作进度、分配任务、评价质量。没有信息衰减,不用靠"跟谁吃饭多"来判断。 + 那就简单了。按项目临时组队,谁在那个阶段最懂,谁就是当时的负责人。项目结束,角色消散。 + 这叫流式组织——结构随项目流动,不是固定的层级。传统的"组织架构图"可以扔了。 +
+ + +

▍ 变化三:客户预期已经不可逆

+ +
+ 今年不管是企业客户还是政务客户,已经在体验AI项目的交付速度了。按天交付,不是按周。 +
+ +
+ 客户一旦被"三天出全套原型+接口文档"喂过一次,就回不去了。他的预期永久拉高。 + 下个采购季,标书里"项目周期"那一栏:一家写60天,一家写15天。评标专家怎么打分?不给你犹豫的时间。 + 窗口期就一个采购季的长度。这是客户预期窗口,不是技术窗口。 +
+ + +

▍ 变化四:老板必须亲自用AI

+ +
+ AI转型不是把工具下发给程序员就完了。老板得亲自用。用它来"看见"。 +
+ +
+ 以前你怎么知道谁在干活?中层告诉你。中层怎么知道的?靠感觉。感觉靠什么?靠谁跟他吃饭多、谁PPT做得好。 + AI直接把数据摆在你面前。这个Sprint谁的代码产出最稳定,谁的bug最少,谁的review有深度,谁在关键时刻解决了别人搞不定的问题。 + 中层以前是一个信息漏斗。AI把这个漏斗砸了。老板可以直接看到真相。 + 这不是监控员工。这是让优秀的人被看见。以前被看见要靠向上管理,现在不用了。代码不会说谎。 +
+ + +

▍ 变化五:奖金可以发给正确的人了

+ +
+ 看见之后就是发钱。大多数公司变烂,不是没人才,是人才的付出和回报不对等。 +
+ +
+ 以前奖金靠办公室政治分配——要平衡、要论资排辈、要照顾中层感受。你越过中层奖励一个开发者,中层怎么想?因为这个,很多老板知道该给谁钱,但不敢。 + 中层没了、岗位没了、只有项目组。AI追踪的产出数据摆在那,谁做了什么一清二楚。奖金直接跟产出走。 + 代码不会拍马屁,不会做PPT,不会请你吃饭。它就躺在那,AI读得出来谁是好开发者。 +
+ + +

▍ 变化六:必须落到商业结果上

+ +
+ 前面的东西最后落到三个地方:投标文件、报价单、客户满意度。 +
+ +
+ 研发成本降了。一个人干五个人的活,以前配5个人,现在2个人加AI。成本降了,报价就有竞争力。同样功能同样质量,便宜30%,利润还更高。 + 交付快了。按天交付不是口号,是真的能做到。标书里你写15天别人写60天——这不是价格战,是代际碾压。 + 客户满意了。交付快、质量好、响应及时。客户不傻,续约率和口碑就是最终计分板。 +
+ + +

▍ 收尾

+ +
+ 六个变化串起来就是一句话:AI让我们有机会把公司重新建一遍——更小、更快、更公平。 + 岗位边界消失 → 管理层崩塌 → 客户预期不可逆 → 老板亲自用AI看见真相 → 奖金按产出分配 → 最终体现在报价、投标和续约上。 + 窗口还没关上。但下个采购季,就是分水岭。 +
+ +
+

"以前按周做计划,现在按天交付。
以前一个人一个岗位,现在一个人就是一支团队。
以前中层过滤信息,现在AI让人被看见。
以前奖金靠政治,现在奖金靠数据。"

+
+
+ + +
+

📱 口播稿(短视频脚本)

+
+ ⏱ 约 80 秒 +
+ +

视频标题建议:

+
+

① 前端、后端、移动端,现在是同一个岗位
+ ② 软件公司的中层管理,正在消失
+ ③ 下个采购季,没转型的软件公司会出局

+
+ +
+ +
+
1
+
0:00–0:10
+
+
我最近跟一个政务项目,AI深度参与——出方案用AI,原型演示用AI。结果客户满意度远远超出预期。这个项目能不能拿下来我不知道,但客户的预期已经被拉到这个高度了。以后谁来做,用不好AI都接不住。
+
+
+ +
+
2
+
0:10–0:20
+
+
前端、后端、移动端——现在是同一个岗位。一个开发者加AI等于一个完整团队。全栈以前是高级标签,现在默认配置。一个人干五个人的活,每天都在发生。
+
+
+ +
+
3
+
0:20–0:34
+
+
岗位没了,管理层接着没。一个人最多管7个人的铁律被AI打破。AI能同时追踪所有人——分配工作、追进度、评价质量。组长、经理、项目经理不再是常设岗。按项目组队,结束就散。这叫流式组织。
+
+
+ +
+
4
+
0:34–0:50
+
+
老板得亲自用AI。不是下发工具,是用AI来"看见"——谁在产出、谁是关键节点、谁在摸鱼。以前中层过滤这些信息,AI把漏斗砸了。代码不会说谎。
+
+
+ +
+
5
+
0:50–0:64
+
+
看见之后就发钱。以前奖金靠办公室政治、PPT、吃饭。现在AI追踪产出——代码量、bug率、review深度。把钱发给干活的人。公司变烂不是因为缺人才,是回报不对等。
+
+
+ +
+
6
+
0:64–0:78
+
+
最后落三个地方:投标文件、报价单、客户满意度。成本降了报价有竞争力,交付快了标书有说服力。客户被AI喂过之后预期回不去了。下个采购季,就是分水岭。
+
+
+ +
+ +
+

📋 拍摄备注

+
    +
  • 风格:独白,自己对着镜头说话。不是质问观众,是在分享一个观察。语气笃定、直接、不绕弯。
  • +
  • 语速:偏快,每分钟约300字。全稿约350字,控制在75秒左右。
  • +
  • 情绪线:开头一句话扔出来(0–7s)→ 连续输出事实(7–48s)→ 收束到商业结果(48–75s)。
  • +
  • 可拆条:Beat 1-3可独立成一条("岗位和管理一起消失");Beat 4-5可独立成一条("老板用AI看见+发钱")。
  • +
+
+ +
+ + +
+

📋 附:论点速查表

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#论点演讲时长口播节拍一句话版本
窗口期紧迫2 minBeat 6–7客户预期一旦上去就回不来,下个采购季就是分水岭。
岗位边界消失2 minBeat 1–2前端、后端、移动端——在AI时代是同一个岗位。
管理层崩塌3 minBeat 3AI打破了"一个人最多管7个人"的铁律,中层不再需要常设。
老板用AI"看见"3 minBeat 4老板必须亲自用AI,不是下发给员工,是用它来看到真相。
精准激励3 minBeat 5代码不会说谎,奖金跟产出走,不跟办公室政治走。
商业闭环3 minBeat 6成本降→报价有竞争力;交付快→投标有说服力;满意度高→续约。
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/政府审批流解决方案/政府审批流解决方案.html b/政府审批流解决方案/政府审批流解决方案.html index efa4c9e..88434e9 100644 --- a/政府审批流解决方案/政府审批流解决方案.html +++ b/政府审批流解决方案/政府审批流解决方案.html @@ -132,6 +132,8 @@ +← 返回知识库 +

政府审批流解决方案

diff --git a/智能体平台调研/CONFIG.md b/智能体平台调研/CONFIG.md new file mode 100644 index 0000000..9716cac --- /dev/null +++ b/智能体平台调研/CONFIG.md @@ -0,0 +1,189 @@ +--- +name: spring-ai-alibaba-deployment-config +description: Spring AI Alibaba 全功能平台部署配置清单 — 账号密码、端口、地址 +metadata: + type: project +--- + +# Spring AI Alibaba 全功能平台 — 配置清单 + +> 部署时间:2026-06-05 +> 环境:WSL2 Debian 13 · 本地内网 +> **WSL2 IP:172.18.79.129** +> 关联文档:[[spring-ai-alibaba-deployment-guide]] + +--- + +## 一、服务端口与地址 + +### 中间件 + +| 服务 | 端口 | 用途 | 本地访问 | 内网访问 | +|------|------|------|----------|----------| +| **PostgreSQL 16** | `5432` | Agent 状态 + 数据集 + 向量检索 | `localhost:5432` | `172.18.79.129:5432` | +| **Nacos** | `8848` | 控制台 + HTTP API | `http://localhost:8848/nacos` | `http://172.18.79.129:8848/nacos` | +| **Nacos gRPC** | `9848` | MCP 服务注册发现(gRPC) | `localhost:9848` | — | +| **MinIO API** | `9000` | S3 对象存储 API | `http://localhost:9000` | — | +| **MinIO Console** | `9001` | MinIO Web 管理界面 | `http://localhost:9001` | `http://172.18.79.129:9001` | + +### 应用 + +| 服务 | 端口 | 用途 | 地址 | +|------|------|------|------| +| **Agent Platform** | `8080` | Spring AI Alibaba 主应用 | `http://localhost:8080` | +| **Admin Studio** | `8080/chatui` | 可视化编排 + 评测 + 监控 | `http://localhost:8080/chatui` | +| **Actuator Health** | `8080/actuator/health` | 健康检查 | `http://localhost:8080/actuator/health` | +| **Actuator Metrics** | `8080/actuator/metrics` | 指标采集 | `http://localhost:8080/actuator/metrics` | + +### 外网模型 API + +| 服务 | 地址 | 说明 | +|------|------|------| +| **DashScope(百炼)** | `https://dashscope.aliyuncs.com` | 通义千问 LLM,外网调用 | +| **DashScope 控制台** | `https://dashscope.console.aliyun.com/` | API Key 管理 | + +--- + +## 二、账号密码(开发环境) + +### 中间件凭证 + +| 服务 | 用户名 | 密码 | 数据库/命名空间 | +|------|--------|------|----------------| +| **PostgreSQL** | `sa_agent` | `agent_2026` | `spring_ai_agent` | +| **Nacos** | `nacos`(v2.5.1 默认无鉴权) | `nacos` | — | +| **MinIO** | `minioadmin` | `minioadmin` | — | + +### Nacos 命名空间 + +| 命名空间 ID | 名称 | 用途 | +|-------------|------|------| +| `sa-agent-mcp` | MCP 注册发现 | MCP Server/Client 服务注册 | +| `sa-agent-config` | 动态配置 | Prompt 模板 + 模型参数热更新 | +| `sa-agent-a2a` | A2A 通信 | 多 Agent 跨服务通信(可选) | + +### MinIO Bucket + +| Bucket | 用途 | +|--------|------| +| `sa-agent-memory` | Agent 记忆文件(MEMORY.md / 快照 / 知识图谱) | +| `sa-agent-datasets` | 评测数据集存储 | +| `sa-agent-skills` | 自定义 Skill 文件存储 | + +### 外网 API Key + +| 服务 | 环境变量 | 获取地址 | +|------|----------|----------| +| **DashScope** | `DASHSCOPE_API_KEY` | https://dashscope.console.aliyun.com/ | +| **Jina AI**(可选) | `JINA_API_KEY` | https://jina.ai/ | + +### systemd 服务 + +| 服务名 | 用途 | +|--------|------| +| `agent-platform` | Spring AI Alibaba 应用自启动 | +| `docker` | Docker daemon | + +--- + +## 三、文件路径 + +``` +/mnt/d/wiki/智能体平台调研/ +├── 代码/ +│ ├── docker-compose.yml # 中间件 Docker 编排(Nacos + PG + MinIO) +│ ├── start.sh # 一键启动脚本 +│ ├── health-check.sh # 健康检查脚本 +│ └── agent-platform/ # Spring Boot 应用源码 +│ ├── pom.xml # Maven 依赖(全功能) +│ ├── .env # 环境变量模板 +│ ├── .mvn/settings.xml # Maven 仓库配置 +│ └── src/main/ +│ ├── resources/ +│ │ └── application.yml # 全功能配置 +│ └── java/com/demo/agent/ +│ └── AgentPlatformApplication.java +├── 报告/ +│ ├── ai-agent-platform-comparison.html # 平台调研报告 +│ └── spring-ai-alibaba-deployment-guide.html # 部署指南 +└── CONFIG.md # ← 本文件 +``` + +### Docker 数据卷 + +| 卷名 | 宿主机路径(默认) | 内容 | +|------|-------------------|------| +| `sa_pg_data` | Docker volumes | PostgreSQL 数据文件 | +| `sa_nacos_data` | Docker volumes | Nacos 数据 | +| `sa_minio_data` | Docker volumes | MinIO 对象数据 | + +--- + +## 四、Docker 容器 + +| 容器名 | 镜像 | 自启动 | +|--------|------|--------| +| `sa-pg` | `pgvector/pgvector:pg16` | `restart: unless-stopped` | +| `sa-nacos` | `nacos/nacos-server:v2.5.1` | `restart: unless-stopped` | +| `sa-minio` | `minio/minio:latest` | `restart: unless-stopped` | +| `sa-minio-init` | `minio/mc:latest` | 一次性(初始化 Bucket 后退出) | + +--- + +## 五、快速操作命令 + +### 启动 + +```bash +# 1. 启动中间件(Docker Compose) +cd /mnt/d/wiki/智能体平台调研/代码 +docker compose up -d + +# 2. 加载环境变量 +source agent-platform/.env # 记得先填写 DASHSCOPE_API_KEY + +# 3. 构建并启动应用 +cd agent-platform +mvn spring-boot:run + +# 或构建 jar 后运行 +mvn clean package -DskipTests +java -jar target/agent-platform-1.0.0.jar +``` + +### 停止 + +```bash +# 停止应用:Ctrl+C 或 +sudo systemctl stop agent-platform + +# 停止中间件 +cd /mnt/d/wiki/智能体平台调研/代码 +docker compose down +``` + +### 常用运维 + +```bash +# 查看中间件日志 +docker compose -f /mnt/d/wiki/智能体平台调研/代码/docker-compose.yml logs -f nacos + +# 查看应用日志 +tail -f /mnt/d/wiki/智能体平台调研/代码/agent-platform/logs/agent-platform.log + +# 健康检查 +bash /mnt/d/wiki/智能体平台调研/代码/health-check.sh + +# 数据备份 +pg_dump -h localhost -U sa_agent spring_ai_agent > backup_$(date +%Y%m%d).sql +``` + +--- + +## 六、安全提醒 + +1. **所有密码为开发环境默认值**,生产内网部署后应立即修改 +2. **Nacos 不要暴露到公网**(默认鉴权较简单),当前纯内网使用可接受 +3. **DashScope API Key** 不要提交到 git,已通过 `.gitignore` 排除 `.env` +4. **Nacos Auth Token**(`SecretKey0123...`)是 Nacos 鉴权密钥,生产环境必须更换为 32 位以上随机字符串 +5. PostgreSQL 远程访问(`pg_hba.conf`)已配置 `0.0.0.0/0 md5`,仅限内网使用 diff --git a/智能体平台调研/代码/agent-platform/.env b/智能体平台调研/代码/agent-platform/.env new file mode 100644 index 0000000..ec59196 --- /dev/null +++ b/智能体平台调研/代码/agent-platform/.env @@ -0,0 +1,14 @@ +# Spring AI Alibaba 环境变量 +# 放置在 agent-platform/ 目录下,或 source 到 shell + +# ===== 必选 ===== +# 阿里云百炼 API Key — 获取: https://dashscope.console.aliyun.com/ +export DASHSCOPE_API_KEY=sk-your-dashscope-api-key-here + +# ===== Nacos 命名空间(与 docker-compose 中初始化的一致)===== +export NACOS_CONFIG_NAMESPACE=sa-agent-config +export NACOS_MCP_NAMESPACE=sa-agent-mcp + +# ===== 可选 ===== +# Jina AI Key(深度搜索功能) +# export JINA_API_KEY=jina-your-key-here diff --git a/智能体平台调研/代码/agent-platform/.mvn/settings.xml b/智能体平台调研/代码/agent-platform/.mvn/settings.xml new file mode 100644 index 0000000..50060db --- /dev/null +++ b/智能体平台调研/代码/agent-platform/.mvn/settings.xml @@ -0,0 +1,31 @@ + + + + + + spring-milestones + + + spring-milestones + Spring Milestones + https://repo.spring.io/milestone + false + + + + + spring-milestones + Spring Milestones + https://repo.spring.io/milestone + false + + + + + + + spring-milestones + + diff --git a/智能体平台调研/代码/agent-platform/logs/agent-platform.log b/智能体平台调研/代码/agent-platform/logs/agent-platform.log new file mode 100644 index 0000000..196d3a3 --- /dev/null +++ b/智能体平台调研/代码/agent-platform/logs/agent-platform.log @@ -0,0 +1,2541 @@ +2026-06-05T09:09:07.222+08:00 INFO 2339839 --- [agent-platform] [main] [ ] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder +2026-06-05T09:09:07.283+08:00 INFO 2339839 --- [agent-platform] [main] [ ] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder +2026-06-05T09:09:07.287+08:00 INFO 2339839 --- [agent-platform] [main] [ ] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapter match ch.qos.logback.classic.Logger success. +2026-06-05T09:09:07.322+08:00 INFO 2339839 --- [agent-platform] [main] [ ] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder +2026-06-05T09:09:08.392+08:00 INFO 2339839 --- [agent-platform] [main] [ ] c.demo.agent.AgentPlatformApplication : Starting AgentPlatformApplication v1.0.0 using Java 21.0.11 with PID 2339839 (/mnt/d/wiki/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar started by zdh in /mnt/d/wiki/智能体平台调研/代码/agent-platform) +2026-06-05T09:09:08.393+08:00 DEBUG 2339839 --- [agent-platform] [main] [ ] c.demo.agent.AgentPlatformApplication : Running with Spring Boot v3.3.9, Spring v6.1.17 +2026-06-05T09:09:08.395+08:00 INFO 2339839 --- [agent-platform] [main] [ ] c.demo.agent.AgentPlatformApplication : No active profile set, falling back to 1 default profile: "default" +2026-06-05T09:09:10.487+08:00 DEBUG 2339839 --- [agent-platform] [main] [ ] a.c.a.a.p.PromptTmplNacosConfigCondition : PromptTmplNacosConfigCondition matches enabled: false +2026-06-05T09:09:12.024+08:00 WARN 2339839 --- [agent-platform] [main] [ ] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: java.lang.IllegalArgumentException: Could not find class [org.springframework.ai.mcp.server.autoconfigure.McpServerProperties] +2026-06-05T09:09:12.043+08:00 INFO 2339839 --- [agent-platform] [main] [ ] .s.b.a.l.ConditionEvaluationReportLogger : + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +2026-06-05T09:09:12.135+08:00 ERROR 2339839 --- [agent-platform] [main] [ ] o.s.boot.SpringApplication : Application run failed + +java.lang.IllegalArgumentException: Could not find class [org.springframework.ai.mcp.server.autoconfigure.McpServerProperties] + at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:355) ~[spring-core-6.1.17.jar!/:6.1.17] + at org.springframework.core.annotation.TypeMappedAnnotation.adapt(TypeMappedAnnotation.java:466) ~[spring-core-6.1.17.jar!/:6.1.17] + at org.springframework.core.annotation.TypeMappedAnnotation.getValue(TypeMappedAnnotation.java:391) ~[spring-core-6.1.17.jar!/:6.1.17] + at org.springframework.core.annotation.TypeMappedAnnotation.asMap(TypeMappedAnnotation.java:278) ~[spring-core-6.1.17.jar!/:6.1.17] + at org.springframework.core.annotation.AbstractMergedAnnotation.asAnnotationAttributes(AbstractMergedAnnotation.java:191) ~[spring-core-6.1.17.jar!/:6.1.17] + at org.springframework.context.annotation.AnnotationBeanNameGenerator.determineBeanNameFromAnnotation(AnnotationBeanNameGenerator.java:147) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.annotation.AnnotationBeanNameGenerator.generateBeanName(AnnotationBeanNameGenerator.java:113) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.registerBeanDefinitionForImportedConfigurationClass(ConfigurationClassBeanDefinitionReader.java:159) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:140) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:119) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:429) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:290) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:118) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:789) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:607) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.3.9.jar!/:3.3.9] + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.3.9.jar!/:3.3.9] + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.3.9.jar!/:3.3.9] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) ~[spring-boot-3.3.9.jar!/:3.3.9] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) ~[spring-boot-3.3.9.jar!/:3.3.9] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) ~[spring-boot-3.3.9.jar!/:3.3.9] + at com.demo.agent.AgentPlatformApplication.main(AgentPlatformApplication.java:19) ~[!/:1.0.0] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] + at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) ~[agent-platform-1.0.0.jar:1.0.0] + at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) ~[agent-platform-1.0.0.jar:1.0.0] + at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) ~[agent-platform-1.0.0.jar:1.0.0] +Caused by: java.lang.ClassNotFoundException: org.springframework.ai.mcp.server.autoconfigure.McpServerProperties + at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[na:na] + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593) ~[na:na] + at org.springframework.boot.loader.net.protocol.jar.JarUrlClassLoader.loadClass(JarUrlClassLoader.java:107) ~[agent-platform-1.0.0.jar:1.0.0] + at org.springframework.boot.loader.launch.LaunchedClassLoader.loadClass(LaunchedClassLoader.java:91) ~[agent-platform-1.0.0.jar:1.0.0] + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ~[na:na] + at java.base/java.lang.Class.forName0(Native Method) ~[na:na] + at java.base/java.lang.Class.forName(Class.java:536) ~[na:na] + at java.base/java.lang.Class.forName(Class.java:515) ~[na:na] + at org.springframework.util.ClassUtils.forName(ClassUtils.java:304) ~[spring-core-6.1.17.jar!/:6.1.17] + at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:345) ~[spring-core-6.1.17.jar!/:6.1.17] + ... 27 common frames omitted + +2026-06-05T09:09:12.149+08:00 INFO 2339839 --- [agent-platform] [Thread-1] [ ] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Start destroying ThreadPool +2026-06-05T09:09:58.509+08:00 INFO 2342233 --- [agent-platform] [main] [ ] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder +2026-06-05T09:09:58.582+08:00 INFO 2342233 --- [agent-platform] [main] [ ] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder +2026-06-05T09:09:58.587+08:00 INFO 2342233 --- [agent-platform] [main] [ ] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapter match ch.qos.logback.classic.Logger success. +2026-06-05T09:09:58.645+08:00 INFO 2342233 --- [agent-platform] [main] [ ] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder +2026-06-05T09:10:00.408+08:00 INFO 2342233 --- [agent-platform] [main] [ ] c.demo.agent.AgentPlatformApplication : Starting AgentPlatformApplication v1.0.0 using Java 21.0.11 with PID 2342233 (/mnt/d/wiki/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar started by zdh in /mnt/d/wiki/智能体平台调研/代码/agent-platform) +2026-06-05T09:10:00.409+08:00 DEBUG 2342233 --- [agent-platform] [main] [ ] c.demo.agent.AgentPlatformApplication : Running with Spring Boot v3.3.9, Spring v6.1.17 +2026-06-05T09:10:00.411+08:00 INFO 2342233 --- [agent-platform] [main] [ ] c.demo.agent.AgentPlatformApplication : No active profile set, falling back to 1 default profile: "default" +2026-06-05T09:10:03.726+08:00 DEBUG 2342233 --- [agent-platform] [main] [ ] a.c.a.a.p.PromptTmplNacosConfigCondition : PromptTmplNacosConfigCondition matches enabled: false +2026-06-05T09:10:07.615+08:00 WARN 2342233 --- [agent-platform] [main] [ ] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: java.lang.IllegalStateException: Error processing condition on org.springdoc.webmvc.ui.SwaggerConfig.springWebProvider +2026-06-05T09:10:07.653+08:00 INFO 2342233 --- [agent-platform] [main] [ ] .s.b.a.l.ConditionEvaluationReportLogger : + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +2026-06-05T09:10:07.869+08:00 ERROR 2342233 --- [agent-platform] [main] [ ] o.s.boot.SpringApplication : Application run failed + +java.lang.IllegalStateException: Error processing condition on org.springdoc.webmvc.ui.SwaggerConfig.springWebProvider + at org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:60) ~[spring-boot-autoconfigure-3.3.9.jar!/:3.3.9] + at org.springframework.context.annotation.ConditionEvaluator.shouldSkip(ConditionEvaluator.java:108) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForBeanMethod(ConfigurationClassBeanDefinitionReader.java:182) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:143) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:119) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:429) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:290) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:118) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:789) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:607) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.3.9.jar!/:3.3.9] + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.3.9.jar!/:3.3.9] + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.3.9.jar!/:3.3.9] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) ~[spring-boot-3.3.9.jar!/:3.3.9] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) ~[spring-boot-3.3.9.jar!/:3.3.9] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) ~[spring-boot-3.3.9.jar!/:3.3.9] + at com.demo.agent.AgentPlatformApplication.main(AgentPlatformApplication.java:19) ~[!/:1.0.0] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] + at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) ~[agent-platform-1.0.0.jar:1.0.0] + at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) ~[agent-platform-1.0.0.jar:1.0.0] + at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) ~[agent-platform-1.0.0.jar:1.0.0] +Caused by: java.lang.IllegalStateException: Failed to introspect Class [org.springdoc.webmvc.ui.SwaggerConfig] from ClassLoader [org.springframework.boot.loader.launch.LaunchedClassLoader@27d6c5e0] + at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:483) ~[spring-core-6.1.17.jar!/:6.1.17] + at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:360) ~[spring-core-6.1.17.jar!/:6.1.17] + at org.springframework.util.ReflectionUtils.getUniqueDeclaredMethods(ReflectionUtils.java:417) ~[spring-core-6.1.17.jar!/:6.1.17] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.lambda$getTypeForFactoryMethod$1(AbstractAutowireCapableBeanFactory.java:750) ~[spring-beans-6.1.17.jar!/:6.1.17] + at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708) ~[na:na] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryMethod(AbstractAutowireCapableBeanFactory.java:749) ~[spring-beans-6.1.17.jar!/:6.1.17] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:682) ~[spring-beans-6.1.17.jar!/:6.1.17] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:653) ~[spring-beans-6.1.17.jar!/:6.1.17] + at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1687) ~[spring-beans-6.1.17.jar!/:6.1.17] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:562) ~[spring-beans-6.1.17.jar!/:6.1.17] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:534) ~[spring-beans-6.1.17.jar!/:6.1.17] + at org.springframework.boot.autoconfigure.condition.OnBeanCondition.collectBeanNamesForType(OnBeanCondition.java:247) ~[spring-boot-autoconfigure-3.3.9.jar!/:3.3.9] + at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getBeanNamesForType(OnBeanCondition.java:240) ~[spring-boot-autoconfigure-3.3.9.jar!/:3.3.9] + at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getBeanNamesForType(OnBeanCondition.java:230) ~[spring-boot-autoconfigure-3.3.9.jar!/:3.3.9] + at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getMatchingBeans(OnBeanCondition.java:183) ~[spring-boot-autoconfigure-3.3.9.jar!/:3.3.9] + at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getMatchOutcome(OnBeanCondition.java:158) ~[spring-boot-autoconfigure-3.3.9.jar!/:3.3.9] + at org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:47) ~[spring-boot-autoconfigure-3.3.9.jar!/:3.3.9] + ... 22 common frames omitted +Caused by: java.lang.NoClassDefFoundError: org/springframework/web/servlet/resource/LiteWebJarsResourceResolver + at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[na:na] + at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027) ~[na:na] + at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) ~[na:na] + at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:524) ~[na:na] + at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:427) ~[na:na] + at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:421) ~[na:na] + at java.base/java.security.AccessController.doPrivileged(AccessController.java:714) ~[na:na] + at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:420) ~[na:na] + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593) ~[na:na] + at org.springframework.boot.loader.net.protocol.jar.JarUrlClassLoader.loadClass(JarUrlClassLoader.java:107) ~[agent-platform-1.0.0.jar:1.0.0] + at org.springframework.boot.loader.launch.LaunchedClassLoader.loadClass(LaunchedClassLoader.java:91) ~[agent-platform-1.0.0.jar:1.0.0] + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ~[na:na] + at java.base/java.lang.Class.getDeclaredMethods0(Native Method) ~[na:na] + at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3580) ~[na:na] + at java.base/java.lang.Class.getDeclaredMethods(Class.java:2678) ~[na:na] + at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:465) ~[spring-core-6.1.17.jar!/:6.1.17] + ... 38 common frames omitted +Caused by: java.lang.ClassNotFoundException: org.springframework.web.servlet.resource.LiteWebJarsResourceResolver + at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[na:na] + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593) ~[na:na] + at org.springframework.boot.loader.net.protocol.jar.JarUrlClassLoader.loadClass(JarUrlClassLoader.java:107) ~[agent-platform-1.0.0.jar:1.0.0] + at org.springframework.boot.loader.launch.LaunchedClassLoader.loadClass(LaunchedClassLoader.java:91) ~[agent-platform-1.0.0.jar:1.0.0] + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ~[na:na] + ... 54 common frames omitted + +2026-06-05T09:11:28.419+08:00 INFO 2347489 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder +2026-06-05T09:11:28.544+08:00 INFO 2347489 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder +2026-06-05T09:11:28.549+08:00 INFO 2347489 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapter match ch.qos.logback.classic.Logger success. +2026-06-05T09:11:28.595+08:00 INFO 2347489 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder +2026-06-05T09:11:30.133+08:00 INFO 2347489 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Starting AgentPlatformApplication v1.0.0 using Java 21.0.11 with PID 2347489 (/mnt/d/wiki/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar started by zdh in /mnt/d/wiki/智能体平台调研/代码/agent-platform) +2026-06-05T09:11:30.135+08:00 DEBUG 2347489 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Running with Spring Boot v3.3.9, Spring v6.1.17 +2026-06-05T09:11:30.139+08:00 INFO 2347489 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : No active profile set, falling back to 1 default profile: "default" +2026-06-05T09:11:33.848+08:00 DEBUG 2347489 --- [agent-platform] [main] a.c.a.a.p.PromptTmplNacosConfigCondition : PromptTmplNacosConfigCondition matches enabled: false +2026-06-05T09:11:40.154+08:00 INFO 2347489 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) +2026-06-05T09:11:40.231+08:00 INFO 2347489 --- [agent-platform] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-06-05T09:11:40.233+08:00 INFO 2347489 --- [agent-platform] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.36] +2026-06-05T09:11:40.414+08:00 INFO 2347489 --- [agent-platform] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-06-05T09:11:40.419+08:00 INFO 2347489 --- [agent-platform] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 9434 ms +2026-06-05T09:11:43.235+08:00 WARN 2347489 --- [agent-platform] [Thread-1] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Start destroying ThreadPool +2026-06-05T09:11:43.239+08:00 WARN 2347489 --- [agent-platform] [Thread-1] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Destruction of the end +2026-06-05T09:11:47.560+08:00 WARN 2347489 --- [agent-platform] [main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dashscopeAgentApi' defined in class path resource [com/alibaba/cloud/ai/autoconfigure/dashscope/DashScopeAgentAutoConfiguration.class]: Unsatisfied dependency expressed through method 'dashscopeAgentApi' parameter 1: Error creating bean with name 'spring.ai.dashscope.chat-com.alibaba.cloud.ai.autoconfigure.dashscope.DashScopeChatProperties': Could not bind properties to 'DashScopeChatProperties' : prefix=spring.ai.dashscope.chat, ignoreInvalidFields=false, ignoreUnknownFields=true +2026-06-05T09:11:56.357+08:00 INFO 2349130 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder +2026-06-05T09:11:56.408+08:00 INFO 2349130 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder +2026-06-05T09:11:56.411+08:00 INFO 2349130 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapter match ch.qos.logback.classic.Logger success. +2026-06-05T09:11:56.449+08:00 INFO 2349130 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder +2026-06-05T09:11:57.504+08:00 INFO 2349130 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Starting AgentPlatformApplication v1.0.0 using Java 21.0.11 with PID 2349130 (/mnt/d/wiki/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar started by zdh in /mnt/d/wiki/智能体平台调研/代码/agent-platform) +2026-06-05T09:11:57.505+08:00 DEBUG 2349130 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Running with Spring Boot v3.3.9, Spring v6.1.17 +2026-06-05T09:11:57.508+08:00 INFO 2349130 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : No active profile set, falling back to 1 default profile: "default" +2026-06-05T09:11:59.531+08:00 DEBUG 2349130 --- [agent-platform] [main] a.c.a.a.p.PromptTmplNacosConfigCondition : PromptTmplNacosConfigCondition matches enabled: false +2026-06-05T09:12:06.542+08:00 INFO 2349130 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) +2026-06-05T09:12:06.616+08:00 INFO 2349130 --- [agent-platform] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-06-05T09:12:06.618+08:00 INFO 2349130 --- [agent-platform] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.36] +2026-06-05T09:12:06.763+08:00 INFO 2349130 --- [agent-platform] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-06-05T09:12:06.764+08:00 INFO 2349130 --- [agent-platform] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 9064 ms +2026-06-05T09:12:12.529+08:00 WARN 2349130 --- [agent-platform] [Thread-1] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Start destroying ThreadPool +2026-06-05T09:12:12.538+08:00 WARN 2349130 --- [agent-platform] [Thread-1] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Destruction of the end +2026-06-05T09:12:18.325+08:00 WARN 2349130 --- [agent-platform] [main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dashscopeAgentApi' defined in class path resource [com/alibaba/cloud/ai/autoconfigure/dashscope/DashScopeAgentAutoConfiguration.class]: Unsatisfied dependency expressed through method 'dashscopeAgentApi' parameter 1: Error creating bean with name 'spring.ai.dashscope.chat-com.alibaba.cloud.ai.autoconfigure.dashscope.DashScopeChatProperties': Could not bind properties to 'DashScopeChatProperties' : prefix=spring.ai.dashscope.chat, ignoreInvalidFields=false, ignoreUnknownFields=true +2026-06-05T09:12:28.505+08:00 INFO 2351005 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder +2026-06-05T09:12:28.593+08:00 INFO 2351005 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder +2026-06-05T09:12:28.598+08:00 INFO 2351005 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapter match ch.qos.logback.classic.Logger success. +2026-06-05T09:12:28.635+08:00 INFO 2351005 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder +2026-06-05T09:12:29.546+08:00 INFO 2351005 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Starting AgentPlatformApplication v1.0.0 using Java 21.0.11 with PID 2351005 (/mnt/d/wiki/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar started by zdh in /mnt/d/wiki/智能体平台调研/代码/agent-platform) +2026-06-05T09:12:29.548+08:00 DEBUG 2351005 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Running with Spring Boot v3.3.9, Spring v6.1.17 +2026-06-05T09:12:29.552+08:00 INFO 2351005 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : No active profile set, falling back to 1 default profile: "default" +2026-06-05T09:12:31.186+08:00 DEBUG 2351005 --- [agent-platform] [main] a.c.a.a.p.PromptTmplNacosConfigCondition : PromptTmplNacosConfigCondition matches enabled: false +2026-06-05T09:12:34.677+08:00 INFO 2351005 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) +2026-06-05T09:12:34.712+08:00 INFO 2351005 --- [agent-platform] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-06-05T09:12:34.713+08:00 INFO 2351005 --- [agent-platform] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.36] +2026-06-05T09:12:34.800+08:00 INFO 2351005 --- [agent-platform] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-06-05T09:12:34.801+08:00 INFO 2351005 --- [agent-platform] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 5073 ms +2026-06-05T09:12:38.777+08:00 WARN 2351005 --- [agent-platform] [main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dashscopeAgentApi' defined in class path resource [com/alibaba/cloud/ai/autoconfigure/dashscope/DashScopeAgentAutoConfiguration.class]: Unsatisfied dependency expressed through method 'dashscopeAgentApi' parameter 1: Error creating bean with name 'spring.ai.dashscope.chat-com.alibaba.cloud.ai.autoconfigure.dashscope.DashScopeChatProperties': Could not bind properties to 'DashScopeChatProperties' : prefix=spring.ai.dashscope.chat, ignoreInvalidFields=false, ignoreUnknownFields=true +2026-06-05T09:12:38.784+08:00 INFO 2351005 --- [agent-platform] [main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] +2026-06-05T09:12:38.825+08:00 INFO 2351005 --- [agent-platform] [main] .s.b.a.l.ConditionEvaluationReportLogger : + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +2026-06-05T09:12:38.890+08:00 ERROR 2351005 --- [agent-platform] [main] o.s.b.d.LoggingFailureAnalysisReporter : + +*************************** +APPLICATION FAILED TO START +*************************** + +Description: + +Failed to bind properties under 'spring.ai.dashscope.chat.options' to com.alibaba.cloud.ai.dashscope.chat.DashScopeChatOptions: + + Property: spring.ai.dashscope.chat.options.max-tokens + Value: "4096" + Origin: class path resource [application.yml] from agent-platform-1.0.0.jar - 39:23 + Reason: java.lang.IllegalStateException: No setter found for property: max-tokens + +Action: + +Update your application's configuration + +2026-06-05T09:13:07.364+08:00 INFO 2352959 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder +2026-06-05T09:13:07.409+08:00 INFO 2352959 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder +2026-06-05T09:13:07.412+08:00 INFO 2352959 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapter match ch.qos.logback.classic.Logger success. +2026-06-05T09:13:07.442+08:00 INFO 2352959 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder +2026-06-05T09:13:08.282+08:00 INFO 2352959 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Starting AgentPlatformApplication v1.0.0 using Java 21.0.11 with PID 2352959 (/mnt/d/wiki/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar started by zdh in /mnt/d/wiki/智能体平台调研/代码/agent-platform) +2026-06-05T09:13:08.283+08:00 DEBUG 2352959 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Running with Spring Boot v3.3.9, Spring v6.1.17 +2026-06-05T09:13:08.285+08:00 INFO 2352959 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : No active profile set, falling back to 1 default profile: "default" +2026-06-05T09:13:09.871+08:00 DEBUG 2352959 --- [agent-platform] [main] a.c.a.a.p.PromptTmplNacosConfigCondition : PromptTmplNacosConfigCondition matches enabled: false +2026-06-05T09:13:13.496+08:00 INFO 2352959 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) +2026-06-05T09:13:13.533+08:00 INFO 2352959 --- [agent-platform] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-06-05T09:13:13.534+08:00 INFO 2352959 --- [agent-platform] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.36] +2026-06-05T09:13:13.634+08:00 INFO 2352959 --- [agent-platform] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-06-05T09:13:13.637+08:00 INFO 2352959 --- [agent-platform] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 5187 ms +2026-06-05T09:13:19.288+08:00 INFO 2352959 --- [agent-platform] [main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 4 endpoints beneath base path '/actuator' +2026-06-05T09:13:19.438+08:00 INFO 2352959 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' +2026-06-05T09:13:19.466+08:00 INFO 2352959 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Started AgentPlatformApplication in 13.592 seconds (process running for 15.648) +2026-06-05T09:13:38.431+08:00 WARN 2352959 --- [agent-platform] [Thread-1] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Start destroying ThreadPool +2026-06-05T09:13:38.435+08:00 WARN 2352959 --- [agent-platform] [Thread-1] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Destruction of the end +2026-06-05T09:13:47.529+08:00 INFO 2355028 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder +2026-06-05T09:13:47.603+08:00 INFO 2355028 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder +2026-06-05T09:13:47.606+08:00 INFO 2355028 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapter match ch.qos.logback.classic.Logger success. +2026-06-05T09:13:47.639+08:00 INFO 2355028 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder +2026-06-05T09:13:48.505+08:00 INFO 2355028 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Starting AgentPlatformApplication v1.0.0 using Java 21.0.11 with PID 2355028 (/mnt/d/wiki/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar started by zdh in /mnt/d/wiki/智能体平台调研/代码/agent-platform) +2026-06-05T09:13:48.506+08:00 DEBUG 2355028 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Running with Spring Boot v3.3.9, Spring v6.1.17 +2026-06-05T09:13:48.509+08:00 INFO 2355028 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : No active profile set, falling back to 1 default profile: "default" +2026-06-05T09:13:49.925+08:00 DEBUG 2355028 --- [agent-platform] [main] a.c.a.a.p.PromptTmplNacosConfigCondition : PromptTmplNacosConfigCondition matches enabled: false +2026-06-05T09:13:53.319+08:00 INFO 2355028 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) +2026-06-05T09:13:53.357+08:00 INFO 2355028 --- [agent-platform] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-06-05T09:13:53.357+08:00 INFO 2355028 --- [agent-platform] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.36] +2026-06-05T09:13:53.436+08:00 INFO 2355028 --- [agent-platform] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-06-05T09:13:53.437+08:00 INFO 2355028 --- [agent-platform] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 4774 ms +2026-06-05T09:13:58.815+08:00 INFO 2355028 --- [agent-platform] [main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 4 endpoints beneath base path '/actuator' +2026-06-05T09:13:59.005+08:00 INFO 2355028 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' +2026-06-05T09:13:59.030+08:00 INFO 2355028 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Started AgentPlatformApplication in 12.947 seconds (process running for 14.894) +2026-06-05T09:13:59.350+08:00 INFO 2355028 --- [agent-platform] [http-nio-0.0.0.0-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' +2026-06-05T09:13:59.351+08:00 INFO 2355028 --- [agent-platform] [http-nio-0.0.0.0-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' +2026-06-05T09:13:59.352+08:00 INFO 2355028 --- [agent-platform] [http-nio-0.0.0.0-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms +2026-06-05T09:13:59.538+08:00 INFO 2355028 --- [agent-platform] [http-nio-0.0.0.0-8080-exec-1] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... +2026-06-05T09:13:59.948+08:00 INFO 2355028 --- [agent-platform] [http-nio-0.0.0.0-8080-exec-1] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@43d37a5e +2026-06-05T09:13:59.957+08:00 INFO 2355028 --- [agent-platform] [http-nio-0.0.0.0-8080-exec-1] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. +2026-06-05T09:14:21.774+08:00 WARN 2355028 --- [agent-platform] [Thread-1] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Start destroying ThreadPool +2026-06-05T09:14:21.781+08:00 WARN 2355028 --- [agent-platform] [Thread-1] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Destruction of the end +2026-06-05T09:14:21.797+08:00 INFO 2355028 --- [agent-platform] [SpringApplicationShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... +2026-06-05T09:14:21.801+08:00 INFO 2355028 --- [agent-platform] [SpringApplicationShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. +2026-06-05T09:29:06.346+08:00 INFO 2399308 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder +2026-06-05T09:29:06.417+08:00 INFO 2399308 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder +2026-06-05T09:29:06.420+08:00 INFO 2399308 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapter match ch.qos.logback.classic.Logger success. +2026-06-05T09:29:06.458+08:00 INFO 2399308 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder +2026-06-05T09:29:07.678+08:00 INFO 2399308 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Starting AgentPlatformApplication v1.0.0 using Java 21.0.11 with PID 2399308 (/mnt/d/wiki/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar started by zdh in /mnt/d/wiki/智能体平台调研/代码/agent-platform) +2026-06-05T09:29:07.679+08:00 DEBUG 2399308 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Running with Spring Boot v3.3.9, Spring v6.1.17 +2026-06-05T09:29:07.682+08:00 INFO 2399308 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : No active profile set, falling back to 1 default profile: "default" +2026-06-05T09:29:09.808+08:00 DEBUG 2399308 --- [agent-platform] [main] a.c.a.a.p.PromptTmplNacosConfigCondition : PromptTmplNacosConfigCondition matches enabled: false +2026-06-05T09:29:14.521+08:00 INFO 2399308 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) +2026-06-05T09:29:14.566+08:00 INFO 2399308 --- [agent-platform] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-06-05T09:29:14.567+08:00 INFO 2399308 --- [agent-platform] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.36] +2026-06-05T09:29:14.657+08:00 INFO 2399308 --- [agent-platform] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-06-05T09:29:14.658+08:00 INFO 2399308 --- [agent-platform] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 6769 ms +2026-06-05T09:29:21.129+08:00 INFO 2399308 --- [agent-platform] [main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 4 endpoints beneath base path '/actuator' +2026-06-05T09:29:21.327+08:00 INFO 2399308 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' +2026-06-05T09:29:21.362+08:00 INFO 2399308 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Started AgentPlatformApplication in 17.553 seconds (process running for 20.504) +2026-06-05T09:29:22.880+08:00 INFO 2399308 --- [agent-platform] [http-nio-0.0.0.0-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' +2026-06-05T09:29:22.881+08:00 INFO 2399308 --- [agent-platform] [http-nio-0.0.0.0-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' +2026-06-05T09:29:22.883+08:00 INFO 2399308 --- [agent-platform] [http-nio-0.0.0.0-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 2 ms +2026-06-05T09:29:23.076+08:00 INFO 2399308 --- [agent-platform] [http-nio-0.0.0.0-8080-exec-1] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... +2026-06-05T09:29:23.498+08:00 INFO 2399308 --- [agent-platform] [http-nio-0.0.0.0-8080-exec-1] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@49e945d9 +2026-06-05T09:29:23.510+08:00 INFO 2399308 --- [agent-platform] [http-nio-0.0.0.0-8080-exec-1] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. +2026-06-05T09:29:30.459+08:00 WARN 2399308 --- [agent-platform] [Thread-1] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Start destroying ThreadPool +2026-06-05T09:29:30.462+08:00 WARN 2399308 --- [agent-platform] [Thread-1] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Destruction of the end +2026-06-05T09:29:30.477+08:00 INFO 2399308 --- [agent-platform] [SpringApplicationShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... +2026-06-05T09:29:30.481+08:00 INFO 2399308 --- [agent-platform] [SpringApplicationShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. +2026-06-05T09:31:39.765+08:00 INFO 2407124 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder +2026-06-05T09:31:39.805+08:00 INFO 2407124 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder +2026-06-05T09:31:39.807+08:00 INFO 2407124 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapter match ch.qos.logback.classic.Logger success. +2026-06-05T09:31:39.837+08:00 INFO 2407124 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder +2026-06-05T09:31:40.709+08:00 INFO 2407124 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Starting AgentPlatformApplication v1.0.0 using Java 21.0.11 with PID 2407124 (/mnt/d/wiki/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar started by zdh in /mnt/d/wiki/智能体平台调研/代码/agent-platform) +2026-06-05T09:31:40.711+08:00 DEBUG 2407124 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Running with Spring Boot v3.3.9, Spring v6.1.17 +2026-06-05T09:31:40.714+08:00 INFO 2407124 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : No active profile set, falling back to 1 default profile: "default" +2026-06-05T09:31:42.288+08:00 DEBUG 2407124 --- [agent-platform] [main] a.c.a.a.p.PromptTmplNacosConfigCondition : PromptTmplNacosConfigCondition matches enabled: false +2026-06-05T09:31:45.639+08:00 INFO 2407124 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) +2026-06-05T09:31:45.673+08:00 INFO 2407124 --- [agent-platform] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-06-05T09:31:45.676+08:00 INFO 2407124 --- [agent-platform] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.36] +2026-06-05T09:31:45.784+08:00 INFO 2407124 --- [agent-platform] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-06-05T09:31:45.785+08:00 INFO 2407124 --- [agent-platform] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 4912 ms +2026-06-05T09:31:50.799+08:00 INFO 2407124 --- [agent-platform] [main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 4 endpoints beneath base path '/actuator' +2026-06-05T09:31:50.952+08:00 INFO 2407124 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' +2026-06-05T09:31:50.977+08:00 INFO 2407124 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Started AgentPlatformApplication in 12.658 seconds (process running for 14.622) +2026-06-05T09:31:55.256+08:00 INFO 2407124 --- [agent-platform] [http-nio-0.0.0.0-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' +2026-06-05T09:31:55.257+08:00 INFO 2407124 --- [agent-platform] [http-nio-0.0.0.0-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' +2026-06-05T09:31:55.259+08:00 INFO 2407124 --- [agent-platform] [http-nio-0.0.0.0-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 2 ms +2026-06-05T09:31:55.424+08:00 INFO 2407124 --- [agent-platform] [http-nio-0.0.0.0-8080-exec-1] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... +2026-06-05T09:31:55.798+08:00 INFO 2407124 --- [agent-platform] [http-nio-0.0.0.0-8080-exec-1] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@ea84d62 +2026-06-05T09:31:55.808+08:00 INFO 2407124 --- [agent-platform] [http-nio-0.0.0.0-8080-exec-1] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. +2026-06-05T09:35:56.304+08:00 INFO 2419589 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder +2026-06-05T09:35:56.407+08:00 INFO 2419589 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder +2026-06-05T09:35:56.409+08:00 INFO 2419589 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapter match ch.qos.logback.classic.Logger success. +2026-06-05T09:35:56.447+08:00 INFO 2419589 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder +2026-06-05T09:35:57.160+08:00 INFO 2419589 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Starting AgentPlatformApplication v1.0.0 using Java 21.0.11 with PID 2419589 (/mnt/d/wiki/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar started by zdh in /mnt/d/wiki/智能体平台调研/代码/agent-platform) +2026-06-05T09:35:57.161+08:00 DEBUG 2419589 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Running with Spring Boot v3.3.9, Spring v6.1.17 +2026-06-05T09:35:57.162+08:00 INFO 2419589 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : No active profile set, falling back to 1 default profile: "default" +2026-06-05T09:35:58.619+08:00 DEBUG 2419589 --- [agent-platform] [main] a.c.a.a.p.PromptTmplNacosConfigCondition : PromptTmplNacosConfigCondition matches enabled: false +2026-06-05T09:36:01.745+08:00 INFO 2419589 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8081 (http) +2026-06-05T09:36:01.774+08:00 INFO 2419589 --- [agent-platform] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-06-05T09:36:01.775+08:00 INFO 2419589 --- [agent-platform] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.36] +2026-06-05T09:36:01.848+08:00 INFO 2419589 --- [agent-platform] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-06-05T09:36:01.849+08:00 INFO 2419589 --- [agent-platform] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 4518 ms +2026-06-05T09:36:06.573+08:00 INFO 2419589 --- [agent-platform] [main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 4 endpoints beneath base path '/actuator' +2026-06-05T09:36:06.698+08:00 INFO 2419589 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8081 (http) with context path '/' +2026-06-05T09:36:06.720+08:00 INFO 2419589 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Started AgentPlatformApplication in 11.662 seconds (process running for 13.478) +2026-06-05T09:36:12.525+08:00 INFO 2419589 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' +2026-06-05T09:36:12.526+08:00 INFO 2419589 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' +2026-06-05T09:36:12.528+08:00 INFO 2419589 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 0 ms +2026-06-05T09:36:12.681+08:00 INFO 2419589 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... +2026-06-05T09:36:13.019+08:00 INFO 2419589 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@532f4eea +2026-06-05T09:36:13.027+08:00 INFO 2419589 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. +2026-06-05T09:37:33.967+08:00 WARN 2419589 --- [agent-platform] [Thread-1] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Start destroying ThreadPool +2026-06-05T09:37:33.968+08:00 WARN 2419589 --- [agent-platform] [Thread-1] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Destruction of the end +2026-06-05T09:37:39.106+08:00 INFO 2424711 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder +2026-06-05T09:37:39.176+08:00 INFO 2424711 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder +2026-06-05T09:37:39.180+08:00 INFO 2424711 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapter match ch.qos.logback.classic.Logger success. +2026-06-05T09:37:39.212+08:00 INFO 2424711 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder +2026-06-05T09:37:40.015+08:00 INFO 2424711 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Starting AgentPlatformApplication v1.0.0 using Java 21.0.11 with PID 2424711 (/mnt/d/wiki/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar started by zdh in /mnt/d/wiki/智能体平台调研/代码/agent-platform) +2026-06-05T09:37:40.016+08:00 DEBUG 2424711 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Running with Spring Boot v3.3.9, Spring v6.1.17 +2026-06-05T09:37:40.017+08:00 INFO 2424711 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : No active profile set, falling back to 1 default profile: "default" +2026-06-05T09:37:41.509+08:00 DEBUG 2424711 --- [agent-platform] [main] a.c.a.a.p.PromptTmplNacosConfigCondition : PromptTmplNacosConfigCondition matches enabled: false +2026-06-05T09:37:44.433+08:00 INFO 2424711 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8081 (http) +2026-06-05T09:37:44.460+08:00 INFO 2424711 --- [agent-platform] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-06-05T09:37:44.461+08:00 INFO 2424711 --- [agent-platform] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.36] +2026-06-05T09:37:44.530+08:00 INFO 2424711 --- [agent-platform] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-06-05T09:37:44.531+08:00 INFO 2424711 --- [agent-platform] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 4365 ms +2026-06-05T09:37:49.197+08:00 INFO 2424711 --- [agent-platform] [main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 4 endpoints beneath base path '/actuator' +2026-06-05T09:37:49.313+08:00 INFO 2424711 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8081 (http) with context path '/' +2026-06-05T09:37:49.333+08:00 INFO 2424711 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Started AgentPlatformApplication in 11.521 seconds (process running for 13.339) +2026-06-05T09:37:55.436+08:00 INFO 2424711 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' +2026-06-05T09:37:55.437+08:00 INFO 2424711 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' +2026-06-05T09:37:55.439+08:00 INFO 2424711 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms +2026-06-05T09:37:55.597+08:00 INFO 2424711 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... +2026-06-05T09:37:56.014+08:00 INFO 2424711 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@7ce1702f +2026-06-05T09:37:56.021+08:00 INFO 2424711 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. +2026-06-05T09:37:56.243+08:00 INFO 2424711 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-2] o.apache.coyote.http11.Http11Processor : Error parsing HTTP request header + Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level. + +java.lang.IllegalArgumentException: Invalid character found in the request target [/chat?q=0xe40xbd0xa00xe50xa50xbd0xef0xbc0x8c0xe70x940xa80xe40xb80x800xe50x8f0xa50xe80xaf0x9d0xe40xbb0x8b0xe70xbb0x8d0xe40xbd0xa00xe80x870xaa0xe50xb70xb1 ]. The valid characters are defined in RFC 7230 and RFC 3986 + at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:484) ~[tomcat-embed-core-10.1.36.jar!/:na] + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:270) ~[tomcat-embed-core-10.1.36.jar!/:na] + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.36.jar!/:na] + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) ~[tomcat-embed-core-10.1.36.jar!/:na] + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743) ~[tomcat-embed-core-10.1.36.jar!/:na] + at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.36.jar!/:na] + at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) ~[tomcat-embed-core-10.1.36.jar!/:na] + at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.36.jar!/:na] + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.36.jar!/:na] + at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na] + +2026-06-05T10:45:05.783+08:00 WARN 2424711 --- [agent-platform] [Thread-1] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Start destroying ThreadPool +2026-06-05T10:45:05.784+08:00 WARN 2424711 --- [agent-platform] [Thread-1] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Destruction of the end +2026-06-05T10:45:05.790+08:00 WARN 2424711 --- [agent-platform] [SpringApplicationShutdownHook] o.s.c.support.DefaultLifecycleProcessor : Failed to stop bean 'webServerGracefulShutdown' + +java.lang.NoClassDefFoundError: org/springframework/boot/web/server/GracefulShutdownCallback + at org.springframework.boot.web.context.WebServerGracefulShutdownLifecycle.stop(WebServerGracefulShutdownLifecycle.java:62) ~[spring-boot-3.3.9.jar!/:3.3.9] + at org.springframework.context.support.DefaultLifecycleProcessor.doStop(DefaultLifecycleProcessor.java:346) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.stop(DefaultLifecycleProcessor.java:488) ~[spring-context-6.1.17.jar!/:6.1.17] + at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[na:na] + at org.springframework.context.support.DefaultLifecycleProcessor.stopBeans(DefaultLifecycleProcessor.java:315) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.support.DefaultLifecycleProcessor.onClose(DefaultLifecycleProcessor.java:215) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1148) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:179) ~[spring-boot-3.3.9.jar!/:3.3.9] + at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1102) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:147) ~[spring-boot-3.3.9.jar!/:3.3.9] + at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[na:na] + at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:116) ~[spring-boot-3.3.9.jar!/:3.3.9] + at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na] +Caused by: java.lang.ClassNotFoundException: org.springframework.boot.web.server.GracefulShutdownCallback + at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[na:na] + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593) ~[na:na] + at org.springframework.boot.loader.net.protocol.jar.JarUrlClassLoader.loadClass(JarUrlClassLoader.java:107) ~[agent-platform-1.0.0.jar:1.0.0] + at org.springframework.boot.loader.launch.LaunchedClassLoader.loadClass(LaunchedClassLoader.java:91) ~[agent-platform-1.0.0.jar:1.0.0] + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ~[na:na] + ... 13 common frames omitted + +2026-06-05T10:45:05.796+08:00 WARN 2424711 --- [agent-platform] [SpringApplicationShutdownHook] o.s.c.support.DefaultLifecycleProcessor : Failed to stop bean 'webServerStartStop' + +java.lang.NoClassDefFoundError: org/apache/catalina/Lifecycle$SingleUse + at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:247) ~[tomcat-embed-core-10.1.36.jar!/:na] + at org.apache.catalina.core.StandardService.removeConnector(StandardService.java:299) ~[tomcat-embed-core-10.1.36.jar!/:na] + at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.lambda$removeServiceConnectors$1(TomcatWebServer.java:173) ~[spring-boot-3.3.9.jar!/:3.3.9] + at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.doWithConnectors(TomcatWebServer.java:192) ~[spring-boot-3.3.9.jar!/:3.3.9] + at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.removeServiceConnectors(TomcatWebServer.java:170) ~[spring-boot-3.3.9.jar!/:3.3.9] + at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.stop(TomcatWebServer.java:358) ~[spring-boot-3.3.9.jar!/:3.3.9] + at org.springframework.boot.web.servlet.context.WebServerStartStopLifecycle.stop(WebServerStartStopLifecycle.java:53) ~[spring-boot-3.3.9.jar!/:3.3.9] + at org.springframework.context.SmartLifecycle.stop(SmartLifecycle.java:117) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.support.DefaultLifecycleProcessor.doStop(DefaultLifecycleProcessor.java:346) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.stop(DefaultLifecycleProcessor.java:488) ~[spring-context-6.1.17.jar!/:6.1.17] + at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[na:na] + at org.springframework.context.support.DefaultLifecycleProcessor.stopBeans(DefaultLifecycleProcessor.java:315) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.support.DefaultLifecycleProcessor.onClose(DefaultLifecycleProcessor.java:215) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1148) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:179) ~[spring-boot-3.3.9.jar!/:3.3.9] + at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1102) ~[spring-context-6.1.17.jar!/:6.1.17] + at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:147) ~[spring-boot-3.3.9.jar!/:3.3.9] + at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[na:na] + at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:116) ~[spring-boot-3.3.9.jar!/:3.3.9] + at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na] +Caused by: java.lang.ClassNotFoundException: org.apache.catalina.Lifecycle$SingleUse + at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[na:na] + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593) ~[na:na] + at org.springframework.boot.loader.net.protocol.jar.JarUrlClassLoader.loadClass(JarUrlClassLoader.java:107) ~[agent-platform-1.0.0.jar:1.0.0] + at org.springframework.boot.loader.launch.LaunchedClassLoader.loadClass(LaunchedClassLoader.java:91) ~[agent-platform-1.0.0.jar:1.0.0] + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ~[na:na] + ... 20 common frames omitted + +2026-06-05T10:45:05.801+08:00 INFO 2424711 --- [agent-platform] [SpringApplicationShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... +2026-06-05T10:45:05.804+08:00 INFO 2424711 --- [agent-platform] [SpringApplicationShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. +2026-06-05T10:45:11.129+08:00 INFO 2521426 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Starting AgentPlatformApplication v1.0.0 using Java 21.0.11 with PID 2521426 (/mnt/d/wiki/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar started by zdh in /mnt/d/wiki/智能体平台调研/代码/agent-platform) +2026-06-05T10:45:11.133+08:00 DEBUG 2521426 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Running with Spring Boot v3.5.8, Spring v6.2.14 +2026-06-05T10:45:11.134+08:00 INFO 2521426 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : No active profile set, falling back to 1 default profile: "default" +2026-06-05T10:45:14.896+08:00 WARN 2521426 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T10:45:15.218+08:00 WARN 2521426 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'serverAnnotatedBeanRegistry' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration$ServerMcpAnnotatedBeans] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T10:45:15.241+08:00 WARN 2521426 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'spring.ai.mcp.server.annotation-scanner-org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T10:45:15.882+08:00 INFO 2521426 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8081 (http) +2026-06-05T10:45:15.927+08:00 INFO 2521426 --- [agent-platform] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-06-05T10:45:15.927+08:00 INFO 2521426 --- [agent-platform] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.49] +2026-06-05T10:45:16.023+08:00 INFO 2521426 --- [agent-platform] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-06-05T10:45:16.023+08:00 INFO 2521426 --- [agent-platform] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 4749 ms +2026-06-05T10:45:18.038+08:00 INFO 2521426 --- [agent-platform] [main] c.a.c.a.a.s.controller.AgentController : AgentController initialized with 0 dynamic agents: [] +2026-06-05T10:45:18.043+08:00 WARN 2521426 --- [agent-platform] [main] c.a.c.a.a.s.controller.AgentController : Agent registry is empty. Define Agent beans (e.g. ReactAgent @Bean) or a custom AgentLoader. +2026-06-05T10:45:18.081+08:00 INFO 2521426 --- [agent-platform] [main] c.a.c.a.a.s.controller.GraphController : GraphController initialized with 0 graphs: [] +2026-06-05T10:45:20.204+08:00 INFO 2521426 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder +2026-06-05T10:45:20.224+08:00 INFO 2521426 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder +2026-06-05T10:45:20.227+08:00 INFO 2521426 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapter match ch.qos.logback.classic.Logger success. +2026-06-05T10:45:20.242+08:00 INFO 2521426 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder +2026-06-05T10:45:22.322+08:00 INFO 2521426 --- [agent-platform] [main] c.a.n.c.a.AbstractAbilityControlManager : Ready to get current node abilities... +2026-06-05T10:45:22.329+08:00 INFO 2521426 --- [agent-platform] [main] c.a.n.c.a.AbstractAbilityControlManager : Ready to initialize current node abilities, support modes: [SDK_CLIENT] +2026-06-05T10:45:22.330+08:00 INFO 2521426 --- [agent-platform] [main] c.a.n.c.a.AbstractAbilityControlManager : Initialize current abilities finish... +2026-06-05T10:45:22.331+08:00 INFO 2521426 --- [agent-platform] [main] c.a.n.c.a.d.NacosAbilityManagerHolder : [AbilityControlManager] Successfully initialize AbilityControlManager +2026-06-05T10:45:22.500+08:00 INFO 2521426 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:45:22.501+08:00 INFO 2521426 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:45:22.501+08:00 INFO 2521426 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:45:22.662+08:00 WARN 2521426 --- [agent-platform] [main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'nacosOptions' defined in class path resource [com/alibaba/cloud/ai/agent/nacos/config/NacosAgentConfig.class]: Failed to instantiate [com.alibaba.cloud.ai.agent.nacos.NacosOptions]: Factory method 'nacosOptions' threw exception with message: No server list provider found. +2026-06-05T10:45:22.686+08:00 INFO 2521426 --- [agent-platform] [main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] +2026-06-05T10:45:22.727+08:00 INFO 2521426 --- [agent-platform] [main] .s.b.a.l.ConditionEvaluationReportLogger : + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +2026-06-05T10:45:22.789+08:00 ERROR 2521426 --- [agent-platform] [main] o.s.boot.SpringApplication : Application run failed + +org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'nacosOptions' defined in class path resource [com/alibaba/cloud/ai/agent/nacos/config/NacosAgentConfig.class]: Failed to instantiate [com.alibaba.cloud.ai.agent.nacos.NacosOptions]: Factory method 'nacosOptions' threw exception with message: No server list provider found. + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:657) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:645) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1375) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1205) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.instantiateSingleton(DefaultListableBeanFactory.java:1228) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingleton(DefaultListableBeanFactory.java:1194) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:1130) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:990) ~[spring-context-6.2.14.jar!/:6.2.14] + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) ~[spring-context-6.2.14.jar!/:6.2.14] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.5.8.jar!/:3.5.8] + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) ~[spring-boot-3.5.8.jar!/:3.5.8] + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) ~[spring-boot-3.5.8.jar!/:3.5.8] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) ~[spring-boot-3.5.8.jar!/:3.5.8] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361) ~[spring-boot-3.5.8.jar!/:3.5.8] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350) ~[spring-boot-3.5.8.jar!/:3.5.8] + at com.demo.agent.AgentPlatformApplication.main(AgentPlatformApplication.java:19) ~[!/:1.0.0] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] + at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:106) ~[agent-platform-1.0.0.jar:1.0.0] + at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) ~[agent-platform-1.0.0.jar:1.0.0] + at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) ~[agent-platform-1.0.0.jar:1.0.0] +Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.alibaba.cloud.ai.agent.nacos.NacosOptions]: Factory method 'nacosOptions' threw exception with message: No server list provider found. + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.lambda$instantiate$0(SimpleInstantiationStrategy.java:200) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiateWithFactoryMethod(SimpleInstantiationStrategy.java:89) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:169) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ~[spring-beans-6.2.14.jar!/:6.2.14] + ... 26 common frames omitted +Caused by: com.alibaba.nacos.api.exception.NacosException: No server list provider found. + at com.alibaba.nacos.client.address.AbstractServerListManager.start(AbstractServerListManager.java:100) ~[nacos-client-basic-3.1.0.jar!/:na] + at com.alibaba.nacos.client.config.impl.ConfigServerListManager.start(ConfigServerListManager.java:74) ~[nacos-client-3.1.0.jar!/:na] + at com.alibaba.nacos.client.config.NacosConfigService.(NacosConfigService.java:83) ~[nacos-client-3.1.0.jar!/:na] + at com.alibaba.cloud.ai.agent.nacos.NacosOptions.(NacosOptions.java:82) ~[spring-ai-alibaba-starter-config-nacos-1.1.2.2.jar!/:1.1.2.2] + at com.alibaba.cloud.ai.agent.nacos.config.NacosAgentConfig.nacosOptions(NacosAgentConfig.java:68) ~[spring-ai-alibaba-starter-config-nacos-1.1.2.2.jar!/:1.1.2.2] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.lambda$instantiate$0(SimpleInstantiationStrategy.java:172) ~[spring-beans-6.2.14.jar!/:6.2.14] + ... 29 common frames omitted + +2026-06-05T10:45:22.798+08:00 INFO 2521426 --- [agent-platform] [Thread-27] c.a.nacos.common.notify.NotifyCenter : [NotifyCenter] Start destroying Publisher +2026-06-05T10:45:22.804+08:00 INFO 2521426 --- [agent-platform] [Thread-20] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Start destroying ThreadPool +2026-06-05T10:45:22.799+08:00 INFO 2521426 --- [agent-platform] [Thread-25] c.a.n.common.http.HttpClientBeanHolder : [HttpClientBeanHolder] Start destroying common HttpClient +2026-06-05T10:45:22.804+08:00 INFO 2521426 --- [agent-platform] [Thread-27] c.a.nacos.common.notify.NotifyCenter : [NotifyCenter] Completed destruction of Publisher +2026-06-05T10:45:22.805+08:00 INFO 2521426 --- [agent-platform] [Thread-20] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Completed destruction of ThreadPool +2026-06-05T10:46:33.474+08:00 INFO 2522457 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Starting AgentPlatformApplication v1.0.0 using Java 21.0.11 with PID 2522457 (/mnt/d/wiki/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar started by zdh in /mnt/d/wiki/智能体平台调研/代码/agent-platform) +2026-06-05T10:46:33.478+08:00 DEBUG 2522457 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Running with Spring Boot v3.5.8, Spring v6.2.14 +2026-06-05T10:46:33.480+08:00 INFO 2522457 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : No active profile set, falling back to 1 default profile: "default" +2026-06-05T10:46:36.982+08:00 WARN 2522457 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T10:46:37.253+08:00 WARN 2522457 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'serverAnnotatedBeanRegistry' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration$ServerMcpAnnotatedBeans] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T10:46:37.272+08:00 WARN 2522457 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'spring.ai.mcp.server.annotation-scanner-org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T10:46:37.822+08:00 INFO 2522457 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8081 (http) +2026-06-05T10:46:37.851+08:00 INFO 2522457 --- [agent-platform] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-06-05T10:46:37.852+08:00 INFO 2522457 --- [agent-platform] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.49] +2026-06-05T10:46:37.935+08:00 INFO 2522457 --- [agent-platform] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-06-05T10:46:37.936+08:00 INFO 2522457 --- [agent-platform] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 4324 ms +2026-06-05T10:46:39.792+08:00 INFO 2522457 --- [agent-platform] [main] c.a.c.a.a.s.controller.AgentController : AgentController initialized with 0 dynamic agents: [] +2026-06-05T10:46:39.796+08:00 WARN 2522457 --- [agent-platform] [main] c.a.c.a.a.s.controller.AgentController : Agent registry is empty. Define Agent beans (e.g. ReactAgent @Bean) or a custom AgentLoader. +2026-06-05T10:46:39.823+08:00 INFO 2522457 --- [agent-platform] [main] c.a.c.a.a.s.controller.GraphController : GraphController initialized with 0 graphs: [] +2026-06-05T10:46:41.701+08:00 INFO 2522457 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder +2026-06-05T10:46:41.720+08:00 INFO 2522457 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder +2026-06-05T10:46:41.722+08:00 INFO 2522457 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapter match ch.qos.logback.classic.Logger success. +2026-06-05T10:46:41.736+08:00 INFO 2522457 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder +2026-06-05T10:46:43.668+08:00 INFO 2522457 --- [agent-platform] [main] c.a.n.c.a.AbstractAbilityControlManager : Ready to get current node abilities... +2026-06-05T10:46:43.675+08:00 INFO 2522457 --- [agent-platform] [main] c.a.n.c.a.AbstractAbilityControlManager : Ready to initialize current node abilities, support modes: [SDK_CLIENT] +2026-06-05T10:46:43.676+08:00 INFO 2522457 --- [agent-platform] [main] c.a.n.c.a.AbstractAbilityControlManager : Initialize current abilities finish... +2026-06-05T10:46:43.677+08:00 INFO 2522457 --- [agent-platform] [main] c.a.n.c.a.d.NacosAbilityManagerHolder : [AbilityControlManager] Successfully initialize AbilityControlManager +2026-06-05T10:46:43.747+08:00 INFO 2522457 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:46:43.748+08:00 INFO 2522457 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:46:43.748+08:00 INFO 2522457 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:46:43.915+08:00 WARN 2522457 --- [agent-platform] [main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'nacosOptions' defined in class path resource [com/alibaba/cloud/ai/agent/nacos/config/NacosAgentConfig.class]: Failed to instantiate [com.alibaba.cloud.ai.agent.nacos.NacosOptions]: Factory method 'nacosOptions' threw exception with message: No server list provider found. +2026-06-05T10:46:43.934+08:00 INFO 2522457 --- [agent-platform] [main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] +2026-06-05T10:46:43.969+08:00 INFO 2522457 --- [agent-platform] [main] .s.b.a.l.ConditionEvaluationReportLogger : + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +2026-06-05T10:46:44.028+08:00 ERROR 2522457 --- [agent-platform] [main] o.s.boot.SpringApplication : Application run failed + +org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'nacosOptions' defined in class path resource [com/alibaba/cloud/ai/agent/nacos/config/NacosAgentConfig.class]: Failed to instantiate [com.alibaba.cloud.ai.agent.nacos.NacosOptions]: Factory method 'nacosOptions' threw exception with message: No server list provider found. + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:657) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:645) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1375) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1205) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.instantiateSingleton(DefaultListableBeanFactory.java:1228) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingleton(DefaultListableBeanFactory.java:1194) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:1130) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:990) ~[spring-context-6.2.14.jar!/:6.2.14] + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) ~[spring-context-6.2.14.jar!/:6.2.14] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.5.8.jar!/:3.5.8] + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) ~[spring-boot-3.5.8.jar!/:3.5.8] + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) ~[spring-boot-3.5.8.jar!/:3.5.8] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) ~[spring-boot-3.5.8.jar!/:3.5.8] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361) ~[spring-boot-3.5.8.jar!/:3.5.8] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350) ~[spring-boot-3.5.8.jar!/:3.5.8] + at com.demo.agent.AgentPlatformApplication.main(AgentPlatformApplication.java:19) ~[!/:1.0.0] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] + at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:106) ~[agent-platform-1.0.0.jar:1.0.0] + at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) ~[agent-platform-1.0.0.jar:1.0.0] + at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) ~[agent-platform-1.0.0.jar:1.0.0] +Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.alibaba.cloud.ai.agent.nacos.NacosOptions]: Factory method 'nacosOptions' threw exception with message: No server list provider found. + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.lambda$instantiate$0(SimpleInstantiationStrategy.java:200) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiateWithFactoryMethod(SimpleInstantiationStrategy.java:89) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:169) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ~[spring-beans-6.2.14.jar!/:6.2.14] + ... 26 common frames omitted +Caused by: com.alibaba.nacos.api.exception.NacosException: No server list provider found. + at com.alibaba.nacos.client.address.AbstractServerListManager.start(AbstractServerListManager.java:100) ~[nacos-client-basic-3.1.0.jar!/:na] + at com.alibaba.nacos.client.config.impl.ConfigServerListManager.start(ConfigServerListManager.java:74) ~[nacos-client-3.1.0.jar!/:na] + at com.alibaba.nacos.client.config.NacosConfigService.(NacosConfigService.java:83) ~[nacos-client-3.1.0.jar!/:na] + at com.alibaba.cloud.ai.agent.nacos.NacosOptions.(NacosOptions.java:82) ~[spring-ai-alibaba-starter-config-nacos-1.1.2.2.jar!/:1.1.2.2] + at com.alibaba.cloud.ai.agent.nacos.config.NacosAgentConfig.nacosOptions(NacosAgentConfig.java:68) ~[spring-ai-alibaba-starter-config-nacos-1.1.2.2.jar!/:1.1.2.2] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.lambda$instantiate$0(SimpleInstantiationStrategy.java:172) ~[spring-beans-6.2.14.jar!/:6.2.14] + ... 29 common frames omitted + +2026-06-05T10:46:44.037+08:00 INFO 2522457 --- [agent-platform] [Thread-20] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Start destroying ThreadPool +2026-06-05T10:47:30.850+08:00 INFO 2523037 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Starting AgentPlatformApplication v1.0.0 using Java 21.0.11 with PID 2523037 (/mnt/d/wiki/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar started by zdh in /mnt/d/wiki/智能体平台调研/代码/agent-platform) +2026-06-05T10:47:30.857+08:00 DEBUG 2523037 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Running with Spring Boot v3.5.8, Spring v6.2.14 +2026-06-05T10:47:30.858+08:00 INFO 2523037 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : No active profile set, falling back to 1 default profile: "default" +2026-06-05T10:47:34.291+08:00 WARN 2523037 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T10:47:34.558+08:00 WARN 2523037 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'serverAnnotatedBeanRegistry' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration$ServerMcpAnnotatedBeans] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T10:47:34.578+08:00 WARN 2523037 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'spring.ai.mcp.server.annotation-scanner-org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T10:47:35.101+08:00 INFO 2523037 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8081 (http) +2026-06-05T10:47:35.129+08:00 INFO 2523037 --- [agent-platform] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-06-05T10:47:35.130+08:00 INFO 2523037 --- [agent-platform] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.49] +2026-06-05T10:47:35.215+08:00 INFO 2523037 --- [agent-platform] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-06-05T10:47:35.216+08:00 INFO 2523037 --- [agent-platform] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 4227 ms +2026-06-05T10:47:37.035+08:00 INFO 2523037 --- [agent-platform] [main] c.a.c.a.a.s.controller.AgentController : AgentController initialized with 0 dynamic agents: [] +2026-06-05T10:47:37.040+08:00 WARN 2523037 --- [agent-platform] [main] c.a.c.a.a.s.controller.AgentController : Agent registry is empty. Define Agent beans (e.g. ReactAgent @Bean) or a custom AgentLoader. +2026-06-05T10:47:37.064+08:00 INFO 2523037 --- [agent-platform] [main] c.a.c.a.a.s.controller.GraphController : GraphController initialized with 0 graphs: [] +2026-06-05T10:47:38.944+08:00 INFO 2523037 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder +2026-06-05T10:47:38.967+08:00 INFO 2523037 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder +2026-06-05T10:47:38.970+08:00 INFO 2523037 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapter match ch.qos.logback.classic.Logger success. +2026-06-05T10:47:38.985+08:00 INFO 2523037 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder +2026-06-05T10:47:40.907+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.c.a.AbstractAbilityControlManager : Ready to get current node abilities... +2026-06-05T10:47:40.913+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.c.a.AbstractAbilityControlManager : Ready to initialize current node abilities, support modes: [SDK_CLIENT] +2026-06-05T10:47:40.915+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.c.a.AbstractAbilityControlManager : Initialize current abilities finish... +2026-06-05T10:47:40.916+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.c.a.d.NacosAbilityManagerHolder : [AbilityControlManager] Successfully initialize AbilityControlManager +2026-06-05T10:47:40.985+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:47:40.986+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:47:40.986+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:47:41.171+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:47:41.172+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:47:41.172+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:47:41.188+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.maintainer.client.utils.ParamUtil : [settings] [maintainer-http-client] connect timeout:2000 +2026-06-05T10:47:41.189+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.maintainer.client.utils.ParamUtil : [settings] [maintainer-http-client] read timeout:5000 +2026-06-05T10:47:41.190+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.maintainer.client.utils.ParamUtil : [settings] [maintainer-http-client] max retry times:3 +2026-06-05T10:47:41.190+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.maintainer.client.utils.ParamUtil : [settings] [maintainer-http-client] auth refresh interval mills:5000 +2026-06-05T10:47:41.192+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:47:41.192+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:47:41.193+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:47:41.200+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:47:41.201+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:47:41.201+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:47:41.236+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:47:41.236+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:47:41.236+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:47:41.282+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:47:41.283+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:47:41.284+08:00 INFO 2523037 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:47:41.570+08:00 INFO 2523037 --- [agent-platform] [main] .a.a.g.GraphObservationAutoConfiguration : Successfully registered ObservationThreadLocalAccessor for Reactor context propagation +2026-06-05T10:47:41.577+08:00 INFO 2523037 --- [agent-platform] [main] .a.a.g.GraphObservationAutoConfiguration : Successfully enabled Reactor automatic context propagation for observations +2026-06-05T10:47:41.696+08:00 WARN 2523037 --- [agent-platform] [main] o.s.m.provider.tool.SyncMcpToolProvider : No tool methods found in the provided tool objects: [] +2026-06-05T10:47:41.745+08:00 INFO 2523037 --- [agent-platform] [main] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable tools capabilities, notification: true +2026-06-05T10:47:41.747+08:00 INFO 2523037 --- [agent-platform] [main] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable resources capabilities, notification: true +2026-06-05T10:47:41.749+08:00 INFO 2523037 --- [agent-platform] [main] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable resources templates capabilities, notification: true +2026-06-05T10:47:41.750+08:00 INFO 2523037 --- [agent-platform] [main] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable prompts capabilities, notification: true +2026-06-05T10:47:41.751+08:00 INFO 2523037 --- [agent-platform] [main] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable completions capabilities +2026-06-05T10:47:41.774+08:00 WARN 2523037 --- [agent-platform] [main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mcpSyncServer' defined in class path resource [org/springframework/ai/mcp/server/common/autoconfigure/McpServerAutoConfiguration.class]: Failed to instantiate [io.modelcontextprotocol.server.McpSyncServer]: Factory method 'mcpSyncServer' threw exception with message: com/networknt/schema/dialect/Dialects +2026-06-05T10:47:41.811+08:00 INFO 2523037 --- [agent-platform] [main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] +2026-06-05T10:47:41.852+08:00 INFO 2523037 --- [agent-platform] [main] .s.b.a.l.ConditionEvaluationReportLogger : + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +2026-06-05T10:47:41.922+08:00 ERROR 2523037 --- [agent-platform] [main] o.s.boot.SpringApplication : Application run failed + +org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mcpSyncServer' defined in class path resource [org/springframework/ai/mcp/server/common/autoconfigure/McpServerAutoConfiguration.class]: Failed to instantiate [io.modelcontextprotocol.server.McpSyncServer]: Factory method 'mcpSyncServer' threw exception with message: com/networknt/schema/dialect/Dialects + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:657) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:645) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1375) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1205) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.instantiateSingleton(DefaultListableBeanFactory.java:1228) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingleton(DefaultListableBeanFactory.java:1194) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:1130) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:990) ~[spring-context-6.2.14.jar!/:6.2.14] + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) ~[spring-context-6.2.14.jar!/:6.2.14] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.5.8.jar!/:3.5.8] + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) ~[spring-boot-3.5.8.jar!/:3.5.8] + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) ~[spring-boot-3.5.8.jar!/:3.5.8] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) ~[spring-boot-3.5.8.jar!/:3.5.8] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361) ~[spring-boot-3.5.8.jar!/:3.5.8] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350) ~[spring-boot-3.5.8.jar!/:3.5.8] + at com.demo.agent.AgentPlatformApplication.main(AgentPlatformApplication.java:19) ~[!/:1.0.0] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] + at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:106) ~[agent-platform-1.0.0.jar:1.0.0] + at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) ~[agent-platform-1.0.0.jar:1.0.0] + at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) ~[agent-platform-1.0.0.jar:1.0.0] +Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [io.modelcontextprotocol.server.McpSyncServer]: Factory method 'mcpSyncServer' threw exception with message: com/networknt/schema/dialect/Dialects + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.lambda$instantiate$0(SimpleInstantiationStrategy.java:200) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiateWithFactoryMethod(SimpleInstantiationStrategy.java:89) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:169) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ~[spring-beans-6.2.14.jar!/:6.2.14] + ... 26 common frames omitted +Caused by: java.lang.NoClassDefFoundError: com/networknt/schema/dialect/Dialects + at io.modelcontextprotocol.json.schema.jackson.DefaultJsonSchemaValidator.(DefaultJsonSchemaValidator.java:45) ~[mcp-json-jackson2-0.17.0.jar!/:0.17.0] + at io.modelcontextprotocol.json.schema.jackson.DefaultJsonSchemaValidator.(DefaultJsonSchemaValidator.java:40) ~[mcp-json-jackson2-0.17.0.jar!/:0.17.0] + at io.modelcontextprotocol.json.schema.jackson.JacksonJsonSchemaValidatorSupplier.get(JacksonJsonSchemaValidatorSupplier.java:26) ~[mcp-json-jackson2-0.17.0.jar!/:0.17.0] + at io.modelcontextprotocol.json.schema.jackson.JacksonJsonSchemaValidatorSupplier.get(JacksonJsonSchemaValidatorSupplier.java:17) ~[mcp-json-jackson2-0.17.0.jar!/:0.17.0] + at io.modelcontextprotocol.json.schema.JsonSchemaInternal.lambda$createDefaultValidator$1(JsonSchemaInternal.java:55) ~[mcp-json-0.17.0.jar!/:0.17.0] + at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273) ~[na:na] + at java.base/java.util.stream.Streams$StreamBuilderImpl.tryAdvance(Streams.java:397) ~[na:na] + at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:280) ~[na:na] + at java.base/java.util.ServiceLoader$ProviderSpliterator.tryAdvance(ServiceLoader.java:1499) ~[na:na] + at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129) ~[na:na] + at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527) ~[na:na] + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513) ~[na:na] + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[na:na] + at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150) ~[na:na] + at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na] + at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647) ~[na:na] + at io.modelcontextprotocol.json.schema.JsonSchemaInternal.createDefaultValidator(JsonSchemaInternal.java:61) ~[mcp-json-0.17.0.jar!/:0.17.0] + at io.modelcontextprotocol.json.schema.JsonSchemaInternal.getDefaultValidator(JsonSchemaInternal.java:30) ~[mcp-json-0.17.0.jar!/:0.17.0] + at io.modelcontextprotocol.json.schema.JsonSchemaValidator.getDefault(JsonSchemaValidator.java:61) ~[mcp-json-0.17.0.jar!/:0.17.0] + at io.modelcontextprotocol.server.McpServer$SingleSessionSyncSpecification.build(McpServer.java:826) ~[mcp-core-0.14.0.jar!/:0.14.0] + at org.springframework.ai.mcp.server.common.autoconfigure.McpServerAutoConfiguration.mcpSyncServer(McpServerAutoConfiguration.java:221) ~[spring-ai-autoconfigure-mcp-server-common-1.1.2.jar!/:1.1.2] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.lambda$instantiate$0(SimpleInstantiationStrategy.java:172) ~[spring-beans-6.2.14.jar!/:6.2.14] + ... 29 common frames omitted +Caused by: java.lang.ClassNotFoundException: com.networknt.schema.dialect.Dialects + at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[na:na] + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593) ~[na:na] + at org.springframework.boot.loader.net.protocol.jar.JarUrlClassLoader.loadClass(JarUrlClassLoader.java:107) ~[agent-platform-1.0.0.jar:1.0.0] + at org.springframework.boot.loader.launch.LaunchedClassLoader.loadClass(LaunchedClassLoader.java:91) ~[agent-platform-1.0.0.jar:1.0.0] + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ~[na:na] + ... 53 common frames omitted + +2026-06-05T10:47:41.934+08:00 INFO 2523037 --- [agent-platform] [Thread-20] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Start destroying ThreadPool +2026-06-05T10:47:41.934+08:00 INFO 2523037 --- [agent-platform] [Thread-27] c.a.nacos.common.notify.NotifyCenter : [NotifyCenter] Start destroying Publisher +2026-06-05T10:47:41.934+08:00 INFO 2523037 --- [agent-platform] [Thread-25] c.a.n.common.http.HttpClientBeanHolder : [HttpClientBeanHolder] Start destroying common HttpClient +2026-06-05T10:48:28.706+08:00 INFO 2523770 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Starting AgentPlatformApplication v1.0.0 using Java 21.0.11 with PID 2523770 (/mnt/d/wiki/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar started by zdh in /mnt/d/wiki/智能体平台调研/代码/agent-platform) +2026-06-05T10:48:28.712+08:00 DEBUG 2523770 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Running with Spring Boot v3.5.8, Spring v6.2.14 +2026-06-05T10:48:28.714+08:00 INFO 2523770 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : No active profile set, falling back to 1 default profile: "default" +2026-06-05T10:48:32.184+08:00 WARN 2523770 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T10:48:32.480+08:00 WARN 2523770 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'serverAnnotatedBeanRegistry' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration$ServerMcpAnnotatedBeans] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T10:48:32.504+08:00 WARN 2523770 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'spring.ai.mcp.server.annotation-scanner-org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T10:48:33.038+08:00 INFO 2523770 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8081 (http) +2026-06-05T10:48:33.071+08:00 INFO 2523770 --- [agent-platform] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-06-05T10:48:33.072+08:00 INFO 2523770 --- [agent-platform] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.49] +2026-06-05T10:48:33.157+08:00 INFO 2523770 --- [agent-platform] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-06-05T10:48:33.158+08:00 INFO 2523770 --- [agent-platform] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 4299 ms +2026-06-05T10:48:34.945+08:00 INFO 2523770 --- [agent-platform] [main] c.a.c.a.a.s.controller.AgentController : AgentController initialized with 0 dynamic agents: [] +2026-06-05T10:48:34.949+08:00 WARN 2523770 --- [agent-platform] [main] c.a.c.a.a.s.controller.AgentController : Agent registry is empty. Define Agent beans (e.g. ReactAgent @Bean) or a custom AgentLoader. +2026-06-05T10:48:34.973+08:00 INFO 2523770 --- [agent-platform] [main] c.a.c.a.a.s.controller.GraphController : GraphController initialized with 0 graphs: [] +2026-06-05T10:48:36.827+08:00 INFO 2523770 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder +2026-06-05T10:48:36.846+08:00 INFO 2523770 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder +2026-06-05T10:48:36.848+08:00 INFO 2523770 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapter match ch.qos.logback.classic.Logger success. +2026-06-05T10:48:36.862+08:00 INFO 2523770 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder +2026-06-05T10:48:38.779+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.c.a.AbstractAbilityControlManager : Ready to get current node abilities... +2026-06-05T10:48:38.785+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.c.a.AbstractAbilityControlManager : Ready to initialize current node abilities, support modes: [SDK_CLIENT] +2026-06-05T10:48:38.785+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.c.a.AbstractAbilityControlManager : Initialize current abilities finish... +2026-06-05T10:48:38.786+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.c.a.d.NacosAbilityManagerHolder : [AbilityControlManager] Successfully initialize AbilityControlManager +2026-06-05T10:48:38.870+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:48:38.871+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:48:38.872+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:48:39.075+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:48:39.076+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:48:39.077+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:48:39.094+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.maintainer.client.utils.ParamUtil : [settings] [maintainer-http-client] connect timeout:2000 +2026-06-05T10:48:39.095+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.maintainer.client.utils.ParamUtil : [settings] [maintainer-http-client] read timeout:5000 +2026-06-05T10:48:39.095+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.maintainer.client.utils.ParamUtil : [settings] [maintainer-http-client] max retry times:3 +2026-06-05T10:48:39.096+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.maintainer.client.utils.ParamUtil : [settings] [maintainer-http-client] auth refresh interval mills:5000 +2026-06-05T10:48:39.098+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:48:39.098+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:48:39.099+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:48:39.106+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:48:39.106+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:48:39.107+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:48:39.136+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:48:39.137+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:48:39.137+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:48:39.179+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:48:39.180+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:48:39.180+08:00 INFO 2523770 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:48:39.471+08:00 INFO 2523770 --- [agent-platform] [main] .a.a.g.GraphObservationAutoConfiguration : Successfully registered ObservationThreadLocalAccessor for Reactor context propagation +2026-06-05T10:48:39.478+08:00 INFO 2523770 --- [agent-platform] [main] .a.a.g.GraphObservationAutoConfiguration : Successfully enabled Reactor automatic context propagation for observations +2026-06-05T10:48:39.592+08:00 WARN 2523770 --- [agent-platform] [main] o.s.m.provider.tool.SyncMcpToolProvider : No tool methods found in the provided tool objects: [] +2026-06-05T10:48:39.638+08:00 INFO 2523770 --- [agent-platform] [main] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable tools capabilities, notification: true +2026-06-05T10:48:39.640+08:00 INFO 2523770 --- [agent-platform] [main] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable resources capabilities, notification: true +2026-06-05T10:48:39.640+08:00 INFO 2523770 --- [agent-platform] [main] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable resources templates capabilities, notification: true +2026-06-05T10:48:39.641+08:00 INFO 2523770 --- [agent-platform] [main] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable prompts capabilities, notification: true +2026-06-05T10:48:39.642+08:00 INFO 2523770 --- [agent-platform] [main] o.s.a.m.s.c.a.McpServerAutoConfiguration : Enable completions capabilities +2026-06-05T10:48:39.661+08:00 WARN 2523770 --- [agent-platform] [main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mcpSyncServer' defined in class path resource [org/springframework/ai/mcp/server/common/autoconfigure/McpServerAutoConfiguration.class]: Failed to instantiate [io.modelcontextprotocol.server.McpSyncServer]: Factory method 'mcpSyncServer' threw exception with message: com/networknt/schema/dialect/Dialects +2026-06-05T10:48:39.692+08:00 INFO 2523770 --- [agent-platform] [main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] +2026-06-05T10:48:39.731+08:00 INFO 2523770 --- [agent-platform] [main] .s.b.a.l.ConditionEvaluationReportLogger : + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +2026-06-05T10:48:39.797+08:00 ERROR 2523770 --- [agent-platform] [main] o.s.boot.SpringApplication : Application run failed + +org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mcpSyncServer' defined in class path resource [org/springframework/ai/mcp/server/common/autoconfigure/McpServerAutoConfiguration.class]: Failed to instantiate [io.modelcontextprotocol.server.McpSyncServer]: Factory method 'mcpSyncServer' threw exception with message: com/networknt/schema/dialect/Dialects + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:657) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:645) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1375) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1205) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.instantiateSingleton(DefaultListableBeanFactory.java:1228) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingleton(DefaultListableBeanFactory.java:1194) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:1130) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:990) ~[spring-context-6.2.14.jar!/:6.2.14] + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) ~[spring-context-6.2.14.jar!/:6.2.14] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.5.8.jar!/:3.5.8] + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) ~[spring-boot-3.5.8.jar!/:3.5.8] + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) ~[spring-boot-3.5.8.jar!/:3.5.8] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) ~[spring-boot-3.5.8.jar!/:3.5.8] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361) ~[spring-boot-3.5.8.jar!/:3.5.8] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350) ~[spring-boot-3.5.8.jar!/:3.5.8] + at com.demo.agent.AgentPlatformApplication.main(AgentPlatformApplication.java:19) ~[!/:1.0.0] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] + at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:106) ~[agent-platform-1.0.0.jar:1.0.0] + at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) ~[agent-platform-1.0.0.jar:1.0.0] + at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) ~[agent-platform-1.0.0.jar:1.0.0] +Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [io.modelcontextprotocol.server.McpSyncServer]: Factory method 'mcpSyncServer' threw exception with message: com/networknt/schema/dialect/Dialects + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.lambda$instantiate$0(SimpleInstantiationStrategy.java:200) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiateWithFactoryMethod(SimpleInstantiationStrategy.java:89) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:169) ~[spring-beans-6.2.14.jar!/:6.2.14] + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ~[spring-beans-6.2.14.jar!/:6.2.14] + ... 26 common frames omitted +Caused by: java.lang.NoClassDefFoundError: com/networknt/schema/dialect/Dialects + at io.modelcontextprotocol.json.schema.jackson.DefaultJsonSchemaValidator.(DefaultJsonSchemaValidator.java:45) ~[mcp-json-jackson2-0.17.0.jar!/:0.17.0] + at io.modelcontextprotocol.json.schema.jackson.DefaultJsonSchemaValidator.(DefaultJsonSchemaValidator.java:40) ~[mcp-json-jackson2-0.17.0.jar!/:0.17.0] + at io.modelcontextprotocol.json.schema.jackson.JacksonJsonSchemaValidatorSupplier.get(JacksonJsonSchemaValidatorSupplier.java:26) ~[mcp-json-jackson2-0.17.0.jar!/:0.17.0] + at io.modelcontextprotocol.json.schema.jackson.JacksonJsonSchemaValidatorSupplier.get(JacksonJsonSchemaValidatorSupplier.java:17) ~[mcp-json-jackson2-0.17.0.jar!/:0.17.0] + at io.modelcontextprotocol.json.schema.JsonSchemaInternal.lambda$createDefaultValidator$1(JsonSchemaInternal.java:55) ~[mcp-json-0.17.0.jar!/:0.17.0] + at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273) ~[na:na] + at java.base/java.util.stream.Streams$StreamBuilderImpl.tryAdvance(Streams.java:397) ~[na:na] + at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:280) ~[na:na] + at java.base/java.util.ServiceLoader$ProviderSpliterator.tryAdvance(ServiceLoader.java:1499) ~[na:na] + at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129) ~[na:na] + at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527) ~[na:na] + at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513) ~[na:na] + at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[na:na] + at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150) ~[na:na] + at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na] + at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647) ~[na:na] + at io.modelcontextprotocol.json.schema.JsonSchemaInternal.createDefaultValidator(JsonSchemaInternal.java:61) ~[mcp-json-0.17.0.jar!/:0.17.0] + at io.modelcontextprotocol.json.schema.JsonSchemaInternal.getDefaultValidator(JsonSchemaInternal.java:30) ~[mcp-json-0.17.0.jar!/:0.17.0] + at io.modelcontextprotocol.json.schema.JsonSchemaValidator.getDefault(JsonSchemaValidator.java:61) ~[mcp-json-0.17.0.jar!/:0.17.0] + at io.modelcontextprotocol.server.McpServer$SingleSessionSyncSpecification.build(McpServer.java:826) ~[mcp-core-0.14.0.jar!/:0.14.0] + at org.springframework.ai.mcp.server.common.autoconfigure.McpServerAutoConfiguration.mcpSyncServer(McpServerAutoConfiguration.java:221) ~[spring-ai-autoconfigure-mcp-server-common-1.1.2.jar!/:1.1.2] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.lambda$instantiate$0(SimpleInstantiationStrategy.java:172) ~[spring-beans-6.2.14.jar!/:6.2.14] + ... 29 common frames omitted +Caused by: java.lang.ClassNotFoundException: com.networknt.schema.dialect.Dialects + at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[na:na] + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593) ~[na:na] + at org.springframework.boot.loader.net.protocol.jar.JarUrlClassLoader.loadClass(JarUrlClassLoader.java:107) ~[agent-platform-1.0.0.jar:1.0.0] + at org.springframework.boot.loader.launch.LaunchedClassLoader.loadClass(LaunchedClassLoader.java:91) ~[agent-platform-1.0.0.jar:1.0.0] + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ~[na:na] + ... 53 common frames omitted + +2026-06-05T10:48:39.809+08:00 INFO 2523770 --- [agent-platform] [Thread-27] c.a.nacos.common.notify.NotifyCenter : [NotifyCenter] Start destroying Publisher +2026-06-05T10:48:39.809+08:00 INFO 2523770 --- [agent-platform] [Thread-25] c.a.n.common.http.HttpClientBeanHolder : [HttpClientBeanHolder] Start destroying common HttpClient +2026-06-05T10:48:39.809+08:00 INFO 2523770 --- [agent-platform] [Thread-20] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Start destroying ThreadPool +2026-06-05T10:49:43.064+08:00 INFO 2524657 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Starting AgentPlatformApplication v1.0.0 using Java 21.0.11 with PID 2524657 (/mnt/d/wiki/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar started by zdh in /mnt/d/wiki/智能体平台调研/代码/agent-platform) +2026-06-05T10:49:43.068+08:00 DEBUG 2524657 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Running with Spring Boot v3.5.8, Spring v6.2.14 +2026-06-05T10:49:43.070+08:00 INFO 2524657 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : No active profile set, falling back to 1 default profile: "default" +2026-06-05T10:49:46.577+08:00 WARN 2524657 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T10:49:46.879+08:00 WARN 2524657 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'serverAnnotatedBeanRegistry' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration$ServerMcpAnnotatedBeans] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T10:49:46.901+08:00 WARN 2524657 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'spring.ai.mcp.server.annotation-scanner-org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T10:49:47.426+08:00 INFO 2524657 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8081 (http) +2026-06-05T10:49:47.454+08:00 INFO 2524657 --- [agent-platform] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-06-05T10:49:47.455+08:00 INFO 2524657 --- [agent-platform] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.49] +2026-06-05T10:49:47.540+08:00 INFO 2524657 --- [agent-platform] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-06-05T10:49:47.541+08:00 INFO 2524657 --- [agent-platform] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 4346 ms +2026-06-05T10:49:49.423+08:00 INFO 2524657 --- [agent-platform] [main] c.a.c.a.a.s.controller.AgentController : AgentController initialized with 0 dynamic agents: [] +2026-06-05T10:49:49.427+08:00 WARN 2524657 --- [agent-platform] [main] c.a.c.a.a.s.controller.AgentController : Agent registry is empty. Define Agent beans (e.g. ReactAgent @Bean) or a custom AgentLoader. +2026-06-05T10:49:49.450+08:00 INFO 2524657 --- [agent-platform] [main] c.a.c.a.a.s.controller.GraphController : GraphController initialized with 0 graphs: [] +2026-06-05T10:49:51.405+08:00 INFO 2524657 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder +2026-06-05T10:49:51.425+08:00 INFO 2524657 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder +2026-06-05T10:49:51.428+08:00 INFO 2524657 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapter match ch.qos.logback.classic.Logger success. +2026-06-05T10:49:51.445+08:00 INFO 2524657 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder +2026-06-05T10:49:53.375+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.c.a.AbstractAbilityControlManager : Ready to get current node abilities... +2026-06-05T10:49:53.380+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.c.a.AbstractAbilityControlManager : Ready to initialize current node abilities, support modes: [SDK_CLIENT] +2026-06-05T10:49:53.381+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.c.a.AbstractAbilityControlManager : Initialize current abilities finish... +2026-06-05T10:49:53.382+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.c.a.d.NacosAbilityManagerHolder : [AbilityControlManager] Successfully initialize AbilityControlManager +2026-06-05T10:49:53.449+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:49:53.450+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:49:53.450+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:49:53.653+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:49:53.654+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:49:53.655+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:49:53.675+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.maintainer.client.utils.ParamUtil : [settings] [maintainer-http-client] connect timeout:2000 +2026-06-05T10:49:53.676+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.maintainer.client.utils.ParamUtil : [settings] [maintainer-http-client] read timeout:5000 +2026-06-05T10:49:53.676+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.maintainer.client.utils.ParamUtil : [settings] [maintainer-http-client] max retry times:3 +2026-06-05T10:49:53.677+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.maintainer.client.utils.ParamUtil : [settings] [maintainer-http-client] auth refresh interval mills:5000 +2026-06-05T10:49:53.679+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:49:53.680+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:49:53.680+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:49:53.690+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:49:53.690+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:49:53.690+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:49:53.727+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:49:53.727+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:49:53.728+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:49:53.775+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:49:53.775+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:49:53.776+08:00 INFO 2524657 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:49:54.079+08:00 INFO 2524657 --- [agent-platform] [main] .a.a.g.GraphObservationAutoConfiguration : Successfully registered ObservationThreadLocalAccessor for Reactor context propagation +2026-06-05T10:49:54.090+08:00 INFO 2524657 --- [agent-platform] [main] .a.a.g.GraphObservationAutoConfiguration : Successfully enabled Reactor automatic context propagation for observations +2026-06-05T10:49:54.213+08:00 WARN 2524657 --- [agent-platform] [main] o.s.m.provider.tool.SyncMcpToolProvider : No tool methods found in the provided tool objects: [] +2026-06-05T10:49:54.678+08:00 INFO 2524657 --- [agent-platform] [main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 4 endpoints beneath base path '/actuator' +2026-06-05T10:49:54.815+08:00 INFO 2524657 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8081 (http) with context path '/' +2026-06-05T10:49:54.832+08:00 INFO 2524657 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Started AgentPlatformApplication in 13.147 seconds (process running for 14.943) +2026-06-05T10:50:03.417+08:00 INFO 2524657 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' +2026-06-05T10:50:03.418+08:00 INFO 2524657 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' +2026-06-05T10:50:03.420+08:00 INFO 2524657 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms +2026-06-05T10:50:03.574+08:00 INFO 2524657 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... +2026-06-05T10:50:03.889+08:00 INFO 2524657 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@35a3bddf +2026-06-05T10:50:03.895+08:00 INFO 2524657 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. +2026-06-05T10:50:24.294+08:00 INFO 2524657 --- [agent-platform] [Thread-25] c.a.n.common.http.HttpClientBeanHolder : [HttpClientBeanHolder] Start destroying common HttpClient +2026-06-05T10:50:24.294+08:00 INFO 2524657 --- [agent-platform] [Thread-27] c.a.nacos.common.notify.NotifyCenter : [NotifyCenter] Start destroying Publisher +2026-06-05T10:50:24.295+08:00 INFO 2524657 --- [agent-platform] [Thread-20] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Start destroying ThreadPool +2026-06-05T10:50:24.295+08:00 INFO 2524657 --- [agent-platform] [Thread-25] c.a.n.common.http.HttpClientBeanHolder : [HttpClientBeanHolder] Completed destruction of HttpClient +2026-06-05T10:50:24.296+08:00 INFO 2524657 --- [agent-platform] [Thread-27] c.a.nacos.common.notify.NotifyCenter : [NotifyCenter] Completed destruction of Publisher +2026-06-05T10:50:24.296+08:00 INFO 2524657 --- [agent-platform] [Thread-20] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Completed destruction of ThreadPool +2026-06-05T10:50:24.300+08:00 INFO 2524657 --- [agent-platform] [SpringApplicationShutdownHook] o.s.b.w.e.tomcat.GracefulShutdown : Commencing graceful shutdown. Waiting for active requests to complete +2026-06-05T10:50:24.302+08:00 INFO 2524657 --- [agent-platform] [tomcat-shutdown] o.s.b.w.e.tomcat.GracefulShutdown : Graceful shutdown complete +2026-06-05T10:50:26.347+08:00 INFO 2524657 --- [agent-platform] [SpringApplicationShutdownHook] o.s.b.j.HikariCheckpointRestoreLifecycle : Evicting Hikari connections +2026-06-05T10:50:26.352+08:00 INFO 2524657 --- [agent-platform] [SpringApplicationShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... +2026-06-05T10:50:26.405+08:00 INFO 2524657 --- [agent-platform] [SpringApplicationShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. +2026-06-05T10:50:29.267+08:00 INFO 2525404 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Starting AgentPlatformApplication v1.0.0 using Java 21.0.11 with PID 2525404 (/mnt/d/wiki/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar started by zdh in /mnt/d/wiki/智能体平台调研/代码/agent-platform) +2026-06-05T10:50:29.272+08:00 DEBUG 2525404 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Running with Spring Boot v3.5.8, Spring v6.2.14 +2026-06-05T10:50:29.273+08:00 INFO 2525404 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : No active profile set, falling back to 1 default profile: "default" +2026-06-05T10:50:32.597+08:00 WARN 2525404 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T10:50:32.865+08:00 WARN 2525404 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'serverAnnotatedBeanRegistry' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration$ServerMcpAnnotatedBeans] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T10:50:32.885+08:00 WARN 2525404 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'spring.ai.mcp.server.annotation-scanner-org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T10:50:33.379+08:00 INFO 2525404 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8081 (http) +2026-06-05T10:50:33.408+08:00 INFO 2525404 --- [agent-platform] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-06-05T10:50:33.409+08:00 INFO 2525404 --- [agent-platform] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.49] +2026-06-05T10:50:33.484+08:00 INFO 2525404 --- [agent-platform] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-06-05T10:50:33.486+08:00 INFO 2525404 --- [agent-platform] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 4095 ms +2026-06-05T10:50:35.297+08:00 INFO 2525404 --- [agent-platform] [main] c.a.c.a.a.s.controller.AgentController : AgentController initialized with 0 dynamic agents: [] +2026-06-05T10:50:35.301+08:00 WARN 2525404 --- [agent-platform] [main] c.a.c.a.a.s.controller.AgentController : Agent registry is empty. Define Agent beans (e.g. ReactAgent @Bean) or a custom AgentLoader. +2026-06-05T10:50:35.324+08:00 INFO 2525404 --- [agent-platform] [main] c.a.c.a.a.s.controller.GraphController : GraphController initialized with 0 graphs: [] +2026-06-05T10:50:37.137+08:00 INFO 2525404 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder +2026-06-05T10:50:37.157+08:00 INFO 2525404 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder +2026-06-05T10:50:37.159+08:00 INFO 2525404 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapter match ch.qos.logback.classic.Logger success. +2026-06-05T10:50:37.172+08:00 INFO 2525404 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder +2026-06-05T10:50:39.100+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.c.a.AbstractAbilityControlManager : Ready to get current node abilities... +2026-06-05T10:50:39.106+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.c.a.AbstractAbilityControlManager : Ready to initialize current node abilities, support modes: [SDK_CLIENT] +2026-06-05T10:50:39.107+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.c.a.AbstractAbilityControlManager : Initialize current abilities finish... +2026-06-05T10:50:39.108+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.c.a.d.NacosAbilityManagerHolder : [AbilityControlManager] Successfully initialize AbilityControlManager +2026-06-05T10:50:39.179+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:50:39.180+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:50:39.181+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:50:39.351+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:50:39.351+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:50:39.352+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:50:39.369+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.maintainer.client.utils.ParamUtil : [settings] [maintainer-http-client] connect timeout:2000 +2026-06-05T10:50:39.370+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.maintainer.client.utils.ParamUtil : [settings] [maintainer-http-client] read timeout:5000 +2026-06-05T10:50:39.370+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.maintainer.client.utils.ParamUtil : [settings] [maintainer-http-client] max retry times:3 +2026-06-05T10:50:39.371+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.maintainer.client.utils.ParamUtil : [settings] [maintainer-http-client] auth refresh interval mills:5000 +2026-06-05T10:50:39.373+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:50:39.373+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:50:39.374+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:50:39.382+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:50:39.383+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:50:39.383+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:50:39.414+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:50:39.414+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:50:39.415+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:50:39.455+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T10:50:39.455+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T10:50:39.456+08:00 INFO 2525404 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T10:50:39.777+08:00 INFO 2525404 --- [agent-platform] [main] .a.a.g.GraphObservationAutoConfiguration : Successfully registered ObservationThreadLocalAccessor for Reactor context propagation +2026-06-05T10:50:39.783+08:00 INFO 2525404 --- [agent-platform] [main] .a.a.g.GraphObservationAutoConfiguration : Successfully enabled Reactor automatic context propagation for observations +2026-06-05T10:50:39.912+08:00 WARN 2525404 --- [agent-platform] [main] o.s.m.provider.tool.SyncMcpToolProvider : No tool methods found in the provided tool objects: [] +2026-06-05T10:50:40.383+08:00 INFO 2525404 --- [agent-platform] [main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 4 endpoints beneath base path '/actuator' +2026-06-05T10:50:40.502+08:00 INFO 2525404 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8081 (http) with context path '/' +2026-06-05T10:50:40.521+08:00 INFO 2525404 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Started AgentPlatformApplication in 12.5 seconds (process running for 14.221) +2026-06-05T10:50:45.284+08:00 INFO 2525404 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' +2026-06-05T10:50:45.285+08:00 INFO 2525404 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' +2026-06-05T10:50:45.287+08:00 INFO 2525404 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms +2026-06-05T10:50:45.434+08:00 INFO 2525404 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... +2026-06-05T10:50:45.743+08:00 INFO 2525404 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@fb1e0f0 +2026-06-05T10:50:45.748+08:00 INFO 2525404 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. +2026-06-05T11:14:57.545+08:00 INFO 2525404 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-3] c.a.c.a.a.s.controller.AgentController : Listing apps from dynamic registry. Found: [] +2026-06-05T11:14:57.545+08:00 DEBUG 2525404 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-6] c.a.c.a.a.s.controller.GraphController : Listing graphs. Found: [] +2026-06-05T11:16:52.033+08:00 INFO 2525404 --- [agent-platform] [Thread-25] c.a.n.common.http.HttpClientBeanHolder : [HttpClientBeanHolder] Start destroying common HttpClient +2026-06-05T11:16:52.033+08:00 INFO 2525404 --- [agent-platform] [Thread-27] c.a.nacos.common.notify.NotifyCenter : [NotifyCenter] Start destroying Publisher +2026-06-05T11:16:52.033+08:00 INFO 2525404 --- [agent-platform] [Thread-25] c.a.n.common.http.HttpClientBeanHolder : [HttpClientBeanHolder] Completed destruction of HttpClient +2026-06-05T11:16:52.034+08:00 INFO 2525404 --- [agent-platform] [Thread-20] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Start destroying ThreadPool +2026-06-05T11:16:52.037+08:00 INFO 2525404 --- [agent-platform] [Thread-27] c.a.nacos.common.notify.NotifyCenter : [NotifyCenter] Completed destruction of Publisher +2026-06-05T11:16:52.037+08:00 INFO 2525404 --- [agent-platform] [Thread-20] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Completed destruction of ThreadPool +2026-06-05T11:17:23.745+08:00 INFO 2549858 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Starting AgentPlatformApplication v1.0.0 using Java 21.0.11 with PID 2549858 (/mnt/d/wiki/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar started by zdh in /mnt/d/wiki/智能体平台调研/代码/agent-platform) +2026-06-05T11:17:23.750+08:00 DEBUG 2549858 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Running with Spring Boot v3.5.8, Spring v6.2.14 +2026-06-05T11:17:23.752+08:00 INFO 2549858 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : No active profile set, falling back to 1 default profile: "default" +2026-06-05T11:17:28.028+08:00 WARN 2549858 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T11:17:28.338+08:00 WARN 2549858 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'serverAnnotatedBeanRegistry' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration$ServerMcpAnnotatedBeans] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T11:17:28.368+08:00 WARN 2549858 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'spring.ai.mcp.server.annotation-scanner-org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T11:17:29.121+08:00 INFO 2549858 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8081 (http) +2026-06-05T11:17:29.168+08:00 INFO 2549858 --- [agent-platform] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-06-05T11:17:29.169+08:00 INFO 2549858 --- [agent-platform] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.49] +2026-06-05T11:17:29.273+08:00 INFO 2549858 --- [agent-platform] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-06-05T11:17:29.274+08:00 INFO 2549858 --- [agent-platform] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 5375 ms +2026-06-05T11:17:31.760+08:00 INFO 2549858 --- [agent-platform] [main] c.a.c.a.a.s.controller.AgentController : AgentController initialized with 2 dynamic agents: [assistant, coder] +2026-06-05T11:17:31.816+08:00 INFO 2549858 --- [agent-platform] [main] c.a.c.a.a.s.controller.GraphController : GraphController initialized with 2 graphs: [demo_chat_workflow, demo_multi_step] +2026-06-05T11:17:33.856+08:00 WARN 2549858 --- [agent-platform] [main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'routerFunctionMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Error creating bean with name 'a2aRouterFunction' defined in class path resource [com/alibaba/cloud/ai/a2a/autoconfigure/server/A2aServerAutoConfiguration.class]: Unsatisfied dependency expressed through method 'a2aRouterFunction' parameter 1: Error creating bean with name 'jsonRpcA2aRequestHandler' defined in class path resource [com/alibaba/cloud/ai/a2a/autoconfigure/server/A2aServerHandlerAutoConfiguration.class]: Unsatisfied dependency expressed through method 'jsonRpcA2aRequestHandler' parameter 0: Error creating bean with name 'jsonrpcHandler' defined in class path resource [com/alibaba/cloud/ai/a2a/autoconfigure/server/A2aServerHandlerAutoConfiguration.class]: Unsatisfied dependency expressed through method 'jsonrpcHandler' parameter 0: Error creating bean with name 'agentCard' defined in class path resource [com/alibaba/cloud/ai/a2a/autoconfigure/server/A2aServerAgentCardAutoConfiguration.class]: Unsatisfied dependency expressed through method 'agentCard' parameter 0: No qualifying bean of type 'com.alibaba.cloud.ai.graph.agent.Agent' available: expected single matching bean but found 2: demoAssistant,demoCoder +2026-06-05T11:17:33.865+08:00 INFO 2549858 --- [agent-platform] [main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] +2026-06-05T11:17:33.916+08:00 INFO 2549858 --- [agent-platform] [main] .s.b.a.l.ConditionEvaluationReportLogger : + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +2026-06-05T11:17:33.982+08:00 ERROR 2549858 --- [agent-platform] [main] o.s.b.d.LoggingFailureAnalysisReporter : + +*************************** +APPLICATION FAILED TO START +*************************** + +Description: + +Parameter 0 of method agentCard in com.alibaba.cloud.ai.a2a.autoconfigure.server.A2aServerAgentCardAutoConfiguration required a single bean, but 2 were found: + - demoAssistant: defined by method 'demoAssistant' in class path resource [com/demo/agent/StudioDemoConfig.class] + - demoCoder: defined by method 'demoCoder' in class path resource [com/demo/agent/StudioDemoConfig.class] + +This may be due to missing parameter name information + +Action: + +Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumed + +Ensure that your compiler is configured to use the '-parameters' flag. +You may need to update both your build tool settings as well as your IDE. +(See https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-6.1-Release-Notes#parameter-name-retention) + + +2026-06-05T11:18:08.093+08:00 INFO 2552235 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Starting AgentPlatformApplication v1.0.0 using Java 21.0.11 with PID 2552235 (/mnt/d/wiki/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar started by zdh in /mnt/d/wiki/智能体平台调研/代码/agent-platform) +2026-06-05T11:18:08.098+08:00 DEBUG 2552235 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Running with Spring Boot v3.5.8, Spring v6.2.14 +2026-06-05T11:18:08.100+08:00 INFO 2552235 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : No active profile set, falling back to 1 default profile: "default" +2026-06-05T11:18:12.354+08:00 WARN 2552235 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T11:18:12.662+08:00 WARN 2552235 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'serverAnnotatedBeanRegistry' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration$ServerMcpAnnotatedBeans] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T11:18:12.689+08:00 WARN 2552235 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'spring.ai.mcp.server.annotation-scanner-org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T11:18:13.425+08:00 INFO 2552235 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8081 (http) +2026-06-05T11:18:13.476+08:00 INFO 2552235 --- [agent-platform] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-06-05T11:18:13.477+08:00 INFO 2552235 --- [agent-platform] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.49] +2026-06-05T11:18:13.595+08:00 INFO 2552235 --- [agent-platform] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-06-05T11:18:13.597+08:00 INFO 2552235 --- [agent-platform] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 5297 ms +2026-06-05T11:18:15.959+08:00 INFO 2552235 --- [agent-platform] [main] c.a.c.a.a.s.controller.AgentController : AgentController initialized with 2 dynamic agents: [assistant, coder] +2026-06-05T11:18:16.011+08:00 INFO 2552235 --- [agent-platform] [main] c.a.c.a.a.s.controller.GraphController : GraphController initialized with 2 graphs: [demo_chat_workflow, demo_multi_step] +2026-06-05T11:18:18.474+08:00 INFO 2552235 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder +2026-06-05T11:18:18.495+08:00 INFO 2552235 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder +2026-06-05T11:18:18.498+08:00 INFO 2552235 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapter match ch.qos.logback.classic.Logger success. +2026-06-05T11:18:18.516+08:00 INFO 2552235 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder +2026-06-05T11:18:20.926+08:00 INFO 2552235 --- [agent-platform] [main] c.a.n.c.a.AbstractAbilityControlManager : Ready to get current node abilities... +2026-06-05T11:18:20.951+08:00 INFO 2552235 --- [agent-platform] [main] c.a.n.c.a.AbstractAbilityControlManager : Ready to initialize current node abilities, support modes: [SDK_CLIENT] +2026-06-05T11:18:20.952+08:00 INFO 2552235 --- [agent-platform] [main] c.a.n.c.a.AbstractAbilityControlManager : Initialize current abilities finish... +2026-06-05T11:18:20.954+08:00 INFO 2552235 --- [agent-platform] [main] c.a.n.c.a.d.NacosAbilityManagerHolder : [AbilityControlManager] Successfully initialize AbilityControlManager +2026-06-05T11:18:21.044+08:00 INFO 2552235 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T11:18:21.045+08:00 INFO 2552235 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T11:18:21.046+08:00 INFO 2552235 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T11:18:21.091+08:00 WARN 2552235 --- [agent-platform] [main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'nacosA2aOperationService' defined in class path resource [com/alibaba/cloud/ai/a2a/autoconfigure/nacos/NacosA2aRegistryAutoConfiguration.class]: Unsatisfied dependency expressed through method 'nacosA2aOperationService' parameter 2: No qualifying bean of type 'com.alibaba.cloud.ai.a2a.autoconfigure.A2aServerProperties' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} +2026-06-05T11:18:21.123+08:00 INFO 2552235 --- [agent-platform] [main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] +2026-06-05T11:18:21.162+08:00 INFO 2552235 --- [agent-platform] [main] .s.b.a.l.ConditionEvaluationReportLogger : + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +2026-06-05T11:18:21.232+08:00 ERROR 2552235 --- [agent-platform] [main] o.s.b.d.LoggingFailureAnalysisReporter : + +*************************** +APPLICATION FAILED TO START +*************************** + +Description: + +Parameter 2 of method nacosA2aOperationService in com.alibaba.cloud.ai.a2a.autoconfigure.nacos.NacosA2aRegistryAutoConfiguration required a bean of type 'com.alibaba.cloud.ai.a2a.autoconfigure.A2aServerProperties' that could not be found. + + +Action: + +Consider defining a bean of type 'com.alibaba.cloud.ai.a2a.autoconfigure.A2aServerProperties' in your configuration. + +2026-06-05T11:18:21.236+08:00 INFO 2552235 --- [agent-platform] [Thread-20] c.a.n.common.executor.ThreadPoolManager : [ThreadPoolManager] Start destroying ThreadPool +2026-06-05T11:18:21.236+08:00 INFO 2552235 --- [agent-platform] [Thread-27] c.a.nacos.common.notify.NotifyCenter : [NotifyCenter] Start destroying Publisher +2026-06-05T11:18:21.237+08:00 INFO 2552235 --- [agent-platform] [Thread-25] c.a.n.common.http.HttpClientBeanHolder : [HttpClientBeanHolder] Start destroying common HttpClient +2026-06-05T11:19:10.492+08:00 INFO 2555345 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Starting AgentPlatformApplication v1.0.0 using Java 21.0.11 with PID 2555345 (/mnt/d/wiki/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar started by zdh in /mnt/d/wiki/智能体平台调研/代码/agent-platform) +2026-06-05T11:19:10.497+08:00 DEBUG 2555345 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Running with Spring Boot v3.5.8, Spring v6.2.14 +2026-06-05T11:19:10.498+08:00 INFO 2555345 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : No active profile set, falling back to 1 default profile: "default" +2026-06-05T11:19:14.560+08:00 WARN 2555345 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T11:19:14.908+08:00 WARN 2555345 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'serverAnnotatedBeanRegistry' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerAutoConfiguration$ServerMcpAnnotatedBeans] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T11:19:14.937+08:00 WARN 2555345 --- [agent-platform] [main] trationDelegate$BeanPostProcessorChecker : Bean 'spring.ai.mcp.server.annotation-scanner-org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties' of type [org.springframework.ai.mcp.server.common.autoconfigure.annotations.McpServerAnnotationScannerProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [serverAnnotatedMethodBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. +2026-06-05T11:19:15.540+08:00 INFO 2555345 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8081 (http) +2026-06-05T11:19:15.571+08:00 INFO 2555345 --- [agent-platform] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-06-05T11:19:15.571+08:00 INFO 2555345 --- [agent-platform] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.49] +2026-06-05T11:19:15.667+08:00 INFO 2555345 --- [agent-platform] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-06-05T11:19:15.668+08:00 INFO 2555345 --- [agent-platform] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 5035 ms +2026-06-05T11:19:18.092+08:00 INFO 2555345 --- [agent-platform] [main] c.a.c.a.a.s.controller.AgentController : AgentController initialized with 2 dynamic agents: [assistant, coder] +2026-06-05T11:19:18.150+08:00 INFO 2555345 --- [agent-platform] [main] c.a.c.a.a.s.controller.GraphController : GraphController initialized with 2 graphs: [demo_chat_workflow, demo_multi_step] +2026-06-05T11:19:20.533+08:00 INFO 2555345 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback12.LogbackNacosLoggingAdapterBuilder +2026-06-05T11:19:20.556+08:00 INFO 2555345 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapterBuilder +2026-06-05T11:19:20.560+08:00 INFO 2555345 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter: com.alibaba.nacos.logger.adapter.logback14.LogbackNacosLoggingAdapter match ch.qos.logback.classic.Logger success. +2026-06-05T11:19:20.576+08:00 INFO 2555345 --- [agent-platform] [main] c.a.nacos.client.logging.NacosLogging : Nacos Logging Adapter Builder: com.alibaba.nacos.logger.adapter.log4j2.Log4j2NacosLoggingAdapterBuilder +2026-06-05T11:19:21.175+08:00 INFO 2555345 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T11:19:21.176+08:00 INFO 2555345 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T11:19:21.176+08:00 INFO 2555345 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T11:19:21.215+08:00 INFO 2555345 --- [agent-platform] [main] c.a.n.maintainer.client.utils.ParamUtil : [settings] [maintainer-http-client] connect timeout:2000 +2026-06-05T11:19:21.216+08:00 INFO 2555345 --- [agent-platform] [main] c.a.n.maintainer.client.utils.ParamUtil : [settings] [maintainer-http-client] read timeout:5000 +2026-06-05T11:19:21.217+08:00 INFO 2555345 --- [agent-platform] [main] c.a.n.maintainer.client.utils.ParamUtil : [settings] [maintainer-http-client] max retry times:3 +2026-06-05T11:19:21.217+08:00 INFO 2555345 --- [agent-platform] [main] c.a.n.maintainer.client.utils.ParamUtil : [settings] [maintainer-http-client] auth refresh interval mills:5000 +2026-06-05T11:19:21.221+08:00 INFO 2555345 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T11:19:21.221+08:00 INFO 2555345 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T11:19:21.222+08:00 INFO 2555345 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T11:19:21.235+08:00 INFO 2555345 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T11:19:21.236+08:00 INFO 2555345 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T11:19:21.237+08:00 INFO 2555345 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T11:19:21.296+08:00 INFO 2555345 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T11:19:21.298+08:00 INFO 2555345 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T11:19:21.299+08:00 INFO 2555345 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T11:19:23.389+08:00 INFO 2555345 --- [agent-platform] [main] c.a.n.c.a.AbstractAbilityControlManager : Ready to get current node abilities... +2026-06-05T11:19:23.397+08:00 INFO 2555345 --- [agent-platform] [main] c.a.n.c.a.AbstractAbilityControlManager : Ready to initialize current node abilities, support modes: [SDK_CLIENT] +2026-06-05T11:19:23.398+08:00 INFO 2555345 --- [agent-platform] [main] c.a.n.c.a.AbstractAbilityControlManager : Initialize current abilities finish... +2026-06-05T11:19:23.399+08:00 INFO 2555345 --- [agent-platform] [main] c.a.n.c.a.d.NacosAbilityManagerHolder : [AbilityControlManager] Successfully initialize AbilityControlManager +2026-06-05T11:19:23.462+08:00 INFO 2555345 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success. +2026-06-05T11:19:23.463+08:00 INFO 2555345 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success. +2026-06-05T11:19:23.464+08:00 INFO 2555345 --- [agent-platform] [main] c.a.n.p.a.s.c.ClientAuthPluginManager : [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.aliyun.auth.AliyunExtensionClientAuthServiceImpl success. +2026-06-05T11:19:23.833+08:00 INFO 2555345 --- [agent-platform] [main] .a.a.g.GraphObservationAutoConfiguration : Successfully registered ObservationThreadLocalAccessor for Reactor context propagation +2026-06-05T11:19:23.840+08:00 INFO 2555345 --- [agent-platform] [main] .a.a.g.GraphObservationAutoConfiguration : Successfully enabled Reactor automatic context propagation for observations +2026-06-05T11:19:24.029+08:00 WARN 2555345 --- [agent-platform] [main] o.s.m.provider.tool.SyncMcpToolProvider : No tool methods found in the provided tool objects: [] +2026-06-05T11:19:24.595+08:00 INFO 2555345 --- [agent-platform] [main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 4 endpoints beneath base path '/actuator' +2026-06-05T11:19:24.737+08:00 INFO 2555345 --- [agent-platform] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8081 (http) with context path '/' +2026-06-05T11:19:24.759+08:00 INFO 2555345 --- [agent-platform] [main] c.demo.agent.AgentPlatformApplication : Started AgentPlatformApplication in 15.75 seconds (process running for 17.505) +2026-06-05T11:19:26.577+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' +2026-06-05T11:19:26.578+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' +2026-06-05T11:19:26.580+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 2 ms +2026-06-05T11:19:26.790+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... +2026-06-05T11:19:27.303+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@50375442 +2026-06-05T11:19:27.315+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. +2026-06-05T11:20:19.172+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-3] c.a.c.a.a.s.controller.GraphController : Listing graphs. Found: [demo_chat_workflow, demo_multi_step] +2026-06-05T11:20:19.172+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-2] c.a.c.a.a.s.controller.AgentController : Listing apps from dynamic registry. Found: [assistant, coder] +2026-06-05T11:20:27.781+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-7] c.a.c.a.a.s.controller.AgentController : Listing apps from dynamic registry. Found: [assistant, coder] +2026-06-05T11:20:27.781+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-4] c.a.c.a.a.s.controller.GraphController : Listing graphs. Found: [demo_chat_workflow, demo_multi_step] +2026-06-05T11:20:27.786+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-10] c.a.c.a.a.s.controller.ThreadController : Request received for GET /apps/assistant/users/user-001/threads +2026-06-05T11:20:27.788+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-10] c.a.c.a.a.s.service.ThreadServiceImpl : Found 0 threads for app=assistant, user=user-001 +2026-06-05T11:20:27.789+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-10] c.a.c.a.a.s.controller.ThreadController : Found 0 non-evaluation thread for app=assistant, user=user-001 +2026-06-05T11:20:33.219+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-9] c.a.c.a.a.s.controller.ThreadController : Request received for POST /apps/assistant/users/user-001/threads (service generates ID) with state: {} +2026-06-05T11:20:33.221+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-9] c.a.c.a.a.s.service.ThreadServiceImpl : Created thread: 081a59fd-1967-44db-8235-fa2e87442b62 for app=assistant, user=user-001 +2026-06-05T11:20:33.221+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-9] c.a.c.a.a.s.controller.ThreadController : Thread created successfully with generated id: 081a59fd-1967-44db-8235-fa2e87442b62 +2026-06-05T11:20:33.247+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-5] c.a.c.a.a.s.controller.ThreadController : Request received for GET /apps/assistant/users/user-001/threads/081a59fd-1967-44db-8235-fa2e87442b62 +2026-06-05T11:20:33.249+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-5] c.a.c.a.a.s.controller.ThreadController : Found thread: 081a59fd-1967-44db-8235-fa2e87442b62 +2026-06-05T11:20:33.271+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-6] c.a.c.ai.graph.utils.SerializationUtils : Successfully preserved Map type: java.util.HashMap +2026-06-05T11:20:33.290+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-6] c.a.c.ai.graph.utils.SerializationUtils : Could not deep copy object of type org.springframework.ai.chat.messages.UserMessage, using shallow copy instead: Cannot construct instance of `org.springframework.ai.chat.messages.UserMessage` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator) + at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 2] +2026-06-05T11:20:33.338+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-6] com.alibaba.cloud.ai.graph.GraphRunner : Initializing with inputs: [input, _graph_execution_id_, messages] +2026-06-05T11:20:33.343+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-6] c.a.c.ai.graph.utils.SerializationUtils : Successfully preserved Map type: java.util.HashMap +2026-06-05T11:20:33.344+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-6] c.a.c.ai.graph.utils.SerializationUtils : Could not deep copy object of type org.springframework.ai.chat.messages.UserMessage, using shallow copy instead: Cannot construct instance of `org.springframework.ai.chat.messages.UserMessage` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator) + at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 2] +2026-06-05T11:20:33.415+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-6] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant start reasoning. +2026-06-05T11:20:33.421+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-6] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning with system prompt: 你是一个有用的AI助手,请用中文回答所有问题。 +2026-06-05T11:20:34.654+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 你好 +2026-06-05T11:20:34.667+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: !你提到 +2026-06-05T11:20:34.669+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 的“fs +2026-06-05T11:20:34.706+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: f”可能 +2026-06-05T11:20:34.841+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 有多种含义,具体 +2026-06-05T11:20:34.941+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 取决于上下文。以下 +2026-06-05T11:20:35.081+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 是一些常见的可能性 +2026-06-05T11:20:35.120+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: : + +🔹 **Free +2026-06-05T11:20:35.214+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: Software Foundation(自由 +2026-06-05T11:20:35.318+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 软件基金会)** +- +2026-06-05T11:20:35.420+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 简称 +2026-06-05T11:20:35.538+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: FSF,是由 +2026-06-05T11:20:35.580+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 理查德· +2026-06-05T11:20:35.745+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 斯托曼(Richard Stall +2026-06-05T11:20:35.844+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: man)于198 +2026-06-05T11:20:35.935+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 5年创立的 +2026-06-05T11:20:36.093+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 非营利组织,致力于 +2026-06-05T11:20:36.131+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 推广自由软件理念 +2026-06-05T11:20:36.281+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: ,维护《GNU +2026-06-05T11:20:36.324+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 通用公共许可证》 +2026-06-05T11:20:36.460+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: (GPL)等自由 +2026-06-05T11:20:36.543+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 软件许可协议,推动 +2026-06-05T11:20:36.683+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 用户运行、学习 +2026-06-05T11:20:36.722+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 、修改和分 +2026-06-05T11:20:36.859+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 发软件的自由。 + +🔹 +2026-06-05T11:20:36.941+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: **其他可能含义 +2026-06-05T11:20:37.061+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: (需结合语 +2026-06-05T11:20:37.175+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 境):** +- +2026-06-05T11:20:37.276+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: **File System Filter +2026-06-05T11:20:37.341+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: (文件系统过滤器 +2026-06-05T11:20:37.483+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: )**:Windows +2026-06-05T11:20:37.561+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 驱动开发中的术语; +2026-06-05T11:20:37.694+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: +- **F +2026-06-05T11:20:37.782+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: ederation of Small Farmers +2026-06-05T11:20:37.870+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: / Financial Services Forum +2026-06-05T11:20:37.972+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: / Future Systems Framework +2026-06-05T11:20:38.024+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: ** 等缩 +2026-06-05T11:20:38.141+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 写(常见于特定 +2026-06-05T11:20:38.262+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 行业或项目); + +2026-06-05T11:20:38.354+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: - 网络 +2026-06-05T11:20:38.491+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 用语或拼 +2026-06-05T11:20:38.576+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 写错误(如想 +2026-06-05T11:20:38.661+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 打“fss +2026-06-05T11:20:38.763+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: ”“fff”“sf +2026-06-05T11:20:38.920+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: ”等); +- +2026-06-05T11:20:38.991+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 游戏/ +2026-06-05T11:20:39.140+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 社群中的自定义缩 +2026-06-05T11:20:39.260+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 写(如某 +2026-06-05T11:20:39.320+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 款游戏内的组织 +2026-06-05T11:20:39.362+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 名)。 + +请问 +2026-06-05T11:20:39.535+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 你是在什么场景下 +2026-06-05T11:20:39.602+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 看到或需要了解 +2026-06-05T11:20:39.721+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: “fsf”的?比如 +2026-06-05T11:20:39.807+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 是关于开源软件 +2026-06-05T11:20:39.893+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 、编程、许可证 +2026-06-05T11:20:40.017+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 合规,还是其他 +2026-06-05T11:20:40.101+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 领域?我可以为你 +2026-06-05T11:20:40.158+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 更精准地解答 +2026-06-05T11:20:40.233+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 😊 +2026-06-05T11:20:40.257+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: +2026-06-05T11:21:23.727+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] c.a.c.ai.graph.utils.SerializationUtils : Successfully preserved Map type: java.util.HashMap +2026-06-05T11:21:23.728+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] c.a.c.ai.graph.utils.SerializationUtils : Could not deep copy object of type org.springframework.ai.chat.messages.UserMessage, using shallow copy instead: Cannot construct instance of `org.springframework.ai.chat.messages.UserMessage` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator) + at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 2] +2026-06-05T11:21:23.729+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] com.alibaba.cloud.ai.graph.GraphRunner : Initializing with inputs: [input, _graph_execution_id_, messages] +2026-06-05T11:21:23.730+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] c.a.c.ai.graph.utils.SerializationUtils : Successfully preserved Map type: java.util.HashMap +2026-06-05T11:21:23.731+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] c.a.c.ai.graph.utils.SerializationUtils : Could not deep copy object of type org.springframework.ai.chat.messages.UserMessage, using shallow copy instead: Cannot construct instance of `org.springframework.ai.chat.messages.UserMessage` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator) + at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 2] +2026-06-05T11:21:23.735+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant start reasoning. +2026-06-05T11:21:23.735+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning with system prompt: 你是一个有用的AI助手,请用中文回答所有问题。 +2026-06-05T11:21:24.200+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 上海 +2026-06-05T11:21:24.239+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 电气集团数字 +2026-06-05T11:21:24.281+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 科技有限公司( +2026-06-05T11:21:24.375+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 简称 +2026-06-05T11:21:24.398+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: “上海电气数 +2026-06-05T11:21:24.518+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 科”)是上海电气 +2026-06-05T11:21:24.638+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 集团股份有限公司(股票 +2026-06-05T11:21:24.746+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 代码:601 +2026-06-05T11:21:24.857+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 727.SH / +2026-06-05T11:21:24.998+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 027 +2026-06-05T11:21:25.101+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 27.HK)于 +2026-06-05T11:21:25.196+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 2021年全资 +2026-06-05T11:21:25.339+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 控股设立的数字化转型 +2026-06-05T11:21:25.502+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 核心平台公司,定位 +2026-06-05T11:21:25.658+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 为“工业智能 +2026-06-05T11:21:25.796+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 与能源数字化整体 +2026-06-05T11:21:25.919+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 解决方案提供商”,是上海电气 +2026-06-05T11:21:26.035+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 集团推进“智慧 +2026-06-05T11:21:26.155+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 能源、智能制造、 +2026-06-05T11:21:26.249+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 数智服务”三大战略 +2026-06-05T11:21:26.440+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 落地的关键支撑力量。 + +以下 +2026-06-05T11:21:26.538+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 为该公司的详细介绍 +2026-06-05T11:21:26.652+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: (截至2024 +2026-06-05T11:21:26.701+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 年最新公开信息整理 +2026-06-05T11:21:26.819+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: ): + +一、公司基本信息 +2026-06-05T11:21:26.879+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: +- 公司全 +2026-06-05T11:21:26.979+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 称:上海电气集团数字 +2026-06-05T11:21:27.037+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 科技有限公司 +- 成 +2026-06-05T11:21:27.151+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 立时间:202 +2026-06-05T11:21:27.255+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 1年11 +2026-06-05T11:21:27.339+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 月(注册地 +2026-06-05T11:21:27.475+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: :中国(上海)自由贸易 +2026-06-05T11:21:27.559+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 试验区) +- 注 +2026-06-05T11:21:27.692+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 册资本:人民币 +2026-06-05T11:21:27.760+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 5亿元 +- +2026-06-05T11:21:27.895+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 企业性质:国有 +2026-06-05T11:21:27.937+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 控股有限责任公司(上海 +2026-06-05T11:21:28.102+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 电气集团100% +2026-06-05T11:21:28.156+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 持股) +- +2026-06-05T11:21:28.312+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 统一社会信用代码 +2026-06-05T11:21:28.401+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: :913 +2026-06-05T11:21:28.509+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 1000 +2026-06-05T11:21:28.597+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 0MA1FP +2026-06-05T11:21:28.712+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: XQJ1 +2026-06-05T11:21:28.728+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: F +- +2026-06-05T11:21:28.858+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 法定代表人:李 +2026-06-05T11:21:28.995+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 宏光(曾任 +2026-06-05T11:21:29.078+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 上海电气副总裁, +2026-06-05T11:21:29.143+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 现任上海电气数 +2026-06-05T11:21:29.256+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 科董事长) + + +2026-06-05T11:21:29.358+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 二、战略定位与 +2026-06-05T11:21:29.457+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 使命 +聚焦“工业 +2026-06-05T11:21:29.561+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: +能源”双赛道 +2026-06-05T11:21:29.676+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: ,以“云 +2026-06-05T11:21:29.741+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 、大、物 +2026-06-05T11:21:29.822+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 、移、智、 +2026-06-05T11:21:29.981+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 链”等新一代信息技术为 +2026-06-05T11:21:30.050+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 底座,打造 +2026-06-05T11:21:30.196+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 覆盖“源— +2026-06-05T11:21:30.290+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 网—荷—储— +2026-06-05T11:21:30.401+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 用—维” +2026-06-05T11:21:30.479+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 全生命周期的数字化能力 +2026-06-05T11:21:30.599+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 体系,致力于成为 +2026-06-05T11:21:30.638+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: : +✅ +2026-06-05T11:21:30.778+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 国内领先的能源 +2026-06-05T11:21:30.858+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 行业工业互联网平台运营商 +2026-06-05T11:21:30.996+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: +✅ +2026-06-05T11:21:31.690+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 面向高端装备 +2026-06-05T11:21:31.718+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 制造业的智能制造系统 +2026-06-05T11:21:31.720+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 解决方案服务商 +✅ 上 +2026-06-05T11:21:31.837+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 海电气集团统一 +2026-06-05T11:21:31.839+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 的数字底座 +2026-06-05T11:21:31.859+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 与AI赋能中心 + +三 +2026-06-05T11:21:31.869+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 、核心业务板块 +1 +2026-06-05T11:21:31.895+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: . 能源数字化 +2026-06-05T11:21:31.898+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 解决方案 +- +2026-06-05T11:21:31.978+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 智慧电厂 +2026-06-05T11:21:32.101+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: /智慧风电/ +2026-06-05T11:21:32.138+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 智慧光伏:提供 +2026-06-05T11:21:32.283+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 设备状态监测、智能 +2026-06-05T11:21:32.317+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 巡检、故障 +2026-06-05T11:21:32.476+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 预测与健康管理(PH +2026-06-05T11:21:32.558+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: M)、运行优化(如 +2026-06-05T11:21:32.728+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 锅炉燃烧优化、汽 +2026-06-05T11:21:32.798+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 轮机性能诊断 +2026-06-05T11:21:32.899+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: )等SaaS化 +2026-06-05T11:21:33.019+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 应用; +- 新 +2026-06-05T11:21:33.083+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 型电力系统支撑 +2026-06-05T11:21:33.195+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: :参与虚拟电厂 +2026-06-05T11:21:33.335+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: (VPP) +2026-06-05T11:21:33.410+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 平台建设、源 +2026-06-05T11:21:33.563+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 网荷储协同调控 +2026-06-05T11:21:33.761+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 系统开发,支撑 +2026-06-05T11:21:33.896+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 上海及长三角区域 +2026-06-05T11:21:34.035+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 新型电力系统试点 +2026-06-05T11:21:34.083+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: ; +- +2026-06-05T11:21:34.209+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 碳管理平台 +2026-06-05T11:21:34.358+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: :面向发电集团 +2026-06-05T11:21:34.398+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 、工业园区提供碳盘 +2026-06-05T11:21:34.478+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 查、碳核算 +2026-06-05T11:21:34.578+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 、碳资产管理和 +2026-06-05T11:21:34.678+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 减碳路径规划 +2026-06-05T11:21:34.858+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 服务(已通过 +2026-06-05T11:21:34.977+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: ISO 1406 +2026-06-05T11:21:35.115+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 4认证工具链 +2026-06-05T11:21:35.259+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 集成)。 + +2. +2026-06-05T11:21:35.298+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 工业互联网 +2026-06-05T11:21:35.418+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 平台(“星云智 +2026-06-05T11:21:35.595+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 汇”工业互联网 +2026-06-05T11:21:35.618+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 平台) +- +2026-06-05T11:21:35.695+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 平台概况:“ +2026-06-05T11:21:35.800+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 星云智汇”是 +2026-06-05T11:21:35.859+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 上海电气自主研发的国家级 +2026-06-05T11:21:36.026+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 跨行业跨领域 +2026-06-05T11:21:36.111+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 工业互联网平台(入选 +2026-06-05T11:21:36.310+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 工信部“双跨 +2026-06-05T11:21:36.339+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: ”平台名单, +2026-06-05T11:21:36.408+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 2023 +2026-06-05T11:21:36.538+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 年位列全国第2 +2026-06-05T11:21:36.642+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 3位),已 +2026-06-05T11:21:36.761+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 接入超20万台 +2026-06-05T11:21:36.918+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 套设备,覆盖 +2026-06-05T11:21:36.999+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 火电、核电 +2026-06-05T11:21:37.078+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 、风电、环保 +2026-06-05T11:21:37.179+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 、电梯、机床 +2026-06-05T11:21:37.292+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 等10余个 +2026-06-05T11:21:37.359+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 细分领域; + +2026-06-05T11:21:37.458+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: - 核心能力 +2026-06-05T11:21:37.559+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: :边缘智能采集 +2026-06-05T11:21:37.637+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: (自研Edge +2026-06-05T11:21:37.787+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: Box硬件)、工业 +2026-06-05T11:21:37.851+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: PaaS平台( +2026-06-05T11:21:37.940+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 含时序数据库 +2026-06-05T11:21:38.031+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 、低代码开发 +2026-06-05T11:21:38.119+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 环境、数字孪生引擎 +2026-06-05T11:21:38.273+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: )、AI算法仓 +2026-06-05T11:21:38.331+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: (含300 +2026-06-05T11:21:38.451+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: +预置工业AI +2026-06-05T11:21:38.573+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 模型,如轴承 +2026-06-05T11:21:38.615+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 故障识别、叶片 +2026-06-05T11:21:38.721+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 裂纹检测、焊接 +2026-06-05T11:21:38.877+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 质量评估); + +2026-06-05T11:21:38.934+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: - 典型案例 +2026-06-05T11:21:39.037+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: :为上海申 +2026-06-05T11:21:39.185+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 能、浙江浙 +2026-06-05T11:21:39.279+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 能、广东粤 +2026-06-05T11:21:39.359+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 电等提供远程 +2026-06-05T11:21:39.559+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 监控与智能运维 +2026-06-05T11:21:39.598+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 服务;为上海 +2026-06-05T11:21:39.760+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 三菱电梯构建全球 +2026-06-05T11:21:39.955+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 万台电梯实时健康 +2026-06-05T11:21:40.037+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 管理系统。 + +3. +2026-06-05T11:21:40.138+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 智能制造与 +2026-06-05T11:21:40.245+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 数字工厂 +- 提 +2026-06-05T11:21:40.377+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 供从智能产 +2026-06-05T11:21:40.444+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 线规划、MES +2026-06-05T11:21:40.587+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: /WMS/APS +2026-06-05T11:21:40.637+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 系统集成、数字孪生 +2026-06-05T11:21:40.814+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 车间建设到工业 +2026-06-05T11:21:40.940+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 视觉质检(如核电 +2026-06-05T11:21:41.058+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 主泵密封面 +2026-06-05T11:21:41.211+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 缺陷识别)的一 +2026-06-05T11:21:41.261+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 体化服务; +- +2026-06-05T11:21:41.439+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 自主研发“ +2026-06-05T11:21:41.552+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: E-MES”轻 +2026-06-05T11:21:41.738+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 量化制造执行系统, +2026-06-05T11:21:41.799+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 已在上海电气电站 +2026-06-05T11:21:41.900+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 集团、上海电气 +2026-06-05T11:21:42.010+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 风电集团等内部 +2026-06-05T11:21:42.150+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 单位规模化应用,并 +2026-06-05T11:21:42.281+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 对外输出至中 +2026-06-05T11:21:42.455+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 车、中国一 +2026-06-05T11:21:42.651+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 重等央企客户。 + + +2026-06-05T11:21:42.697+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 4. 数字化 +2026-06-05T11:21:42.819+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 基础能力与创新 +2026-06-05T11:21:42.934+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 服务 +- +2026-06-05T11:21:43.018+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 信创适配:完成 +2026-06-05T11:21:43.137+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 与华为鲲鹏、海 +2026-06-05T11:21:43.317+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 光CPU,麒麟 +2026-06-05T11:21:43.379+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 、统信U +2026-06-05T11:21:43.450+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: OS操作系统,达 +2026-06-05T11:21:43.635+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 梦、人大金 +2026-06-05T11:21:43.730+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 仓数据库的全 +2026-06-05T11:21:43.916+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 栈兼容认证; +- +2026-06-05T11:21:43.963+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 大模型应用 +2026-06-05T11:21:44.056+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: :2023 +2026-06-05T11:21:44.183+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 年发布行业首个 +2026-06-05T11:21:44.283+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: “能源垂类大模型 +2026-06-05T11:21:44.398+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: ——‘星云· +2026-06-05T11:21:44.576+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 智核’( +2026-06-05T11:21:44.735+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: XingYun-Z +2026-06-05T11:21:44.877+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: hiHe)”,支持 +2026-06-05T11:21:45.018+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 设备维修知识问答 +2026-06-05T11:21:45.105+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 、技术文档智能 +2026-06-05T11:21:45.171+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 生成、工单语 +2026-06-05T11:21:45.239+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 义理解与自动 +2026-06-05T11:21:45.378+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 分派等功能, +2026-06-05T11:21:45.437+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 已在集团内部客服 +2026-06-05T11:21:45.518+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 、运维、设计 +2026-06-05T11:21:45.693+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 部门试运行; +- +2026-06-05T11:21:45.819+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 数据治理与AI +2026-06-05T11:21:45.913+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 中台:提供 +2026-06-05T11:21:46.052+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 数据资产目录、主 +2026-06-05T11:21:46.150+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 数据管理(MDM)、 +2026-06-05T11:21:46.350+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: AI训练平台(支持 +2026-06-05T11:21:46.456+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 视觉、时序、N +2026-06-05T11:21:46.517+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: LP多模态建 +2026-06-05T11:21:46.626+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 模)等标准化 +2026-06-05T11:21:46.718+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 能力输出。 + +四 +2026-06-05T11:21:46.813+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 、资质与荣誉 +2026-06-05T11:21:46.914+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: (部分) +- +2026-06-05T11:21:46.993+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 国家级“双 +2026-06-05T11:21:47.088+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 跨”工业互联网平台( +2026-06-05T11:21:47.244+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 工信部,202 +2026-06-05T11:21:47.271+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 2–202 +2026-06-05T11:21:47.380+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 4连续三年入选 +2026-06-05T11:21:47.436+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: ) +- +2026-06-05T11:21:47.539+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 国家高新技术企业、 +2026-06-05T11:21:47.642+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 上海市专精特新 +2026-06-05T11:21:47.762+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 中小企业 +- +2026-06-05T11:21:47.904+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 通过CMMI +2026-06-05T11:21:48.064+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 5级、ISO 9 +2026-06-05T11:21:48.114+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 001/ +2026-06-05T11:21:48.354+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 27001 +2026-06-05T11:21:48.377+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: /20000 +2026-06-05T11:21:48.441+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 、ITSS三级 +2026-06-05T11:21:48.537+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 认证 +- 主 +2026-06-05T11:21:48.648+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 导/参与制定 +2026-06-05T11:21:48.799+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 《电力装备工业互联网平台 +2026-06-05T11:21:48.897+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 参考架构》《风 +2026-06-05T11:21:49.055+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 电机组数字孪生系统 +2026-06-05T11:21:49.110+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 技术规范》等 +2026-06-05T11:21:49.238+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 10余项 +2026-06-05T11:21:49.381+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 国家及行业标准 + +2026-06-05T11:21:49.439+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: - 获2 +2026-06-05T11:21:49.536+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 023世界 +2026-06-05T11:21:49.700+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 人工智能大会“S +2026-06-05T11:21:49.776+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: AIL奖TOP3 +2026-06-05T11:21:49.858+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 0”、工信部 +2026-06-05T11:21:49.960+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: “工业互联网平台 +2026-06-05T11:21:50.058+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 创新领航应用 +2026-06-05T11:21:50.177+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 案例” + +五、组织 +2026-06-05T11:21:50.359+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 与生态合作 +- +2026-06-05T11:21:50.417+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 总部位于上海张 +2026-06-05T11:21:50.565+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 江,在北京、西安 +2026-06-05T11:21:50.720+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 、广州设有研发中心 +2026-06-05T11:21:50.860+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: ;在江苏盐城 +2026-06-05T11:21:50.978+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 、福建福清 +2026-06-05T11:21:51.133+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 等地建有区域 +2026-06-05T11:21:51.193+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 数字服务中心; + +2026-06-05T11:21:51.293+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: - 与上海交通大学 +2026-06-05T11:21:51.355+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 、浙江大学、中科院 +2026-06-05T11:21:51.538+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 自动化所共建联合 +2026-06-05T11:21:51.598+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 实验室; +- +2026-06-05T11:21:51.701+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 深度参与长三角 +2026-06-05T11:21:51.797+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 工业互联网一体化发展 +2026-06-05T11:21:51.957+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 示范区建设; + +2026-06-05T11:21:52.052+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: - 加入工业 +2026-06-05T11:21:52.137+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 互联网产业联盟( +2026-06-05T11:21:52.278+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: AII)、中国信 +2026-06-05T11:21:52.417+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 通院“铸 +2026-06-05T11:21:52.540+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 基计划”、 +2026-06-05T11:21:52.751+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 开放原子开源基金会 +2026-06-05T11:21:52.799+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: (OpenAtom)等 +2026-06-05T11:21:52.911+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 生态组织。 + + +2026-06-05T11:21:52.957+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 六、发展愿景 +2026-06-05T11:21:53.036+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: +锚定“2 +2026-06-05T11:21:53.147+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 025年成为 +2026-06-05T11:21:53.263+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 百亿级数字化科技 +2026-06-05T11:21:53.356+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 企业”,持续强化 +2026-06-05T11:21:53.517+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: “平台+AI+场景 +2026-06-05T11:21:53.598+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: ”融合能力,推动 +2026-06-05T11:21:53.700+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 上海电气从传统 +2026-06-05T11:21:53.837+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 装备制造集团向“高端 +2026-06-05T11:21:53.900+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 装备+数字科技 +2026-06-05T11:21:54.074+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: +绿色能源”综合 +2026-06-05T11:21:54.192+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 服务商转型升级,助力 +2026-06-05T11:21:54.398+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 中国新型工业化与 +2026-06-05T11:21:54.449+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: “双碳” +2026-06-05T11:21:54.534+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 目标实现。 + +📌 +2026-06-05T11:21:54.678+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 补充说明: + +2026-06-05T11:21:54.735+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: - 官网: +2026-06-05T11:21:54.837+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: https://www.se +2026-06-05T11:21:54.962+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: -digital.com.cn +2026-06-05T11:21:55.018+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: (建议访问获取 +2026-06-05T11:21:55.153+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 最新动态与白 +2026-06-05T11:21:55.257+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 皮书) +- 注意 +2026-06-05T11:21:55.358+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 区分:该公司与“ +2026-06-05T11:21:55.462+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 上海电气自动化设计 +2026-06-05T11:21:55.610+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 研究所有限公司”“ +2026-06-05T11:21:55.756+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 上海电气数智科技 +2026-06-05T11:21:55.849+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 有限公司(曾用名 +2026-06-05T11:21:55.924+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: ,2022 +2026-06-05T11:21:56.072+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 年前)”为 +2026-06-05T11:21:56.140+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 同一主体,2 +2026-06-05T11:21:56.162+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-10] c.a.c.a.a.s.controller.GraphController : Listing graphs. Found: [demo_chat_workflow, demo_multi_step] +2026-06-05T11:21:56.162+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] c.a.c.a.a.s.controller.AgentController : Listing apps from dynamic registry. Found: [assistant, coder] +2026-06-05T11:21:56.228+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 022年完成 +2026-06-05T11:21:56.411+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 品牌整合与架构 +2026-06-05T11:21:56.465+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 升级。 + +如需 +2026-06-05T11:21:56.616+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 了解其某项具体产品 +2026-06-05T11:21:56.657+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: (如星云智汇 +2026-06-05T11:21:56.777+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 平台功能演示)、 +2026-06-05T11:21:56.981+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 某类解决方案(如风电 +2026-06-05T11:21:57.075+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 智能运维实施路径)、或 +2026-06-05T11:21:57.223+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 招聘/合作对接 +2026-06-05T11:21:57.292+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 方式,我可进一步为您 +2026-06-05T11:21:57.449+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 细化提供。 +2026-06-05T11:21:57.507+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: +2026-06-05T11:21:58.577+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-3] c.a.c.a.a.s.controller.AgentController : Listing apps from dynamic registry. Found: [assistant, coder] +2026-06-05T11:21:58.577+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-9] c.a.c.a.a.s.controller.ThreadController : Request received for GET /apps/coder/users/user-001/threads +2026-06-05T11:21:58.577+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-5] c.a.c.a.a.s.controller.GraphController : Listing graphs. Found: [demo_chat_workflow, demo_multi_step] +2026-06-05T11:21:58.578+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-9] c.a.c.a.a.s.service.ThreadServiceImpl : Found 0 threads for app=coder, user=user-001 +2026-06-05T11:21:58.579+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-9] c.a.c.a.a.s.controller.ThreadController : Found 0 non-evaluation thread for app=coder, user=user-001 +2026-06-05T11:22:23.913+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-6] c.a.c.a.a.s.controller.ThreadController : Request received for POST /apps/coder/users/user-001/threads (service generates ID) with state: {} +2026-06-05T11:22:23.913+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-6] c.a.c.a.a.s.service.ThreadServiceImpl : Created thread: a44497d3-d814-4a83-9f83-a56a622a5580 for app=coder, user=user-001 +2026-06-05T11:22:23.914+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-6] c.a.c.a.a.s.controller.ThreadController : Thread created successfully with generated id: a44497d3-d814-4a83-9f83-a56a622a5580 +2026-06-05T11:22:23.922+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-8] c.a.c.ai.graph.utils.SerializationUtils : Successfully preserved Map type: java.util.HashMap +2026-06-05T11:22:23.923+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-8] c.a.c.ai.graph.utils.SerializationUtils : Could not deep copy object of type org.springframework.ai.chat.messages.UserMessage, using shallow copy instead: Cannot construct instance of `org.springframework.ai.chat.messages.UserMessage` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator) + at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 2] +2026-06-05T11:22:23.924+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-8] com.alibaba.cloud.ai.graph.GraphRunner : Initializing with inputs: [input, _graph_execution_id_, messages] +2026-06-05T11:22:23.924+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-8] c.a.c.ai.graph.utils.SerializationUtils : Successfully preserved Map type: java.util.HashMap +2026-06-05T11:22:23.925+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-8] c.a.c.ai.graph.utils.SerializationUtils : Could not deep copy object of type org.springframework.ai.chat.messages.UserMessage, using shallow copy instead: Cannot construct instance of `org.springframework.ai.chat.messages.UserMessage` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator) + at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 2] +2026-06-05T11:22:23.928+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] c.a.c.a.a.s.controller.ThreadController : Request received for GET /apps/coder/users/user-001/threads/a44497d3-d814-4a83-9f83-a56a622a5580 +2026-06-05T11:22:23.928+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-8] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder start reasoning. +2026-06-05T11:22:23.929+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] c.a.c.a.a.s.controller.ThreadController : Found thread: a44497d3-d814-4a83-9f83-a56a622a5580 +2026-06-05T11:22:23.929+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-8] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning with system prompt: 你是一个编程助手,擅长Java、Python、Spring Boot。请提供可运行的代码示例。 +2026-06-05T11:22:24.270+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 好的 +2026-06-05T11:22:24.311+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: !我们来 +2026-06-05T11:22:24.366+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 做一个 +2026-06-05T11:22:24.405+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 简单 +2026-06-05T11:22:24.563+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 又有趣的 **Python +2026-06-05T11:22:24.610+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 小游戏:「 +2026-06-05T11:22:24.748+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 猜数字」增强 +2026-06-05T11:22:24.913+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 版** 🎮 + +2026-06-05T11:22:24.982+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ✅ 使用 `tk +2026-06-05T11:22:25.084+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: inter` 实现图形界面 +2026-06-05T11:22:25.148+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: (无需额外安装 +2026-06-05T11:22:25.305+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ,Python 自带) + +2026-06-05T11:22:25.368+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ✅ 支持难度 +2026-06-05T11:22:25.510+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 选择(简单/中等 +2026-06-05T11:22:25.648+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: /困难 → 对 +2026-06-05T11:22:25.710+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 应范围 1-1 +2026-06-05T11:22:25.808+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 0 / 1- +2026-06-05T11:22:25.921+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 50 / +2026-06-05T11:22:26.013+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 1-100) +2026-06-05T11:22:26.157+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: +✅ 实时提示 +2026-06-05T11:22:26.285+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: (太大了/ +2026-06-05T11:22:26.354+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 太小了/ +2026-06-05T11:22:26.536+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 恭喜猜中! +2026-06-05T11:22:26.642+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ) +✅ +2026-06-05T11:22:26.696+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 记录猜测次数 + +2026-06-05T11:22:26.899+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 最佳成绩(本地 +2026-06-05T11:22:26.995+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 保存在 `best +2026-06-05T11:22:27.207+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: _score.txt`) +✅ +2026-06-05T11:22:27.225+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 点击「 +2026-06-05T11:22:27.307+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 重新开始」可 +2026-06-05T11:22:27.519+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 重玩 + +--- + + +2026-06-05T11:22:27.581+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ### ✅ 完整 +2026-06-05T11:22:27.714+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 可运行代码(复制 +2026-06-05T11:22:27.772+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 粘贴即可运行): + +2026-06-05T11:22:27.872+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ```python +# +2026-06-05T11:22:28.038+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: guess_number_gui.py +import +2026-06-05T11:22:28.126+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: tkinter as tk +from +2026-06-05T11:22:28.219+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: tkinter import messagebox, ttk + +2026-06-05T11:22:28.287+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: import random +import os + + +2026-06-05T11:22:28.396+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: # 读取历史 +2026-06-05T11:22:28.525+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 最佳成绩 +def +2026-06-05T11:22:28.645+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: load_best_score(): + +2026-06-05T11:22:28.739+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: if os.path.exists(" +2026-06-05T11:22:28.842+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: best_score.txt"): + try +2026-06-05T11:22:28.911+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: : + with open("best +2026-06-05T11:22:29.002+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: _score.txt", "r") +2026-06-05T11:22:29.147+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: as f: + return int +2026-06-05T11:22:29.233+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: (f.read().strip()) + +2026-06-05T11:22:29.353+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: except: + pass +2026-06-05T11:22:29.442+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: + return float +2026-06-05T11:22:29.516+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ('inf') + +# +2026-06-05T11:22:29.609+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 保存最佳成绩 + +2026-06-05T11:22:29.736+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: def save_best_score(score +2026-06-05T11:22:29.843+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ): + with open("best +2026-06-05T11:22:29.976+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: _score.txt", "w") +2026-06-05T11:22:30.109+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: as f: + f.write +2026-06-05T11:22:30.236+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: (str(score)) + +class +2026-06-05T11:22:30.323+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: GuessNumberGame: + def +2026-06-05T11:22:30.462+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: __init__(self, +2026-06-05T11:22:30.567+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: root): + self.root = +2026-06-05T11:22:30.699+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: root + self.root.title +2026-06-05T11:22:30.798+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ("🎯 猜数字 +2026-06-05T11:22:30.973+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 小游戏") + self.root +2026-06-05T11:22:31.049+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: .geometry("42 +2026-06-05T11:22:31.180+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 0x32 +2026-06-05T11:22:31.264+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 0") + self.root.res +2026-06-05T11:22:31.362+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: izable(False, False) + + +2026-06-05T11:22:31.457+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: # 游戏状态 +2026-06-05T11:22:31.623+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: + self.target +2026-06-05T11:22:31.665+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: = 0 + +2026-06-05T11:22:31.816+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: self.min_num = 1 +2026-06-05T11:22:31.946+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: + self.max_num +2026-06-05T11:22:32.031+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: = 10 + +2026-06-05T11:22:32.176+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: self.attempts = +2026-06-05T11:22:32.312+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 0 + self.best_score +2026-06-05T11:22:32.417+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: = load_best_score() + + +2026-06-05T11:22:32.526+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: self.setup_ui() + + +2026-06-05T11:22:32.611+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: def setup_ui +2026-06-05T11:22:32.741+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: (self): + # 标 +2026-06-05T11:22:32.871+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 题 + title = +2026-06-05T11:22:32.984+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: tk.Label(self.root, text +2026-06-05T11:22:33.075+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ="✨ 猜 +2026-06-05T11:22:33.226+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 数字游戏 ✨", font +2026-06-05T11:22:33.333+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: =("Arial", 1 +2026-06-05T11:22:33.421+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 6, "bold +2026-06-05T11:22:33.536+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: "), fg="#2 +2026-06-05T11:22:33.580+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: c3e5 +2026-06-05T11:22:33.688+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 0") + title +2026-06-05T11:22:33.777+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: .pack(pady=1 +2026-06-05T11:22:33.885+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 2) + + # +2026-06-05T11:22:33.950+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 难度 +2026-06-05T11:22:34.106+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 选择 + frame +2026-06-05T11:22:34.185+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: _diff = tk.Frame +2026-06-05T11:22:34.284+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: (self.root) + frame +2026-06-05T11:22:34.377+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: _diff.pack(pady= +2026-06-05T11:22:34.455+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 8) + tk +2026-06-05T11:22:34.585+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: .Label(frame_diff, text=" +2026-06-05T11:22:34.683+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 难度:", font=(" +2026-06-05T11:22:34.837+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: Arial", 10)). +2026-06-05T11:22:34.974+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: pack(side=tk.LEFT, +2026-06-05T11:22:35.054+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: padx=5) + +2026-06-05T11:22:35.166+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: self.difficulty = tk +2026-06-05T11:22:35.287+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: .StringVar(value="easy +2026-06-05T11:22:35.447+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ") + for text +2026-06-05T11:22:35.448+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: , val in [("简单 +2026-06-05T11:22:35.546+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: (1-1 +2026-06-05T11:22:35.666+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 0)", "easy"), (" +2026-06-05T11:22:35.735+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 中等 (1 +2026-06-05T11:22:35.891+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: -50)", "medium +2026-06-05T11:22:36.006+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: "), ("困难 (1- +2026-06-05T11:22:36.145+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 100)", "hard +2026-06-05T11:22:36.283+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ")]: + tk.R +2026-06-05T11:22:36.409+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: adiobutton(frame_diff, text +2026-06-05T11:22:36.533+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: =text, variable=self +2026-06-05T11:22:36.628+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: .difficulty, value=val +2026-06-05T11:22:36.727+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: , + font=("Arial", +2026-06-05T11:22:36.854+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 9)).pack(side=tk +2026-06-05T11:22:36.968+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: .LEFT, padx=6 +2026-06-05T11:22:37.101+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ) + + # 输入 +2026-06-05T11:22:37.185+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 框 + input +2026-06-05T11:22:37.274+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: _frame = tk.Frame(self.root +2026-06-05T11:22:37.406+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ) + input_frame.pack(p +2026-06-05T11:22:37.516+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ady=12 +2026-06-05T11:22:37.627+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ) + tk.Label(input_frame +2026-06-05T11:22:37.746+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: , text="请输入 +2026-06-05T11:22:37.823+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 数字:", font=(" +2026-06-05T11:22:37.937+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: Arial", 10)). +2026-06-05T11:22:38.087+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: pack(side=tk.LEFT) + +2026-06-05T11:22:38.222+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: self.entry = tk.Entry(input +2026-06-05T11:22:38.360+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: _frame, width=1 +2026-06-05T11:22:38.461+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 0, font=("Arial", +2026-06-05T11:22:38.567+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 12), +2026-06-05T11:22:38.627+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: justify="center") + +2026-06-05T11:22:38.778+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: self.entry.pack(side=tk +2026-06-05T11:22:38.881+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: .LEFT, padx=8 +2026-06-05T11:22:39.007+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ) + self.entry.bind("< +2026-06-05T11:22:39.153+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: Return>", lambda e: self +2026-06-05T11:22:39.284+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: .check_guess()) + + # +2026-06-05T11:22:39.366+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 按钮 + +2026-06-05T11:22:39.495+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: btn_frame = tk.Frame +2026-06-05T11:22:39.650+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: (self.root) + btn_frame +2026-06-05T11:22:39.740+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: .pack(pady=10 +2026-06-05T11:22:39.897+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ) + tk.Button(btn +2026-06-05T11:22:40.004+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: _frame, text="✅ +2026-06-05T11:22:40.119+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 猜!", command +2026-06-05T11:22:40.229+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: =self.check_guess, + +2026-06-05T11:22:40.288+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: bg="#3 +2026-06-05T11:22:40.386+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 498db", fg +2026-06-05T11:22:40.526+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ="white", font=("Arial +2026-06-05T11:22:40.640+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ", 10, " +2026-06-05T11:22:40.797+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: bold"), width=1 +2026-06-05T11:22:40.860+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 0).pack(side +2026-06-05T11:22:40.995+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: =tk.LEFT, padx=5 +2026-06-05T11:22:41.128+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ) + tk.Button(btn_frame +2026-06-05T11:22:41.234+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: , text="🔄 +2026-06-05T11:22:41.316+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 重新开始", command +2026-06-05T11:22:41.456+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: =self.restart, + bg="# +2026-06-05T11:22:41.546+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 2ecc71", +2026-06-05T11:22:41.697+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: fg="white", font=(" +2026-06-05T11:22:41.813+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: Arial", 10, +2026-06-05T11:22:41.960+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: "bold"), width=1 +2026-06-05T11:22:42.085+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 0).pack(side=tk.LEFT +2026-06-05T11:22:42.224+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: , padx=5) + + +2026-06-05T11:22:42.306+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: # 提示区 +2026-06-05T11:22:42.401+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: + self.h +2026-06-05T11:22:42.512+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: int_var = tk.StringVar +2026-06-05T11:22:42.617+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: (value="👉 +2026-06-05T11:22:42.706+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 请选择难度并输入 +2026-06-05T11:22:42.769+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 数字开始游戏!") + +2026-06-05T11:22:42.930+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: hint_label = tk.Label +2026-06-05T11:22:43.067+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: (self.root, textvariable +2026-06-05T11:22:43.178+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: =self.hint_var, font +2026-06-05T11:22:43.277+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: =("Arial", 11 +2026-06-05T11:22:43.439+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ), fg="#e +2026-06-05T11:22:43.497+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 74c3c", +2026-06-05T11:22:43.618+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: wraplength=3 +2026-06-05T11:22:43.739+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 80) + hint_label +2026-06-05T11:22:43.853+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: .pack(pady=10 +2026-06-05T11:22:44.006+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ) + + # +2026-06-05T11:22:44.046+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 状态栏(次数 +2026-06-05T11:22:44.139+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: & 最佳) + +2026-06-05T11:22:44.263+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: status_frame = tk.Frame +2026-06-05T11:22:44.408+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: (self.root, relief +2026-06-05T11:22:44.446+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ="sunken", bd +2026-06-05T11:22:44.599+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: =1) + status_frame +2026-06-05T11:22:44.706+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: .pack(side=tk.BOTTOM, +2026-06-05T11:22:44.843+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: fill=tk.X, padx +2026-06-05T11:22:44.904+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: =5, pady= +2026-06-05T11:22:45.055+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 5) + self.status_var +2026-06-05T11:22:45.236+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: = tk.StringVar(value=f +2026-06-05T11:22:45.272+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: "已猜 { +2026-06-05T11:22:45.404+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: self.attempts} +2026-06-05T11:22:45.502+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 次 | 最佳: +2026-06-05T11:22:45.615+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: {'∞' if self +2026-06-05T11:22:45.743+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: .best_score == float('inf +2026-06-05T11:22:45.884+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ') else self.best +2026-06-05T11:22:45.956+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: _score}") + tk +2026-06-05T11:22:46.058+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: .Label(status_frame, textvariable +2026-06-05T11:22:46.185+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: =self.status_var, font=(" +2026-06-05T11:22:46.286+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: Arial", 9), +2026-06-05T11:22:46.438+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: anchor="w").pack(side +2026-06-05T11:22:46.564+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: =tk.LEFT, padx=5 +2026-06-05T11:22:46.705+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ) + + # 初始化游戏 +2026-06-05T11:22:46.824+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: + self.restart() + + +2026-06-05T11:22:46.920+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: def restart(self): + +2026-06-05T11:22:47.026+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: difficulty_map = { + +2026-06-05T11:22:47.124+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: "easy": ( +2026-06-05T11:22:47.200+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 1, 10 +2026-06-05T11:22:47.401+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ), + "medium": ( +2026-06-05T11:22:47.461+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 1, 50), + +2026-06-05T11:22:47.611+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: "hard": (1 +2026-06-05T11:22:47.717+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: , 100) + +2026-06-05T11:22:47.879+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: } + self.min +2026-06-05T11:22:47.985+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: _num, self.max_num = +2026-06-05T11:22:48.118+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: difficulty_map[self.difficulty.get +2026-06-05T11:22:48.245+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ()] + self.target = random +2026-06-05T11:22:48.386+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: .randint(self.min_num, self +2026-06-05T11:22:48.506+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: .max_num) + self.at +2026-06-05T11:22:48.647+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: tempts = 0 + +2026-06-05T11:22:48.777+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: self.entry.delete(0 +2026-06-05T11:22:48.878+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: , tk.END) + self +2026-06-05T11:22:48.999+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: .entry.focus() + self +2026-06-05T11:22:49.138+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: .hint_var.set(f +2026-06-05T11:22:49.216+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: "💡 我已 +2026-06-05T11:22:49.310+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 想好一个 { +2026-06-05T11:22:49.439+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: self.min_num}-{self.max +2026-06-05T11:22:49.547+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: _num} 之间的整 +2026-06-05T11:22:49.684+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 数!") + self.update +2026-06-05T11:22:49.800+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: _status() + + def check +2026-06-05T11:22:49.936+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: _guess(self): + try: + +2026-06-05T11:22:50.059+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: guess = int(self +2026-06-05T11:22:50.171+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: .entry.get().strip()) + +2026-06-05T11:22:50.302+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: except ValueError: + self.h +2026-06-05T11:22:50.406+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: int_var.set("⚠ +2026-06-05T11:22:50.531+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ️ 请输入一个有效的 +2026-06-05T11:22:50.653+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 整数!") + self +2026-06-05T11:22:50.782+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: .entry.select_range(0, +2026-06-05T11:22:50.908+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: tk.END) + return + + +2026-06-05T11:22:51.021+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: self.attempts += +2026-06-05T11:22:51.163+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 1 + self.update +2026-06-05T11:22:51.286+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: _status() + + if guess < +2026-06-05T11:22:51.402+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: self.min_num or guess +2026-06-05T11:22:51.526+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: > self.max_num: + +2026-06-05T11:22:51.674+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: self.hint_var.set(f +2026-06-05T11:22:51.786+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: "❌ 超出 +2026-06-05T11:22:51.936+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 范围!请在 {self +2026-06-05T11:22:52.066+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: .min_num}-{self.max_num +2026-06-05T11:22:52.145+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: } 之间输入 +2026-06-05T11:22:52.236+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 。") + elif +2026-06-05T11:22:52.371+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: guess < self.target: + +2026-06-05T11:22:52.498+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: self.hint_var.set(" +2026-06-05T11:22:52.579+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 📈 太小了 +2026-06-05T11:22:52.720+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: !再试试更大的 +2026-06-05T11:22:52.798+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 数~") + elif +2026-06-05T11:22:52.917+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: guess > self.target: + +2026-06-05T11:22:53.055+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: self.hint_var.set +2026-06-05T11:22:53.134+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ("📉 太大 +2026-06-05T11:22:53.265+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 了!再试试更小 +2026-06-05T11:22:53.417+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 的数~") + else +2026-06-05T11:22:53.486+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: : # +2026-06-05T11:22:53.639+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 猜中! + +2026-06-05T11:22:53.774+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: self.hint_var.set(f +2026-06-05T11:22:53.883+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: "🎉 恭喜 +2026-06-05T11:22:53.972+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 猜中!答案 +2026-06-05T11:22:54.090+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 就是 {self.target +2026-06-05T11:22:54.234+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: }!") + if +2026-06-05T11:22:54.294+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: self.attempts < +2026-06-05T11:22:54.420+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: self.best_score: + self +2026-06-05T11:22:54.545+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: .best_score = self.attempts +2026-06-05T11:22:54.668+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: + save_best_score(self +2026-06-05T11:22:54.807+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: .best_score) + self.h +2026-06-05T11:22:54.947+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: int_var.set(self +2026-06-05T11:22:55.036+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: .hint_var.get() +2026-06-05T11:22:55.119+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: + " +2026-06-05T11:22:55.204+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 🏆 刷新最佳 +2026-06-05T11:22:55.305+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 成绩!") + + +2026-06-05T11:22:55.386+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: def update_status(self): + +2026-06-05T11:22:55.517+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: best_show = " +2026-06-05T11:22:55.624+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ∞" if self.best_score +2026-06-05T11:22:55.755+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: == float('inf') else +2026-06-05T11:22:55.966+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: self.best_score + +2026-06-05T11:22:55.995+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: self.status_var.set(f +2026-06-05T11:22:56.082+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: "已猜 {self.at +2026-06-05T11:22:56.234+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: tempts} 次 | +2026-06-05T11:22:56.344+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 最佳:{ +2026-06-05T11:22:56.457+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: best_show}") + +if __name +2026-06-05T11:22:56.586+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: __ == "__main__": + +2026-06-05T11:22:56.715+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: root = tk.Tk() + +2026-06-05T11:22:56.860+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: app = GuessNumberGame +2026-06-05T11:22:56.996+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: (root) + root.mainloop() + +2026-06-05T11:22:57.090+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ``` + +--- + +### +2026-06-05T11:22:57.235+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ▶️ 如何运行? + +2026-06-05T11:22:57.333+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 1. 确保 +2026-06-05T11:22:57.448+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 已安装 Python( +2026-06-05T11:22:57.528+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 推荐 3.7 +2026-06-05T11:22:57.550+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-3] c.a.c.ai.graph.utils.SerializationUtils : Successfully preserved Map type: java.util.HashMap +2026-06-05T11:22:57.551+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-3] c.a.c.ai.graph.utils.SerializationUtils : Could not deep copy object of type org.springframework.ai.chat.messages.UserMessage, using shallow copy instead: Cannot construct instance of `org.springframework.ai.chat.messages.UserMessage` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator) + at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 2] +2026-06-05T11:22:57.552+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-3] com.alibaba.cloud.ai.graph.GraphRunner : Initializing with inputs: [input, _graph_execution_id_, messages] +2026-06-05T11:22:57.553+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-3] c.a.c.ai.graph.utils.SerializationUtils : Successfully preserved Map type: java.util.HashMap +2026-06-05T11:22:57.553+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-3] c.a.c.ai.graph.utils.SerializationUtils : Could not deep copy object of type org.springframework.ai.chat.messages.UserMessage, using shallow copy instead: Cannot construct instance of `org.springframework.ai.chat.messages.UserMessage` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator) + at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 2] +2026-06-05T11:22:57.556+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-3] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant start reasoning. +2026-06-05T11:22:57.557+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-3] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning with system prompt: 你是一个有用的AI助手,请用中文回答所有问题。 +2026-06-05T11:22:57.638+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: +) +2. +2026-06-05T11:22:57.805+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 将上面代码保存 +2026-06-05T11:22:57.911+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 为 `guess_number_gui.py +2026-06-05T11:22:57.999+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ` +3. +2026-06-05T11:22:58.124+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 终端中执行 +2026-06-05T11:22:58.206+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: : + ```bash +2026-06-05T11:22:58.312+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 您好 +2026-06-05T11:22:58.335+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: + python guess_number_gui +2026-06-05T11:22:58.335+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: !您 +2026-06-05T11:22:58.368+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 提到“联网 +2026-06-05T11:22:58.441+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: .py + ``` +4. +2026-06-05T11:22:58.467+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 查询最新的”, +2026-06-05T11:22:58.586+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 但没有说明具体想 +2026-06-05T11:22:58.597+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 窗口 +2026-06-05T11:22:58.631+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 弹出,开始 +2026-06-05T11:22:58.652+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 查询哪方面的最新 +2026-06-05T11:22:58.760+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 信息(例如:科技 +2026-06-05T11:22:58.772+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 游戏!🎮 + +--- + +### +2026-06-05T11:22:58.868+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 新闻、天气、 +2026-06-05T11:22:58.880+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 💡 小彩 +2026-06-05T11:22:58.936+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 股票行情、体育 +2026-06-05T11:22:58.961+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 蛋 +- 第 +2026-06-05T11:22:59.028+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 赛事、政策法规 +2026-06-05T11:22:59.117+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 一次运行会生成 +2026-06-05T11:22:59.138+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 、学术研究、某 +2026-06-05T11:22:59.207+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: `best_score.txt` +2026-06-05T11:22:59.221+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 公司的最新动态等 +2026-06-05T11:22:59.297+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 记录你的最高光 +2026-06-05T11:22:59.335+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: )。 + +请您补充一下具体 +2026-06-05T11:22:59.385+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 时刻 +- 关 +2026-06-05T11:22:59.485+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 需求,例如: + +2026-06-05T11:22:59.537+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 闭程序后再次 +2026-06-05T11:22:59.565+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: - 想了解哪个 +2026-06-05T11:22:59.624+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 打开,最佳成绩依然 +2026-06-05T11:22:59.696+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 保留 ✅ +- +2026-06-05T11:22:59.717+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 领域或主题的最新消息 +2026-06-05T11:22:59.827+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: ? +- 是否有特定 +2026-06-05T11:22:59.850+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 支持回车键快速 +2026-06-05T11:22:59.933+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 的时间范围(如“ +2026-06-05T11:22:59.960+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 提交(不用点 +2026-06-05T11:22:59.996+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 今天”“过去 +2026-06-05T11:23:00.025+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 按钮) + +--- + +需要 +2026-06-05T11:23:00.085+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 24小时” +2026-06-05T11:23:00.135+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 我帮你扩展功能 +2026-06-05T11:23:00.176+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 吗?比如: + +2026-06-05T11:23:00.242+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: “2024年 +2026-06-05T11:23:00.303+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 最新”)? + +2026-06-05T11:23:00.304+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: - 🔊 添加 +2026-06-05T11:23:00.395+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 音效(猜 +2026-06-05T11:23:00.439+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: - 是否需要权威 +2026-06-05T11:23:00.478+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 中/错误提示 +2026-06-05T11:23:00.541+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 来源(如新华社、央视 +2026-06-05T11:23:00.575+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 音) +- +2026-06-05T11:23:00.677+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 新闻、Reuters、Nature +2026-06-05T11:23:00.677+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 🌐 加入排行榜 +2026-06-05T11:23:00.779+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 等)? + +⚠ +2026-06-05T11:23:00.817+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: (本地 JSON +2026-06-05T11:23:00.846+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: ️ 注意:我 +2026-06-05T11:23:00.884+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 存储多人成绩 +2026-06-05T11:23:00.944+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 当前**无法实时联网 +2026-06-05T11:23:00.970+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ) +- +2026-06-05T11:23:01.025+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 访问互联网**( +2026-06-05T11:23:01.102+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 🎨 换成 +2026-06-05T11:23:01.139+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 包括浏览网页、检索 +2026-06-05T11:23:01.191+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: PyGame +2026-06-05T11:23:01.244+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 搜索引擎或调用API +2026-06-05T11:23:01.269+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 做更炫的 +2026-06-05T11:23:01.366+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 动画版 +- +2026-06-05T11:23:01.373+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: )。我的知识截止于2 +2026-06-05T11:23:01.469+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 🧠 加 AI +2026-06-05T11:23:01.492+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 024年中 +2026-06-05T11:23:01.537+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 对手(人 +2026-06-05T11:23:01.607+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: ,且不具有 +2026-06-05T11:23:01.660+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 机对战模式 +2026-06-05T11:23:01.716+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 主动上网能力。但 +2026-06-05T11:23:01.742+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: ) + +欢迎随时 +2026-06-05T11:23:01.796+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 如果您需要: +✅ +2026-06-05T11:23:01.826+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: 告诉我~ 😄 +2026-06-05T11:23:01.850+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-1] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId a44497d3-d814-4a83-9f83-a56a622a5580] Agent coder reasoning round 0 streaming output: +2026-06-05T11:23:01.903+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 我可以基于已有 +2026-06-05T11:23:01.996+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 知识提供准确、结构 +2026-06-05T11:23:02.105+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 化的背景信息和 +2026-06-05T11:23:02.169+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 最新已知进展 +2026-06-05T11:23:02.240+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: ; +✅ +2026-06-05T11:23:02.417+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 帮您撰写 +2026-06-05T11:23:02.438+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 搜索关键词、推荐 +2026-06-05T11:23:02.533+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 可靠信源或 +2026-06-05T11:23:02.649+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 指导如何自行查 +2026-06-05T11:23:02.699+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 证; +✅ 解 +2026-06-05T11:23:02.857+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 读最新公开报道 +2026-06-05T11:23:02.926+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: (若您提供新闻 +2026-06-05T11:23:03.040+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 原文或关键信息)。 + + +2026-06-05T11:23:03.133+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 请告诉我您关心 +2026-06-05T11:23:03.248+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 的具体内容,我会 +2026-06-05T11:23:03.298+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: 尽力为您提供帮助!😊 +2026-06-05T11:23:03.384+08:00 INFO 2555345 --- [agent-platform] [boundedElastic-2] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 081a59fd-1967-44db-8235-fa2e87442b62] Agent assistant reasoning round 0 streaming output: +2026-06-05T11:23:30.663+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] c.a.c.a.a.s.controller.ThreadController : Request received for GET /apps/coder/users/user-001/threads +2026-06-05T11:23:30.664+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] c.a.c.a.a.s.service.ThreadServiceImpl : Found 1 threads for app=coder, user=user-001 +2026-06-05T11:23:30.665+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] c.a.c.a.a.s.controller.ThreadController : Found 1 non-evaluation thread for app=coder, user=user-001 +2026-06-05T11:23:32.718+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-8] c.a.c.a.a.s.controller.ThreadController : Request received for GET /apps/coder/users/user-001/threads +2026-06-05T11:23:32.720+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-8] c.a.c.a.a.s.service.ThreadServiceImpl : Found 1 threads for app=coder, user=user-001 +2026-06-05T11:23:32.721+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-8] c.a.c.a.a.s.controller.ThreadController : Found 1 non-evaluation thread for app=coder, user=user-001 +2026-06-05T11:23:34.886+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-10] c.a.c.a.a.s.controller.ThreadController : Request received for GET /apps/coder/users/user-001/threads +2026-06-05T11:23:34.886+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-10] c.a.c.a.a.s.service.ThreadServiceImpl : Found 1 threads for app=coder, user=user-001 +2026-06-05T11:23:34.887+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-10] c.a.c.a.a.s.controller.ThreadController : Found 1 non-evaluation thread for app=coder, user=user-001 +2026-06-05T11:23:35.973+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-7] c.a.c.a.a.s.controller.ThreadController : Request received for GET /apps/coder/users/user-001/threads +2026-06-05T11:23:35.974+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-7] c.a.c.a.a.s.service.ThreadServiceImpl : Found 1 threads for app=coder, user=user-001 +2026-06-05T11:23:35.974+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-7] c.a.c.a.a.s.controller.ThreadController : Found 1 non-evaluation thread for app=coder, user=user-001 +2026-06-05T11:23:37.692+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-4] c.a.c.a.a.s.controller.GraphController : Listing graphs. Found: [demo_chat_workflow, demo_multi_step] +2026-06-05T11:23:37.692+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-2] c.a.c.a.a.s.controller.AgentController : Listing apps from dynamic registry. Found: [assistant, coder] +2026-06-05T11:23:43.830+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-2] c.a.c.a.a.s.controller.GraphController : Listing graphs. Found: [demo_chat_workflow, demo_multi_step] +2026-06-05T11:23:43.830+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-4] c.a.c.a.a.s.controller.AgentController : Listing apps from dynamic registry. Found: [assistant, coder] +2026-06-05T11:23:43.831+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-7] c.a.c.a.a.s.service.ThreadServiceImpl : Found 0 threads for app=graph:demo_chat_workflow, user=user-001 +2026-06-05T11:23:52.584+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] c.a.c.a.a.s.service.ThreadServiceImpl : Created thread: d5a90731-3133-4819-b307-178bad5850c8 for app=graph:demo_chat_workflow, user=user-001 +2026-06-05T11:23:52.594+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-5] c.a.c.ai.graph.utils.SerializationUtils : Successfully preserved Map type: java.util.HashMap +2026-06-05T11:23:52.595+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-5] c.a.c.ai.graph.utils.SerializationUtils : Could not deep copy object of type org.springframework.ai.chat.messages.UserMessage, using shallow copy instead: Cannot construct instance of `org.springframework.ai.chat.messages.UserMessage` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator) + at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 2] +2026-06-05T11:23:52.597+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-5] com.alibaba.cloud.ai.graph.GraphRunner : Initializing with inputs: [input, _graph_execution_id_, messages] +2026-06-05T11:23:52.600+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-5] c.a.c.ai.graph.utils.SerializationUtils : Successfully preserved Map type: java.util.HashMap +2026-06-05T11:23:52.600+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-5] c.a.c.ai.graph.utils.SerializationUtils : Could not deep copy object of type org.springframework.ai.chat.messages.UserMessage, using shallow copy instead: Cannot construct instance of `org.springframework.ai.chat.messages.UserMessage` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator) + at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 2] +2026-06-05T11:24:23.080+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-10] c.a.c.a.a.s.controller.AgentController : Listing apps from dynamic registry. Found: [assistant, coder] +2026-06-05T11:24:23.080+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-5] c.a.c.a.a.s.controller.GraphController : Listing graphs. Found: [demo_chat_workflow, demo_multi_step] +2026-06-05T11:24:24.767+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-8] c.a.c.a.a.s.controller.AgentController : Listing apps from dynamic registry. Found: [assistant, coder] +2026-06-05T11:24:24.767+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-6] c.a.c.a.a.s.service.ThreadServiceImpl : Found 0 threads for app=graph:demo_multi_step, user=user-001 +2026-06-05T11:24:24.770+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-2] c.a.c.a.a.s.controller.GraphController : Listing graphs. Found: [demo_chat_workflow, demo_multi_step] +2026-06-05T11:29:59.125+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-3] c.a.c.a.a.s.controller.AgentController : Listing apps from dynamic registry. Found: [assistant, coder] +2026-06-05T11:29:59.143+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-7] c.a.c.a.a.s.controller.GraphController : Listing graphs. Found: [demo_chat_workflow, demo_multi_step] +2026-06-05T11:47:36.899+08:00 WARN 2555345 --- [agent-platform] [HikariPool-1:housekeeper] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@29c1ab6a (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2026-06-05T14:37:19.237+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-8] c.a.c.a.a.s.controller.AgentController : Listing apps from dynamic registry. Found: [assistant, coder] +2026-06-05T14:37:19.251+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-2] c.a.c.a.a.s.controller.GraphController : Listing graphs. Found: [demo_chat_workflow, demo_multi_step] +2026-06-05T15:21:59.074+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-2] c.a.c.a.a.s.controller.GraphController : Listing graphs. Found: [demo_chat_workflow, demo_multi_step] +2026-06-05T15:21:59.074+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-8] c.a.c.a.a.s.controller.AgentController : Listing apps from dynamic registry. Found: [assistant, coder] +2026-06-05T15:22:04.366+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-9] c.a.c.a.a.s.controller.GraphController : Listing graphs. Found: [demo_chat_workflow, demo_multi_step] +2026-06-05T15:22:04.366+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-3] c.a.c.a.a.s.controller.AgentController : Listing apps from dynamic registry. Found: [assistant, coder] +2026-06-05T15:22:04.370+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-7] c.a.c.a.a.s.controller.ThreadController : Request received for GET /apps/coder/users/user-001/threads +2026-06-05T15:22:04.371+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-7] c.a.c.a.a.s.service.ThreadServiceImpl : Found 1 threads for app=coder, user=user-001 +2026-06-05T15:22:04.372+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-7] c.a.c.a.a.s.controller.ThreadController : Found 1 non-evaluation thread for app=coder, user=user-001 +2026-06-05T15:22:06.085+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-1] c.a.c.a.a.s.controller.AgentController : Listing apps from dynamic registry. Found: [assistant, coder] +2026-06-05T15:22:06.085+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-10] c.a.c.a.a.s.controller.GraphController : Listing graphs. Found: [demo_chat_workflow, demo_multi_step] +2026-06-05T15:22:17.154+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-8] c.a.c.a.a.s.controller.ThreadController : Request received for GET /apps/coder/users/user-001/threads +2026-06-05T15:22:17.154+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-2] c.a.c.a.a.s.controller.AgentController : Listing apps from dynamic registry. Found: [assistant, coder] +2026-06-05T15:22:17.154+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-5] c.a.c.a.a.s.controller.GraphController : Listing graphs. Found: [demo_chat_workflow, demo_multi_step] +2026-06-05T15:22:17.155+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-8] c.a.c.a.a.s.service.ThreadServiceImpl : Found 1 threads for app=coder, user=user-001 +2026-06-05T15:22:17.158+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-8] c.a.c.a.a.s.controller.ThreadController : Found 1 non-evaluation thread for app=coder, user=user-001 +2026-06-05T15:22:26.466+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-4] c.a.c.a.a.s.controller.ThreadController : Request received for POST /apps/coder/users/user-001/threads (service generates ID) with state: {} +2026-06-05T15:22:26.468+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-4] c.a.c.a.a.s.service.ThreadServiceImpl : Created thread: 0f10fe9b-0764-451f-9acd-f8be4a8a64cd for app=coder, user=user-001 +2026-06-05T15:22:26.468+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-4] c.a.c.a.a.s.controller.ThreadController : Thread created successfully with generated id: 0f10fe9b-0764-451f-9acd-f8be4a8a64cd +2026-06-05T15:22:26.477+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-3] c.a.c.ai.graph.utils.SerializationUtils : Successfully preserved Map type: java.util.HashMap +2026-06-05T15:22:26.478+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-3] c.a.c.ai.graph.utils.SerializationUtils : Could not deep copy object of type org.springframework.ai.chat.messages.UserMessage, using shallow copy instead: Cannot construct instance of `org.springframework.ai.chat.messages.UserMessage` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator) + at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 2] +2026-06-05T15:22:26.481+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-3] com.alibaba.cloud.ai.graph.GraphRunner : Initializing with inputs: [input, _graph_execution_id_, messages] +2026-06-05T15:22:26.482+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-3] c.a.c.ai.graph.utils.SerializationUtils : Successfully preserved Map type: java.util.HashMap +2026-06-05T15:22:26.482+08:00 INFO 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-9] c.a.c.a.a.s.controller.ThreadController : Request received for GET /apps/coder/users/user-001/threads/0f10fe9b-0764-451f-9acd-f8be4a8a64cd +2026-06-05T15:22:26.482+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-3] c.a.c.ai.graph.utils.SerializationUtils : Could not deep copy object of type org.springframework.ai.chat.messages.UserMessage, using shallow copy instead: Cannot construct instance of `org.springframework.ai.chat.messages.UserMessage` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator) + at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 2] +2026-06-05T15:22:26.482+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-9] c.a.c.a.a.s.controller.ThreadController : Found thread: 0f10fe9b-0764-451f-9acd-f8be4a8a64cd +2026-06-05T15:22:26.491+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-3] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 0f10fe9b-0764-451f-9acd-f8be4a8a64cd] Agent coder start reasoning. +2026-06-05T15:22:26.492+08:00 DEBUG 2555345 --- [agent-platform] [http-nio-0.0.0.0-8081-exec-3] c.a.c.ai.graph.agent.node.AgentLlmNode : [ThreadId 0f10fe9b-0764-451f-9acd-f8be4a8a64cd] Agent coder reasoning with system prompt: 你是一个编程助手,擅长Java、Python、Spring Boot。请提供可运行的代码示例。 +2026-06-05T15:38:34.092+08:00 WARN 2555345 --- [agent-platform] [reactor-http-epoll-2] r.netty.http.client.HttpClientConnect : [3355506b-4, L:/172.18.79.129:47388 - R:dashscope.aliyuncs.com/39.96.213.166:443] The connection observed an error + +io.netty.channel.unix.Errors$NativeIoException: recvAddress(..) failed with error(-110): Connection timed out + +2026-06-05T15:38:34.106+08:00 ERROR 2555345 --- [agent-platform] [reactor-http-epoll-2] o.s.ai.chat.model.MessageAggregator : Aggregation Error + +org.springframework.web.reactive.function.client.WebClientRequestException: recvAddress(..) failed with error(-110): Connection timed out + at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:137) ~[spring-webflux-6.2.14.jar!/:6.2.14] + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ Request to POST https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation [DefaultWebClient] +Original Stack Trace: + at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:137) ~[spring-webflux-6.2.14.jar!/:6.2.14] + at reactor.core.publisher.MonoErrorSupplied.subscribe(MonoErrorSupplied.java:55) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.Mono.subscribe(Mono.java:4576) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:93) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:205) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWriteRestoringThreadLocals$ContextWriteRestoringThreadLocalsSubscriber.onError(FluxContextWriteRestoringThreadLocals.java:140) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.whenError(FluxRetryWhen.java:229) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onError(FluxRetryWhen.java:279) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onError(FluxContextWrite.java:121) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.maybeOnError(FluxConcatMapNoPrefetch.java:327) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onNext(FluxConcatMapNoPrefetch.java:212) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWriteRestoringThreadLocals$ContextWriteRestoringThreadLocalsSubscriber.onNext(FluxContextWriteRestoringThreadLocals.java:118) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWriteRestoringThreadLocals$ContextWriteRestoringThreadLocalsSubscriber.onNext(FluxContextWriteRestoringThreadLocals.java:118) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.SinkManyEmitterProcessor.drain(SinkManyEmitterProcessor.java:476) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.SinkManyEmitterProcessor$EmitterInner.drainParent(SinkManyEmitterProcessor.java:620) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxPublish$PubSubInner.request(FluxPublish.java:874) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWriteRestoringThreadLocals$ContextWriteRestoringThreadLocalsSubscriber.request(FluxContextWriteRestoringThreadLocals.java:163) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWriteRestoringThreadLocals$ContextWriteRestoringThreadLocalsSubscriber.request(FluxContextWriteRestoringThreadLocals.java:163) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.request(FluxConcatMapNoPrefetch.java:337) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.request(FluxContextWrite.java:136) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.Operators$DeferredSubscription.request(Operators.java:1742) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onError(FluxRetryWhen.java:196) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWriteRestoringThreadLocals$ContextWriteRestoringThreadLocalsSubscriber.onError(FluxContextWriteRestoringThreadLocals.java:140) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:205) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.netty.http.client.HttpClientConnect$HttpObserver.onUncaughtException(HttpClientConnect.java:425) ~[reactor-netty-http-1.2.12.jar!/:1.2.12] + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onUncaughtException(ReactorNetty.java:715) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at reactor.netty.resources.DefaultPooledConnectionProvider$DisposableAcquire.onUncaughtException(DefaultPooledConnectionProvider.java:225) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at reactor.netty.resources.DefaultPooledConnectionProvider$PooledConnection.onUncaughtException(DefaultPooledConnectionProvider.java:478) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at reactor.netty.channel.FluxReceive.drainReceiver(FluxReceive.java:245) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at reactor.netty.channel.FluxReceive.onInboundError(FluxReceive.java:466) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at reactor.netty.channel.ChannelOperations.onInboundError(ChannelOperations.java:535) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at reactor.netty.channel.ChannelOperationsHandler.exceptionCaught(ChannelOperationsHandler.java:153) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:317) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireExceptionCaught(CombinedChannelDuplexHandler.java:424) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.ChannelHandlerAdapter.exceptionCaught(ChannelHandlerAdapter.java:92) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.CombinedChannelDuplexHandler$1.fireExceptionCaught(CombinedChannelDuplexHandler.java:145) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.ChannelInboundHandlerAdapter.exceptionCaught(ChannelInboundHandlerAdapter.java:143) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.CombinedChannelDuplexHandler.exceptionCaught(CombinedChannelDuplexHandler.java:231) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:317) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.handler.ssl.SslHandler.exceptionCaught(SslHandler.java:1221) ~[netty-handler-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:317) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.DefaultChannelPipeline$HeadContext.exceptionCaught(DefaultChannelPipeline.java:1324) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.DefaultChannelPipeline.fireExceptionCaught(DefaultChannelPipeline.java:856) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.handleReadException(AbstractEpollStreamChannel.java:727) ~[netty-transport-classes-epoll-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:825) ~[netty-transport-classes-epoll-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:501) ~[netty-transport-classes-epoll-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:399) ~[netty-transport-classes-epoll-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998) ~[netty-common-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.128.Final.jar!/:4.1.128.Final] + at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na] +Caused by: io.netty.channel.unix.Errors$NativeIoException: recvAddress(..) failed with error(-110): Connection timed out + +2026-06-05T15:38:34.108+08:00 ERROR 2555345 --- [agent-platform] [boundedElastic-3] o.s.ai.chat.model.MessageAggregator : Aggregation Error + +org.springframework.web.reactive.function.client.WebClientRequestException: recvAddress(..) failed with error(-110): Connection timed out + at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:137) ~[spring-webflux-6.2.14.jar!/:6.2.14] + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ Request to POST https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation [DefaultWebClient] +Original Stack Trace: + at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:137) ~[spring-webflux-6.2.14.jar!/:6.2.14] + at reactor.core.publisher.MonoErrorSupplied.subscribe(MonoErrorSupplied.java:55) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.Mono.subscribe(Mono.java:4576) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:93) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:205) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWriteRestoringThreadLocals$ContextWriteRestoringThreadLocalsSubscriber.onError(FluxContextWriteRestoringThreadLocals.java:140) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.whenError(FluxRetryWhen.java:229) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onError(FluxRetryWhen.java:279) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onError(FluxContextWrite.java:121) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.maybeOnError(FluxConcatMapNoPrefetch.java:327) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onNext(FluxConcatMapNoPrefetch.java:212) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWriteRestoringThreadLocals$ContextWriteRestoringThreadLocalsSubscriber.onNext(FluxContextWriteRestoringThreadLocals.java:118) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWriteRestoringThreadLocals$ContextWriteRestoringThreadLocalsSubscriber.onNext(FluxContextWriteRestoringThreadLocals.java:118) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.SinkManyEmitterProcessor.drain(SinkManyEmitterProcessor.java:476) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.SinkManyEmitterProcessor$EmitterInner.drainParent(SinkManyEmitterProcessor.java:620) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxPublish$PubSubInner.request(FluxPublish.java:874) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWriteRestoringThreadLocals$ContextWriteRestoringThreadLocalsSubscriber.request(FluxContextWriteRestoringThreadLocals.java:163) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWriteRestoringThreadLocals$ContextWriteRestoringThreadLocalsSubscriber.request(FluxContextWriteRestoringThreadLocals.java:163) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.request(FluxConcatMapNoPrefetch.java:337) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.request(FluxContextWrite.java:136) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.Operators$DeferredSubscription.request(Operators.java:1742) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onError(FluxRetryWhen.java:196) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWriteRestoringThreadLocals$ContextWriteRestoringThreadLocalsSubscriber.onError(FluxContextWriteRestoringThreadLocals.java:140) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:205) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.netty.http.client.HttpClientConnect$HttpObserver.onUncaughtException(HttpClientConnect.java:425) ~[reactor-netty-http-1.2.12.jar!/:1.2.12] + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onUncaughtException(ReactorNetty.java:715) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at reactor.netty.resources.DefaultPooledConnectionProvider$DisposableAcquire.onUncaughtException(DefaultPooledConnectionProvider.java:225) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at reactor.netty.resources.DefaultPooledConnectionProvider$PooledConnection.onUncaughtException(DefaultPooledConnectionProvider.java:478) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at reactor.netty.channel.FluxReceive.drainReceiver(FluxReceive.java:245) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at reactor.netty.channel.FluxReceive.onInboundError(FluxReceive.java:466) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at reactor.netty.channel.ChannelOperations.onInboundError(ChannelOperations.java:535) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at reactor.netty.channel.ChannelOperationsHandler.exceptionCaught(ChannelOperationsHandler.java:153) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:317) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireExceptionCaught(CombinedChannelDuplexHandler.java:424) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.ChannelHandlerAdapter.exceptionCaught(ChannelHandlerAdapter.java:92) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.CombinedChannelDuplexHandler$1.fireExceptionCaught(CombinedChannelDuplexHandler.java:145) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.ChannelInboundHandlerAdapter.exceptionCaught(ChannelInboundHandlerAdapter.java:143) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.CombinedChannelDuplexHandler.exceptionCaught(CombinedChannelDuplexHandler.java:231) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:317) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.handler.ssl.SslHandler.exceptionCaught(SslHandler.java:1221) ~[netty-handler-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:317) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.DefaultChannelPipeline$HeadContext.exceptionCaught(DefaultChannelPipeline.java:1324) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.DefaultChannelPipeline.fireExceptionCaught(DefaultChannelPipeline.java:856) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.handleReadException(AbstractEpollStreamChannel.java:727) ~[netty-transport-classes-epoll-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:825) ~[netty-transport-classes-epoll-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:501) ~[netty-transport-classes-epoll-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:399) ~[netty-transport-classes-epoll-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998) ~[netty-common-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.128.Final.jar!/:4.1.128.Final] + at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na] +Caused by: io.netty.channel.unix.Errors$NativeIoException: recvAddress(..) failed with error(-110): Connection timed out + +2026-06-05T15:38:34.110+08:00 ERROR 2555345 --- [agent-platform] [boundedElastic-3] o.s.ai.chat.model.MessageAggregator : Aggregation Error + +org.springframework.web.reactive.function.client.WebClientRequestException: recvAddress(..) failed with error(-110): Connection timed out + at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:137) ~[spring-webflux-6.2.14.jar!/:6.2.14] + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ Request to POST https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation [DefaultWebClient] +Original Stack Trace: + at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:137) ~[spring-webflux-6.2.14.jar!/:6.2.14] + at reactor.core.publisher.MonoErrorSupplied.subscribe(MonoErrorSupplied.java:55) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.Mono.subscribe(Mono.java:4576) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:93) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:205) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWriteRestoringThreadLocals$ContextWriteRestoringThreadLocalsSubscriber.onError(FluxContextWriteRestoringThreadLocals.java:140) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.whenError(FluxRetryWhen.java:229) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onError(FluxRetryWhen.java:279) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onError(FluxContextWrite.java:121) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.maybeOnError(FluxConcatMapNoPrefetch.java:327) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onNext(FluxConcatMapNoPrefetch.java:212) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWriteRestoringThreadLocals$ContextWriteRestoringThreadLocalsSubscriber.onNext(FluxContextWriteRestoringThreadLocals.java:118) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWriteRestoringThreadLocals$ContextWriteRestoringThreadLocalsSubscriber.onNext(FluxContextWriteRestoringThreadLocals.java:118) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.SinkManyEmitterProcessor.drain(SinkManyEmitterProcessor.java:476) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.SinkManyEmitterProcessor$EmitterInner.drainParent(SinkManyEmitterProcessor.java:620) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxPublish$PubSubInner.request(FluxPublish.java:874) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWriteRestoringThreadLocals$ContextWriteRestoringThreadLocalsSubscriber.request(FluxContextWriteRestoringThreadLocals.java:163) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWriteRestoringThreadLocals$ContextWriteRestoringThreadLocalsSubscriber.request(FluxContextWriteRestoringThreadLocals.java:163) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.request(FluxConcatMapNoPrefetch.java:337) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.request(FluxContextWrite.java:136) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.Operators$DeferredSubscription.request(Operators.java:1742) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onError(FluxRetryWhen.java:196) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWriteRestoringThreadLocals$ContextWriteRestoringThreadLocalsSubscriber.onError(FluxContextWriteRestoringThreadLocals.java:140) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:205) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.netty.http.client.HttpClientConnect$HttpObserver.onUncaughtException(HttpClientConnect.java:425) ~[reactor-netty-http-1.2.12.jar!/:1.2.12] + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onUncaughtException(ReactorNetty.java:715) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at reactor.netty.resources.DefaultPooledConnectionProvider$DisposableAcquire.onUncaughtException(DefaultPooledConnectionProvider.java:225) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at reactor.netty.resources.DefaultPooledConnectionProvider$PooledConnection.onUncaughtException(DefaultPooledConnectionProvider.java:478) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at reactor.netty.channel.FluxReceive.drainReceiver(FluxReceive.java:245) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at reactor.netty.channel.FluxReceive.onInboundError(FluxReceive.java:466) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at reactor.netty.channel.ChannelOperations.onInboundError(ChannelOperations.java:535) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at reactor.netty.channel.ChannelOperationsHandler.exceptionCaught(ChannelOperationsHandler.java:153) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:317) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireExceptionCaught(CombinedChannelDuplexHandler.java:424) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.ChannelHandlerAdapter.exceptionCaught(ChannelHandlerAdapter.java:92) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.CombinedChannelDuplexHandler$1.fireExceptionCaught(CombinedChannelDuplexHandler.java:145) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.ChannelInboundHandlerAdapter.exceptionCaught(ChannelInboundHandlerAdapter.java:143) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.CombinedChannelDuplexHandler.exceptionCaught(CombinedChannelDuplexHandler.java:231) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:317) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.handler.ssl.SslHandler.exceptionCaught(SslHandler.java:1221) ~[netty-handler-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:317) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.DefaultChannelPipeline$HeadContext.exceptionCaught(DefaultChannelPipeline.java:1324) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.DefaultChannelPipeline.fireExceptionCaught(DefaultChannelPipeline.java:856) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.handleReadException(AbstractEpollStreamChannel.java:727) ~[netty-transport-classes-epoll-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:825) ~[netty-transport-classes-epoll-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:501) ~[netty-transport-classes-epoll-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:399) ~[netty-transport-classes-epoll-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998) ~[netty-common-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.128.Final.jar!/:4.1.128.Final] + at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na] +Caused by: io.netty.channel.unix.Errors$NativeIoException: recvAddress(..) failed with error(-110): Connection timed out + +2026-06-05T15:38:34.112+08:00 ERROR 2555345 --- [agent-platform] [boundedElastic-3] c.a.c.ai.graph.executor.NodeExecutor : Error signal occurred in embedded Flux stream for key 'messages': recvAddress(..) failed with error(-110): Connection timed out +2026-06-05T15:38:34.113+08:00 ERROR 2555345 --- [agent-platform] [boundedElastic-3] c.a.c.a.a.s.c.ExecutionController : Error occurred during agent stream execution + +org.springframework.web.reactive.function.client.WebClientRequestException: recvAddress(..) failed with error(-110): Connection timed out + at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:137) ~[spring-webflux-6.2.14.jar!/:6.2.14] + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ Request to POST https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation [DefaultWebClient] +Original Stack Trace: + at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:137) ~[spring-webflux-6.2.14.jar!/:6.2.14] + at reactor.core.publisher.MonoErrorSupplied.subscribe(MonoErrorSupplied.java:55) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.Mono.subscribe(Mono.java:4576) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:93) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:205) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWriteRestoringThreadLocals$ContextWriteRestoringThreadLocalsSubscriber.onError(FluxContextWriteRestoringThreadLocals.java:140) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.whenError(FluxRetryWhen.java:229) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onError(FluxRetryWhen.java:279) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onError(FluxContextWrite.java:121) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.maybeOnError(FluxConcatMapNoPrefetch.java:327) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onNext(FluxConcatMapNoPrefetch.java:212) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWriteRestoringThreadLocals$ContextWriteRestoringThreadLocalsSubscriber.onNext(FluxContextWriteRestoringThreadLocals.java:118) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWriteRestoringThreadLocals$ContextWriteRestoringThreadLocalsSubscriber.onNext(FluxContextWriteRestoringThreadLocals.java:118) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.SinkManyEmitterProcessor.drain(SinkManyEmitterProcessor.java:476) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.SinkManyEmitterProcessor$EmitterInner.drainParent(SinkManyEmitterProcessor.java:620) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxPublish$PubSubInner.request(FluxPublish.java:874) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWriteRestoringThreadLocals$ContextWriteRestoringThreadLocalsSubscriber.request(FluxContextWriteRestoringThreadLocals.java:163) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWriteRestoringThreadLocals$ContextWriteRestoringThreadLocalsSubscriber.request(FluxContextWriteRestoringThreadLocals.java:163) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.request(FluxConcatMapNoPrefetch.java:337) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.request(FluxContextWrite.java:136) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.Operators$DeferredSubscription.request(Operators.java:1742) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onError(FluxRetryWhen.java:196) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.FluxContextWriteRestoringThreadLocals$ContextWriteRestoringThreadLocalsSubscriber.onError(FluxContextWriteRestoringThreadLocals.java:140) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:205) ~[reactor-core-3.7.13.jar!/:3.7.13] + at reactor.netty.http.client.HttpClientConnect$HttpObserver.onUncaughtException(HttpClientConnect.java:425) ~[reactor-netty-http-1.2.12.jar!/:1.2.12] + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onUncaughtException(ReactorNetty.java:715) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at reactor.netty.resources.DefaultPooledConnectionProvider$DisposableAcquire.onUncaughtException(DefaultPooledConnectionProvider.java:225) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at reactor.netty.resources.DefaultPooledConnectionProvider$PooledConnection.onUncaughtException(DefaultPooledConnectionProvider.java:478) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at reactor.netty.channel.FluxReceive.drainReceiver(FluxReceive.java:245) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at reactor.netty.channel.FluxReceive.onInboundError(FluxReceive.java:466) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at reactor.netty.channel.ChannelOperations.onInboundError(ChannelOperations.java:535) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at reactor.netty.channel.ChannelOperationsHandler.exceptionCaught(ChannelOperationsHandler.java:153) ~[reactor-netty-core-1.2.12.jar!/:1.2.12] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:317) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireExceptionCaught(CombinedChannelDuplexHandler.java:424) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.ChannelHandlerAdapter.exceptionCaught(ChannelHandlerAdapter.java:92) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.CombinedChannelDuplexHandler$1.fireExceptionCaught(CombinedChannelDuplexHandler.java:145) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.ChannelInboundHandlerAdapter.exceptionCaught(ChannelInboundHandlerAdapter.java:143) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.CombinedChannelDuplexHandler.exceptionCaught(CombinedChannelDuplexHandler.java:231) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:317) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.handler.ssl.SslHandler.exceptionCaught(SslHandler.java:1221) ~[netty-handler-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:317) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.DefaultChannelPipeline$HeadContext.exceptionCaught(DefaultChannelPipeline.java:1324) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.DefaultChannelPipeline.fireExceptionCaught(DefaultChannelPipeline.java:856) ~[netty-transport-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.handleReadException(AbstractEpollStreamChannel.java:727) ~[netty-transport-classes-epoll-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:825) ~[netty-transport-classes-epoll-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:501) ~[netty-transport-classes-epoll-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:399) ~[netty-transport-classes-epoll-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998) ~[netty-common-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.128.Final.jar!/:4.1.128.Final] + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.128.Final.jar!/:4.1.128.Final] + at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na] +Caused by: io.netty.channel.unix.Errors$NativeIoException: recvAddress(..) failed with error(-110): Connection timed out + diff --git a/智能体平台调研/代码/agent-platform/pom.xml b/智能体平台调研/代码/agent-platform/pom.xml new file mode 100644 index 0000000..80095ce --- /dev/null +++ b/智能体平台调研/代码/agent-platform/pom.xml @@ -0,0 +1,148 @@ + + + 4.0.0 + + + org.springframework.boot + spring-boot-starter-parent + 3.5.8 + + + + com.demo + agent-platform + 1.0.0 + AgentPlatform + Spring AI Alibaba 全功能智能体平台 v1.1.2.2 + + + 21 + 1.1.2 + 1.1.2.2 + 3.3.0 + + + + + + org.springframework.ai + spring-ai-bom + ${spring-ai.version} + pom + import + + + com.alibaba.cloud.ai + spring-ai-alibaba-bom + ${spring-ai-alibaba.version} + pom + import + + + io.awspring.cloud + spring-cloud-aws-dependencies + ${spring-cloud-aws.version} + pom + import + + + + + + + + com.alibaba.cloud.ai + spring-ai-alibaba-starter-dashscope + ${spring-ai-alibaba.version} + + + + + com.alibaba.cloud.ai + spring-ai-alibaba-agent-framework + ${spring-ai-alibaba.version} + + + + + com.alibaba.cloud.ai + spring-ai-alibaba-studio + ${spring-ai-alibaba.version} + + + + + com.alibaba.cloud.ai + spring-ai-alibaba-starter-config-nacos + ${spring-ai-alibaba.version} + + + + + com.alibaba.cloud.ai + spring-ai-alibaba-starter-graph-observation + ${spring-ai-alibaba.version} + + + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.postgresql + postgresql + runtime + + + + + io.awspring.cloud + spring-cloud-aws-starter-s3 + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-actuator + + + + + com.networknt + json-schema-validator + 1.5.6 + + + + + org.projectlombok + lombok + true + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + + + spring-milestones + Spring Milestones + https://repo.spring.io/milestone + false + + + diff --git a/智能体平台调研/代码/agent-platform/src/main/java/com/demo/agent/AgentPlatformApplication.java b/智能体平台调研/代码/agent-platform/src/main/java/com/demo/agent/AgentPlatformApplication.java new file mode 100644 index 0000000..e076e48 --- /dev/null +++ b/智能体平台调研/代码/agent-platform/src/main/java/com/demo/agent/AgentPlatformApplication.java @@ -0,0 +1,23 @@ +package com.demo.agent; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * Spring AI Alibaba 全功能智能体平台 + *

+ * 启动后访问: + *

    + *
  • Admin Studio: http://localhost:8080/chatui
  • + *
  • 健康检查: http://localhost:8080/actuator/health
  • + *
+ */ +@SpringBootApplication(exclude = { + org.springframework.ai.mcp.server.common.autoconfigure.McpServerAutoConfiguration.class +}) +public class AgentPlatformApplication { + + public static void main(String[] args) { + SpringApplication.run(AgentPlatformApplication.class, args); + } +} diff --git a/智能体平台调研/代码/agent-platform/src/main/java/com/demo/agent/ChatController.java b/智能体平台调研/代码/agent-platform/src/main/java/com/demo/agent/ChatController.java new file mode 100644 index 0000000..d07d722 --- /dev/null +++ b/智能体平台调研/代码/agent-platform/src/main/java/com/demo/agent/ChatController.java @@ -0,0 +1,20 @@ +package com.demo.agent; + +import org.springframework.ai.chat.model.ChatModel; +import org.springframework.ai.chat.prompt.Prompt; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class ChatController { + + @Autowired + private ChatModel chatModel; + + @GetMapping("/chat") + public String chat(@RequestParam(defaultValue = "你好,请用一句话介绍你自己") String q) { + return chatModel.call(q); + } +} diff --git a/智能体平台调研/代码/agent-platform/src/main/java/com/demo/agent/StudioDemoConfig.java b/智能体平台调研/代码/agent-platform/src/main/java/com/demo/agent/StudioDemoConfig.java new file mode 100644 index 0000000..b90dfe4 --- /dev/null +++ b/智能体平台调研/代码/agent-platform/src/main/java/com/demo/agent/StudioDemoConfig.java @@ -0,0 +1,100 @@ +package com.demo.agent; + +import com.alibaba.cloud.ai.graph.CompiledGraph; +import com.alibaba.cloud.ai.graph.KeyStrategy; +import com.alibaba.cloud.ai.graph.KeyStrategyFactory; +import com.alibaba.cloud.ai.graph.StateGraph; +import com.alibaba.cloud.ai.graph.agent.ReactAgent; +import com.alibaba.cloud.ai.graph.state.strategy.AppendStrategy; +import com.alibaba.cloud.ai.graph.state.strategy.ReplaceStrategy; + +import org.springframework.ai.chat.model.ChatModel; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.Map; + +import static com.alibaba.cloud.ai.graph.StateGraph.END; +import static com.alibaba.cloud.ai.graph.StateGraph.START; +import static com.alibaba.cloud.ai.graph.action.AsyncNodeAction.node_async; + +@Configuration +public class StudioDemoConfig { + + /** + * 演示 Graph — 简单对话工作流:接收消息 → AI 处理 → 返回结果 + */ + @Bean + public CompiledGraph demoChatGraph(ChatModel chatModel) throws Exception { + KeyStrategyFactory keyFactory = () -> Map.of( + "messages", new AppendStrategy(false), + "result", new ReplaceStrategy() + ); + + StateGraph graph = new StateGraph("demo_chat_workflow", keyFactory) + .addNode("chat_node", node_async(state -> { + Object messages = state.value("messages").orElse("你好"); + String aiResponse = chatModel.call(messages.toString()); + return Map.of("result", aiResponse, "messages", aiResponse); + })) + .addEdge(START, "chat_node") + .addEdge("chat_node", END); + + return graph.compile(); + } + + /** + * 演示 Graph — 多步骤处理:分析 → 总结 + */ + @Bean + public CompiledGraph demoMultiStepGraph(ChatModel chatModel) throws Exception { + KeyStrategyFactory keyFactory = () -> Map.of( + "input", new ReplaceStrategy(), + "analysis", new ReplaceStrategy(), + "summary", new ReplaceStrategy() + ); + + StateGraph graph = new StateGraph("demo_multi_step", keyFactory) + .addNode("analyze", node_async(state -> { + String input = state.value("input").orElse("").toString(); + String analysis = chatModel.call("请分析以下内容的关键点:" + input); + return Map.of("analysis", analysis); + })) + .addNode("summarize", node_async(state -> { + String analysis = state.value("analysis").orElse("").toString(); + String summary = chatModel.call("请用一句话总结:" + analysis); + return Map.of("summary", summary); + })) + .addEdge(START, "analyze") + .addEdge("analyze", "summarize") + .addEdge("summarize", END); + + return graph.compile(); + } + + /** + * 演示 Agent — 基础对话助手 + */ + @Bean + public ReactAgent demoAssistant(ChatModel chatModel) { + return ReactAgent.builder() + .name("assistant") + .model(chatModel) + .systemPrompt("你是一个有用的AI助手,请用中文回答所有问题。") + .enableLogging(true) + .build(); + } + + /** + * 演示 Agent — 代码助手 + */ + @Bean + public ReactAgent demoCoder(ChatModel chatModel) { + return ReactAgent.builder() + .name("coder") + .model(chatModel) + .systemPrompt("你是一个编程助手,擅长Java、Python、Spring Boot。请提供可运行的代码示例。") + .enableLogging(true) + .build(); + } +} diff --git a/智能体平台调研/代码/agent-platform/src/main/resources/application.yml b/智能体平台调研/代码/agent-platform/src/main/resources/application.yml new file mode 100644 index 0000000..9e4833c --- /dev/null +++ b/智能体平台调研/代码/agent-platform/src/main/resources/application.yml @@ -0,0 +1,123 @@ +# ============================================================ +# Spring AI Alibaba 全功能平台 — 应用配置 +# 环境:本地内网 WSL2 +# 放置:src/main/resources/application.yml +# ============================================================ + +# --- 服务器 --- +server: + port: 8081 + address: 0.0.0.0 # 绑定所有网卡,允许内网访问 + +# --- 应用名 --- +spring: + application: + name: agent-platform + + # ========================================== + # 数据源 — PostgreSQL 16 + pgvector + # ========================================== + datasource: + url: jdbc:postgresql://localhost:5432/spring_ai_agent + username: sa_agent + password: agent_2026 + driver-class-name: org.postgresql.Driver + hikari: + maximum-pool-size: 10 + minimum-idle: 2 + + # ========================================== + # AI 模型 — 阿里云百炼 DashScope(外网) + # ========================================== + ai: + dashscope: + api-key: ${DASHSCOPE_API_KEY} + chat: + options: + model: qwen-plus + temperature: 0.7 + # max-tokens not supported in 1.0.0.2 DashScopeChatOptions, removed + + # ========================================== + # Nacos — 服务注册发现 + 动态配置中心 + # ========================================== + alibaba: + # Agent Nacos 代理(1.1.2.2 新配置,注意用 camelCase) + agent: + proxy: + nacos: + enabled: true + serverAddr: localhost:8848 + namespace: sa-agent-config + + nacos: + # 动态配置 + config: + server-addr: localhost:8848 + namespace: sa-agent-config + username: nacos + password: nacos + group: DEFAULT_GROUP + refresh-enabled: true # 配置热更新 + + # MCP 分布式 — 服务注册发现(暂无 nacos-mcp starter,关闭) + mcp: + nacos: + enabled: false + username: nacos + password: nacos + registry: + enabled: true + service-namespace: sa-agent-mcp + + # ========================================== + # 对象存储 — MinIO(S3 兼容) + # ========================================== + cloud: + aws: + s3: + endpoint: http://localhost:9000 + region: us-east-1 + path-style-access-enabled: true + credentials: + access-key: minioadmin + secret-key: minioadmin + +# ========================================== +# Admin Studio — 可视化编排 + 评测平台 +# ========================================== +spring.ai.alibaba: + studio: + enabled: true + path: /chatui + # Graph 工作流可观测 + graph: + observation: + enabled: true + +# ========================================== +# Actuator — 健康检查 + 指标 +# ========================================== +management: + endpoints: + web: + exposure: + include: health,info,metrics,env,prometheus + endpoint: + health: + show-details: when-authorized + metrics: + export: + prometheus: + enabled: true + +# ========================================== +# 日志 +# ========================================== +logging: + level: + com.alibaba.cloud.ai: DEBUG + com.demo.agent: DEBUG + org.springframework.ai: INFO + file: + name: logs/agent-platform.log diff --git a/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar b/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar new file mode 100644 index 0000000..dfd0524 Binary files /dev/null and b/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar differ diff --git a/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar.original b/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar.original new file mode 100644 index 0000000..0ad68ed Binary files /dev/null and b/智能体平台调研/代码/agent-platform/target/agent-platform-1.0.0.jar.original differ diff --git a/智能体平台调研/代码/agent-platform/target/classes/application.yml b/智能体平台调研/代码/agent-platform/target/classes/application.yml new file mode 100644 index 0000000..9e4833c --- /dev/null +++ b/智能体平台调研/代码/agent-platform/target/classes/application.yml @@ -0,0 +1,123 @@ +# ============================================================ +# Spring AI Alibaba 全功能平台 — 应用配置 +# 环境:本地内网 WSL2 +# 放置:src/main/resources/application.yml +# ============================================================ + +# --- 服务器 --- +server: + port: 8081 + address: 0.0.0.0 # 绑定所有网卡,允许内网访问 + +# --- 应用名 --- +spring: + application: + name: agent-platform + + # ========================================== + # 数据源 — PostgreSQL 16 + pgvector + # ========================================== + datasource: + url: jdbc:postgresql://localhost:5432/spring_ai_agent + username: sa_agent + password: agent_2026 + driver-class-name: org.postgresql.Driver + hikari: + maximum-pool-size: 10 + minimum-idle: 2 + + # ========================================== + # AI 模型 — 阿里云百炼 DashScope(外网) + # ========================================== + ai: + dashscope: + api-key: ${DASHSCOPE_API_KEY} + chat: + options: + model: qwen-plus + temperature: 0.7 + # max-tokens not supported in 1.0.0.2 DashScopeChatOptions, removed + + # ========================================== + # Nacos — 服务注册发现 + 动态配置中心 + # ========================================== + alibaba: + # Agent Nacos 代理(1.1.2.2 新配置,注意用 camelCase) + agent: + proxy: + nacos: + enabled: true + serverAddr: localhost:8848 + namespace: sa-agent-config + + nacos: + # 动态配置 + config: + server-addr: localhost:8848 + namespace: sa-agent-config + username: nacos + password: nacos + group: DEFAULT_GROUP + refresh-enabled: true # 配置热更新 + + # MCP 分布式 — 服务注册发现(暂无 nacos-mcp starter,关闭) + mcp: + nacos: + enabled: false + username: nacos + password: nacos + registry: + enabled: true + service-namespace: sa-agent-mcp + + # ========================================== + # 对象存储 — MinIO(S3 兼容) + # ========================================== + cloud: + aws: + s3: + endpoint: http://localhost:9000 + region: us-east-1 + path-style-access-enabled: true + credentials: + access-key: minioadmin + secret-key: minioadmin + +# ========================================== +# Admin Studio — 可视化编排 + 评测平台 +# ========================================== +spring.ai.alibaba: + studio: + enabled: true + path: /chatui + # Graph 工作流可观测 + graph: + observation: + enabled: true + +# ========================================== +# Actuator — 健康检查 + 指标 +# ========================================== +management: + endpoints: + web: + exposure: + include: health,info,metrics,env,prometheus + endpoint: + health: + show-details: when-authorized + metrics: + export: + prometheus: + enabled: true + +# ========================================== +# 日志 +# ========================================== +logging: + level: + com.alibaba.cloud.ai: DEBUG + com.demo.agent: DEBUG + org.springframework.ai: INFO + file: + name: logs/agent-platform.log diff --git a/智能体平台调研/代码/agent-platform/target/classes/com/demo/agent/AgentPlatformApplication.class b/智能体平台调研/代码/agent-platform/target/classes/com/demo/agent/AgentPlatformApplication.class new file mode 100644 index 0000000..7671824 Binary files /dev/null and b/智能体平台调研/代码/agent-platform/target/classes/com/demo/agent/AgentPlatformApplication.class differ diff --git a/智能体平台调研/代码/agent-platform/target/classes/com/demo/agent/ChatController.class b/智能体平台调研/代码/agent-platform/target/classes/com/demo/agent/ChatController.class new file mode 100644 index 0000000..d995c9e Binary files /dev/null and b/智能体平台调研/代码/agent-platform/target/classes/com/demo/agent/ChatController.class differ diff --git a/智能体平台调研/代码/agent-platform/target/classes/com/demo/agent/StudioDemoConfig.class b/智能体平台调研/代码/agent-platform/target/classes/com/demo/agent/StudioDemoConfig.class new file mode 100644 index 0000000..ac11ceb Binary files /dev/null and b/智能体平台调研/代码/agent-platform/target/classes/com/demo/agent/StudioDemoConfig.class differ diff --git a/智能体平台调研/代码/agent-platform/target/maven-archiver/pom.properties b/智能体平台调研/代码/agent-platform/target/maven-archiver/pom.properties new file mode 100644 index 0000000..58e05c9 --- /dev/null +++ b/智能体平台调研/代码/agent-platform/target/maven-archiver/pom.properties @@ -0,0 +1,3 @@ +artifactId=agent-platform +groupId=com.demo +version=1.0.0 diff --git a/智能体平台调研/代码/agent-platform/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/智能体平台调研/代码/agent-platform/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..7ffde43 --- /dev/null +++ b/智能体平台调研/代码/agent-platform/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,3 @@ +com/demo/agent/ChatController.class +com/demo/agent/StudioDemoConfig.class +com/demo/agent/AgentPlatformApplication.class diff --git a/智能体平台调研/代码/agent-platform/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/智能体平台调研/代码/agent-platform/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..f67dcbe --- /dev/null +++ b/智能体平台调研/代码/agent-platform/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,3 @@ +/mnt/d/wiki/智能体平台调研/代码/agent-platform/src/main/java/com/demo/agent/AgentPlatformApplication.java +/mnt/d/wiki/智能体平台调研/代码/agent-platform/src/main/java/com/demo/agent/ChatController.java +/mnt/d/wiki/智能体平台调研/代码/agent-platform/src/main/java/com/demo/agent/StudioDemoConfig.java diff --git a/智能体平台调研/代码/dify/.env b/智能体平台调研/代码/dify/.env new file mode 100644 index 0000000..48de36b --- /dev/null +++ b/智能体平台调研/代码/dify/.env @@ -0,0 +1,260 @@ +# ------------------------------------------------------------------ +# Essential defaults for Docker Compose deployments. +# Only include variables required for services to start. +# +# For a default deployment, copy this file to .env and run: +# docker compose up -d +# +# Optional and provider-specific variables live under docker/envs/. +# Copy an optional *.env.example file beside itself without the +# .example suffix when you need those advanced settings. +# Values in docker/.env take precedence over docker/envs/*.env files. +# ------------------------------------------------------------------ + +# Core service URLs +CONSOLE_API_URL= +SERVER_CONSOLE_API_URL=http://api:5001 +CONSOLE_WEB_URL= +SERVICE_API_URL= +TRIGGER_URL=http://localhost +APP_API_URL= +APP_WEB_URL= +FILES_URL= +INTERNAL_FILES_URL= +ENDPOINT_URL_TEMPLATE=http://localhost/e/{hook_id} +NEXT_PUBLIC_SOCKET_URL=ws://localhost + +# Runtime and security +LANG=C.UTF-8 +LC_ALL=C.UTF-8 +PYTHONIOENCODING=utf-8 +UV_CACHE_DIR=/tmp/.uv-cache +# Leave empty to auto-generate a persistent key in the storage directory. +SECRET_KEY=dify-secret-key-2026-local-intranet-deploy +INIT_PASSWORD= +DEPLOY_ENV=PRODUCTION +CHECK_UPDATE_URL=https://updates.dify.ai +OPENAI_API_BASE=https://api.openai.com/v1 +MIGRATION_ENABLED=true +FILES_ACCESS_TIMEOUT=300 +# Remove `collaboration` from COMPOSE_PROFILES to stop the dedicated websocket service. +ENABLE_COLLABORATION_MODE=true + +# Logging and server workers +LOG_LEVEL=INFO +LOG_OUTPUT_FORMAT=text +LOG_FILE=/app/logs/server.log +LOG_FILE_MAX_SIZE=20 +LOG_FILE_BACKUP_COUNT=5 +LOG_DATEFORMAT=%Y-%m-%d %H:%M:%S +LOG_TZ=UTC +DEBUG=false +FLASK_DEBUG=false +ENABLE_REQUEST_LOGGING=False +DIFY_BIND_ADDRESS=0.0.0.0 +DIFY_PORT=5001 +SERVER_WORKER_AMOUNT=1 +SERVER_WORKER_CLASS=gevent +SERVER_WORKER_CONNECTIONS=10 +API_WEBSOCKET_WORKER_CLASS=geventwebsocket.gunicorn.workers.GeventWebSocketWorker +API_WEBSOCKET_WORKER_CONNECTIONS=1000 +API_WEBSOCKET_GUNICORN_TIMEOUT=360 +GUNICORN_TIMEOUT=360 +CELERY_WORKER_CLASS= +CELERY_WORKER_AMOUNT=4 +CELERY_AUTO_SCALE=false +CELERY_MAX_WORKERS= +CELERY_MIN_WORKERS= +COMPOSE_WORKER_HEALTHCHECK_DISABLED=true +COMPOSE_WORKER_HEALTHCHECK_INTERVAL=30s +COMPOSE_WORKER_HEALTHCHECK_TIMEOUT=30s + +# Database +DB_TYPE=postgresql +DB_USERNAME=sa_agent +DB_PASSWORD=agent_2026 +DB_HOST=172.18.79.129 +DB_PORT=5432 +DB_DATABASE=dify +SQLALCHEMY_POOL_SIZE=30 +SQLALCHEMY_MAX_OVERFLOW=10 +SQLALCHEMY_POOL_RECYCLE=3600 +SQLALCHEMY_ECHO=false +SQLALCHEMY_POOL_PRE_PING=false +SQLALCHEMY_POOL_USE_LIFO=false +SQLALCHEMY_POOL_TIMEOUT=30 +SQLALCHEMY_POOL_RESET_ON_RETURN=rollback +PGDATA=/var/lib/postgresql/data/pgdata +POSTGRES_MAX_CONNECTIONS=200 +POSTGRES_SHARED_BUFFERS=128MB +POSTGRES_WORK_MEM=4MB +POSTGRES_MAINTENANCE_WORK_MEM=64MB +POSTGRES_EFFECTIVE_CACHE_SIZE=4096MB +POSTGRES_STATEMENT_TIMEOUT=0 +POSTGRES_IDLE_IN_TRANSACTION_SESSION_TIMEOUT=0 + +# Redis and Celery +REDIS_HOST=redis +REDIS_PORT=6379 +REDIS_USERNAME= +REDIS_PASSWORD=difyai123456 +REDIS_USE_SSL=false +REDIS_SSL_CERT_REQS=CERT_NONE +REDIS_SSL_CA_CERTS= +REDIS_SSL_CERTFILE= +REDIS_SSL_KEYFILE= +REDIS_DB=0 +REDIS_KEY_PREFIX= +REDIS_MAX_CONNECTIONS= +REDIS_RETRY_RETRIES=3 +REDIS_RETRY_BACKOFF_BASE=1.0 +REDIS_RETRY_BACKOFF_CAP=10.0 +REDIS_SOCKET_TIMEOUT=5.0 +REDIS_SOCKET_CONNECT_TIMEOUT=5.0 +REDIS_HEALTH_CHECK_INTERVAL=30 +CELERY_BROKER_URL=redis://:difyai123456@redis:6379/1 +CELERY_BACKEND=redis +BROKER_USE_SSL=false +CELERY_TASK_ANNOTATIONS=null +EVENT_BUS_REDIS_URL= +EVENT_BUS_REDIS_CHANNEL_TYPE=pubsub +EVENT_BUS_REDIS_USE_CLUSTERS=false +EVENT_BUS_LISTENER_JOIN_TIMEOUT_MS=2000 + +# Web and app limits +WEB_API_CORS_ALLOW_ORIGINS=* +CONSOLE_CORS_ALLOW_ORIGINS=* +COOKIE_DOMAIN= +NEXT_PUBLIC_COOKIE_DOMAIN= +NEXT_PUBLIC_BATCH_CONCURRENCY=5 +API_SENTRY_DSN= +API_SENTRY_TRACES_SAMPLE_RATE=1.0 +API_SENTRY_PROFILES_SAMPLE_RATE=1.0 +WEB_SENTRY_DSN= +AMPLITUDE_API_KEY= +TEXT_GENERATION_TIMEOUT_MS=60000 +CSP_WHITELIST= +ALLOW_EMBED=false +ALLOW_INLINE_STYLES=false +ALLOW_UNSAFE_DATA_SCHEME=false +TOP_K_MAX_VALUE=10 +INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH=4000 +LOOP_NODE_MAX_COUNT=100 +MAX_TOOLS_NUM=10 +MAX_PARALLEL_LIMIT=10 +MAX_ITERATIONS_NUM=99 +MAX_TREE_DEPTH=50 +ENABLE_WEBSITE_JINAREADER=true +ENABLE_WEBSITE_FIRECRAWL=true +ENABLE_WEBSITE_WATERCRAWL=true +NEXT_PUBLIC_ENABLE_SINGLE_DOLLAR_LATEX=false +EXPERIMENTAL_ENABLE_VINEXT=false + +# Storage and default vector store +STORAGE_TYPE=opendal +OPENDAL_SCHEME=fs +OPENDAL_FS_ROOT=storage +VECTOR_STORE=weaviate +VECTOR_INDEX_NAME_PREFIX=Vector_index +WEAVIATE_ENDPOINT=http://weaviate:8080 +WEAVIATE_API_KEY=WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih +WEAVIATE_GRPC_ENDPOINT=grpc://weaviate:50051 +WEAVIATE_TOKENIZATION=word +WEAVIATE_PERSISTENCE_DATA_PATH=/var/lib/weaviate +WEAVIATE_QUERY_DEFAULTS_LIMIT=25 +WEAVIATE_AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=true +WEAVIATE_DEFAULT_VECTORIZER_MODULE=none +WEAVIATE_CLUSTER_HOSTNAME=node1 +WEAVIATE_AUTHENTICATION_APIKEY_ENABLED=true +WEAVIATE_AUTHENTICATION_APIKEY_ALLOWED_KEYS=WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih +WEAVIATE_AUTHENTICATION_APIKEY_USERS=hello@dify.ai +WEAVIATE_AUTHORIZATION_ADMINLIST_ENABLED=true +WEAVIATE_AUTHORIZATION_ADMINLIST_USERS=hello@dify.ai +WEAVIATE_DISABLE_TELEMETRY=false +WEAVIATE_ENABLE_TOKENIZER_GSE=false +WEAVIATE_ENABLE_TOKENIZER_KAGOME_JA=false +WEAVIATE_ENABLE_TOKENIZER_KAGOME_KR=false + +# Sandbox and SSRF proxy +CODE_EXECUTION_ENDPOINT=http://sandbox:8194 +CODE_EXECUTION_API_KEY=dify-sandbox +CODE_EXECUTION_SSL_VERIFY=True +CODE_EXECUTION_POOL_MAX_CONNECTIONS=100 +CODE_EXECUTION_POOL_MAX_KEEPALIVE_CONNECTIONS=20 +CODE_EXECUTION_POOL_KEEPALIVE_EXPIRY=5.0 +CODE_EXECUTION_CONNECT_TIMEOUT=10 +CODE_EXECUTION_READ_TIMEOUT=60 +CODE_EXECUTION_WRITE_TIMEOUT=10 +SANDBOX_API_KEY=dify-sandbox +SANDBOX_GIN_MODE=release +SANDBOX_WORKER_TIMEOUT=15 +SANDBOX_ENABLE_NETWORK=true +SANDBOX_HTTP_PROXY=http://ssrf_proxy:3128 +SANDBOX_HTTPS_PROXY=http://ssrf_proxy:3128 +SANDBOX_PORT=8194 +PIP_MIRROR_URL= +SSRF_PROXY_HTTP_URL=http://ssrf_proxy:3128 +SSRF_PROXY_HTTPS_URL=http://ssrf_proxy:3128 +SSRF_HTTP_PORT=3128 +SSRF_COREDUMP_DIR=/var/spool/squid +SSRF_REVERSE_PROXY_PORT=8194 +SSRF_SANDBOX_HOST=sandbox +SSRF_DEFAULT_TIME_OUT=5 +SSRF_DEFAULT_CONNECT_TIME_OUT=5 +SSRF_DEFAULT_READ_TIME_OUT=5 +SSRF_DEFAULT_WRITE_TIME_OUT=5 +SSRF_POOL_MAX_CONNECTIONS=100 +SSRF_POOL_MAX_KEEPALIVE_CONNECTIONS=20 +SSRF_POOL_KEEPALIVE_EXPIRY=5.0 + +# Plugin daemon +DB_PLUGIN_DATABASE=dify_plugin +EXPOSE_PLUGIN_DAEMON_PORT=5002 +PLUGIN_DAEMON_PORT=5002 +PLUGIN_DAEMON_KEY=lYkiYYT6owG+71oLerGzA7GXCgOT++6ovaezWAjpCjf+Sjc3ZtU+qUEi +PLUGIN_DAEMON_URL=http://plugin_daemon:5002 +PLUGIN_MAX_PACKAGE_SIZE=52428800 +PLUGIN_MODEL_SCHEMA_CACHE_TTL=3600 +PLUGIN_PPROF_ENABLED=false +PLUGIN_DEBUGGING_HOST=0.0.0.0 +PLUGIN_DEBUGGING_PORT=5003 +EXPOSE_PLUGIN_DEBUGGING_HOST=localhost +EXPOSE_PLUGIN_DEBUGGING_PORT=5003 +PLUGIN_DIFY_INNER_API_KEY=QaHbTe77CtuXmsfyhR7+vRjI/+XbV1AaFy691iy+kGDv2Jvy0/eAh8Y1 +PLUGIN_DIFY_INNER_API_URL=http://api:5001 +FORCE_VERIFYING_SIGNATURE=true +PLUGIN_STDIO_BUFFER_SIZE=1024 +PLUGIN_STDIO_MAX_BUFFER_SIZE=5242880 +PLUGIN_PYTHON_ENV_INIT_TIMEOUT=120 +PLUGIN_MAX_EXECUTION_TIMEOUT=600 +PLUGIN_STORAGE_TYPE=local +PLUGIN_STORAGE_LOCAL_ROOT=/app/storage +PLUGIN_WORKING_PATH=/app/storage/cwd +PLUGIN_INSTALLED_PATH=plugin +PLUGIN_PACKAGE_CACHE_PATH=plugin_packages +PLUGIN_MEDIA_CACHE_PATH=assets +PLUGIN_STORAGE_OSS_BUCKET= +PLUGIN_SENTRY_ENABLED=false +PLUGIN_SENTRY_DSN= +MARKETPLACE_ENABLED=true +MARKETPLACE_API_URL=https://marketplace.dify.ai +MARKETPLACE_URL= + +# Nginx and Docker Compose +NGINX_SERVER_NAME=_ +NGINX_HTTPS_ENABLED=false +NGINX_PORT=80 +NGINX_SSL_PORT=443 +NGINX_SSL_CERT_FILENAME=dify.crt +NGINX_SSL_CERT_KEY_FILENAME=dify.key +NGINX_SSL_PROTOCOLS=TLSv1.2 TLSv1.3 +NGINX_WORKER_PROCESSES=auto +NGINX_CLIENT_MAX_BODY_SIZE=100M +NGINX_KEEPALIVE_TIMEOUT=65 +NGINX_PROXY_READ_TIMEOUT=3600s +NGINX_PROXY_SEND_TIMEOUT=3600s +NGINX_ENABLE_CERTBOT_CHALLENGE=false +NGINX_SOCKET_IO_UPSTREAM=api_websocket:5001 +EXPOSE_NGINX_PORT=8082 +EXPOSE_NGINX_SSL_PORT=8443 +COMPOSE_PROFILES=${VECTOR_STORE:-weaviate},${DB_TYPE:-postgresql},collaboration diff --git a/智能体平台调研/代码/dify/.env.example b/智能体平台调研/代码/dify/.env.example new file mode 100644 index 0000000..33809ea --- /dev/null +++ b/智能体平台调研/代码/dify/.env.example @@ -0,0 +1,260 @@ +# ------------------------------------------------------------------ +# Essential defaults for Docker Compose deployments. +# Only include variables required for services to start. +# +# For a default deployment, copy this file to .env and run: +# docker compose up -d +# +# Optional and provider-specific variables live under docker/envs/. +# Copy an optional *.env.example file beside itself without the +# .example suffix when you need those advanced settings. +# Values in docker/.env take precedence over docker/envs/*.env files. +# ------------------------------------------------------------------ + +# Core service URLs +CONSOLE_API_URL= +SERVER_CONSOLE_API_URL=http://api:5001 +CONSOLE_WEB_URL= +SERVICE_API_URL= +TRIGGER_URL=http://localhost +APP_API_URL= +APP_WEB_URL= +FILES_URL= +INTERNAL_FILES_URL= +ENDPOINT_URL_TEMPLATE=http://localhost/e/{hook_id} +NEXT_PUBLIC_SOCKET_URL=ws://localhost + +# Runtime and security +LANG=C.UTF-8 +LC_ALL=C.UTF-8 +PYTHONIOENCODING=utf-8 +UV_CACHE_DIR=/tmp/.uv-cache +# Leave empty to auto-generate a persistent key in the storage directory. +SECRET_KEY= +INIT_PASSWORD= +DEPLOY_ENV=PRODUCTION +CHECK_UPDATE_URL=https://updates.dify.ai +OPENAI_API_BASE=https://api.openai.com/v1 +MIGRATION_ENABLED=true +FILES_ACCESS_TIMEOUT=300 +# Remove `collaboration` from COMPOSE_PROFILES to stop the dedicated websocket service. +ENABLE_COLLABORATION_MODE=true + +# Logging and server workers +LOG_LEVEL=INFO +LOG_OUTPUT_FORMAT=text +LOG_FILE=/app/logs/server.log +LOG_FILE_MAX_SIZE=20 +LOG_FILE_BACKUP_COUNT=5 +LOG_DATEFORMAT=%Y-%m-%d %H:%M:%S +LOG_TZ=UTC +DEBUG=false +FLASK_DEBUG=false +ENABLE_REQUEST_LOGGING=False +DIFY_BIND_ADDRESS=0.0.0.0 +DIFY_PORT=5001 +SERVER_WORKER_AMOUNT=1 +SERVER_WORKER_CLASS=gevent +SERVER_WORKER_CONNECTIONS=10 +API_WEBSOCKET_WORKER_CLASS=geventwebsocket.gunicorn.workers.GeventWebSocketWorker +API_WEBSOCKET_WORKER_CONNECTIONS=1000 +API_WEBSOCKET_GUNICORN_TIMEOUT=360 +GUNICORN_TIMEOUT=360 +CELERY_WORKER_CLASS= +CELERY_WORKER_AMOUNT=4 +CELERY_AUTO_SCALE=false +CELERY_MAX_WORKERS= +CELERY_MIN_WORKERS= +COMPOSE_WORKER_HEALTHCHECK_DISABLED=true +COMPOSE_WORKER_HEALTHCHECK_INTERVAL=30s +COMPOSE_WORKER_HEALTHCHECK_TIMEOUT=30s + +# Database +DB_TYPE=postgresql +DB_USERNAME=postgres +DB_PASSWORD=difyai123456 +DB_HOST=db_postgres +DB_PORT=5432 +DB_DATABASE=dify +SQLALCHEMY_POOL_SIZE=30 +SQLALCHEMY_MAX_OVERFLOW=10 +SQLALCHEMY_POOL_RECYCLE=3600 +SQLALCHEMY_ECHO=false +SQLALCHEMY_POOL_PRE_PING=false +SQLALCHEMY_POOL_USE_LIFO=false +SQLALCHEMY_POOL_TIMEOUT=30 +SQLALCHEMY_POOL_RESET_ON_RETURN=rollback +PGDATA=/var/lib/postgresql/data/pgdata +POSTGRES_MAX_CONNECTIONS=200 +POSTGRES_SHARED_BUFFERS=128MB +POSTGRES_WORK_MEM=4MB +POSTGRES_MAINTENANCE_WORK_MEM=64MB +POSTGRES_EFFECTIVE_CACHE_SIZE=4096MB +POSTGRES_STATEMENT_TIMEOUT=0 +POSTGRES_IDLE_IN_TRANSACTION_SESSION_TIMEOUT=0 + +# Redis and Celery +REDIS_HOST=redis +REDIS_PORT=6379 +REDIS_USERNAME= +REDIS_PASSWORD=difyai123456 +REDIS_USE_SSL=false +REDIS_SSL_CERT_REQS=CERT_NONE +REDIS_SSL_CA_CERTS= +REDIS_SSL_CERTFILE= +REDIS_SSL_KEYFILE= +REDIS_DB=0 +REDIS_KEY_PREFIX= +REDIS_MAX_CONNECTIONS= +REDIS_RETRY_RETRIES=3 +REDIS_RETRY_BACKOFF_BASE=1.0 +REDIS_RETRY_BACKOFF_CAP=10.0 +REDIS_SOCKET_TIMEOUT=5.0 +REDIS_SOCKET_CONNECT_TIMEOUT=5.0 +REDIS_HEALTH_CHECK_INTERVAL=30 +CELERY_BROKER_URL=redis://:difyai123456@redis:6379/1 +CELERY_BACKEND=redis +BROKER_USE_SSL=false +CELERY_TASK_ANNOTATIONS=null +EVENT_BUS_REDIS_URL= +EVENT_BUS_REDIS_CHANNEL_TYPE=pubsub +EVENT_BUS_REDIS_USE_CLUSTERS=false +EVENT_BUS_LISTENER_JOIN_TIMEOUT_MS=2000 + +# Web and app limits +WEB_API_CORS_ALLOW_ORIGINS=* +CONSOLE_CORS_ALLOW_ORIGINS=* +COOKIE_DOMAIN= +NEXT_PUBLIC_COOKIE_DOMAIN= +NEXT_PUBLIC_BATCH_CONCURRENCY=5 +API_SENTRY_DSN= +API_SENTRY_TRACES_SAMPLE_RATE=1.0 +API_SENTRY_PROFILES_SAMPLE_RATE=1.0 +WEB_SENTRY_DSN= +AMPLITUDE_API_KEY= +TEXT_GENERATION_TIMEOUT_MS=60000 +CSP_WHITELIST= +ALLOW_EMBED=false +ALLOW_INLINE_STYLES=false +ALLOW_UNSAFE_DATA_SCHEME=false +TOP_K_MAX_VALUE=10 +INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH=4000 +LOOP_NODE_MAX_COUNT=100 +MAX_TOOLS_NUM=10 +MAX_PARALLEL_LIMIT=10 +MAX_ITERATIONS_NUM=99 +MAX_TREE_DEPTH=50 +ENABLE_WEBSITE_JINAREADER=true +ENABLE_WEBSITE_FIRECRAWL=true +ENABLE_WEBSITE_WATERCRAWL=true +NEXT_PUBLIC_ENABLE_SINGLE_DOLLAR_LATEX=false +EXPERIMENTAL_ENABLE_VINEXT=false + +# Storage and default vector store +STORAGE_TYPE=opendal +OPENDAL_SCHEME=fs +OPENDAL_FS_ROOT=storage +VECTOR_STORE=weaviate +VECTOR_INDEX_NAME_PREFIX=Vector_index +WEAVIATE_ENDPOINT=http://weaviate:8080 +WEAVIATE_API_KEY=WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih +WEAVIATE_GRPC_ENDPOINT=grpc://weaviate:50051 +WEAVIATE_TOKENIZATION=word +WEAVIATE_PERSISTENCE_DATA_PATH=/var/lib/weaviate +WEAVIATE_QUERY_DEFAULTS_LIMIT=25 +WEAVIATE_AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=true +WEAVIATE_DEFAULT_VECTORIZER_MODULE=none +WEAVIATE_CLUSTER_HOSTNAME=node1 +WEAVIATE_AUTHENTICATION_APIKEY_ENABLED=true +WEAVIATE_AUTHENTICATION_APIKEY_ALLOWED_KEYS=WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih +WEAVIATE_AUTHENTICATION_APIKEY_USERS=hello@dify.ai +WEAVIATE_AUTHORIZATION_ADMINLIST_ENABLED=true +WEAVIATE_AUTHORIZATION_ADMINLIST_USERS=hello@dify.ai +WEAVIATE_DISABLE_TELEMETRY=false +WEAVIATE_ENABLE_TOKENIZER_GSE=false +WEAVIATE_ENABLE_TOKENIZER_KAGOME_JA=false +WEAVIATE_ENABLE_TOKENIZER_KAGOME_KR=false + +# Sandbox and SSRF proxy +CODE_EXECUTION_ENDPOINT=http://sandbox:8194 +CODE_EXECUTION_API_KEY=dify-sandbox +CODE_EXECUTION_SSL_VERIFY=True +CODE_EXECUTION_POOL_MAX_CONNECTIONS=100 +CODE_EXECUTION_POOL_MAX_KEEPALIVE_CONNECTIONS=20 +CODE_EXECUTION_POOL_KEEPALIVE_EXPIRY=5.0 +CODE_EXECUTION_CONNECT_TIMEOUT=10 +CODE_EXECUTION_READ_TIMEOUT=60 +CODE_EXECUTION_WRITE_TIMEOUT=10 +SANDBOX_API_KEY=dify-sandbox +SANDBOX_GIN_MODE=release +SANDBOX_WORKER_TIMEOUT=15 +SANDBOX_ENABLE_NETWORK=true +SANDBOX_HTTP_PROXY=http://ssrf_proxy:3128 +SANDBOX_HTTPS_PROXY=http://ssrf_proxy:3128 +SANDBOX_PORT=8194 +PIP_MIRROR_URL= +SSRF_PROXY_HTTP_URL=http://ssrf_proxy:3128 +SSRF_PROXY_HTTPS_URL=http://ssrf_proxy:3128 +SSRF_HTTP_PORT=3128 +SSRF_COREDUMP_DIR=/var/spool/squid +SSRF_REVERSE_PROXY_PORT=8194 +SSRF_SANDBOX_HOST=sandbox +SSRF_DEFAULT_TIME_OUT=5 +SSRF_DEFAULT_CONNECT_TIME_OUT=5 +SSRF_DEFAULT_READ_TIME_OUT=5 +SSRF_DEFAULT_WRITE_TIME_OUT=5 +SSRF_POOL_MAX_CONNECTIONS=100 +SSRF_POOL_MAX_KEEPALIVE_CONNECTIONS=20 +SSRF_POOL_KEEPALIVE_EXPIRY=5.0 + +# Plugin daemon +DB_PLUGIN_DATABASE=dify_plugin +EXPOSE_PLUGIN_DAEMON_PORT=5002 +PLUGIN_DAEMON_PORT=5002 +PLUGIN_DAEMON_KEY=lYkiYYT6owG+71oLerGzA7GXCgOT++6ovaezWAjpCjf+Sjc3ZtU+qUEi +PLUGIN_DAEMON_URL=http://plugin_daemon:5002 +PLUGIN_MAX_PACKAGE_SIZE=52428800 +PLUGIN_MODEL_SCHEMA_CACHE_TTL=3600 +PLUGIN_PPROF_ENABLED=false +PLUGIN_DEBUGGING_HOST=0.0.0.0 +PLUGIN_DEBUGGING_PORT=5003 +EXPOSE_PLUGIN_DEBUGGING_HOST=localhost +EXPOSE_PLUGIN_DEBUGGING_PORT=5003 +PLUGIN_DIFY_INNER_API_KEY=QaHbTe77CtuXmsfyhR7+vRjI/+XbV1AaFy691iy+kGDv2Jvy0/eAh8Y1 +PLUGIN_DIFY_INNER_API_URL=http://api:5001 +FORCE_VERIFYING_SIGNATURE=true +PLUGIN_STDIO_BUFFER_SIZE=1024 +PLUGIN_STDIO_MAX_BUFFER_SIZE=5242880 +PLUGIN_PYTHON_ENV_INIT_TIMEOUT=120 +PLUGIN_MAX_EXECUTION_TIMEOUT=600 +PLUGIN_STORAGE_TYPE=local +PLUGIN_STORAGE_LOCAL_ROOT=/app/storage +PLUGIN_WORKING_PATH=/app/storage/cwd +PLUGIN_INSTALLED_PATH=plugin +PLUGIN_PACKAGE_CACHE_PATH=plugin_packages +PLUGIN_MEDIA_CACHE_PATH=assets +PLUGIN_STORAGE_OSS_BUCKET= +PLUGIN_SENTRY_ENABLED=false +PLUGIN_SENTRY_DSN= +MARKETPLACE_ENABLED=true +MARKETPLACE_API_URL=https://marketplace.dify.ai +MARKETPLACE_URL= + +# Nginx and Docker Compose +NGINX_SERVER_NAME=_ +NGINX_HTTPS_ENABLED=false +NGINX_PORT=80 +NGINX_SSL_PORT=443 +NGINX_SSL_CERT_FILENAME=dify.crt +NGINX_SSL_CERT_KEY_FILENAME=dify.key +NGINX_SSL_PROTOCOLS=TLSv1.2 TLSv1.3 +NGINX_WORKER_PROCESSES=auto +NGINX_CLIENT_MAX_BODY_SIZE=100M +NGINX_KEEPALIVE_TIMEOUT=65 +NGINX_PROXY_READ_TIMEOUT=3600s +NGINX_PROXY_SEND_TIMEOUT=3600s +NGINX_ENABLE_CERTBOT_CHALLENGE=false +NGINX_SOCKET_IO_UPSTREAM=api_websocket:5001 +EXPOSE_NGINX_PORT=80 +EXPOSE_NGINX_SSL_PORT=443 +COMPOSE_PROFILES=${VECTOR_STORE:-weaviate},${DB_TYPE:-postgresql},collaboration diff --git a/智能体平台调研/代码/dify/docker-compose.yaml b/智能体平台调研/代码/dify/docker-compose.yaml new file mode 100644 index 0000000..d8aee5b --- /dev/null +++ b/智能体平台调研/代码/dify/docker-compose.yaml @@ -0,0 +1,1202 @@ +# ================================================================== +# WARNING: This file is auto-generated by generate_docker_compose +# Do not modify this file directly. Instead, update the .env.example +# or docker-compose-template.yaml and regenerate this file. +# ================================================================== + +# Shared configuration using YAML anchors and env_file +x-shared-api-worker-config: &shared-api-worker-config + env_file: + - path: ./envs/core-services/shared.env + required: false + - path: ./envs/core-services/api.env + required: false + - path: ./envs/security.env + required: false + - path: ./envs/databases/db-postgres.env + required: false + - path: ./envs/databases/db-mysql.env + required: false + - path: ./envs/databases/redis.env + required: false + - path: ./envs/vectorstores/weaviate.env + required: false + - path: ./envs/vectorstores/qdrant.env + required: false + - path: ./envs/vectorstores/oceanbase.env + required: false + - path: ./envs/vectorstores/seekdb.env + required: false + - path: ./envs/vectorstores/couchbase.env + required: false + - path: ./envs/vectorstores/pgvector.env + required: false + - path: ./envs/vectorstores/vastbase.env + required: false + - path: ./envs/vectorstores/pgvecto-rs.env + required: false + - path: ./envs/vectorstores/chroma.env + required: false + - path: ./envs/vectorstores/iris.env + required: false + - path: ./envs/vectorstores/oracle.env + required: false + - path: ./envs/vectorstores/opengauss.env + required: false + - path: ./envs/vectorstores/myscale.env + required: false + - path: ./envs/vectorstores/matrixone.env + required: false + - path: ./envs/vectorstores/elasticsearch.env + required: false + - path: ./envs/vectorstores/opensearch.env + required: false + - path: ./envs/vectorstores/milvus.env + required: false + - path: ./envs/infrastructure/nginx.env + required: false + - path: ./envs/infrastructure/certbot.env + required: false + - path: ./envs/infrastructure/ssrf-proxy.env + required: false + - path: ./envs/infrastructure/etcd.env + required: false + - path: ./envs/infrastructure/minio.env + required: false + - path: ./envs/infrastructure/milvus-standalone.env + required: false + - ./.env + networks: + - ssrf_proxy_network + - default + restart: always + +x-shared-worker-config: &shared-worker-config + env_file: + - path: ./envs/core-services/shared.env + required: false + - path: ./envs/core-services/worker.env + required: false + - path: ./envs/security.env + required: false + - path: ./envs/databases/db-postgres.env + required: false + - path: ./envs/databases/db-mysql.env + required: false + - path: ./envs/databases/redis.env + required: false + - path: ./envs/vectorstores/weaviate.env + required: false + - path: ./envs/vectorstores/qdrant.env + required: false + - path: ./envs/vectorstores/oceanbase.env + required: false + - path: ./envs/vectorstores/seekdb.env + required: false + - path: ./envs/vectorstores/couchbase.env + required: false + - path: ./envs/vectorstores/pgvector.env + required: false + - path: ./envs/vectorstores/vastbase.env + required: false + - path: ./envs/vectorstores/pgvecto-rs.env + required: false + - path: ./envs/vectorstores/chroma.env + required: false + - path: ./envs/vectorstores/iris.env + required: false + - path: ./envs/vectorstores/oracle.env + required: false + - path: ./envs/vectorstores/opengauss.env + required: false + - path: ./envs/vectorstores/myscale.env + required: false + - path: ./envs/vectorstores/matrixone.env + required: false + - path: ./envs/vectorstores/elasticsearch.env + required: false + - path: ./envs/vectorstores/opensearch.env + required: false + - path: ./envs/vectorstores/milvus.env + required: false + - path: ./envs/infrastructure/nginx.env + required: false + - path: ./envs/infrastructure/certbot.env + required: false + - path: ./envs/infrastructure/ssrf-proxy.env + required: false + - path: ./envs/infrastructure/etcd.env + required: false + - path: ./envs/infrastructure/minio.env + required: false + - path: ./envs/infrastructure/milvus-standalone.env + required: false + - ./.env + networks: + - ssrf_proxy_network + - default + restart: always + +x-shared-worker-beat-config: &shared-worker-beat-config + env_file: + - path: ./envs/core-services/shared.env + required: false + - path: ./envs/core-services/worker-beat.env + required: false + - path: ./envs/security.env + required: false + - path: ./envs/databases/db-postgres.env + required: false + - path: ./envs/databases/db-mysql.env + required: false + - path: ./envs/databases/redis.env + required: false + - path: ./envs/vectorstores/weaviate.env + required: false + - path: ./envs/vectorstores/qdrant.env + required: false + - path: ./envs/vectorstores/oceanbase.env + required: false + - path: ./envs/vectorstores/seekdb.env + required: false + - path: ./envs/vectorstores/couchbase.env + required: false + - path: ./envs/vectorstores/pgvector.env + required: false + - path: ./envs/vectorstores/vastbase.env + required: false + - path: ./envs/vectorstores/pgvecto-rs.env + required: false + - path: ./envs/vectorstores/chroma.env + required: false + - path: ./envs/vectorstores/iris.env + required: false + - path: ./envs/vectorstores/oracle.env + required: false + - path: ./envs/vectorstores/opengauss.env + required: false + - path: ./envs/vectorstores/myscale.env + required: false + - path: ./envs/vectorstores/matrixone.env + required: false + - path: ./envs/vectorstores/elasticsearch.env + required: false + - path: ./envs/vectorstores/opensearch.env + required: false + - path: ./envs/vectorstores/milvus.env + required: false + - path: ./envs/infrastructure/nginx.env + required: false + - path: ./envs/infrastructure/certbot.env + required: false + - path: ./envs/infrastructure/ssrf-proxy.env + required: false + - path: ./envs/infrastructure/etcd.env + required: false + - path: ./envs/infrastructure/minio.env + required: false + - path: ./envs/infrastructure/milvus-standalone.env + required: false + - ./.env + networks: + - ssrf_proxy_network + - default + restart: always + +services: + # Init container to fix permissions + init_permissions: + image: busybox:latest + command: + - sh + - -c + - | + FLAG_FILE="/app/api/storage/.init_permissions" + if [ -f "$${FLAG_FILE}" ]; then + echo "Permissions already initialized. Exiting." + exit 0 + fi + echo "Initializing permissions for /app/api/storage" + chown -R 1001:1001 /app/api/storage && touch "$${FLAG_FILE}" + echo "Permissions initialized. Exiting." + volumes: + - ./volumes/app/storage:/app/api/storage + restart: "no" + + # API service + api: + <<: *shared-api-worker-config + image: langgenius/dify-api:1.14.2 + environment: + MODE: api + SENTRY_DSN: ${API_SENTRY_DSN:-} + SENTRY_TRACES_SAMPLE_RATE: ${API_SENTRY_TRACES_SAMPLE_RATE:-1.0} + SENTRY_PROFILES_SAMPLE_RATE: ${API_SENTRY_PROFILES_SAMPLE_RATE:-1.0} + PLUGIN_REMOTE_INSTALL_HOST: ${EXPOSE_PLUGIN_DEBUGGING_HOST:-localhost} + PLUGIN_REMOTE_INSTALL_PORT: ${EXPOSE_PLUGIN_DEBUGGING_PORT:-5003} + PLUGIN_MAX_PACKAGE_SIZE: ${PLUGIN_MAX_PACKAGE_SIZE:-52428800} + PLUGIN_DAEMON_TIMEOUT: ${PLUGIN_DAEMON_TIMEOUT:-600.0} + INNER_API_KEY_FOR_PLUGIN: ${PLUGIN_DIFY_INNER_API_KEY:-QaHbTe77CtuXmsfyhR7+vRjI/+XbV1AaFy691iy+kGDv2Jvy0/eAh8Y1} + depends_on: + init_permissions: + condition: service_completed_successfully + db_postgres: + condition: service_healthy + required: false + db_mysql: + condition: service_healthy + required: false + oceanbase: + condition: service_healthy + required: false + seekdb: + condition: service_healthy + required: false + redis: + condition: service_started + volumes: + # Mount the storage directory to the container, for storing user files. + - ./volumes/app/storage:/app/api/storage + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:5001/health"] + interval: 30s + timeout: 5s + retries: 3 + start_period: 30s + networks: + - ssrf_proxy_network + - default + + # WebSocket service for workflow collaboration. + api_websocket: + <<: *shared-api-worker-config + image: langgenius/dify-api:1.14.2 + profiles: + - collaboration + environment: + MODE: api + SERVER_WORKER_AMOUNT: 1 + SERVER_WORKER_CLASS: ${API_WEBSOCKET_WORKER_CLASS:-geventwebsocket.gunicorn.workers.GeventWebSocketWorker} + SERVER_WORKER_CONNECTIONS: ${API_WEBSOCKET_WORKER_CONNECTIONS:-1000} + GUNICORN_TIMEOUT: ${API_WEBSOCKET_GUNICORN_TIMEOUT:-360} + depends_on: + db_postgres: + condition: service_healthy + required: false + db_mysql: + condition: service_healthy + required: false + redis: + condition: service_started + networks: + - ssrf_proxy_network + - default + + # worker service + # The Celery worker for processing all queues (dataset, workflow, mail, etc.) + worker: + <<: *shared-worker-config + image: langgenius/dify-api:1.14.2 + environment: + MODE: worker + SENTRY_DSN: ${API_SENTRY_DSN:-} + SENTRY_TRACES_SAMPLE_RATE: ${API_SENTRY_TRACES_SAMPLE_RATE:-1.0} + SENTRY_PROFILES_SAMPLE_RATE: ${API_SENTRY_PROFILES_SAMPLE_RATE:-1.0} + PLUGIN_MAX_PACKAGE_SIZE: ${PLUGIN_MAX_PACKAGE_SIZE:-52428800} + INNER_API_KEY_FOR_PLUGIN: ${PLUGIN_DIFY_INNER_API_KEY:-QaHbTe77CtuXmsfyhR7+vRjI/+XbV1AaFy691iy+kGDv2Jvy0/eAh8Y1} + depends_on: + init_permissions: + condition: service_completed_successfully + db_postgres: + condition: service_healthy + required: false + db_mysql: + condition: service_healthy + required: false + oceanbase: + condition: service_healthy + required: false + seekdb: + condition: service_healthy + required: false + redis: + condition: service_started + volumes: + # Mount the storage directory to the container, for storing user files. + - ./volumes/app/storage:/app/api/storage + healthcheck: + test: ["CMD-SHELL", "celery -A celery_healthcheck.celery inspect ping"] + interval: ${COMPOSE_WORKER_HEALTHCHECK_INTERVAL:-30s} + timeout: ${COMPOSE_WORKER_HEALTHCHECK_TIMEOUT:-30s} + retries: 3 + start_period: 60s + disable: ${COMPOSE_WORKER_HEALTHCHECK_DISABLED:-true} + networks: + - ssrf_proxy_network + - default + + # worker_beat service + # Celery beat for scheduling periodic tasks. + worker_beat: + <<: *shared-worker-beat-config + image: langgenius/dify-api:1.14.2 + environment: + MODE: beat + depends_on: + init_permissions: + condition: service_completed_successfully + db_postgres: + condition: service_healthy + required: false + db_mysql: + condition: service_healthy + required: false + oceanbase: + condition: service_healthy + required: false + seekdb: + condition: service_healthy + required: false + redis: + condition: service_started + healthcheck: + test: ["CMD-SHELL", "celery -A celery_healthcheck.celery inspect ping"] + interval: ${COMPOSE_WORKER_HEALTHCHECK_INTERVAL:-30s} + timeout: ${COMPOSE_WORKER_HEALTHCHECK_TIMEOUT:-30s} + retries: 3 + start_period: 60s + disable: ${COMPOSE_WORKER_HEALTHCHECK_DISABLED:-true} + networks: + - ssrf_proxy_network + - default + + # Frontend web application. + web: + image: langgenius/dify-web:1.14.2 + restart: always + env_file: + - path: ./envs/core-services/web.env + required: false + - path: ./envs/security.env + required: false + - ./.env + environment: + CONSOLE_API_URL: ${CONSOLE_API_URL:-} + SERVER_CONSOLE_API_URL: ${SERVER_CONSOLE_API_URL:-http://api:5001} + APP_API_URL: ${APP_API_URL:-} + AMPLITUDE_API_KEY: ${AMPLITUDE_API_KEY:-} + NEXT_PUBLIC_COOKIE_DOMAIN: ${NEXT_PUBLIC_COOKIE_DOMAIN:-} + NEXT_PUBLIC_SOCKET_URL: ${NEXT_PUBLIC_SOCKET_URL:-ws://localhost} + SENTRY_DSN: ${WEB_SENTRY_DSN:-} + NEXT_TELEMETRY_DISABLED: ${NEXT_TELEMETRY_DISABLED:-0} + EXPERIMENTAL_ENABLE_VINEXT: ${EXPERIMENTAL_ENABLE_VINEXT:-false} + TEXT_GENERATION_TIMEOUT_MS: ${TEXT_GENERATION_TIMEOUT_MS:-60000} + CSP_WHITELIST: ${CSP_WHITELIST:-} + ALLOW_EMBED: ${ALLOW_EMBED:-false} + ALLOW_INLINE_STYLES: ${ALLOW_INLINE_STYLES:-false} + ALLOW_UNSAFE_DATA_SCHEME: ${ALLOW_UNSAFE_DATA_SCHEME:-false} + MARKETPLACE_API_URL: ${MARKETPLACE_API_URL:-https://marketplace.dify.ai} + MARKETPLACE_URL: ${MARKETPLACE_URL:-https://marketplace.dify.ai} + TOP_K_MAX_VALUE: ${TOP_K_MAX_VALUE:-10} + INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH: ${INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH:-4000} + LOOP_NODE_MAX_COUNT: ${LOOP_NODE_MAX_COUNT:-100} + MAX_TOOLS_NUM: ${MAX_TOOLS_NUM:-10} + MAX_PARALLEL_LIMIT: ${MAX_PARALLEL_LIMIT:-10} + MAX_ITERATIONS_NUM: ${MAX_ITERATIONS_NUM:-99} + MAX_TREE_DEPTH: ${MAX_TREE_DEPTH:-50} + ENABLE_WEBSITE_JINAREADER: ${ENABLE_WEBSITE_JINAREADER:-true} + ENABLE_WEBSITE_FIRECRAWL: ${ENABLE_WEBSITE_FIRECRAWL:-true} + ENABLE_WEBSITE_WATERCRAWL: ${ENABLE_WEBSITE_WATERCRAWL:-true} + + # The PostgreSQL database. + db_postgres: + image: postgres:15-alpine + profiles: + - postgresql + restart: always + environment: + POSTGRES_USER: ${DB_USERNAME:-postgres} + POSTGRES_PASSWORD: ${DB_PASSWORD:-difyai123456} + POSTGRES_DB: ${DB_DATABASE:-dify} + PGDATA: ${PGDATA:-/var/lib/postgresql/data/pgdata} + command: > + postgres -c 'max_connections=${POSTGRES_MAX_CONNECTIONS:-100}' + -c 'shared_buffers=${POSTGRES_SHARED_BUFFERS:-128MB}' + -c 'work_mem=${POSTGRES_WORK_MEM:-4MB}' + -c 'maintenance_work_mem=${POSTGRES_MAINTENANCE_WORK_MEM:-64MB}' + -c 'effective_cache_size=${POSTGRES_EFFECTIVE_CACHE_SIZE:-4096MB}' + -c 'statement_timeout=${POSTGRES_STATEMENT_TIMEOUT:-0}' + -c 'idle_in_transaction_session_timeout=${POSTGRES_IDLE_IN_TRANSACTION_SESSION_TIMEOUT:-0}' + volumes: + - ./volumes/db/data:/var/lib/postgresql/data + healthcheck: + test: + [ + "CMD", + "pg_isready", + "-h", + "db_postgres", + "-U", + "${DB_USERNAME:-postgres}", + "-d", + "${DB_DATABASE:-dify}", + ] + interval: 1s + timeout: 3s + retries: 60 + + # The mysql database. + db_mysql: + image: mysql:8.0 + profiles: + - mysql + restart: always + environment: + MYSQL_ROOT_PASSWORD: ${DB_PASSWORD:-difyai123456} + MYSQL_DATABASE: ${DB_DATABASE:-dify} + command: > + --max_connections=${MYSQL_MAX_CONNECTIONS:-1000} + --innodb_buffer_pool_size=${MYSQL_INNODB_BUFFER_POOL_SIZE:-512M} + --innodb_log_file_size=${MYSQL_INNODB_LOG_FILE_SIZE:-128M} + --innodb_flush_log_at_trx_commit=${MYSQL_INNODB_FLUSH_LOG_AT_TRX_COMMIT:-2} + volumes: + - ${MYSQL_HOST_VOLUME:-./volumes/mysql/data}:/var/lib/mysql + healthcheck: + test: + [ + "CMD", + "mysqladmin", + "ping", + "-u", + "root", + "-p${DB_PASSWORD:-difyai123456}", + ] + interval: 1s + timeout: 3s + retries: 30 + + # The redis cache. + redis: + image: redis:6-alpine + restart: always + environment: + REDISCLI_AUTH: ${REDIS_PASSWORD:-difyai123456} + volumes: + # Mount the redis data directory to the container. + - ./volumes/redis/data:/data + # Set the redis password when startup redis server. + command: redis-server --requirepass ${REDIS_PASSWORD:-difyai123456} + healthcheck: + test: + [ + "CMD-SHELL", + "redis-cli -a ${REDIS_PASSWORD:-difyai123456} ping | grep -q PONG", + ] + + # The DifySandbox + sandbox: + image: langgenius/dify-sandbox:0.2.15 + restart: always + env_file: + - path: ./envs/core-services/sandbox.env + required: false + - path: ./envs/security.env + required: false + - ./.env + environment: + # The DifySandbox configurations + # Make sure you are changing this key for your deployment with a strong key. + # You can generate a strong key using `openssl rand -base64 42`. + API_KEY: ${SANDBOX_API_KEY:-dify-sandbox} + GIN_MODE: ${SANDBOX_GIN_MODE:-release} + WORKER_TIMEOUT: ${SANDBOX_WORKER_TIMEOUT:-15} + ENABLE_NETWORK: ${SANDBOX_ENABLE_NETWORK:-true} + HTTP_PROXY: ${SANDBOX_HTTP_PROXY:-http://ssrf_proxy:3128} + HTTPS_PROXY: ${SANDBOX_HTTPS_PROXY:-http://ssrf_proxy:3128} + SANDBOX_PORT: ${SANDBOX_PORT:-8194} + PIP_MIRROR_URL: ${PIP_MIRROR_URL:-} + volumes: + - ./volumes/sandbox/dependencies:/dependencies + - ./volumes/sandbox/conf:/conf + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8194/health"] + networks: + - ssrf_proxy_network + + # plugin daemon + plugin_daemon: + image: langgenius/dify-plugin-daemon:0.6.1-local + restart: always + env_file: + - path: ./envs/core-services/shared.env + required: false + - path: ./envs/core-services/plugin-daemon.env + required: false + - path: ./envs/security.env + required: false + - path: ./envs/databases/db-postgres.env + required: false + - path: ./envs/databases/db-mysql.env + required: false + - path: ./envs/databases/redis.env + required: false + - ./.env + networks: + - ssrf_proxy_network + - default + environment: + DB_DATABASE: ${DB_PLUGIN_DATABASE:-dify_plugin} + DB_SSL_MODE: ${DB_SSL_MODE:-disable} + SERVER_PORT: ${PLUGIN_DAEMON_PORT:-5002} + SERVER_KEY: ${PLUGIN_DAEMON_KEY:-lYkiYYT6owG+71oLerGzA7GXCgOT++6ovaezWAjpCjf+Sjc3ZtU+qUEi} + MAX_PLUGIN_PACKAGE_SIZE: ${PLUGIN_MAX_PACKAGE_SIZE:-52428800} + PPROF_ENABLED: ${PLUGIN_PPROF_ENABLED:-false} + DIFY_INNER_API_URL: ${PLUGIN_DIFY_INNER_API_URL:-http://api:5001} + DIFY_INNER_API_KEY: ${PLUGIN_DIFY_INNER_API_KEY:-QaHbTe77CtuXmsfyhR7+vRjI/+XbV1AaFy691iy+kGDv2Jvy0/eAh8Y1} + PLUGIN_REMOTE_INSTALLING_HOST: ${PLUGIN_DEBUGGING_HOST:-0.0.0.0} + PLUGIN_REMOTE_INSTALLING_PORT: ${PLUGIN_DEBUGGING_PORT:-5003} + PLUGIN_WORKING_PATH: ${PLUGIN_WORKING_PATH:-/app/storage/cwd} + FORCE_VERIFYING_SIGNATURE: ${FORCE_VERIFYING_SIGNATURE:-true} + PYTHON_ENV_INIT_TIMEOUT: ${PLUGIN_PYTHON_ENV_INIT_TIMEOUT:-120} + PLUGIN_MAX_EXECUTION_TIMEOUT: ${PLUGIN_MAX_EXECUTION_TIMEOUT:-600} + PLUGIN_STDIO_BUFFER_SIZE: ${PLUGIN_STDIO_BUFFER_SIZE:-1024} + PLUGIN_STDIO_MAX_BUFFER_SIZE: ${PLUGIN_STDIO_MAX_BUFFER_SIZE:-5242880} + PIP_MIRROR_URL: ${PIP_MIRROR_URL:-} + PLUGIN_STORAGE_TYPE: ${PLUGIN_STORAGE_TYPE:-local} + PLUGIN_STORAGE_LOCAL_ROOT: ${PLUGIN_STORAGE_LOCAL_ROOT:-/app/storage} + PLUGIN_INSTALLED_PATH: ${PLUGIN_INSTALLED_PATH:-plugin} + PLUGIN_PACKAGE_CACHE_PATH: ${PLUGIN_PACKAGE_CACHE_PATH:-plugin_packages} + PLUGIN_MEDIA_CACHE_PATH: ${PLUGIN_MEDIA_CACHE_PATH:-assets} + PLUGIN_STORAGE_OSS_BUCKET: ${PLUGIN_STORAGE_OSS_BUCKET:-} + S3_USE_AWS_MANAGED_IAM: ${PLUGIN_S3_USE_AWS_MANAGED_IAM:-false} + S3_USE_AWS: ${PLUGIN_S3_USE_AWS:-false} + S3_ENDPOINT: ${PLUGIN_S3_ENDPOINT:-} + S3_USE_PATH_STYLE: ${PLUGIN_S3_USE_PATH_STYLE:-false} + AWS_ACCESS_KEY: ${PLUGIN_AWS_ACCESS_KEY:-} + AWS_SECRET_KEY: ${PLUGIN_AWS_SECRET_KEY:-} + AWS_REGION: ${PLUGIN_AWS_REGION:-} + AZURE_BLOB_STORAGE_CONNECTION_STRING: ${PLUGIN_AZURE_BLOB_STORAGE_CONNECTION_STRING:-} + AZURE_BLOB_STORAGE_CONTAINER_NAME: ${PLUGIN_AZURE_BLOB_STORAGE_CONTAINER_NAME:-} + TENCENT_COS_SECRET_KEY: ${PLUGIN_TENCENT_COS_SECRET_KEY:-} + TENCENT_COS_SECRET_ID: ${PLUGIN_TENCENT_COS_SECRET_ID:-} + TENCENT_COS_REGION: ${PLUGIN_TENCENT_COS_REGION:-} + ALIYUN_OSS_REGION: ${PLUGIN_ALIYUN_OSS_REGION:-} + ALIYUN_OSS_ENDPOINT: ${PLUGIN_ALIYUN_OSS_ENDPOINT:-} + ALIYUN_OSS_ACCESS_KEY_ID: ${PLUGIN_ALIYUN_OSS_ACCESS_KEY_ID:-} + ALIYUN_OSS_ACCESS_KEY_SECRET: ${PLUGIN_ALIYUN_OSS_ACCESS_KEY_SECRET:-} + ALIYUN_OSS_AUTH_VERSION: ${PLUGIN_ALIYUN_OSS_AUTH_VERSION:-v4} + ALIYUN_OSS_PATH: ${PLUGIN_ALIYUN_OSS_PATH:-} + VOLCENGINE_TOS_ENDPOINT: ${PLUGIN_VOLCENGINE_TOS_ENDPOINT:-} + VOLCENGINE_TOS_ACCESS_KEY: ${PLUGIN_VOLCENGINE_TOS_ACCESS_KEY:-} + VOLCENGINE_TOS_SECRET_KEY: ${PLUGIN_VOLCENGINE_TOS_SECRET_KEY:-} + VOLCENGINE_TOS_REGION: ${PLUGIN_VOLCENGINE_TOS_REGION:-} + SENTRY_ENABLED: ${PLUGIN_SENTRY_ENABLED:-false} + SENTRY_DSN: ${PLUGIN_SENTRY_DSN:-} + ports: + - "${EXPOSE_PLUGIN_DEBUGGING_PORT:-5003}:${PLUGIN_DEBUGGING_PORT:-5003}" + volumes: + - ./volumes/plugin_daemon:/app/storage + depends_on: + db_postgres: + condition: service_healthy + required: false + db_mysql: + condition: service_healthy + required: false + oceanbase: + condition: service_healthy + required: false + seekdb: + condition: service_healthy + required: false + + # ssrf_proxy server + # for more information, please refer to + # https://docs.dify.ai/learn-more/faq/install-faq#18-why-is-ssrf-proxy-needed%3F + ssrf_proxy: + image: ubuntu/squid:latest + restart: always + volumes: + - ./ssrf_proxy/squid.conf.template:/etc/squid/squid.conf.template + - ./ssrf_proxy/docker-entrypoint.sh:/docker-entrypoint-mount.sh + entrypoint: + [ + "sh", + "-c", + "cp /docker-entrypoint-mount.sh /docker-entrypoint.sh && sed -i 's/\r$$//' /docker-entrypoint.sh && chmod +x /docker-entrypoint.sh && /docker-entrypoint.sh", + ] + environment: + # pls clearly modify the squid env vars to fit your network environment. + HTTP_PORT: ${SSRF_HTTP_PORT:-3128} + COREDUMP_DIR: ${SSRF_COREDUMP_DIR:-/var/spool/squid} + REVERSE_PROXY_PORT: ${SSRF_REVERSE_PROXY_PORT:-8194} + SANDBOX_HOST: ${SSRF_SANDBOX_HOST:-sandbox} + SANDBOX_PORT: ${SANDBOX_PORT:-8194} + networks: + - ssrf_proxy_network + - default + + # Certbot service + # use `docker-compose --profile certbot up` to start the certbot service. + certbot: + image: certbot/certbot + profiles: + - certbot + volumes: + - ./volumes/certbot/conf:/etc/letsencrypt + - ./volumes/certbot/www:/var/www/html + - ./volumes/certbot/logs:/var/log/letsencrypt + - ./volumes/certbot/conf/live:/etc/letsencrypt/live + - ./certbot/update-cert.template.txt:/update-cert.template.txt + - ./certbot/docker-entrypoint.sh:/docker-entrypoint.sh + environment: + - CERTBOT_EMAIL=${CERTBOT_EMAIL:-} + - CERTBOT_DOMAIN=${CERTBOT_DOMAIN:-} + - CERTBOT_OPTIONS=${CERTBOT_OPTIONS:-} + entrypoint: ["/docker-entrypoint.sh"] + command: ["tail", "-f", "/dev/null"] + + # The nginx reverse proxy. + # used for reverse proxying the API service and Web service. + nginx: + image: nginx:latest + restart: always + volumes: + - ./nginx/nginx.conf.template:/etc/nginx/nginx.conf.template + - ./nginx/proxy.conf.template:/etc/nginx/proxy.conf.template + - ./nginx/https.conf.template:/etc/nginx/https.conf.template + - ./nginx/conf.d:/etc/nginx/conf.d + - ./nginx/docker-entrypoint.sh:/docker-entrypoint-mount.sh + - ./nginx/ssl:/etc/ssl # cert dir (legacy) + - ./volumes/certbot/conf/live:/etc/letsencrypt/live # cert dir (with certbot container) + - ./volumes/certbot/conf:/etc/letsencrypt + - ./volumes/certbot/www:/var/www/html + entrypoint: + [ + "sh", + "-c", + "cp /docker-entrypoint-mount.sh /docker-entrypoint.sh && sed -i 's/\r$$//' /docker-entrypoint.sh && chmod +x /docker-entrypoint.sh && /docker-entrypoint.sh", + ] + environment: + NGINX_SERVER_NAME: ${NGINX_SERVER_NAME:-_} + NGINX_HTTPS_ENABLED: ${NGINX_HTTPS_ENABLED:-false} + NGINX_SSL_PORT: ${NGINX_SSL_PORT:-443} + NGINX_PORT: ${NGINX_PORT:-80} + # You're required to add your own SSL certificates/keys to the `./nginx/ssl` directory + # and modify the env vars below in .env if HTTPS_ENABLED is true. + NGINX_SSL_CERT_FILENAME: ${NGINX_SSL_CERT_FILENAME:-dify.crt} + NGINX_SSL_CERT_KEY_FILENAME: ${NGINX_SSL_CERT_KEY_FILENAME:-dify.key} + NGINX_SSL_PROTOCOLS: ${NGINX_SSL_PROTOCOLS:-TLSv1.2 TLSv1.3} + NGINX_WORKER_PROCESSES: ${NGINX_WORKER_PROCESSES:-auto} + NGINX_CLIENT_MAX_BODY_SIZE: ${NGINX_CLIENT_MAX_BODY_SIZE:-100M} + NGINX_KEEPALIVE_TIMEOUT: ${NGINX_KEEPALIVE_TIMEOUT:-65} + NGINX_PROXY_READ_TIMEOUT: ${NGINX_PROXY_READ_TIMEOUT:-3600s} + NGINX_PROXY_SEND_TIMEOUT: ${NGINX_PROXY_SEND_TIMEOUT:-3600s} + NGINX_ENABLE_CERTBOT_CHALLENGE: ${NGINX_ENABLE_CERTBOT_CHALLENGE:-false} + NGINX_SOCKET_IO_UPSTREAM: ${NGINX_SOCKET_IO_UPSTREAM:-api_websocket:5001} + CERTBOT_DOMAIN: ${CERTBOT_DOMAIN:-} + depends_on: + - api + - web + ports: + - "${EXPOSE_NGINX_PORT:-80}:${NGINX_PORT:-80}" + - "${EXPOSE_NGINX_SSL_PORT:-443}:${NGINX_SSL_PORT:-443}" + + # The Weaviate vector store. + weaviate: + image: semitechnologies/weaviate:1.27.0 + profiles: + - weaviate + restart: always + volumes: + # Mount the Weaviate data directory to the con tainer. + - ./volumes/weaviate:/var/lib/weaviate + environment: + # The Weaviate configurations + # You can refer to the [Weaviate](https://weaviate.io/developers/weaviate/config-refs/env-vars) documentation for more information. + PERSISTENCE_DATA_PATH: ${WEAVIATE_PERSISTENCE_DATA_PATH:-/var/lib/weaviate} + QUERY_DEFAULTS_LIMIT: ${WEAVIATE_QUERY_DEFAULTS_LIMIT:-25} + AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: ${WEAVIATE_AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED:-false} + DEFAULT_VECTORIZER_MODULE: ${WEAVIATE_DEFAULT_VECTORIZER_MODULE:-none} + CLUSTER_HOSTNAME: ${WEAVIATE_CLUSTER_HOSTNAME:-node1} + AUTHENTICATION_APIKEY_ENABLED: ${WEAVIATE_AUTHENTICATION_APIKEY_ENABLED:-true} + AUTHENTICATION_APIKEY_ALLOWED_KEYS: ${WEAVIATE_AUTHENTICATION_APIKEY_ALLOWED_KEYS:-WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih} + AUTHENTICATION_APIKEY_USERS: ${WEAVIATE_AUTHENTICATION_APIKEY_USERS:-hello@dify.ai} + AUTHORIZATION_ADMINLIST_ENABLED: ${WEAVIATE_AUTHORIZATION_ADMINLIST_ENABLED:-true} + AUTHORIZATION_ADMINLIST_USERS: ${WEAVIATE_AUTHORIZATION_ADMINLIST_USERS:-hello@dify.ai} + DISABLE_TELEMETRY: ${WEAVIATE_DISABLE_TELEMETRY:-false} + ENABLE_TOKENIZER_GSE: ${WEAVIATE_ENABLE_TOKENIZER_GSE:-false} + ENABLE_TOKENIZER_KAGOME_JA: ${WEAVIATE_ENABLE_TOKENIZER_KAGOME_JA:-false} + ENABLE_TOKENIZER_KAGOME_KR: ${WEAVIATE_ENABLE_TOKENIZER_KAGOME_KR:-false} + + # OceanBase vector database + oceanbase: + image: oceanbase/oceanbase-ce:4.3.5-lts + container_name: oceanbase + profiles: + - oceanbase + restart: always + volumes: + - ./volumes/oceanbase/data:/root/ob + - ./volumes/oceanbase/conf:/root/.obd/cluster + - ./volumes/oceanbase/init.d:/root/boot/init.d + environment: + OB_MEMORY_LIMIT: ${OCEANBASE_MEMORY_LIMIT:-6G} + OB_SYS_PASSWORD: ${OCEANBASE_VECTOR_PASSWORD:-difyai123456} + OB_TENANT_PASSWORD: ${OCEANBASE_VECTOR_PASSWORD:-difyai123456} + OB_CLUSTER_NAME: ${OCEANBASE_CLUSTER_NAME:-difyai} + OB_SERVER_IP: 127.0.0.1 + MODE: mini + LANG: C.UTF-8 + LC_ALL: C.UTF-8 + ports: + - "${OCEANBASE_VECTOR_PORT:-2881}:2881" + healthcheck: + test: + [ + "CMD-SHELL", + 'obclient -h127.0.0.1 -P2881 -uroot@test -p${OCEANBASE_VECTOR_PASSWORD:-difyai123456} -e "SELECT 1;"', + ] + interval: 10s + retries: 30 + start_period: 30s + timeout: 10s + + # seekdb vector database + seekdb: + image: oceanbase/seekdb:latest + container_name: seekdb + profiles: + - seekdb + restart: always + volumes: + - ./volumes/seekdb:/var/lib/oceanbase + environment: + ROOT_PASSWORD: ${OCEANBASE_VECTOR_PASSWORD:-difyai123456} + MEMORY_LIMIT: ${SEEKDB_MEMORY_LIMIT:-2G} + REPORTER: dify-ai-seekdb + ports: + - "${OCEANBASE_VECTOR_PORT:-2881}:2881" + healthcheck: + test: + [ + "CMD-SHELL", + 'mysql -h127.0.0.1 -P2881 -uroot -p${OCEANBASE_VECTOR_PASSWORD:-difyai123456} -e "SELECT 1;"', + ] + interval: 5s + retries: 60 + timeout: 5s + + # Qdrant vector store. + # (if used, you need to set VECTOR_STORE to qdrant in the api & worker service.) + qdrant: + image: langgenius/qdrant:v1.8.3 + profiles: + - qdrant + restart: always + volumes: + - ./volumes/qdrant:/qdrant/storage + environment: + QDRANT_API_KEY: ${QDRANT_API_KEY:-difyai123456} + + # The Couchbase vector store. + couchbase-server: + build: ./couchbase-server + profiles: + - couchbase + restart: always + environment: + - CLUSTER_NAME=dify_search + - COUCHBASE_ADMINISTRATOR_USERNAME=${COUCHBASE_USER:-Administrator} + - COUCHBASE_ADMINISTRATOR_PASSWORD=${COUCHBASE_PASSWORD:-password} + - COUCHBASE_BUCKET=${COUCHBASE_BUCKET_NAME:-Embeddings} + - COUCHBASE_BUCKET_RAMSIZE=512 + - COUCHBASE_RAM_SIZE=2048 + - COUCHBASE_EVENTING_RAM_SIZE=512 + - COUCHBASE_INDEX_RAM_SIZE=512 + - COUCHBASE_FTS_RAM_SIZE=1024 + hostname: couchbase-server + container_name: couchbase-server + working_dir: /opt/couchbase + stdin_open: true + tty: true + entrypoint: [""] + command: sh -c "/opt/couchbase/init/init-cbserver.sh" + volumes: + - ./volumes/couchbase/data:/opt/couchbase/var/lib/couchbase/data + healthcheck: + # ensure bucket was created before proceeding + test: + [ + "CMD-SHELL", + "curl -s -f -u Administrator:password http://localhost:8091/pools/default/buckets | grep -q '\\[{' || exit 1", + ] + interval: 10s + retries: 10 + start_period: 30s + timeout: 10s + + # The pgvector vector database. + pgvector: + image: pgvector/pgvector:pg16 + profiles: + - pgvector + restart: always + environment: + PGUSER: ${PGVECTOR_PGUSER:-postgres} + # The password for the default postgres user. + POSTGRES_PASSWORD: ${PGVECTOR_POSTGRES_PASSWORD:-difyai123456} + # The name of the default postgres database. + POSTGRES_DB: ${PGVECTOR_POSTGRES_DB:-dify} + # postgres data directory + PGDATA: ${PGVECTOR_PGDATA:-/var/lib/postgresql/data/pgdata} + # pg_bigm module for full text search + PG_BIGM: ${PGVECTOR_PG_BIGM:-false} + PG_BIGM_VERSION: ${PGVECTOR_PG_BIGM_VERSION:-1.2-20240606} + volumes: + - ./volumes/pgvector/data:/var/lib/postgresql/data + - ./pgvector/docker-entrypoint.sh:/docker-entrypoint.sh + entrypoint: ["/docker-entrypoint.sh"] + healthcheck: + test: ["CMD", "pg_isready"] + interval: 1s + timeout: 3s + retries: 30 + + # get image from https://www.vastdata.com.cn/ + vastbase: + image: vastdata/vastbase-vector + profiles: + - vastbase + restart: always + environment: + - VB_DBCOMPATIBILITY=PG + - VB_DB=dify + - VB_USERNAME=dify + - VB_PASSWORD=Difyai123456 + ports: + - "5434:5432" + volumes: + - ./vastbase/lic:/home/vastbase/vastbase/lic + - ./vastbase/data:/home/vastbase/data + - ./vastbase/backup:/home/vastbase/backup + - ./vastbase/backup_log:/home/vastbase/backup_log + healthcheck: + test: ["CMD", "pg_isready"] + interval: 1s + timeout: 3s + retries: 30 + + # pgvecto-rs vector store + pgvecto-rs: + image: tensorchord/pgvecto-rs:pg16-v0.3.0 + profiles: + - pgvecto-rs + restart: always + environment: + PGUSER: ${PGVECTOR_PGUSER:-postgres} + # The password for the default postgres user. + POSTGRES_PASSWORD: ${PGVECTOR_POSTGRES_PASSWORD:-difyai123456} + # The name of the default postgres database. + POSTGRES_DB: ${PGVECTOR_POSTGRES_DB:-dify} + # postgres data directory + PGDATA: ${PGVECTOR_PGDATA:-/var/lib/postgresql/data/pgdata} + volumes: + - ./volumes/pgvecto_rs/data:/var/lib/postgresql/data + healthcheck: + test: ["CMD", "pg_isready"] + interval: 1s + timeout: 3s + retries: 30 + + # Chroma vector database + chroma: + image: ghcr.io/chroma-core/chroma:0.5.20 + profiles: + - chroma + restart: always + volumes: + - ./volumes/chroma:/chroma/chroma + environment: + CHROMA_SERVER_AUTHN_CREDENTIALS: ${CHROMA_SERVER_AUTHN_CREDENTIALS:-difyai123456} + CHROMA_SERVER_AUTHN_PROVIDER: ${CHROMA_SERVER_AUTHN_PROVIDER:-chromadb.auth.token_authn.TokenAuthenticationServerProvider} + IS_PERSISTENT: ${CHROMA_IS_PERSISTENT:-TRUE} + + # InterSystems IRIS vector database + iris: + image: containers.intersystems.com/intersystems/iris-community:2025.3 + profiles: + - iris + container_name: iris + restart: always + init: true + ports: + - "${IRIS_SUPER_SERVER_PORT:-1972}:1972" + - "${IRIS_WEB_SERVER_PORT:-52773}:52773" + volumes: + - ./volumes/iris:/durable + - ./iris/iris-init.script:/iris-init.script + - ./iris/docker-entrypoint.sh:/custom-entrypoint.sh + entrypoint: ["/custom-entrypoint.sh"] + tty: true + environment: + TZ: ${IRIS_TIMEZONE:-UTC} + ISC_DATA_DIRECTORY: /durable/iris + + # Oracle vector database + oracle: + image: container-registry.oracle.com/database/free:latest + profiles: + - oracle + restart: always + volumes: + - source: oradata + type: volume + target: /opt/oracle/oradata + - ./startupscripts:/opt/oracle/scripts/startup + environment: + ORACLE_PWD: ${ORACLE_PWD:-Dify123456} + ORACLE_CHARACTERSET: ${ORACLE_CHARACTERSET:-AL32UTF8} + + # Milvus vector database services + etcd: + container_name: milvus-etcd + image: quay.io/coreos/etcd:v3.5.5 + profiles: + - milvus + environment: + ETCD_AUTO_COMPACTION_MODE: ${ETCD_AUTO_COMPACTION_MODE:-revision} + ETCD_AUTO_COMPACTION_RETENTION: ${ETCD_AUTO_COMPACTION_RETENTION:-1000} + ETCD_QUOTA_BACKEND_BYTES: ${ETCD_QUOTA_BACKEND_BYTES:-4294967296} + ETCD_SNAPSHOT_COUNT: ${ETCD_SNAPSHOT_COUNT:-50000} + volumes: + - ./volumes/milvus/etcd:/etcd + command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd + healthcheck: + test: ["CMD", "etcdctl", "endpoint", "health"] + interval: 30s + timeout: 20s + retries: 3 + networks: + - milvus + + minio: + container_name: milvus-minio + image: minio/minio:RELEASE.2023-03-20T20-16-18Z + profiles: + - milvus + environment: + MINIO_ACCESS_KEY: ${MINIO_ACCESS_KEY:-minioadmin} + MINIO_SECRET_KEY: ${MINIO_SECRET_KEY:-minioadmin} + volumes: + - ./volumes/milvus/minio:/minio_data + command: minio server /minio_data --console-address ":9001" + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] + interval: 30s + timeout: 20s + retries: 3 + networks: + - milvus + + milvus-standalone: + container_name: milvus-standalone + image: milvusdb/milvus:v2.6.3 + profiles: + - milvus + command: ["milvus", "run", "standalone"] + environment: + ETCD_ENDPOINTS: ${ETCD_ENDPOINTS:-etcd:2379} + MINIO_ADDRESS: ${MINIO_ADDRESS:-minio:9000} + common.security.authorizationEnabled: ${MILVUS_AUTHORIZATION_ENABLED:-true} + volumes: + - ./volumes/milvus/milvus:/var/lib/milvus + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"] + interval: 30s + start_period: 90s + timeout: 20s + retries: 3 + depends_on: + - etcd + - minio + ports: + - 19530:19530 + - 9091:9091 + networks: + - milvus + + # Opensearch vector database + opensearch: + container_name: opensearch + image: opensearchproject/opensearch:latest + profiles: + - opensearch + environment: + discovery.type: ${OPENSEARCH_DISCOVERY_TYPE:-single-node} + bootstrap.memory_lock: ${OPENSEARCH_BOOTSTRAP_MEMORY_LOCK:-true} + OPENSEARCH_JAVA_OPTS: -Xms${OPENSEARCH_JAVA_OPTS_MIN:-512m} -Xmx${OPENSEARCH_JAVA_OPTS_MAX:-1024m} + OPENSEARCH_INITIAL_ADMIN_PASSWORD: ${OPENSEARCH_INITIAL_ADMIN_PASSWORD:-Qazwsxedc!@#123} + ulimits: + memlock: + soft: ${OPENSEARCH_MEMLOCK_SOFT:--1} + hard: ${OPENSEARCH_MEMLOCK_HARD:--1} + nofile: + soft: ${OPENSEARCH_NOFILE_SOFT:-65536} + hard: ${OPENSEARCH_NOFILE_HARD:-65536} + volumes: + - ./volumes/opensearch/data:/usr/share/opensearch/data + networks: + - opensearch-net + + opensearch-dashboards: + container_name: opensearch-dashboards + image: opensearchproject/opensearch-dashboards:latest + profiles: + - opensearch + environment: + OPENSEARCH_HOSTS: '["https://opensearch:9200"]' + volumes: + - ./volumes/opensearch/opensearch_dashboards.yml:/usr/share/opensearch-dashboards/config/opensearch_dashboards.yml + networks: + - opensearch-net + depends_on: + - opensearch + + # opengauss vector database. + opengauss: + image: opengauss/opengauss:7.0.0-RC1 + profiles: + - opengauss + privileged: true + restart: always + environment: + GS_USERNAME: ${OPENGAUSS_USER:-postgres} + GS_PASSWORD: ${OPENGAUSS_PASSWORD:-Dify@123} + GS_PORT: ${OPENGAUSS_PORT:-6600} + GS_DB: ${OPENGAUSS_DATABASE:-dify} + volumes: + - ./volumes/opengauss/data:/var/lib/opengauss/data + healthcheck: + test: ["CMD-SHELL", "netstat -lntp | grep tcp6 > /dev/null 2>&1"] + interval: 10s + timeout: 10s + retries: 10 + ports: + - ${OPENGAUSS_PORT:-6600}:${OPENGAUSS_PORT:-6600} + + # MyScale vector database + myscale: + container_name: myscale + image: myscale/myscaledb:1.6.4 + profiles: + - myscale + restart: always + tty: true + volumes: + - ./volumes/myscale/data:/var/lib/clickhouse + - ./volumes/myscale/log:/var/log/clickhouse-server + - ./volumes/myscale/config/users.d/custom_users_config.xml:/etc/clickhouse-server/users.d/custom_users_config.xml + ports: + - ${MYSCALE_PORT:-8123}:${MYSCALE_PORT:-8123} + + # Matrixone vector store. + matrixone: + hostname: matrixone + image: matrixorigin/matrixone:2.1.1 + profiles: + - matrixone + restart: always + volumes: + - ./volumes/matrixone/data:/mo-data + ports: + - ${MATRIXONE_PORT:-6001}:${MATRIXONE_PORT:-6001} + + # https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html + # https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-prod-prerequisites + elasticsearch: + image: docker.elastic.co/elasticsearch/elasticsearch:8.14.3 + container_name: elasticsearch + profiles: + - elasticsearch + - elasticsearch-ja + restart: always + volumes: + - ./elasticsearch/docker-entrypoint.sh:/docker-entrypoint-mount.sh + - dify_es01_data:/usr/share/elasticsearch/data + environment: + ELASTIC_PASSWORD: ${ELASTICSEARCH_PASSWORD:-elastic} + VECTOR_STORE: ${VECTOR_STORE:-} + cluster.name: dify-es-cluster + node.name: dify-es0 + discovery.type: single-node + xpack.license.self_generated.type: basic + xpack.security.enabled: "true" + xpack.security.enrollment.enabled: "false" + xpack.security.http.ssl.enabled: "false" + ports: + - ${ELASTICSEARCH_PORT:-9200}:9200 + deploy: + resources: + limits: + memory: 2g + entrypoint: ["sh", "-c", "sh /docker-entrypoint-mount.sh"] + healthcheck: + test: + ["CMD", "curl", "-s", "http://localhost:9200/_cluster/health?pretty"] + interval: 30s + timeout: 10s + retries: 50 + + # https://www.elastic.co/guide/en/kibana/current/docker.html + # https://www.elastic.co/guide/en/kibana/current/settings.html + kibana: + image: docker.elastic.co/kibana/kibana:8.14.3 + container_name: kibana + profiles: + - elasticsearch + depends_on: + - elasticsearch + restart: always + environment: + XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY: d1a66dfd-c4d3-4a0a-8290-2abcb83ab3aa + NO_PROXY: localhost,127.0.0.1,elasticsearch,kibana + XPACK_SECURITY_ENABLED: "true" + XPACK_SECURITY_ENROLLMENT_ENABLED: "false" + XPACK_SECURITY_HTTP_SSL_ENABLED: "false" + XPACK_FLEET_ISAIRGAPPED: "true" + I18N_LOCALE: zh-CN + SERVER_PORT: "5601" + ELASTICSEARCH_HOSTS: http://elasticsearch:9200 + ports: + - ${KIBANA_PORT:-5601}:5601 + healthcheck: + test: ["CMD-SHELL", "curl -s http://localhost:5601 >/dev/null || exit 1"] + interval: 30s + timeout: 10s + retries: 3 + + # unstructured . + # (if used, you need to set ETL_TYPE to Unstructured in the api & worker service.) + unstructured: + image: downloads.unstructured.io/unstructured-io/unstructured-api:latest + profiles: + - unstructured + restart: always + volumes: + - ./volumes/unstructured:/app/data + +networks: + # create a network between sandbox, api and ssrf_proxy, and can not access outside. + ssrf_proxy_network: + driver: bridge + internal: true + milvus: + driver: bridge + opensearch-net: + driver: bridge + internal: true + +volumes: + oradata: + dify_es01_data: diff --git a/智能体平台调研/代码/dify/envs/core-services/shared.env b/智能体平台调研/代码/dify/envs/core-services/shared.env new file mode 100644 index 0000000..49a8d9b --- /dev/null +++ b/智能体平台调研/代码/dify/envs/core-services/shared.env @@ -0,0 +1,485 @@ +# ------------------------------ +# Shared API/Worker Configuration +# ------------------------------ + +CONSOLE_WEB_URL= +SERVICE_API_URL= +TRIGGER_URL=http://localhost +APP_WEB_URL= +FILES_URL= +INTERNAL_FILES_URL= +LANG=C.UTF-8 +LC_ALL=C.UTF-8 +PYTHONIOENCODING=utf-8 +UV_CACHE_DIR=/tmp/.uv-cache +CHECK_UPDATE_URL=https://updates.dify.ai +OPENAI_API_BASE=https://api.openai.com/v1 +MIGRATION_ENABLED=true +FILES_ACCESS_TIMEOUT=300 +# Remove `collaboration` from COMPOSE_PROFILES to stop the dedicated websocket service. +ENABLE_COLLABORATION_MODE=true +CELERY_BROKER_URL=redis://:difyai123456@redis:6379/1 +CELERY_TASK_ANNOTATIONS=null +AZURE_BLOB_ACCOUNT_URL=https://.blob.core.windows.net +SUPABASE_URL=your-server-url +TIDB_ON_QDRANT_URL=http://127.0.0.1 +TIDB_ON_QDRANT_API_KEY=dify +TIDB_API_URL=http://127.0.0.1 +TIDB_IAM_API_URL=http://127.0.0.1 +TIDB_REGION=regions/aws-us-east-1 +TIDB_PROJECT_ID=dify +TIDB_SPEND_LIMIT=100 +TENCENT_VECTOR_DB_URL=http://127.0.0.1 +TENCENT_VECTOR_DB_API_KEY=dify +LINDORM_URL=http://localhost:30070 +LINDORM_USERNAME=admin +UPSTASH_VECTOR_URL=https://xxx-vector.upstash.io +UPLOAD_FILE_SIZE_LIMIT=15 +UPLOAD_FILE_BATCH_LIMIT=5 +UPLOAD_FILE_EXTENSION_BLACKLIST= +SINGLE_CHUNK_ATTACHMENT_LIMIT=10 +IMAGE_FILE_BATCH_LIMIT=10 +ATTACHMENT_IMAGE_FILE_SIZE_LIMIT=2 +ATTACHMENT_IMAGE_DOWNLOAD_TIMEOUT=60 +ETL_TYPE=dify +UNSTRUCTURED_API_URL= +MULTIMODAL_SEND_FORMAT=base64 +UPLOAD_IMAGE_FILE_SIZE_LIMIT=10 +UPLOAD_VIDEO_FILE_SIZE_LIMIT=100 +UPLOAD_AUDIO_FILE_SIZE_LIMIT=50 +API_SENTRY_DSN= +API_SENTRY_TRACES_SAMPLE_RATE=1.0 +API_SENTRY_PROFILES_SAMPLE_RATE=1.0 +WEB_SENTRY_DSN= +PLUGIN_SENTRY_ENABLED=false +PLUGIN_SENTRY_DSN= +NOTION_INTEGRATION_TYPE=public +RESEND_API_URL=https://api.resend.com +SSRF_PROXY_HTTP_URL=http://ssrf_proxy:3128 +SSRF_PROXY_HTTPS_URL=http://ssrf_proxy:3128 +PGDATA=/var/lib/postgresql/data/pgdata +PLUGIN_MAX_PACKAGE_SIZE=52428800 +PLUGIN_MODEL_SCHEMA_CACHE_TTL=3600 +PLUGIN_MODEL_PROVIDERS_CACHE_TTL=86400 +ENDPOINT_URL_TEMPLATE=http://localhost/e/{hook_id} +LOG_LEVEL=INFO +LOG_OUTPUT_FORMAT=text +LOG_FILE=/app/logs/server.log +LOG_FILE_MAX_SIZE=20 +LOG_FILE_BACKUP_COUNT=5 +LOG_DATEFORMAT=%Y-%m-%d %H:%M:%S +LOG_TZ=UTC +DEBUG=false +FLASK_DEBUG=false +ENABLE_REQUEST_LOGGING=False +OPS_TRACE_RETRYABLE_DISPATCH_MAX_RETRIES=60 +OPS_TRACE_RETRYABLE_DISPATCH_DELAY_SECONDS=5 +WORKFLOW_LOG_CLEANUP_ENABLED=false +WORKFLOW_LOG_RETENTION_DAYS=30 +WORKFLOW_LOG_CLEANUP_BATCH_SIZE=100 +WORKFLOW_LOG_CLEANUP_SPECIFIC_WORKFLOW_IDS= +EXPOSE_PLUGIN_DEBUGGING_HOST=localhost +EXPOSE_PLUGIN_DEBUGGING_PORT=5003 +DEPLOY_ENV=PRODUCTION +ACCESS_TOKEN_EXPIRE_MINUTES=60 +REFRESH_TOKEN_EXPIRE_DAYS=30 +APP_DEFAULT_ACTIVE_REQUESTS=0 +APP_MAX_ACTIVE_REQUESTS=0 +APP_MAX_EXECUTION_TIME=1200 +DIFY_BIND_ADDRESS=0.0.0.0 +DIFY_PORT=5001 +SERVER_WORKER_AMOUNT=1 +SERVER_WORKER_CLASS=gevent +SERVER_WORKER_CONNECTIONS=10 +API_WEBSOCKET_WORKER_CLASS=geventwebsocket.gunicorn.workers.GeventWebSocketWorker +API_WEBSOCKET_WORKER_CONNECTIONS=1000 +API_WEBSOCKET_GUNICORN_TIMEOUT=360 +CELERY_SENTINEL_PASSWORD= +S3_ACCESS_KEY= +S3_SECRET_KEY= +ARCHIVE_STORAGE_ACCESS_KEY= +ARCHIVE_STORAGE_SECRET_KEY= +AZURE_BLOB_ACCOUNT_KEY=difyai +ALIYUN_OSS_ACCESS_KEY=your-access-key +ALIYUN_OSS_SECRET_KEY=your-secret-key +TENCENT_COS_SECRET_KEY=your-secret-key +TENCENT_COS_SECRET_ID=your-secret-id +OCI_ACCESS_KEY=your-access-key +OCI_SECRET_KEY=your-secret-key +HUAWEI_OBS_SECRET_KEY=your-secret-key +HUAWEI_OBS_ACCESS_KEY=your-access-key +VOLCENGINE_TOS_SECRET_KEY=your-secret-key +VOLCENGINE_TOS_ACCESS_KEY=your-access-key +BAIDU_OBS_SECRET_KEY=your-secret-key +BAIDU_OBS_ACCESS_KEY=your-access-key +SUPABASE_API_KEY=your-access-key +ALIBABACLOUD_MYSQL_PASSWORD=difyai123456 +RELYT_PASSWORD=difyai123456 +LINDORM_PASSWORD=admin +LINDORM_USING_UGC=True +LINDORM_QUERY_TIMEOUT=1 +HUAWEI_CLOUD_PASSWORD=admin +UPSTASH_VECTOR_TOKEN=dify +TABLESTORE_ACCESS_KEY_ID=xxx +TABLESTORE_ACCESS_KEY_SECRET=xxx +TABLESTORE_NORMALIZE_FULLTEXT_BM25_SCORE=false +CLICKZETTA_PASSWORD= +CLICKZETTA_INSTANCE= +CLICKZETTA_SERVICE=api.clickzetta.com +CLICKZETTA_WORKSPACE=quick_start +CLICKZETTA_VCLUSTER=default_ap +CLICKZETTA_SCHEMA=dify +CLICKZETTA_BATCH_SIZE=100 +CLICKZETTA_ENABLE_INVERTED_INDEX=true +CLICKZETTA_ANALYZER_TYPE=chinese +CLICKZETTA_ANALYZER_MODE=smart +UNSTRUCTURED_API_KEY= +SCARF_NO_ANALYTICS=true +PLUGIN_BASED_TOKEN_COUNTING_ENABLED=false +NOTION_CLIENT_SECRET= +NOTION_CLIENT_ID= +NOTION_INTERNAL_SECRET= +MAIL_TYPE=resend +MAIL_DEFAULT_SEND_FROM= +RESEND_API_KEY=your-resend-api-key +SMTP_SERVER= +SMTP_PORT=465 +SMTP_USERNAME= +SMTP_PASSWORD= +SMTP_USE_TLS=true +SMTP_OPPORTUNISTIC_TLS=false +SMTP_LOCAL_HOSTNAME= +SENDGRID_API_KEY= +INVITE_EXPIRY_HOURS=72 +RESET_PASSWORD_TOKEN_EXPIRY_MINUTES=5 +EMAIL_REGISTER_TOKEN_EXPIRY_MINUTES=5 +CHANGE_EMAIL_TOKEN_EXPIRY_MINUTES=5 +OWNER_TRANSFER_TOKEN_EXPIRY_MINUTES=5 +CODE_EXECUTION_ENDPOINT=http://sandbox:8194 +CODE_EXECUTION_API_KEY=dify-sandbox +CODE_EXECUTION_SSL_VERIFY=True +CODE_EXECUTION_POOL_MAX_CONNECTIONS=100 +CODE_EXECUTION_POOL_MAX_KEEPALIVE_CONNECTIONS=20 +CODE_EXECUTION_POOL_KEEPALIVE_EXPIRY=5.0 +CODE_MAX_NUMBER=9223372036854775807 +CODE_MIN_NUMBER=-9223372036854775808 +CODE_MAX_DEPTH=5 +CODE_MAX_PRECISION=20 +CODE_MAX_STRING_LENGTH=400000 +CODE_MAX_STRING_ARRAY_LENGTH=30 +CODE_MAX_OBJECT_ARRAY_LENGTH=30 +CODE_MAX_NUMBER_ARRAY_LENGTH=1000 +CODE_EXECUTION_CONNECT_TIMEOUT=10 +CODE_EXECUTION_READ_TIMEOUT=60 +CODE_EXECUTION_WRITE_TIMEOUT=10 +TEMPLATE_TRANSFORM_MAX_LENGTH=400000 +WORKFLOW_MAX_EXECUTION_STEPS=500 +WORKFLOW_MAX_EXECUTION_TIME=1200 +WORKFLOW_CALL_MAX_DEPTH=5 +MAX_VARIABLE_SIZE=204800 +WORKFLOW_FILE_UPLOAD_LIMIT=10 +GRAPH_ENGINE_MIN_WORKERS=3 +GRAPH_ENGINE_MAX_WORKERS=10 +GRAPH_ENGINE_SCALE_UP_THRESHOLD=3 +GRAPH_ENGINE_SCALE_DOWN_IDLE_TIME=5.0 +ALIYUN_SLS_ACCESS_KEY_ID= +ALIYUN_SLS_ACCESS_KEY_SECRET= +WEBHOOK_REQUEST_BODY_MAX_SIZE=10485760 +RESPECT_XFORWARD_HEADERS_ENABLED=false +SSRF_HTTP_PORT=3128 +SSRF_COREDUMP_DIR=/var/spool/squid +SSRF_REVERSE_PROXY_PORT=8194 +SSRF_SANDBOX_HOST=sandbox +SSRF_DEFAULT_TIME_OUT=5 +SSRF_DEFAULT_CONNECT_TIME_OUT=5 +SSRF_DEFAULT_READ_TIME_OUT=5 +SSRF_DEFAULT_WRITE_TIME_OUT=5 +SSRF_POOL_MAX_CONNECTIONS=100 +SSRF_POOL_MAX_KEEPALIVE_CONNECTIONS=20 +SSRF_POOL_KEEPALIVE_EXPIRY=5.0 +PLUGIN_AWS_ACCESS_KEY= +PLUGIN_AWS_SECRET_KEY= +PLUGIN_AWS_REGION= +PLUGIN_TENCENT_COS_SECRET_KEY= +PLUGIN_TENCENT_COS_SECRET_ID= +PLUGIN_ALIYUN_OSS_ACCESS_KEY_ID= +PLUGIN_ALIYUN_OSS_ACCESS_KEY_SECRET= +PLUGIN_VOLCENGINE_TOS_ACCESS_KEY= +PLUGIN_VOLCENGINE_TOS_SECRET_KEY= +OTLP_API_KEY= +OTEL_EXPORTER_OTLP_PROTOCOL= +OTEL_EXPORTER_TYPE=otlp +OTEL_SAMPLING_RATE=0.1 +OTEL_BATCH_EXPORT_SCHEDULE_DELAY=5000 +OTEL_MAX_QUEUE_SIZE=2048 +OTEL_MAX_EXPORT_BATCH_SIZE=512 +OTEL_METRIC_EXPORT_INTERVAL=60000 +OTEL_BATCH_EXPORT_TIMEOUT=10000 +OTEL_METRIC_EXPORT_TIMEOUT=30000 +QUEUE_MONITOR_THRESHOLD=200 +QUEUE_MONITOR_ALERT_EMAILS= +QUEUE_MONITOR_INTERVAL=30 +SWAGGER_UI_ENABLED=false +SWAGGER_UI_PATH=/swagger-ui.html +OPENAPI_ENABLED=false +OPENAPI_CORS_ALLOW_ORIGINS= +OPENAPI_KNOWN_CLIENT_IDS=difyctl +OPENAPI_RATE_LIMIT_PER_TOKEN=60 +DEVICE_FLOW_APPROVE_RATE_LIMIT_PER_HOUR=10 +ENABLE_OAUTH_BEARER=false +DSL_EXPORT_ENCRYPT_DATASET_ID=true +DATASET_MAX_SEGMENTS_PER_REQUEST=0 +ENABLE_CLEAN_EMBEDDING_CACHE_TASK=false +ENABLE_CLEAN_UNUSED_DATASETS_TASK=false +ENABLE_CREATE_TIDB_SERVERLESS_TASK=false +ENABLE_UPDATE_TIDB_SERVERLESS_STATUS_TASK=false +ENABLE_CLEAN_MESSAGES=false +ENABLE_WORKFLOW_RUN_CLEANUP_TASK=false +ENABLE_MAIL_CLEAN_DOCUMENT_NOTIFY_TASK=false +ENABLE_DATASETS_QUEUE_MONITOR=false +ENABLE_CHECK_UPGRADABLE_PLUGIN_TASK=true +ENABLE_WORKFLOW_SCHEDULE_POLLER_TASK=true +WORKFLOW_SCHEDULE_POLLER_INTERVAL=1 +WORKFLOW_SCHEDULE_POLLER_BATCH_SIZE=100 +WORKFLOW_SCHEDULE_MAX_DISPATCH_PER_TICK=0 +TENANT_ISOLATED_TASK_CONCURRENCY=1 +ANNOTATION_IMPORT_FILE_SIZE_LIMIT=2 +ANNOTATION_IMPORT_MAX_RECORDS=10000 +ANNOTATION_IMPORT_MIN_RECORDS=1 +ANNOTATION_IMPORT_RATE_LIMIT_PER_MINUTE=5 +ANNOTATION_IMPORT_RATE_LIMIT_PER_HOUR=20 +ANNOTATION_IMPORT_MAX_CONCURRENT=5 +CREATORS_PLATFORM_FEATURES_ENABLED=true +CREATORS_PLATFORM_API_URL=https://creators.dify.ai +CREATORS_PLATFORM_OAUTH_CLIENT_ID= +TIDB_VECTOR_DATABASE=dify +ALIBABACLOUD_MYSQL_HOST=127.0.0.1 +ALIBABACLOUD_MYSQL_PORT=3306 +ALIBABACLOUD_MYSQL_USER=root +ALIBABACLOUD_MYSQL_DATABASE=dify +ALIBABACLOUD_MYSQL_MAX_CONNECTION=5 +ALIBABACLOUD_MYSQL_HNSW_M=6 +RELYT_DATABASE=postgres +TENCENT_VECTOR_DB_DATABASE=dify +BAIDU_VECTOR_DB_DATABASE=dify +EXPOSE_PLUGIN_DAEMON_PORT=5002 +GUNICORN_TIMEOUT=360 +CELERY_WORKER_AMOUNT= +CELERY_AUTO_SCALE=false +CELERY_MAX_WORKERS= +CELERY_MIN_WORKERS= +API_TOOL_DEFAULT_CONNECT_TIMEOUT=10 +API_TOOL_DEFAULT_READ_TIMEOUT=60 +CELERY_BACKEND=redis +CELERY_USE_SENTINEL=false +CELERY_SENTINEL_MASTER_NAME= +CELERY_SENTINEL_SOCKET_TIMEOUT=0.1 +WEB_API_CORS_ALLOW_ORIGINS=* +CONSOLE_CORS_ALLOW_ORIGINS=* +COOKIE_DOMAIN= +OPENDAL_SCHEME=fs +OPENDAL_FS_ROOT=storage +CLICKZETTA_VOLUME_TYPE=user +CLICKZETTA_VOLUME_NAME= +CLICKZETTA_VOLUME_TABLE_PREFIX=dataset_ +CLICKZETTA_VOLUME_DIFY_PREFIX=dify_km +S3_ENDPOINT= +S3_REGION=us-east-1 +S3_BUCKET_NAME=difyai +S3_ADDRESS_STYLE=auto +S3_USE_AWS_MANAGED_IAM=false +ARCHIVE_STORAGE_ENABLED=false +ARCHIVE_STORAGE_ENDPOINT= +ARCHIVE_STORAGE_ARCHIVE_BUCKET= +ARCHIVE_STORAGE_EXPORT_BUCKET= +ARCHIVE_STORAGE_REGION=auto +AZURE_BLOB_ACCOUNT_NAME=difyai +AZURE_BLOB_CONTAINER_NAME=difyai-container +GOOGLE_STORAGE_BUCKET_NAME=your-bucket-name +GOOGLE_STORAGE_SERVICE_ACCOUNT_JSON_BASE64= +ALIYUN_OSS_BUCKET_NAME=your-bucket-name +ALIYUN_OSS_ENDPOINT=https://oss-ap-southeast-1-internal.aliyuncs.com +ALIYUN_OSS_REGION=ap-southeast-1 +ALIYUN_OSS_AUTH_VERSION=v4 +ALIYUN_OSS_PATH=your-path +ALIYUN_CLOUDBOX_ID=your-cloudbox-id +TENCENT_COS_BUCKET_NAME=your-bucket-name +TENCENT_COS_REGION=your-region +TENCENT_COS_SCHEME=your-scheme +TENCENT_COS_CUSTOM_DOMAIN=your-custom-domain +OCI_ENDPOINT=https://your-object-storage-namespace.compat.objectstorage.us-ashburn-1.oraclecloud.com +OCI_BUCKET_NAME=your-bucket-name +OCI_REGION=us-ashburn-1 +HUAWEI_OBS_BUCKET_NAME=your-bucket-name +HUAWEI_OBS_SERVER=your-server-url +HUAWEI_OBS_PATH_STYLE=false +VOLCENGINE_TOS_BUCKET_NAME=your-bucket-name +VOLCENGINE_TOS_ENDPOINT=your-server-url +VOLCENGINE_TOS_REGION=your-region +BAIDU_OBS_BUCKET_NAME=your-bucket-name +BAIDU_OBS_ENDPOINT=your-server-url +SUPABASE_BUCKET_NAME=your-bucket-name +TENCENT_VECTOR_DB_TIMEOUT=30 +TENCENT_VECTOR_DB_USERNAME=dify +TENCENT_VECTOR_DB_SHARD=1 +TENCENT_VECTOR_DB_REPLICAS=2 +TENCENT_VECTOR_DB_ENABLE_HYBRID_SEARCH=false +BAIDU_VECTOR_DB_ENDPOINT=http://127.0.0.1:5287 +BAIDU_VECTOR_DB_CONNECTION_TIMEOUT_MS=30000 +BAIDU_VECTOR_DB_ACCOUNT=root +BAIDU_VECTOR_DB_API_KEY=dify +BAIDU_VECTOR_DB_SHARD=1 +BAIDU_VECTOR_DB_REPLICAS=3 +BAIDU_VECTOR_DB_INVERTED_INDEX_ANALYZER=DEFAULT_ANALYZER +BAIDU_VECTOR_DB_INVERTED_INDEX_PARSER_MODE=COARSE_MODE +BAIDU_VECTOR_DB_AUTO_BUILD_ROW_COUNT_INCREMENT=500 +BAIDU_VECTOR_DB_AUTO_BUILD_ROW_COUNT_INCREMENT_RATIO=0.05 +BAIDU_VECTOR_DB_REBUILD_INDEX_TIMEOUT_IN_SECONDS=300 +HUAWEI_CLOUD_HOSTS=https://127.0.0.1:9200 +HUAWEI_CLOUD_USER=admin +WORKFLOW_NODE_EXECUTION_STORAGE=rdbms +CORE_WORKFLOW_EXECUTION_REPOSITORY=core.repositories.sqlalchemy_workflow_execution_repository.SQLAlchemyWorkflowExecutionRepository +CORE_WORKFLOW_NODE_EXECUTION_REPOSITORY=core.repositories.sqlalchemy_workflow_node_execution_repository.SQLAlchemyWorkflowNodeExecutionRepository +API_WORKFLOW_RUN_REPOSITORY=repositories.sqlalchemy_api_workflow_run_repository.DifyAPISQLAlchemyWorkflowRunRepository +API_WORKFLOW_NODE_EXECUTION_REPOSITORY=repositories.sqlalchemy_api_workflow_node_execution_repository.DifyAPISQLAlchemyWorkflowNodeExecutionRepository +ALIYUN_SLS_ENDPOINT= +ALIYUN_SLS_REGION= +ALIYUN_SLS_PROJECT_NAME= +ALIYUN_SLS_LOGSTORE_TTL=365 +LOGSTORE_DUAL_WRITE_ENABLED=false +LOGSTORE_DUAL_READ_ENABLED=true +LOGSTORE_ENABLE_PUT_GRAPH_FIELD=true +HTTP_REQUEST_NODE_MAX_BINARY_SIZE=10485760 +HTTP_REQUEST_NODE_MAX_TEXT_SIZE=1048576 +HTTP_REQUEST_NODE_SSL_VERIFY=True +HTTP_REQUEST_MAX_CONNECT_TIMEOUT=10 +HTTP_REQUEST_MAX_READ_TIMEOUT=600 +HTTP_REQUEST_MAX_WRITE_TIMEOUT=600 +PLUGIN_INSTALLED_PATH=plugin +PLUGIN_PACKAGE_CACHE_PATH=plugin_packages +PLUGIN_MEDIA_CACHE_PATH=assets +PLUGIN_S3_USE_AWS=false +PLUGIN_S3_USE_AWS_MANAGED_IAM=false +PLUGIN_S3_ENDPOINT= +PLUGIN_S3_USE_PATH_STYLE=false +PLUGIN_AZURE_BLOB_STORAGE_CONTAINER_NAME= +PLUGIN_AZURE_BLOB_STORAGE_CONNECTION_STRING= +PLUGIN_TENCENT_COS_REGION= +PLUGIN_ALIYUN_OSS_REGION= +PLUGIN_ALIYUN_OSS_ENDPOINT= +PLUGIN_ALIYUN_OSS_AUTH_VERSION=v4 +PLUGIN_ALIYUN_OSS_PATH= +PLUGIN_VOLCENGINE_TOS_ENDPOINT= +PLUGIN_VOLCENGINE_TOS_REGION= +ENABLE_OTEL=false +OTLP_TRACE_ENDPOINT= +OTLP_METRIC_ENDPOINT= +# Prefix used to create collection name in vector database +OTLP_BASE_ENDPOINT=http://localhost:4318 +WEAVIATE_GRPC_ENDPOINT=grpc://weaviate:50051 +ANALYTICDB_KEY_ID=your-ak +ANALYTICDB_KEY_SECRET=your-sk +ANALYTICDB_REGION_ID=cn-hangzhou +ANALYTICDB_INSTANCE_ID=gp-ab123456 +ANALYTICDB_ACCOUNT=testaccount +ANALYTICDB_PASSWORD=testpassword +ANALYTICDB_NAMESPACE=dify +ANALYTICDB_NAMESPACE_PASSWORD=difypassword +ANALYTICDB_HOST=gp-test.aliyuncs.com +ANALYTICDB_PORT=5432 +ANALYTICDB_MIN_CONNECTION=1 +ANALYTICDB_MAX_CONNECTION=5 +TIDB_VECTOR_HOST=tidb +TIDB_VECTOR_PORT=4000 +TIDB_VECTOR_USER= +TIDB_VECTOR_PASSWORD= +TIDB_ON_QDRANT_CLIENT_TIMEOUT=20 +TIDB_ON_QDRANT_GRPC_ENABLED=false +TIDB_ON_QDRANT_GRPC_PORT=6334 +TIDB_PUBLIC_KEY=dify +TIDB_PRIVATE_KEY=dify +RELYT_HOST=db +RELYT_PORT=5432 +RELYT_USER=postgres +VIKINGDB_ACCESS_KEY=your-ak +VIKINGDB_SECRET_KEY=your-sk +VIKINGDB_REGION=cn-shanghai +VIKINGDB_HOST=api-vikingdb.xxx.volces.com +VIKINGDB_SCHEME=http +VIKINGDB_CONNECTION_TIMEOUT=30 +VIKINGDB_SOCKET_TIMEOUT=30 +TABLESTORE_ENDPOINT=https://instance-name.cn-hangzhou.ots.aliyuncs.com +TABLESTORE_INSTANCE_NAME=instance-name +CLICKZETTA_USERNAME= +CLICKZETTA_VECTOR_DISTANCE_FUNCTION=cosine_distance +COMPOSE_PROFILES=${VECTOR_STORE:-weaviate},${DB_TYPE:-postgresql},collaboration +EXPOSE_NGINX_PORT=80 +EXPOSE_NGINX_SSL_PORT=443 +POSITION_TOOL_PINS= +POSITION_TOOL_INCLUDES= +POSITION_TOOL_EXCLUDES= +POSITION_PROVIDER_PINS= +POSITION_PROVIDER_INCLUDES= +POSITION_PROVIDER_EXCLUDES= +CREATE_TIDB_SERVICE_JOB_ENABLED=false +MAX_SUBMIT_COUNT=100 + +# Vector Store Configuration +STORAGE_TYPE=opendal +VECTOR_STORE=weaviate +VECTOR_INDEX_NAME_PREFIX=Vector_index +WEAVIATE_ENDPOINT=http://weaviate:8080 +WEAVIATE_API_KEY=WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih +WEAVIATE_TOKENIZATION=word +OCEANBASE_VECTOR_HOST=oceanbase +OCEANBASE_VECTOR_PORT=2881 +OCEANBASE_VECTOR_USER=root@test +OCEANBASE_VECTOR_PASSWORD=difyai123456 +OCEANBASE_VECTOR_DATABASE=test +OCEANBASE_ENABLE_HYBRID_SEARCH=false +OCEANBASE_FULLTEXT_PARSER=ik +SEEKDB_MEMORY_LIMIT=2G +QDRANT_URL=http://qdrant:6333 +QDRANT_API_KEY=difyai123456 +QDRANT_CLIENT_TIMEOUT=20 +QDRANT_GRPC_ENABLED=false +QDRANT_GRPC_PORT=6334 +QDRANT_REPLICATION_FACTOR=1 +MILVUS_URI=http://host.docker.internal:19530 +MILVUS_TOKEN= +MILVUS_USER= +MILVUS_PASSWORD= +MILVUS_ANALYZER_PARAMS= +PGVECTOR_HOST=pgvector +PGVECTOR_PORT=5432 +PGVECTOR_USER=postgres +PGVECTOR_PASSWORD=difyai123456 +PGVECTOR_DATABASE=dify +PGVECTOR_MIN_CONNECTION=1 +PGVECTOR_MAX_CONNECTION=5 +PGVECTOR_PG_BIGM=false +PGVECTOR_PG_BIGM_VERSION=1.2-20240606 + +# Hologres Configuration +HOLOGRES_HOST= +HOLOGRES_PORT=80 +HOLOGRES_DATABASE= +HOLOGRES_ACCESS_KEY_ID= +HOLOGRES_ACCESS_KEY_SECRET= +HOLOGRES_SCHEMA=public +HOLOGRES_TOKENIZER=jieba +HOLOGRES_DISTANCE_METHOD=Cosine +HOLOGRES_BASE_QUANTIZATION_TYPE=rabitq +HOLOGRES_MAX_DEGREE=64 +HOLOGRES_EF_CONSTRUCTION=400 + +# Milvus API Configuration +MILVUS_DATABASE= +MILVUS_ENABLE_HYBRID_SEARCH=False + +# Human Input Task Configuration +ENABLE_HUMAN_INPUT_TIMEOUT_TASK=true +HUMAN_INPUT_TIMEOUT_TASK_INTERVAL=1 + +# uv cache dir +UV_CACHE_DIR=/tmp/uv_cache diff --git a/智能体平台调研/代码/dify/nginx/docker-entrypoint.sh b/智能体平台调研/代码/dify/nginx/docker-entrypoint.sh new file mode 100644 index 0000000..763254e --- /dev/null +++ b/智能体平台调研/代码/dify/nginx/docker-entrypoint.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +HTTPS_CONFIG='' + +if [ "${NGINX_HTTPS_ENABLED}" = "true" ]; then + # Check if the certificate and key files for the specified domain exist + if [ -n "${CERTBOT_DOMAIN}" ] && \ + [ -f "/etc/letsencrypt/live/${CERTBOT_DOMAIN}/${NGINX_SSL_CERT_FILENAME}" ] && \ + [ -f "/etc/letsencrypt/live/${CERTBOT_DOMAIN}/${NGINX_SSL_CERT_KEY_FILENAME}" ]; then + SSL_CERTIFICATE_PATH="/etc/letsencrypt/live/${CERTBOT_DOMAIN}/${NGINX_SSL_CERT_FILENAME}" + SSL_CERTIFICATE_KEY_PATH="/etc/letsencrypt/live/${CERTBOT_DOMAIN}/${NGINX_SSL_CERT_KEY_FILENAME}" + else + SSL_CERTIFICATE_PATH="/etc/ssl/${NGINX_SSL_CERT_FILENAME}" + SSL_CERTIFICATE_KEY_PATH="/etc/ssl/${NGINX_SSL_CERT_KEY_FILENAME}" + fi + export SSL_CERTIFICATE_PATH + export SSL_CERTIFICATE_KEY_PATH + + # set the HTTPS_CONFIG environment variable to the content of the https.conf.template + HTTPS_CONFIG=$(envsubst < /etc/nginx/https.conf.template) + export HTTPS_CONFIG + # Substitute the HTTPS_CONFIG in the default.conf.template with content from https.conf.template + envsubst '${HTTPS_CONFIG}' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf +fi +export HTTPS_CONFIG + +if [ "${NGINX_ENABLE_CERTBOT_CHALLENGE}" = "true" ]; then + ACME_CHALLENGE_LOCATION='location /.well-known/acme-challenge/ { root /var/www/html; }' +else + ACME_CHALLENGE_LOCATION='' +fi +export ACME_CHALLENGE_LOCATION + +env_vars=$(printenv | cut -d= -f1 | sed 's/^/$/g' | paste -sd, -) + +envsubst "$env_vars" < /etc/nginx/nginx.conf.template > /etc/nginx/nginx.conf +envsubst "$env_vars" < /etc/nginx/proxy.conf.template > /etc/nginx/proxy.conf + +envsubst "$env_vars" < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf + +# Start Nginx using the default entrypoint +exec nginx -g 'daemon off;' diff --git a/智能体平台调研/代码/dify/ssrf_proxy/docker-entrypoint.sh b/智能体平台调研/代码/dify/ssrf_proxy/docker-entrypoint.sh new file mode 100644 index 0000000..613897b --- /dev/null +++ b/智能体平台调研/代码/dify/ssrf_proxy/docker-entrypoint.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +# Modified based on Squid OCI image entrypoint + +# This entrypoint aims to forward the squid logs to stdout to assist users of +# common container related tooling (e.g., kubernetes, docker-compose, etc) to +# access the service logs. + +# Moreover, it invokes the squid binary, leaving all the desired parameters to +# be provided by the "command" passed to the spawned container. If no command +# is provided by the user, the default behavior (as per the CMD statement in +# the Dockerfile) will be to use Ubuntu's default configuration [1] and run +# squid with the "-NYC" options to mimic the behavior of the Ubuntu provided +# systemd unit. + +# [1] The default configuration is changed in the Dockerfile to allow local +# network connections. See the Dockerfile for further information. + +echo "[ENTRYPOINT] re-create snakeoil self-signed certificate removed in the build process" +if [ ! -f /etc/ssl/private/ssl-cert-snakeoil.key ]; then + /usr/sbin/make-ssl-cert generate-default-snakeoil --force-overwrite > /dev/null 2>&1 +fi + +tail -F /var/log/squid/access.log 2>/dev/null & +tail -F /var/log/squid/error.log 2>/dev/null & +tail -F /var/log/squid/store.log 2>/dev/null & +tail -F /var/log/squid/cache.log 2>/dev/null & + +# Replace environment variables in the template and output to the squid.conf +echo "[ENTRYPOINT] replacing environment variables in the template" +awk '{ + while(match($0, /\${[A-Za-z_][A-Za-z_0-9]*}/)) { + var = substr($0, RSTART+2, RLENGTH-3) + val = ENVIRON[var] + $0 = substr($0, 1, RSTART-1) val substr($0, RSTART+RLENGTH) + } + print +}' /etc/squid/squid.conf.template > /etc/squid/squid.conf + +/usr/sbin/squid -Nz +echo "[ENTRYPOINT] starting squid" +/usr/sbin/squid -f /etc/squid/squid.conf -NYC 1 diff --git a/智能体平台调研/代码/dify/volumes/app/storage/.init_permissions b/智能体平台调研/代码/dify/volumes/app/storage/.init_permissions new file mode 100644 index 0000000..e69de29 diff --git a/智能体平台调研/代码/dify/volumes/redis/data/dump.rdb b/智能体平台调研/代码/dify/volumes/redis/data/dump.rdb new file mode 100644 index 0000000..8ef80cb Binary files /dev/null and b/智能体平台调研/代码/dify/volumes/redis/data/dump.rdb differ diff --git a/智能体平台调研/代码/dify/volumes/weaviate/classifications.db b/智能体平台调研/代码/dify/volumes/weaviate/classifications.db new file mode 100644 index 0000000..fa0fb13 Binary files /dev/null and b/智能体平台调研/代码/dify/volumes/weaviate/classifications.db differ diff --git a/智能体平台调研/代码/dify/volumes/weaviate/migration1.19.filter2search.skip.flag b/智能体平台调研/代码/dify/volumes/weaviate/migration1.19.filter2search.skip.flag new file mode 100644 index 0000000..e69de29 diff --git a/智能体平台调研/代码/dify/volumes/weaviate/migration1.19.filter2search.state b/智能体平台调研/代码/dify/volumes/weaviate/migration1.19.filter2search.state new file mode 100644 index 0000000..e69de29 diff --git a/智能体平台调研/代码/dify/volumes/weaviate/migration1.22.fs.hierarchy b/智能体平台调研/代码/dify/volumes/weaviate/migration1.22.fs.hierarchy new file mode 100644 index 0000000..e69de29 diff --git a/智能体平台调研/代码/dify/volumes/weaviate/modules.db b/智能体平台调研/代码/dify/volumes/weaviate/modules.db new file mode 100644 index 0000000..e449c28 Binary files /dev/null and b/智能体平台调研/代码/dify/volumes/weaviate/modules.db differ diff --git a/智能体平台调研/代码/dify/volumes/weaviate/raft/raft.db b/智能体平台调研/代码/dify/volumes/weaviate/raft/raft.db new file mode 100644 index 0000000..0ef4f44 Binary files /dev/null and b/智能体平台调研/代码/dify/volumes/weaviate/raft/raft.db differ diff --git a/智能体平台调研/代码/dify/volumes/weaviate/schema.db b/智能体平台调研/代码/dify/volumes/weaviate/schema.db new file mode 100644 index 0000000..9818775 Binary files /dev/null and b/智能体平台调研/代码/dify/volumes/weaviate/schema.db differ diff --git a/智能体平台调研/代码/docker-compose.yml b/智能体平台调研/代码/docker-compose.yml new file mode 100644 index 0000000..31bdf9a --- /dev/null +++ b/智能体平台调研/代码/docker-compose.yml @@ -0,0 +1,114 @@ +# ============================================================ +# Spring AI Alibaba 全功能平台 — 中间件 Docker Compose +# 用途:本地内网一键部署 Nacos + PostgreSQL + MinIO +# 使用:docker compose up -d +# ============================================================ + +name: agent-platform + +services: + # ========================================== + # 1. PostgreSQL 16 + pgvector + # ========================================== + postgres: + image: pgvector/pgvector:pg16 + container_name: sa-pg + restart: unless-stopped + environment: + POSTGRES_DB: spring_ai_agent + POSTGRES_USER: sa_agent + POSTGRES_PASSWORD: agent_2026 + PGDATA: /var/lib/postgresql/data/pgdata + ports: + - "5432:5432" + volumes: + - pg_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U sa_agent -d spring_ai_agent"] + interval: 10s + timeout: 5s + retries: 5 + networks: + - sa-network + + # ========================================== + # 2. Nacos 3.x — 服务注册 + 配置中心 + # ========================================== + nacos: + image: nacos/nacos-server:v2.5.1 + container_name: sa-nacos + restart: unless-stopped + depends_on: + postgres: + condition: service_healthy + environment: + # Standalone 模式(内网小团队无需集群) + MODE: standalone + # JVM 内存限制(WSL2 15GB 环境) + JVM_XMS: 256m + JVM_XMX: 512m + JVM_XMN: 128m + ports: + - "8848:8848" # HTTP 控制台 + API + - "9848:9848" # gRPC(MCP 注册发现) + volumes: + - nacos_data:/home/nacos/data + networks: + - sa-network + + # ========================================== + # 3. MinIO — S3 兼容对象存储 + # ========================================== + minio: + image: minio/minio:latest + container_name: sa-minio + restart: unless-stopped + command: server /data --console-address ":9001" + environment: + MINIO_ROOT_USER: minioadmin + MINIO_ROOT_PASSWORD: minioadmin + ports: + - "9000:9000" # S3 API + - "9001:9001" # Web 控制台 + volumes: + - minio_data:/data + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] + interval: 10s + timeout: 5s + retries: 5 + networks: + - sa-network + + # ========================================== + # 4. MinIO 初始化 — 自动创建 Bucket + # ========================================== + minio-init: + image: minio/mc:latest + container_name: sa-minio-init + depends_on: + minio: + condition: service_healthy + entrypoint: > + /bin/sh -c " + mc alias set local http://minio:9000 minioadmin minioadmin; + mc mb --ignore-existing local/sa-agent-memory; + mc mb --ignore-existing local/sa-agent-datasets; + mc mb --ignore-existing local/sa-agent-skills; + echo 'MinIO buckets created successfully'; + " + networks: + - sa-network + +volumes: + pg_data: + name: sa_pg_data + nacos_data: + name: sa_nacos_data + minio_data: + name: sa_minio_data + +networks: + sa-network: + name: sa-network + driver: bridge diff --git a/智能体平台调研/代码/health-check.sh b/智能体平台调研/代码/health-check.sh new file mode 100644 index 0000000..a257b6d --- /dev/null +++ b/智能体平台调研/代码/health-check.sh @@ -0,0 +1,63 @@ +#!/bin/bash +# ============================================================ +# Spring AI Alibaba 全功能平台 — 健康检查脚本 +# 用法:bash health-check.sh +# ============================================================ +set -e + +GREEN='\033[0;32m'; RED='\033[0;31m'; YELLOW='\033[1;33m'; NC='\033[0m' +pass() { echo -e " ${GREEN}✅ OK${NC} $1"; } +fail() { echo -e " ${RED}❌ FAIL${NC} $1"; } + +echo "==============================================" +echo " Spring AI Alibaba 全平台健康检查" +echo " $(date '+%Y-%m-%d %H:%M:%S')" +echo "==============================================" +echo "" + +# ---- 中间件 ---- +echo "[中间件层]" +psql -h localhost -U sa_agent -d spring_ai_agent -c "SELECT 1" >/dev/null 2>&1 \ + && pass "PostgreSQL (5432)" || fail "PostgreSQL (5432)" + +curl -s http://localhost:8848/nacos/v1/console/health/readiness >/dev/null 2>&1 \ + && pass "Nacos (8848)" || fail "Nacos (8848)" + +curl -s http://localhost:9000/minio/health/live >/dev/null 2>&1 \ + && pass "MinIO (9000)" || fail "MinIO (9000)" + +echo "" + +# ---- 应用 ---- +echo "[应用层]" +curl -s http://localhost:8080/actuator/health >/dev/null 2>&1 \ + && pass "Agent Platform (8080)" || fail "Agent Platform (8080)" + +HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:8080/chatui/index.html 2>/dev/null || echo "000") +if [ "$HTTP_CODE" = "200" ]; then + pass "Admin Studio (/chatui)" +else + fail "Admin Studio (/chatui) — HTTP $HTTP_CODE" +fi + +echo "" + +# ---- 外网模型 ---- +echo "[模型层]" +if [ -z "$DASHSCOPE_API_KEY" ]; then + fail "DashScope API Key 未设置" +else + HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" \ + -H "Authorization: Bearer $DASHSCOPE_API_KEY" \ + "https://dashscope.aliyuncs.com/api/v1/models" 2>/dev/null || echo "000") + if [ "$HTTP_CODE" = "200" ]; then + pass "DashScope API (阿里云百炼)" + else + fail "DashScope API — HTTP $HTTP_CODE" + fi +fi + +echo "" +echo "==============================================" +echo " 健康检查完成。" +echo "==============================================" diff --git a/智能体平台调研/代码/start.sh b/智能体平台调研/代码/start.sh new file mode 100644 index 0000000..39fe1a3 --- /dev/null +++ b/智能体平台调研/代码/start.sh @@ -0,0 +1,111 @@ +#!/bin/bash +# ============================================================ +# Spring AI Alibaba 全功能平台 — 一键启动脚本 +# 环境:WSL2 Debian · 本地内网 +# 用法:bash start.sh +# ============================================================ +set -e + +RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; BLUE='\033[0;34m'; NC='\033[0m' +log() { echo -e "${BLUE}[INFO]${NC} $1"; } +ok() { echo -e "${GREEN}[OK]${NC} $1"; } +warn() { echo -e "${YELLOW}[WARN]${NC} $1"; } +err() { echo -e "${RED}[ERR]${NC} $1"; } + +echo "==============================================" +echo " Spring AI Alibaba 全功能平台 — 启动脚本" +echo "==============================================" +echo "" + +# ---- 1. 环境检查 ---- +log "Step 1/5: 检查运行环境..." + +if ! command -v docker &>/dev/null; then + err "Docker 未安装。请先执行 Docker 安装步骤。" + echo " 参考: https://docs.docker.com/engine/install/debian/" + exit 1 +fi +ok "Docker $(docker --version | awk '{print $3}' | tr -d ',')" + +if ! docker compose version &>/dev/null; then + err "Docker Compose 未安装。" + exit 1 +fi +ok "Docker Compose 已就绪" + +if ! command -v java &>/dev/null; then + err "Java 未安装。需要 JDK 17+。" + exit 1 +fi +ok "Java $(java -version 2>&1 | head -1 | awk -F'"' '{print $2}')" + +# ---- 2. 检查端口占用 ---- +log "Step 2/5: 检查端口占用..." +PORTS=(5432 8848 9848 9000 9001 8080) +OCCUPIED="" +for p in "${PORTS[@]}"; do + if ss -tlnp | grep -q ":$p "; then + OCCUPIED="$OCCUPIED $p" + fi +done +if [ -n "$OCCUPIED" ]; then + warn "以下端口已被占用:$OCCUPIED" + echo " 请先释放这些端口,或修改 docker-compose.yml 中的端口映射。" + echo " 查看占用进程: ss -tlnp | grep -E ':(5432|8848|9000|9001|8080) '" + read -p "是否继续? [y/N] " -n 1 -r; echo + [[ ! $REPLY =~ ^[Yy]$ ]] && exit 1 +else + ok "所有端口空闲" +fi + +# ---- 3. 启动中间件 ---- +log "Step 3/5: 启动中间件 (PostgreSQL + Nacos + MinIO)..." +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +cd "$SCRIPT_DIR" +docker compose up -d + +echo " 等待 PostgreSQL 就绪..." +until docker compose exec -T postgres pg_isready -U sa_agent &>/dev/null; do sleep 1; done +ok "PostgreSQL 就绪 (5432)" + +echo " 等待 Nacos 就绪..." +until curl -s http://localhost:8848/nacos/v1/console/health/readiness &>/dev/null; do sleep 1; done +ok "Nacos 就绪 (8848)" +ok " Nacos 控制台: http://localhost:8848/nacos (nacos/nacos)" + +echo " 等待 MinIO 就绪..." +until curl -s http://localhost:9000/minio/health/live &>/dev/null; do sleep 1; done +ok "MinIO 就绪 (9000)" +ok " MinIO 控制台: http://localhost:9001 (minioadmin/minioadmin)" + +# ---- 4. Nacos 命名空间初始化 ---- +log "Step 4/5: 初始化 Nacos 命名空间..." + +NACOS_AUTH="nacos:nacos" +for ns in sa-agent-mcp sa-agent-config sa-agent-a2a; do + curl -s -X POST \ + "http://localhost:8848/nacos/v1/console/namespaces" \ + -u "$NACOS_AUTH" \ + -d "customNamespaceId=$ns&namespaceName=$ns&namespaceDesc=$ns" \ + &>/dev/null && ok " 命名空间 $ns 已创建" || warn " 命名空间 $ns 可能已存在" +done + +# ---- 5. 应用构建提示 ---- +log "Step 5/5: 应用构建..." +echo "" +echo " 中间件已全部就绪!接下来需要构建 Spring AI Alibaba 应用:" +echo "" +echo " cd spring-ai-alibaba-platform" +echo " export DASHSCOPE_API_KEY=sk-your-key-here" +echo " mvn spring-boot:run" +echo "" +echo " 启动后访问: http://localhost:8080/chatui" +echo "" +echo "==============================================" +echo " 服务状态一览" +echo "==============================================" +echo " PostgreSQL : localhost:5432 (sa_agent / agent_2026)" +echo " Nacos : localhost:8848 (nacos / nacos)" +echo " MinIO : localhost:9001 (minioadmin / minioadmin)" +echo " Agent平台 : localhost:8080 启动后可用" +echo "==============================================" diff --git a/智能体平台调研/报告/ai-agent-platform-comparison.html b/智能体平台调研/报告/ai-agent-platform-comparison.html index 99d76d2..7f9cb35 100644 --- a/智能体平台调研/报告/ai-agent-platform-comparison.html +++ b/智能体平台调研/报告/ai-agent-platform-comparison.html @@ -1,802 +1,1004 @@ - - -全功能智能体平台深度对比 — AI Agent 五大系统调研报告 - + .back-to-top{display:none;position:fixed;bottom:24px;right:24px;width:48px;height:48px;border-radius:50%;background:var(--color-primary);color:#fff;border:none;cursor:pointer;font-size:20px;box-shadow:var(--shadow-md);z-index:80;} + .back-to-top:hover{transform:scale(1.1);} + .back-to-top.show{display:flex;align-items:center;justify-content:center;} + + .star{color:#D48806;font-weight:700;} + .rank-1 td{background:#FFFBE6!important;} + .rank-2 td{background:#F6FFED!important;} + .rank-3 td{background:#E6F4FF!important;} + + @media(max-width:992px){:root{--sidebar-w:220px;}.main{padding:24px 20px 48px;}} + @media(max-width:768px){ + .menu-btn{display:flex;align-items:center;justify-content:center;} + .sidebar{display:block;position:fixed;top:0;left:0;bottom:0;width:280px;max-width:85vw;transform:translateX(-100%);transition:transform .25s ease;z-index:201;padding-top:60px;} + .drawer-overlay.show ~ .sidebar,.drawer-overlay.show .sidebar,.sidebar.show{transform:translateX(0);} + .main{margin-left:0;padding:20px 16px 40px;} + .header h1{font-size:15px;} + .pros-cons{grid-template-columns:1fr;} + .card-grid{grid-template-columns:1fr;} + } + - -
-
-

🤖 全功能智能体平台深度对比

-

覆盖多智能体平面 · 低代码编排 · Harness基建 · 技能市场 · 智能体评测 五大系统

-

调研范围:GitHub + Gitee 开源项目(2025-2026)  |  报告日期:2026-06-04

-
+
+ +
+ + ← 返回知识库 +

全功能智能体平台深度对比

+ V1.0 · 2026-06-04 +
+ + + +
+ + + + +
+

调研概览:10 大核心平台

+ +

筛选标准:覆盖多智能体平面 · 低代码编排 · Harness基建 · 技能市场 · 智能体评测五类中至少三类的平台。调研范围涵盖 GitHub(7 个)+ Gitee(3 个),共 10 个核心平台,关联收录 81 个开源项目。

+ +
+
10
核心平台
+
81
收录项目
+
5
功能维度
+
63
GitHub 项目
+
18
Gitee 项目
- -
-
10
核心平台
-
81
收录项目
-
5
功能维度
-
63
GitHub 项目
-
18
Gitee 项目
+
+
+

🔥 Hermes Agent

+
GitHub ★ 140K+ · MIT · Nous Research
+
自进化AI助手。三层记忆(SQLite+FTS5)+自动Skill生成+自我进化闭环。2026年2月开源,两个月内增长最快项目之一。
+
自进化三层记忆自动Skill200+模型
+
+
+

🦞 OpenClaw

+
GitHub ★ 355K+ · Apache 2.0
+
Gateway-First微内核架构。25+IM通道,物理多Agent隔离,ClawHub社区 44K+技能市场,本地优先+五层安全防御。
+
多Agent网关44K技能25+通道本地优先
+
+
+

☕ Spring AI Alibaba

+
GitHub/Gitee ★ 20K+ · Apache 2.0 · 阿里巴巴
+
唯一企业级Java Agent框架。Graph工作流引擎+Admin可视化+Nacos服务注册+A2A分布式通信,五项能力最均衡。
+
Java企业级Graph引擎Admin平台A2A
+
+
+

🔧 SemaClaw

+
GitHub 新项目 · MIT · 美的AI团队
+
四层插件架构(MCP工具/子代理/技能/钩子)+DAG Teams混合编排+Workbench交付物渲染。Git仓库即插件源。
+
插件架构DAG编排Workbench
+
+
+

📐 Dify

+
GitHub ★ 80K+ · Apache 2.0 · LangGenius
+
可视化低代码行业标杆。50+官方工具,RAG管道最成熟,Apache 2.0全开源+云服务双轨。多Agent编排能力有限。
+
可视化标杆RAG成熟零代码
+
+
+

🧠 AnimaWorks

+
GitHub 新项目 · MIT
+
组织级多Agent架构。神经科学启发三阶段遗忘记忆,6通道自动启动,心跳24/7自主运行,组织层级+委托审计。
+
神经科学记忆组织层级24/7自主
+
+
+

⚡ KiwiQ

+
GitHub 新项目 · MIT
+
200+企业Agent实战验证后全开源。JSON定义Agent+27+预置生产工作流+内置可观测性。
+
企业验证27+工作流可观测
+
+
+

🐮 CowAgent

+
Gitee · 开源 · 国产
+
国产超级AI助理。三级记忆+Deep Dream夜间蒸馏+MEMORY.md长期记忆+多IM渠道(微信/飞书/钉钉)。
+
Deep Dream三级记忆多IM
+
+
+

🔷 GoClaw

+
Gitee · CC BY-NC 4.0
+
Go语言多Agent网关。8阶段Pipeline+3层记忆+4种Prompt模式+多租户+自我进化,桌面版Wails+React UI。
+
Go高性能8阶段Pipeline多租户
+
+
+

🏗️ Gitee Xtreme AI

+
Gitee 官方 · 部分开源
+
Gitee DevOps原生集成。多Agent并行协作+MCP协议统一调度+完整上下文工程体系+数据飞轮评测闭环。
+
DevOps原生MCP调度数据飞轮
+
+
+
+ + + + +
+

五大功能覆盖度矩阵

+ +

评分:⭐⭐⭐⭐⭐ 业界领先   ⭐⭐⭐⭐ 完善   ⭐⭐⭐ 及格   ⭐⭐ 基础   ⭐ 缺失

+ +
+
表:10 大平台 × 5 维功能覆盖度矩阵
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
平台多智能体平面低代码编排Harness基建技能市场评测服务总分/25排名
Spring AI Alibaba5443421#1
OpenClaw5245218#2
Hermes Agent3254217#3
GoClaw4242215#4
SemaClaw3334215#5
Dify2533315#6
Gitee Xtreme AI4242315#7
KiwiQ4233314#8
AnimaWorks4413#9
CowAgent25312#10
-
+
+

⚠️ 关键发现

+

目前没有一个平台在五项功能上全部达到 ⭐⭐⭐⭐ 以上。最接近的是 Spring AI Alibaba(21/25),但在技能市场方面仍需加强。2026年的最佳实践是两个平台组合使用,通过 MCP 协议互联互通

+
+
- -
-

📑 目录

-
    -
  1. 核心平台全景
  2. -
  3. 五大功能覆盖度矩阵
  4. -
  5. 平台逐一详解
  6. -
  7. 优缺点对比总表
  8. -
  9. 技术栈对比
  10. -
  11. GitHub vs Gitee 生态差异
  12. -
  13. 五大子系统开源项目索引
  14. -
  15. 选型建议
  16. -
  17. 核心开源地址速查
  18. -
+ + + +
+

Hermes Agent — "自进化"标杆

+ +

Nous Research 出品,2026年2月开源,发布后两个月内突破 140K Stars。核心定位:会自我进化(Self-Improving)的 AI Agent,拥有跨会话持久记忆、自动技能生成与优化闭环。

+ +

核心架构:五大支柱

+ +
+
表:Hermes Agent 五层架构
+ + + + + + + + + +
支柱名称说明
支柱1三层记忆系统Tier1: MEMORY.md + USER.md(持久核心,严格字符上限)→ Tier2: SQLite+FTS5全文索引(跨会话搜索+LLM摘要)→ Tier3: 8个插件式外部记忆
支柱2Skill 系统40+预置 + 520+社区Hub + Agent主动创建。Tool调用超5次自动提炼为可复用Skill,发现缺陷自动patch修补
支柱3SOUL.md 身份层定义Agent性格/语气/沟通风格和硬性边界,永远位于system prompt第一位,支持交互式进化
支柱4Cron 自然语言调度"每天早上8点搜索最新论文"→自动生成Skill+Cron Job,Cron会话自成隔离
支柱5自我进化闭环记忆策划→Skill创建→Skill自改进→跨会话FTS5召回→Nudge静默审查,五步闭环全自动
- -
-
1核心平台全景
-

筛选标准:覆盖五大功能域中至少三类的平台,共 10 个(GitHub 7 个 + Gitee 3 个)

- -
-
-

🔥 Hermes Agent

-
GitHub ⭐ 140,000+  |  MIT
-
Nous Research 出品,2026年2月开源。自进化AI助手,三层记忆(SQLite+FTS5)+自动Skill生成+自我进化闭环,两个月内增长最快开源项目之一。
- -
自进化三层记忆自动Skill200+模型
-
- -
-

🦞 OpenClaw

-
GitHub ⭐ 355,000+  |  Apache 2.0
-
社区驱动。Gateway-First微内核架构,25+IM通道,物理多Agent隔离,ClawHub 44K+技能市场,本地优先+五层安全防御。
- -
多Agent网关44K技能25+通道本地优先
-
- -
-

☕ Spring AI Alibaba

-
GitHub ⭐ 20,000+  |  Apache 2.0
-
阿里巴巴出品。唯一企业级Java Agent框架,Graph工作流引擎+Admin可视化+Nacos服务注册+A2A分布式通信,五项全能最均衡。
- -
Java企业级Graph引擎Admin平台A2A
-
- -
-

🔧 SemaClaw

-
GitHub 新项目  |  MIT
-
美的AI团队。四层插件架构(MCP工具/子代理/技能/钩子)+DAG Teams混合编排+Workbench交付物渲染,Git仓库即插件源。
- -
插件架构DAG编排Workbench
-
- -
-

📐 Dify

-
GitHub ⭐ 80,000+  |  Apache 2.0
-
LangGenius。可视化低代码行业标杆,50+官方工具+RAG管道最成熟,Apache 2.0全开源+云服务双轨。多Agent编排能力有限。
- -
可视化标杆RAG成熟零代码
-
- -
-

🧠 AnimaWorks

-
GitHub 新项目  |  MIT
-
组织级多Agent架构。"代码即组织"理念,神经科学启发三阶段遗忘记忆,6通道自动启动,心跳24/7自主运行,组织层级+委托审计。
- -
神经科学记忆组织层级24/7自主
-
- -
-

⚡ KiwiQ

-
GitHub 新项目  |  MIT
-
200+企业Agent实战验证后全开源。JSON定义Agent+27+预置生产工作流(内容/评分/研究)+内置可观测性。
- -
企业验证27+工作流可观测
-
- -
-

🐮 CowAgent

-
Gitee  |  开源
-
国产超级AI助理。三级记忆(上下文→日常→核心)+Deep Dream夜间蒸馏+MEMORY.md长期记忆+多IM渠道(微信/飞书/钉钉)。
- -
Deep Dream三级记忆多IM
-
- -
-

🔷 GoClaw

-
Gitee  |  CC BY-NC 4.0
-
Go语言多Agent网关。8阶段Pipeline+3层记忆+4种Prompt模式+多租户+自我进化(指标→建议→适应),桌面版Wails+React UI。
- -
Go高性能8阶段Pipeline多租户
-
- -
-

🏗️ Gitee Xtreme AI

-
Gitee 官方  |  部分开源
-
Gitee DevOps原生集成。多Agent并行协作+MCP协议统一调度+完整上下文工程体系+数据飞轮评测闭环+五大智能场景。
- -
DevOps原生MCP调度数据飞轮
-
-
-
- - -
-
2五大功能覆盖度矩阵
-

⭐5=业界领先 ⭐4=完善 ⭐3=及格 ⭐2=基础 ⭐1=缺失

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
平台多智能体平面低代码编排Harness基建技能市场评测服务总分/25排名
Spring AI Alibaba⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐21#1
OpenClaw⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐18#2
Hermes Agent⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐17#3
GoClaw⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐15#4
SemaClaw⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐15#5
Dify⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐15#6
Gitee Xtreme AI⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐15#7
KiwiQ⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐14#8
AnimaWorks⭐⭐⭐⭐⭐⭐⭐⭐13#9
CowAgent⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐12#10
- -
- 💡 关键发现:目前没有一个平台在五项功能上全部达到 ⭐⭐⭐⭐ 以上。 - 最接近的是 Spring AI Alibaba(21/25),但在技能市场方面仍需加强。 - 2026年的最佳实践是两个平台组合使用,通过 MCP 协议互联互通。 -
-
- - -
-
3平台逐一详解
- - -

🔥 Hermes Agent — "自进化"标杆

-
-
-

✅ 优势

-
    -
  • 越用越聪明:记忆+Skill 复利效应显著
  • +
    +

    ✅ 核心优势

      +
    • 越用越聪明:记忆+Skill 复利效应
    • 开箱即用安全:沙箱+授权审批+安全扫描
    • -
    • 200+模型支持:OpenRouter/本地 vLLM
    • +
    • 200+模型支持(OpenRouter/本地 vLLM)
    • 6种执行环境 + 6平台消息网关
    • -
    • 社区极活跃(140K⭐,2个月增长最快)
    • -
    -
    -
    -

    ❌ 劣势

    -
      -
    • 冷启动期记忆/Skill为空,需积累期
    • +
    • 记忆快照冻结——保护前缀缓存、节省Token
    • +
    +

    ❌ 核心劣势

      +
    • 冷启动期:新部署时记忆/Skill为空
    • 反馈质量决定进化效果,自动≠魔法
    • -
    • 开源版仍需写 config.yaml
    • -
    • 记忆污染:过期记忆可能导致行为异常
    • 非企业级服务治理(无注册中心/熔断)
    • -
    -
    -
    +
  • 记忆污染:过期记忆可能导致行为异常
  • +
  • 仍偏开发者工具,有配置门槛
  • +
+
+
- -

🦞 OpenClaw — "平台之王"

-
-
-

✅ 优势

-
    -
  • 无与伦比的平台广度(25+通道/44K技能)
  • + + + +
    +

    OpenClaw — "平台之王"

    + +

    社区驱动,355K+ Stars,全球最大Agent社区。Gateway-First微内核架构,Local-First隐私保护,物理多Agent隔离。ClawHub社区 44,000+ Skills。

    + +

    五层架构

    + +
    +
    表:OpenClaw 五层架构
    + + + + + + + + + +
    名称说明
    L1Channel 层25+ IM 适配器(Telegram/Discord/QQ/飞书/WhatsApp/Signal/微信)
    L2Orchestration 层Gateway 路由+Agent 调度+认证+配置热重载,9级路由优先级
    L3Capability 层Plugins & Skills SDK,4种协作模式(Supervisor/Router/Pipeline/Parallel)
    L4Memory 层LanceDB向量+Knowledge Graph+Active Recall+后台Dreaming整合
    L5Model 层9 LLM Provider + 多模型故障转移链
    +
    + +
    +

    ✅ 核心优势

      +
    • 平台广度无与伦比(25+通道/44K技能)
    • 本地优先隐私保护,数据不离设备
    • -
    • 物理隔离防上下文污染
    • -
    • 五层纵深安全防御
    • +
    • 物理隔离防上下文污染——每个Agent独立workspace
    • +
    • 五层纵深安全防御(TLS→Device ID→Approval→Sandbox→Scanning)
    • 跨平台会话迁移(独特能力)
    • -
    -
    -
    -

    ❌ 劣势

    -
      +
    +

    ❌ 核心劣势

    • Token消耗大(单轮可达数千Token)
    • 默认压缩有损,长会话丢失上下文
    • 复杂多步任务易丢失关键决策
    • ClawHub供应链风险(曾报告API Key窃取)
    • -
    • 学习曲线陡峭(需理解MCP/编排/技能)
    • -
    -
    -
    +
  • 学习曲线陡峭(需理解MCP/编排/技能开发)
  • +
+
+
- -

☕ Spring AI Alibaba — "最均衡企业级平台"

-
-
-

✅ 优势

-
    + + + +
    +

    Spring AI Alibaba — "最均衡企业级平台"

    + +

    阿里巴巴出品,Apache 2.0。唯一企业级Java Agent框架。三层架构:Agent Framework → Graph Runtime → Augmented LLM。五种功能最均衡,总分 21/25。

    + +

    核心能力

    + +
    +
    表:Spring AI Alibaba 核心能力矩阵
    + + + + + + + + + +
    能力域评分关键实现
    多智能体56种编排模式(Sequential/Parallel/Routing/Loop/Supervisor/Handoff)+ Nacos服务注册 + A2A跨服务通信
    低代码编排4Admin可视化拖拽 + 低/高/零代码三种模式 + PlantUML/Mermaid导出 + Graph引擎条件路由/嵌套/中断恢复
    Harness基建4上下文压缩+编辑+持久化 + Human-in-the-Loop + Agent Skills渐进式披露(大幅节省Token)
    技能市场3Agent Skills机制(v1.1.2.0新增),渐进式披露降低Token,无公开社区技能市场
    评测服务4Admin平台内置:数据集管理+评估器+实验管理+结果分析 + OpenTelemetry全链路追踪
    +
    + +
    +

    ✅ 核心优势

    • Java企业级生态,Spring开发者零门槛
    • Graph引擎工作流能力业界领先
    • -
    • Admin平台 开发→运维 标准化流水线
    • +
    • Admin平台实现 开发→编排→评估→监控 标准化流水线
    • A2A+Nacos原生企业级服务治理
    • 国产化+阿里云原生集成+评测内置
    • -
    -
    -
    -

    ❌ 劣势

    -
      +
    +

    ❌ 核心劣势

    • 语言锁定Java,Python AI生态不兼容
    • -
    • GitHub Star较低(20K vs 355K)
    • +
    • GitHub Star较低(20K vs 355K),国际影响力弱
    • 技能市场不成熟,无社区贡献生态
    • -
    • 部署复杂(需Nacos/数据库/Admin等)
    • -
    • 开源版功能可能弱于商业版
    • -
    -
    -
    +
  • 部署复杂(需Nacos/数据库/Admin等多组件)
  • +
  • 开源版功能可能弱于阿里云商业版
  • +
+
+ + + + + +
+

其他平台速览

+ +
+
表:SemaClaw · Dify · AnimaWorks · KiwiQ · CowAgent · GoClaw · Gitee Xtreme AI 七平台速览
+ + + + + + + + + + + +
平台最强项最弱项一句话定位最佳场景
SemaClaw技能市场(4)评测(2)四层插件架构 + Git仓库即插件市场插件化Agent开发;交付物生成
Dify低代码(5)多Agent(2)可视化低代码行业标杆RAG应用;聊天机器人;快速原型
AnimaWorksHarness(4)编排/市场/评测"代码即组织",神经科学记忆研究型Agent;长时组织协作
KiwiQ多Agent(4)编排(2)200+企业验证后全开源生产级Agent工作流
CowAgentHarness(5)编排/评测Deep Dream夜间蒸馏+多IM个人AI助理;微信/钉钉集成
GoClaw多Agent+Harness技能/评测Go语言8阶段Pipeline网关Go技术栈Agent网关
Gitee Xtreme AI多Agent+Harness编排/技能DevOps原生+MCP统一调度Gitee用户研发智能化
+
+
+ + + + +
+

开源协议与商用分析

+ +

开源不等于可商用。以下逐一分析五个核心平台的开源协议、商用限制、以及开源版与商业版的真实差异

+ +
+
表:五大平台开源协议与商用许可速查
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
平台开源协议可商用商用条件与限制商业版
Hermes AgentMIT✅ 可MIT 最宽松协议,允许任意使用、修改、分发、商用。需保留版权声明。无任何限制。
OpenClawApache 2.0✅ 可Apache 2.0 允许商用、修改、分发。需保留版权声明+许可声明+修改说明。专利授权条款保护用户不受专利诉讼。核心项目完全开源免费,但国内厂商推出多种衍生商业版(见下文)。
Spring AI AlibabaApache 2.0✅ 可同 Apache 2.0,核心框架完全开源可商用。但部分高级能力(ARMS可观测、百炼平台集成)依赖阿里云商业服务,需阿里云账号并产生云资源费用。无"付费企业版"限制,云服务按量计费。云服务
SemaClawMIT✅ 可MIT 协议,允许任意使用。项目较新,目前仅开源社区版,无商业版。
DifyApache 2.0
+ 附加限制
⚠️ 有条件修改版 Apache 2.0,含两条额外限制:① 禁止多租户商用——不能用开源版搭建 SaaS 服务卖给外部客户;② 禁止去 Logo——不可移除 Dify 控制台和应用中的 Logo。
内部使用完全免费。对外销售 SaaS 必须购买企业版商业授权。
- -
-
4优缺点对比总表
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
平台核心优势核心劣势最佳场景
Hermes Agent自进化闭环+三层记忆+自动Skill生成无服务治理/评测;冷启动期长个人长期AI助理;需持续学习的场景
OpenClaw355K社区+44K技能+25通道+物理Agent隔离Token消耗大;上下文丢失;供应链风险多平台自动化;企业多系统集成
Spring AI Alibaba最均衡+Java生态+企业级治理+Admin平台语言锁定Java;国际影响力弱;部署复杂Java企业级Agent平台;国内企业
SemaClawGit仓库即插件源;Workbench交付物渲染项目新;社区小;记忆系统弱插件化Agent开发;交付物生成
Dify可视化行业标杆+RAG成熟+零代码多Agent天花板低;无真持久记忆RAG应用;聊天机器人;快速原型
AnimaWorks神经科学三阶段遗忘;组织层级架构项目极小;多项功能缺失研究型Agent;长时组织协作
KiwiQ200+企业验证;27+生产工作流无前端;社区极小生产级Agent工作流
CowAgentDeep Dream蒸馏;三级记忆;多IM非多Agent;无评测;无编排个人AI助理;微信/钉钉集成
GoClawGo高性能;8阶段Pipeline;多租户社区极小;协议限制商用Go技术栈Agent网关
Gitee Xtreme AIDevOps原生集成;数据飞轮闭环部分闭源;绑定Gitee生态Gitee用户研发智能化
+
+

⚠️ 商用风险提示

+

Dify 是唯一有明确商用限制的平台。如果用 Dify 开源版搭建 SaaS 服务对外收费,可能面临法律风险。其他四个平台(MIT / Apache 2.0)均可自由商用,但需注意:

+

1. MIT:最宽松,无任何附加条件,但无专利保护条款

+

2. Apache 2.0:含专利授权,对商用更友好(防止贡献者后续发起专利诉讼)

+

3. 所有协议均不提供担保——使用开源软件的商业风险由使用者自行承担

- -
-
5技术栈对比
+
- - - - - - - - - - - - - - - - -
平台语言记忆存储向量DB通信协议Agent编排前端UI
Hermes AgentPythonSQLite+FTS5MCPProfile多实例CLI
OpenClawTypeScript/NodeLanceDB+SQLiteLanceDBMCPGateway路由CLI
Spring AI AlibabaJava 21+对象存储多支持MCP+A2A+NacosGraph DAGAdmin (React)
SemaClawTypeScript/NodeAgentic WikiMCPDAG TeamsWorkbench
DifyPython/FlaskPostgreSQL多支持REST/OpenAPI可视化节点React/Next.js
AnimaWorksPythonChroma+图DBChromaSDK直连层级组织
KiwiQPythonPostgreSQLJSON流水线
CowAgentPython本地文件+DBMCP单AgentGradio
GoClawGoPostgreSQL+pgvectorpgvector事件驱动Agent PipelineWails+React
Gitee Xtreme AIJava/GoMCP并行协作Web
+ + + +
+

开源版 vs 商业版差异详解

-

- 关键技术趋势: - MCP协议 10/10平台全部支持 | 向量数据库 LanceDB/pgvector/Chroma 三足鼎立 | - 记忆存储 SQLite+FTS5(轻量) / PostgreSQL(企业) | 前端 React/ReactFlow 主流 -

+

部分平台存在"开源社区版 + 商业增强版"双轨制。以下逐平台分析开源版的实际功能边界、缺失的企业级特性、以及商业版提供什么额外价值

+ + +

🔥 Hermes Agent — 纯开源,无商业版

+ +
+
表:Hermes Agent 开源版功能完整度
+ + + + + + + + + + + + +
维度开源版(唯一版本)局限性
部署方式CLI 安装,本地部署无 Windows 原生支持(需 WSL2);国内需代理
记忆系统三层记忆(SQLite+FTS5+外部插件),全功能开放30天后知识图谱可能产生 +17% 冗余;需自行维护压缩
Skill 系统40+预置 + 520+社区 + 自动生成,全功能开放社区 Skill 质量参差不齐,需自行审查
安全五层安全(TLS/沙箱/扫描)无 RBAC、无审计日志、无合规认证(ISO 27001等)
高可用单实例运行不支持集群、无自动扩缩容、无 SLA 保障
模型200+模型,需自备 API KeyAPI 费用自理;长期运行 6个月后延迟可能 +22%
运维需 AI 工程团队自行维护需 2-4 周学习+配置;持续维护成本高
企业级支持社区支持无 SLA、无专属技术支持、无定制开发服务
- -
-
6GitHub vs Gitee 生态差异
- - - - - - - - - - - - - - - - - -
对比维度GitHub 生态Gitee 生态
社区规模极大规模:OpenClaw 355K⭐/Hermes 140K⭐规模较小:Spring AI Alibaba 20K⭐ 领跑
标准化程度主导标准:SKILL.md / MCP / A2A / OTel跟随国际标准 + MCP协议适配
企业Java生态几乎空白独特优势 Spring AI Alibaba 唯一企业级Java方案
安全合规开源社区自发(如OpenClaw五层防御)企业级 CVE强制扫描+哈希签名+细粒度权限
评测体系成熟 Future AGI/Opik/EvalMonkey 独立工具链弱:仅 witty-skill-insight Skill专项,无通用评测
链路追踪标准化 OpenTelemetry 成为事实标准空白:无独立链路追踪开源项目
技能市场爆发式增长 150K+ Stars, ClawHub 44K+技能起步期:Gitee Repo Skill仓库(企业内网定位)
学术创新极强 ACE/PRISM/KYA/Succession均有arXiv论文弱:以工程封装为主,缺乏原创研究
中文友好仅少数项目有中文文档全中文
国产模型适配需自行适配原生支持 通义千问/DeepSeek/智谱等
+
+

Hermes Agent 开源版适合谁?

+

技术能力强、有运维团队的开发者或小团队。如果需要企业级的 RBAC、审计、合规、SLA 保障,目前只能自行二次开发。Nous Research 未发布官方商业版,但有社区提及的 RDSHermes 等第三方商业包装版本(增加审计+加密托管+WebUI,价格未公开)。

- -
-
7五大子系统开源项目索引
-

收录 81 个开源项目,按六个分类整理(含独立专项项目)

+ +

🦞 OpenClaw — 开源纯净版 vs 国内厂商商业版

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
分类重点推荐项目GitHubGitee
多智能体平面 - GitHub: agent-mesh (YAML注册+断路器), OAN (DID/VC信任层), KYA (策略合成), CrewAI (72K⭐), AutoGen (85K⭐)
- Gitee: Spring AI Alibaba (Nacos+A2A), Eigent (CAMEL桌面) -
122
低代码编排 - GitHub: Open Agent Builder (拖拽+8节点), Open Gumloop (Composio数百工具), PaiAgent (Java), Glink Engine (零依赖), n8n (400+节点)
- Gitee: RuoYi AI (企业级), Conllect-LLM (低代码) -
113
Harness基建 - 记忆管理: mem0 (48K⭐), Hindsight (91.4% LongMemEval), Letta/MemGPT (21K⭐), Zep/Graphiti (时态KG), GBrain (Markdown优先)
- 上下文工程: ACE (斯坦福自进化), PRISM (2K→83.1%)
- 会话管理: Google ADK (状态机)
- Gitee: CowAgent (Deep Dream), LangGraphChatBot, Agents-Flex (Java) -
166
技能市场 - GitHub: SkillNet (500K+技能), skill-factory (300K+技能), dora (9.5K内置), SuperSkill (碰撞检测)
- Gitee: awesome-agent-skills (资源合集), witty-skill-insight (Skill评测) -
63
智能体评测 - GitHub: Future AGI (50+指标+OTel), Opik/Comet (18.7K⭐), Agent Health/OpenSearch, agentevals/Solo.io, EvalMonkey (19基准+23混沌), Langfuse (24.4K⭐)
- Gitee: 暂无独立评测项目 -
110
合计5614
+
+
表:OpenClaw 开源版 vs 国内厂商商业版
+ + + + + + + + + + + + + + + +
维度开源版(OpenClaw)国内厂商商业版
厂商社区维护阿里云 HiClaw · 腾讯云 ClawPro · 中兴 Co-Claw · 中关村科金 PowerClaw · 月之暗面 KimiClaw
部署本地单机(Mac/Windows/Linux)私有云 / VPC / 混合云,支持 1000+ 用户多租户
权限管控❌ 无 RBAC,用户可调用任何工具✅ 细粒度 RBAC + 时间/IP/设备约束
审计追踪❌ 无审计日志✅ 全链路审计:每次工具调用、API 调用、数据访问可追溯
审批流程❌ 不支持✅ 敏感操作需人工审批
安全隔离基础社区级沙箱✅ 多层安全沙箱 + 操作拦截 + 五层安全模型
合规认证❌ 无✅ SOC 2 / ISO 27001 / HIPAA / 等保
SLA❌ 社区支持✅ 99.9% SLA(如腾讯云 ClawPro)
通道集成25+ 通道(需手动配置)预集成企业微信/钉钉/飞书/QQ,开箱即用
技能市场ClawHub 44K+(社区,12% 含恶意代码)企业审核技能市场,质量可控
价格免费按坐席/按量/订阅制(通常 ¥2万-10万+/年)
- -
-
8选型建议
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
场景推荐方案理由
个人:追求自进化+长期记忆Hermes Agent三层记忆+自动Skill生成+自我进化闭环,记忆复利效应
个人:多平台自动化OpenClaw355K社区+44K技能+25通道,跨平台会话迁移
个人:中文+微信/钉钉CowAgentDeep Dream蒸馏+多IM原生集成+三级记忆
企业:Java技术栈Spring AI Alibaba唯一企业级Java方案+Graph引擎+Admin平台+A2A+Nacos
企业:多系统集成+多AgentOpenClaw25+通道+物理Agent隔离+五层安全+ClawHub市场
企业:DevOps研发智能化Gitee Xtreme AIDevOps原生集成+MCP调度+数据飞轮闭环
快速开发:RAG+聊天机器人Dify可视化行业标杆+零代码+RAG管道最成熟
快速开发:插件化AgentSemaClawGit仓库即插件源+四层插件架构+Workbench
评测体系搭建Future AGI + EvalMonkey50+评测指标+19基准+23混沌注入+OTel追踪
记忆系统选型Hindsight / Mem0 / ZepHindsight 91.4%最高准确率;Mem0最快集成;Zep时态知识图谱
- -
- 🔑 2026年最佳实践:两个平台组合使用,通过 MCP 协议 互联互通。
-   • 个人用户:Hermes Agent(记忆+进化)+ OpenClaw(技能+多平台)
-   • Java企业:Spring AI Alibaba(全栈底座)+ OpenClaw/Hermes(社区技能补充)
-   • 国内企业:Spring AI Alibaba(企业底座)+ Gitee Xtreme AI(DevOps集成)
-   • 快速验证:Dify(可视化原型)→ Spring AI Alibaba(生产落地) -
+
+

⚠️ 重要安全注意

+

2026年3月,香港数字政策办公室明确指示:OpenClaw 不得安装在政府内网,因其权限范围大且缺乏审计能力。CrowdStrike 报告称 ClawHub 社区技能中 12% 含恶意代码。企业用户不建议直接使用开源版处理敏感数据。

- -
-
9核心开源地址速查
+ +

☕ Spring AI Alibaba — 开源框架 + 阿里云服务

- - - - - - - - - - - - - - - - - - - - - -
平台 / 项目开源地址协议⭐ Stars
Hermes Agentgithub.com/NousResearch/hermes-agentMIT140K+
OpenClawgithub.com/openclaw/openclawApache 2.0355K+
Spring AI Alibabagithub.com/alibaba/spring-ai-alibabaApache 2.020K+
Difygithub.com/langgenius/difyApache 2.080K+
SemaClawgithub.com/nicepkg/semaclawMIT新项目
AnimaWorksgithub.com/xuiltul/animaworksMIT新项目
KiwiQgithub.com/rcortx/kiwiqMIT新项目
CowAgentgitee.com/zhayujie/CowAgent开源
GoClawgitee.com/devai/goclawCC BY-NC 4.0
Future AGI (评测)github.com/future-agi/future-agiApache 2.0
Opik (评测)github.com/comet-ml/opik开源18.7K
Hindsight (记忆)github.com/vectorize-io/hindsightMIT12.8K
Mem0 (记忆)github.com/mem0ai/mem0Apache 2.048K
EvalMonkey (评测)github.com/Corbell-AI/evalmonkey开源
Langfuse (追踪)github.com/langfuse/langfuse开源24.4K
+
+
表:Spring AI Alibaba 开源能力 vs 依赖阿里云的部分
+ + + + + + + + + + + + + + + +
能力开源版(免费可用)需阿里云商业服务
多Agent编排✅ Graph框架:6种编排模式,完整开放
工作流引擎✅ DAG + 条件路由 + 中断恢复,完整开放
Admin 可视化✅ Studio 调试 + 数据集管理 + 评估器,完整开放
MCP 分布式✅ Nacos MCP Registry,开源可用
提示词管理✅ Nacos 动态配置,开源可用
可观测性基础 OpenTelemetry 埋点🔗 ARMS 深度集成(阿里云商业产品)
模型服务兼容 OpenAI API,可接任何模型🔗 百炼平台(通义千问/万相,按 Token 计费)
AI 网关自建🔗 Higress AI 网关(阿里云商业产品)
对象存储兼容 S3🔗 阿里云 OSS(按量计费)
Serverless自建🔗 阿里云函数计算(按调用计费)
商业支持社区 GitHub Issues🔗 阿里云企业支持计划(SLA保障)
+
+

💡 关键认知

+

Spring AI Alibaba 没有"付费解锁功能"的概念——所有 Agent 编排、工作流、Admin 平台在开源版中已完整提供。差异在于:开源版是一个框架(你自己搭基础设施),阿里云商业服务提供的是托管能力(监控、网关、模型服务等开箱即用)。你可以完全用开源版 + 自建基础设施(如 Prometheus+Grafana 替代 ARMS),成本更低但需要运维投入。

+
+ + +

🔧 SemaClaw — 纯开源,新兴项目

+ +
+
表:SemaClaw 开源版分析
+ + + + + + + + + +
维度现状说明
协议MIT最宽松,允许任意使用和商用
商业版美的 AI 团队开源,目前无商业版计划公开
成熟度早期2026年新项目,社区规模小,文档不完善
核心能力四层插件架构 + DAG Teams + Workbench架构设计创新,但功能覆盖度不如成熟平台
企业就绪无 RBAC/审计/合规/SLA/高可用
+
+ + +

📐 Dify — 开源版 vs 云端版 vs 企业版

+ +
+
表:Dify 三版本详细对比(2026年定价)
+ + + + + + + + + + + + + + + + + +
维度开源社区版云端 Pro ($59/月)云端 Team ($159/月)企业版 (定制)
部署自托管 Docker/K8sSaaS(AWS 美国区)SaaS(AWS 美国区)私有化 / 专属云
应用数无限制50200定制
消息额度无限制(仅受模型限制)5,000/月10,000/月定制
团队席位无限制3 人50 人不限
知识库无限制5GB20GB定制
自定义插件
私有模型接入 任何 OpenAI 兼容 API 仅限官方支持
源码修改 完全可魔改 黑盒部分可定制
多租户商用❌ 禁止 含商业授权
去 Logo❌ 禁止 唯一合法途径
SSO/RBAC
SLA社区邮件优先邮件优先专属 SLA
等保/合规可满足(自部署) 海外服务器 SOC2 Type II
+
+ +
+

⚠️ Dify 国内容器部署的隐性成本

+

云端版服务器在 AWS 美国区,国内模型厂商(阿里百炼、智谱等)的新用户免费额度几乎无法使用(境外 IP 调用被拒绝或按商用计费)。自托管开源版本地直连国产模型 API,可 100% 享受免费额度,模型成本可接近零。建议国内用户优先自托管。

+
+ + +

五平台开源 vs 商业总览

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
平台开源版完整度商业版核心增量商用建议
Hermes Agent100%无官方商业版。第三方 RDSHermes 增加审计+加密+WebUI个人/小团队直接使用;企业需二次开发 RBAC/审计
OpenClaw核心框架完整RBAC/审计/合规/SLA/企业集成/技能审核——国内厂商提供全套企业级能力个人免费使用;企业建议用国内厂商商业版(阿里/腾讯/中兴)
Spring AI Alibaba95%阿里云托管服务(ARMS/百炼/Higress/OSS/FC)降低运维成本框架层 100% 免费商用;云服务按需选用,可自建替代
SemaClaw100%无商业版。项目早期,体系不完整关注即可,暂不建议生产使用
Dify功能完整但商用受限去Logo/多租户商用授权/SSO/RBAC/SLA——企业版唯一合法途径内部使用免费;对外 SaaS 必须购买企业版(¥万级/年)
+
+ +
+ + + + +
+

优缺点对比总表

+ +
+ + + + + + + + + + + + + + +
平台核心优势核心劣势最佳场景
Hermes Agent自进化闭环+三层记忆+自动Skill生成无服务治理/评测;冷启动期长个人长期AI助理;需持续学习的场景
OpenClaw355K社区+44K技能+25通道+物理Agent隔离Token消耗大;上下文丢失;供应链风险多平台自动化;企业多系统集成
Spring AI Alibaba最均衡+Java生态+企业级治理+Admin平台语言锁定Java;国际影响力弱;部署复杂Java企业级Agent平台;国内企业
SemaClawGit仓库即插件源;Workbench交付物渲染项目新;社区小;记忆系统弱插件化Agent开发;交付物生成
Dify可视化行业标杆+RAG成熟+零代码多Agent天花板低;无真持久记忆RAG应用;聊天机器人;快速原型
AnimaWorks神经科学三阶段遗忘;组织层级架构项目极小;多项功能缺失研究型Agent;长时组织协作
KiwiQ200+企业验证;27+生产工作流无前端;社区极小生产级Agent工作流
CowAgentDeep Dream蒸馏;三级记忆;多IM非多Agent;无评测;无编排个人AI助理;微信/钉钉集成
GoClawGo高性能;8阶段Pipeline;多租户社区极小;协议限制商用Go技术栈Agent网关
Gitee Xtreme AIDevOps原生集成;数据飞轮闭环部分闭源;绑定Gitee生态Gitee用户研发智能化
+
+
+ + + + +
+

技术栈对比

+ +
+
表:10 平台技术栈详细对比
+ + + + + + + + + + + + + + +
平台语言记忆存储向量DB通信协议Agent编排前端UI
Hermes AgentPythonSQLite+FTS5MCPProfile多实例CLI
OpenClawTypeScript/NodeLanceDB+SQLiteLanceDBMCPGateway路由CLI
Spring AI AlibabaJava 21+对象存储多支持MCP+A2A+NacosGraph DAGAdmin (React)
SemaClawTypeScript/NodeAgentic WikiMCPDAG TeamsWorkbench
DifyPython/FlaskPostgreSQL多支持REST/OpenAPI可视化节点React/Next.js
AnimaWorksPythonChroma+图DBChromaSDK直连层级组织
KiwiQPythonPostgreSQLJSON流水线
CowAgentPython本地文件+DBMCP单AgentGradio
GoClawGoPostgreSQL+pgvectorpgvector事件驱动Agent PipelineWails+React
Gitee Xtreme AIJava/GoMCP并行协作Web
+
+ +
+

关键技术趋势

+

MCP协议 10/10 平台全部支持 · 向量数据库 LanceDB/pgvector/Chroma 三足鼎立 · 记忆存储 SQLite+FTS5(轻量)/ PostgreSQL(企业)· 前端 React/ReactFlow 主流

+
+
+ + + + +
+

GitHub vs Gitee 生态差异

+ +
+
表:两大生态 10 维度横向对比
+ + + + + + + + + + + + + + +
对比维度GitHub 生态Gitee 生态
社区规模极大规模 OpenClaw 355K⭐ / Hermes 140K⭐规模较小:Spring AI Alibaba 20K⭐ 领跑
标准化程度主导标准 SKILL.md / MCP / A2A / OTel跟随国际标准 + MCP协议适配
企业Java生态几乎空白独特优势 Spring AI Alibaba 唯一企业级Java方案
安全合规开源社区自发(如OpenClaw五层防御)企业级 CVE强制扫描+哈希签名+细粒度权限
评测体系成熟 Future AGI/Opik/EvalMonkey 独立工具链极弱 仅 witty-skill-insight Skill专项,无通用评测
链路追踪标准化 OpenTelemetry 成为事实标准空白 无独立链路追踪开源项目
技能市场爆发增长 150K+ Stars, ClawHub 44K+技能起步期:Gitee Repo Skill仓库(企业内网定位)
学术创新极强 ACE/PRISM/KYA/Succession均有arXiv论文 以工程封装为主,缺乏原创研究
中文友好仅少数项目有中文文档全中文
国产模型适配需自行适配原生支持 通义千问/DeepSeek/智谱等
+
+
+ + + + +
+

五大子系统开源项目索引

+ +

除 10 个核心平台外,另收录各功能域的专项开源项目,共计 81 个(GitHub 63 个 + Gitee 18 个)。

+ +
+
表:按分类索引
+ + + + + + + + + +
分类数量重点推荐项目
多智能体平面14agent-mesh (YAML注册+断路器) · OAN (DID/VC信任层) · KYA (策略合成) · CrewAI (72K⭐) · AutoGen (85K⭐) · AgentScope (45K⭐)
低代码编排14Open Agent Builder (拖拽+8节点) · Open Gumloop (Composio数百工具) · PaiAgent (Java) · Glink Engine (零依赖) · n8n (400+节点) · RuoYi AI · Conllect-LLM
Harness基建22记忆:mem0 (48K⭐) · Hindsight (91.4% LongMemEval) · Letta/MemGPT (21K⭐) · Zep/Graphiti (时态KG) · GBrain · 上下文:ACE (斯坦福自进化) · PRISM (2K→83.1%) · 会话:Google ADK · CowAgent · LangGraphChatBot
技能市场9SkillNet (500K+技能) · skill-factory (300K+技能) · dora (9.5K内置) · SuperSkill · awesome-agent-skills · witty-skill-insight
智能体评测11Future AGI (50+指标+OTel) · Opik/Comet (18.7K⭐) · Agent Health/OpenSearch · agentevals/Solo.io · EvalMonkey (19基准+23混沌) · Langfuse (24.4K⭐)
+
+
+ + + + +
+

选型建议

+ +
+
表:10 种场景推荐方案
+ + + + + + + + + + + + + + +
场景推荐方案理由
个人:追求自进化+长期记忆Hermes Agent三层记忆+自动Skill生成+自我进化闭环,记忆复利效应
个人:多平台自动化OpenClaw355K社区+44K技能+25通道,跨平台会话迁移
个人:中文+微信/钉钉CowAgentDeep Dream蒸馏+多IM原生集成+三级记忆
企业:Java技术栈Spring AI Alibaba唯一企业级Java方案+Graph引擎+Admin平台+A2A+Nacos
企业:多系统集成OpenClaw25+通道+物理Agent隔离+五层安全+ClawHub市场
企业:DevOps研发智能化Gitee Xtreme AIDevOps原生集成+MCP调度+数据飞轮闭环
快速开发:RAG+聊天机器人Dify可视化行业标杆+零代码+RAG管道最成熟
快速开发:插件化AgentSemaClawGit仓库即插件源+四层插件架构+Workbench
评测体系搭建Future AGI + EvalMonkey50+评测指标+19基准+23混沌注入+OTel追踪
记忆系统选型Hindsight / Mem0 / ZepHindsight 91.4%最高准确率;Mem0最快集成;Zep时态知识图谱
+
+ +
+

💡 2026年最佳实践:组合使用,MCP 互联

+

个人用户:Hermes Agent(记忆+进化)+ OpenClaw(技能+多平台)

+

Java 企业:Spring AI Alibaba(全栈底座)+ OpenClaw/Hermes(社区技能补充)

+

国内企业:Spring AI Alibaba(企业底座)+ Gitee Xtreme AI(DevOps集成)

+

快速验证:Dify(可视化原型)→ Spring AI Alibaba(生产落地)

+
+ +
+ + + + +
+

开源地址速查(国内镜像)

+ +

以下链接均已替换为国内可访问的镜像地址。GitHub 项目使用 gitclone.com(支持在线浏览+克隆),Gitee 项目使用原始地址。
如需克隆,可将 gitclone.com 替换为 gitclone.com/github.com 格式直接 git clone

+ +
+
表:10 大核心平台
+ + + + + + + + + + + + + + +
平台来源镜像地址(国内可访问)
Hermes AgentGitHubgitclone.com/github.com/NousResearch/hermes-agent
OpenClawGitHubgitclone.com/github.com/openclaw/openclaw
Spring AI AlibabaGitHubgitclone.com/github.com/alibaba/spring-ai-alibaba
Spring AI AlibabaGiteegitee.com/alibaba/spring-ai-alibaba
SemaClawGitHubgitclone.com/github.com/nicepkg/semaclaw
DifyGitHubgitclone.com/github.com/langgenius/dify
AnimaWorksGitHubgitclone.com/github.com/xuiltul/animaworks
KiwiQGitHubgitclone.com/github.com/rcortx/kiwiq
CowAgentGiteegitee.com/zhayujie/CowAgent
GoClawGiteegitee.com/devai/goclaw
+
+ + + + + +
+
表:技能市场 & 评测服务项目
+ + + + + + + + + + + + + + +
项目领域镜像地址
SkillNet技能gitclone.com/github.com/zjunlp/SkillNet
skill-factory技能gitclone.com/github.com/rooftop-Owl/skill-factory
awesome-agent-skills技能gitee.com/droidphone/awesome-agent-skills
witty-skill-insight技能gitcode.com/openeuler/witty-skill-insight
Future AGI评测gitclone.com/github.com/future-agi/future-agi
Opik (Comet)评测gitclone.com/github.com/comet-ml/opik
EvalMonkey评测gitclone.com/github.com/Corbell-AI/evalmonkey
Langfuse追踪gitclone.com/github.com/langfuse/langfuse
DeepEval评测gitclone.com/github.com/confident-ai/deepeval
AgentBench (清华)评测gitclone.com/github.com/THUDM/AgentBench
+
+ +
+

ℹ️ 镜像说明

+

GitHub 项目统一使用 gitclone.com 镜像(支持页面浏览 + Git 克隆)。如需克隆代码:

+

+ git clone https://gitclone.com/github.com/用户/仓库.git +

+

Gitee / GitCode 项目均为国内平台,使用原始地址即可直接访问。

+
+ +
+ +
+

全功能智能体平台深度对比报告 · V1.0 · 2026-06-04

+

五大系统:多智能体平面 · 低代码编排 · Harness基建 · 技能市场 · 智能体评测  |  收录 81 个开源项目

+
+ -
-
-

全功能智能体平台深度对比报告  |  调研范围:GitHub + Gitee(2025-2026) |  生成日期:2026-06-04

-

五大系统:多智能体平面 · 低代码编排 · Harness基建 · 技能市场 · 智能体评测  |  收录 81 个开源项目

-
-
+ + - + \ No newline at end of file diff --git a/智能体平台调研/报告/spring-ai-alibaba-deployment-guide.html b/智能体平台调研/报告/spring-ai-alibaba-deployment-guide.html new file mode 100644 index 0000000..097d602 --- /dev/null +++ b/智能体平台调研/报告/spring-ai-alibaba-deployment-guide.html @@ -0,0 +1,1143 @@ + + + + + + Spring AI Alibaba 全功能部署指南 — 本地内网环境 + + + + +
+ +
+ + ← 返回知识库 +

Spring AI Alibaba 全功能部署指南

+ V1.0 · 2026-06-05 +
+ + + +
+ + + + +
+

环境评估与缺口分析

+ +

部署目标:本地 WSL2(Debian 13)内网环境,全功能 Spring AI Alibaba 平台。模型 API 走外网(阿里云百炼),中间件全部本地部署。

+ +
+
表:当前环境检测结果
+ + + + + + + + + + + + + +
检测项当前值状态说明
操作系统Debian 13 (trixie) WSL2OKx86_64 架构,systemd 已启用
内存15GB 总 / ~9.7GB 可用OK满足全套部署(建议 ≥8GB)
磁盘/mnt/d 289GB 空闲OK建议路径 /mnt/d/wiki/ 下创建子目录
JDKOpenJDK 21.0.11OK满足要求(≥17)
Maven3.9.9OK满足要求(≥3.8)
Node.jsv24.15.0OK满足要求(≥20.12)
pnpm已安装OK前端 Admin UI 构建需要
Docker未安装缺失需安装 Docker 或改用原生安装方案
WSL2 网络NAT 模式 172.18.79.x需配置需端口转发或切换到 mirrored 模式
+
+ +
+

⚠️ 关键缺口

+

1. Docker 未安装 — 中间件(PostgreSQL/Nacos/MinIO)建议用 Docker 部署,也可原生安装

+

2. WSL2 NAT 网络 — 默认 NAT 模式外部无法直接访问,需配置端口转发或 mirrored 模式

+
+ +

部署架构总览

+ +
+
图:全功能平台部署架构(本地内网版)
+ + + + + + + + + + +
层级组件端口职责部署方式
L5 前端Admin Studio (React)8080可视化编排 + 评测管理 + Agent 监控Spring Boot 内嵌
L4 应用Spring AI Alibaba8080Agent 框架 + Graph 引擎 + MCP/A2A裸进程 (java -jar)
L3 注册中心Nacos 3.x8848/9848服务注册发现 + 动态配置 + MCP 调度Docker / 原生
L2 数据层PostgreSQL 16 + pgvector5432Agent 状态 + 数据集 + 向量检索Docker / 原生
L1 对象存储MinIO9000/9001文件存储 + Agent 记忆持久化Docker / 原生
L0 模型阿里云百炼 DashScope外网 443LLM 推理(通义千问系列)SaaS(无需部署)
+
+ +
+
5
本地组件
+
1
外网服务
+
~2GB
内存占用
+
~30min
预计耗时
+
+ +
+ + + + +
+

WSL2 环境准备

+ +

选项 A:安装 Docker(推荐)

+ +

中间件(PostgreSQL/Nacos/MinIO)使用 Docker 部署,一行命令启动,运维最简单。

+ +
# 1. 安装 Docker(Debian) +sudo apt update && sudo apt install -y ca-certificates curl +sudo install -m 0755 -d /etc/apt/keyrings +curl -fsSL https://download.docker.com/linux/debian/gpg | sudo tee /etc/apt/keyrings/docker.asc +echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian trixie stable" | sudo tee /etc/apt/sources.list.d/docker.list +sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin +sudo usermod -aG docker $USER +# 重新登录 WSL2 使 docker 组生效
+ +
+

💡 Docker 不工作时

+

WSL2 中 Docker daemon 需要手动启动:sudo dockerd &sudo service docker start。如果使用 Docker Desktop for Windows,在 Docker Desktop 设置中启用 WSL2 集成即可自动管理。

+
+ +
# 2. 验证 Docker +docker --version +docker compose version
+ +

选项 B:原生安装(不依赖 Docker)

+ +

如果不想安装 Docker,所有中间件均可在 WSL2 内原生安装。PostgreSQL 和 MinIO 通过 apt 安装,Nacos 下载二进制包直接运行。

+ +
+

ℹ️ 原生 vs Docker 对比

+

Docker:统一管理、数据隔离、升级方便、端口统一映射。推荐。

+

原生:不依赖 Docker daemon、资源占用略低、但每个组件需单独管理。

+

下文同时提供两种方式的具体步骤。

+
+ +

WSL2 系统优化

+ +
# 编辑 /etc/wsl.conf,添加以下内容(如已有则合并) +sudo tee -a /etc/wsl.conf <<EOF +[boot] +systemd=true + +[network] +hostname=wsl2-dev +generateResolvConf=true +EOF + +# 创建项目目录 +mkdir -p /mnt/d/wiki/智能体平台调研/代码/spring-ai-alibaba-platform +cd /mnt/d/wiki/智能体平台调研/代码/
+ +
+ + + + +
+

中间件部署总览

+ +
+
表:三个中间件的资源配置
+ + + + + + + +
组件版本端口内存建议磁盘建议凭证(开发环境)
PostgreSQL165432256MB2GBsa_agent / agent_2026
Nacos3.1.08848 (HTTP), 9848 (gRPC)512MB1GBnacos / nacos
MinIOlatest9000 (API), 9001 (Console)256MB5GBminioadmin / minioadmin
+
+ +
+

⚠️ 安全提醒

+

以上为开发环境默认凭证。部署到生产内网后,务必修改所有默认密码。Nacos 尤其需要关注——不要将 Nacos 暴露到公网(默认鉴权较简单),当前内网使用可接受。

+
+ +
+ + + + +
+

PostgreSQL 16 + pgvector 安装

+ +

方式一:Docker(推荐)

+ +
# docker-compose.yml 片段(完整文件见附录) +services: + postgres: + image: pgvector/pgvector:pg16 + container_name: sa-pg + restart: unless-stopped + environment: + POSTGRES_DB: spring_ai_agent + POSTGRES_USER: sa_agent + POSTGRES_PASSWORD: agent_2026 + ports: + - "5432:5432" + volumes: + - pg_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U sa_agent"] + interval: 10s + timeout: 5s + retries: 5
+ +

关键点:使用 pgvector/pgvector:pg16 镜像而非官方 postgres,因为它内置了向量扩展。如果你已有官方 PostgreSQL,可以手动安装 pgvector 扩展。

+ +

方式二:原生 apt 安装

+ +
# 安装 PostgreSQL 16 +sudo apt update && sudo apt install -y postgresql-16 postgresql-client-16 + +# 安装 pgvector 扩展(从源码编译) +sudo apt install -y postgresql-server-dev-16 build-essential git +git clone https://github.com/pgvector/pgvector.git +cd pgvector && make && sudo make install + +# 创建数据库和用户 +sudo -u postgres psql <<SQL +CREATE USER sa_agent WITH PASSWORD 'agent_2026'; +CREATE DATABASE spring_ai_agent OWNER sa_agent; +\c spring_ai_agent +CREATE EXTENSION vector; +SQL + +# 配置远程访问(内网其他机器连接) +echo "listen_addresses = '*'" | sudo tee -a /etc/postgresql/16/main/postgresql.conf +echo "host all sa_agent 0.0.0.0/0 md5" | sudo tee -a /etc/postgresql/16/main/pg_hba.conf +sudo systemctl restart postgresql
+ +
+ + + + +
+

Nacos 3.x 安装

+ +

方式一:Docker(推荐)

+ +
# docker-compose.yml 片段 +services: + nacos: + image: nacos/nacos-server:v3.1.0 + container_name: sa-nacos + restart: unless-stopped + environment: + MODE: standalone + NACOS_AUTH_ENABLE: "true" + NACOS_AUTH_TOKEN: SecretKey012345678901234567890123456789012345678901234567890123456789 + NACOS_AUTH_IDENTITY_KEY: sa-nacos-identity + NACOS_AUTH_IDENTITY_VALUE: sa-nacos-secret + ports: + - "8848:8848" + - "9848:9848" + volumes: + - nacos_data:/home/nacos/data
+ +

Nacos 控制台:http://localhost:8848/nacos,默认用户名密码 nacos/nacos

+ +

方式二:原生二进制

+ +
# 下载并启动 Nacos +wget https://github.com/alibaba/nacos/releases/download/3.1.0/nacos-server-3.1.0.tar.gz +tar -xzf nacos-server-3.1.0.tar.gz +cd nacos/bin +# Standalone 模式启动(内网够用) +bash startup.sh -m standalone
+ +
+

ℹ️ Nacos 命名空间规划

+

启动后登录 Nacos 控制台(8848),创建以下命名空间:

+

1. sa-agent-mcp — MCP Server/Client 注册发现

+

2. sa-agent-config — 动态配置(Prompt 模板、模型参数)

+

3. sa-agent-a2a — 多 Agent A2A 通信(可选)

+
+ +
+ + + + +
+

MinIO 对象存储安装

+ +

方式一:Docker(推荐)

+ +
# docker-compose.yml 片段 +services: + minio: + image: minio/minio:latest + container_name: sa-minio + restart: unless-stopped + command: server /data --console-address ":9001" + environment: + MINIO_ROOT_USER: minioadmin + MINIO_ROOT_PASSWORD: minioadmin + ports: + - "9000:9000" + - "9001:9001" + volumes: + - minio_data:/data + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] + interval: 10s + timeout: 5s + retries: 5
+ +

方式二:原生安装

+ +
# 下载 MinIO 二进制 +wget https://dl.min.io/server/minio/release/linux-amd64/minio +chmod +x minio +sudo mv minio /usr/local/bin/ + +# 创建数据目录并启动 +mkdir -p /mnt/d/minio-data +MINIO_ROOT_USER=minioadmin MINIO_ROOT_PASSWORD=minioadmin \ + minio server /mnt/d/minio-data --console-address ":9001" &
+ +

创建 Spring AI Alibaba 专用 Bucket

+ +

MinIO 启动后,访问 http://localhost:9001 登录控制台,创建 Bucket:

+ +
+ + + + + + + +
Bucket 名称用途
sa-agent-memoryAgent 记忆文件持久化(MEMORY.md / 快照 / 知识图谱)
sa-agent-datasets评测数据集存储
sa-agent-skills自定义 Skill 文件存储
+
+ +
+ + + + +
+

Spring AI Alibaba 项目骨架搭建

+ +

采用 Spring Boot 3.5.x + Spring AI Alibaba 1.1.2.3。推荐使用 Spring Initializr 生成骨架,或直接克隆官方示例仓库。

+ +

方式一:Spring Initializr 生成(推荐新项目)

+ +
# 用 curl 调 Spring Initializr API 生成项目(也可手动在 start.spring.io 操作) +curl -s https://start.spring.io/starter.zip \ + -d type=maven-project \ + -d language=java \ + -d bootVersion=3.5.3 \ + -d baseDir=spring-ai-alibaba-platform \ + -d groupId=com.demo \ + -d artifactId=agent-platform \ + -d name=AgentPlatform \ + -d packageName=com.demo.agent \ + -d javaVersion=21 \ + -d dependencies=web,actuator,lombok \ + -o spring-ai-alibaba-platform.zip +unzip spring-ai-alibaba-platform.zip
+ +

方式二:克隆官方示例(推荐快速验证)

+ +
git clone https://github.com/alibaba/spring-ai-alibaba.git +cd spring-ai-alibaba +# 官方示例在 spring-ai-alibaba-examples/ 目录下
+ +

方式三:从零搭建 Maven 项目

+ +

最小 pom.xml 如下(完整版见附录):

+ +
<!-- 版本锁定 --> +<properties> + <spring-boot.version>3.5.3</spring-boot.version> + <spring-ai.version>1.1.2</spring-ai.version> + <spring-ai-alibaba.version>1.1.2.3</spring-ai-alibaba.version> +</properties> + +<dependencyManagement> + <dependencies> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-dependencies</artifactId> + <version>${spring-boot.version}</version> + <type>pom</type><scope>import</scope> + </dependency> + <dependency> + <groupId>org.springframework.ai</groupId> + <artifactId>spring-ai-bom</artifactId> + <version>${spring-ai.version}</version> + <type>pom</type><scope>import</scope> + </dependency> + <dependency> + <groupId>com.alibaba.cloud.ai</groupId> + <artifactId>spring-ai-alibaba-bom</artifactId> + <version>${spring-ai-alibaba.version}</version> + <type>pom</type><scope>import</scope> + </dependency> + </dependencies> +</dependencyManagement> + +<!-- 核心依赖(详见下一节) -->
+ +
+ + + + +
+

核心配置详解

+ +

application.yml — 全功能配置

+ +

以下为本地内网全功能配置,覆盖五大功能模块。放在 src/main/resources/application.yml

+ +
# =========================================== +# Spring AI Alibaba 全功能内网配置 +# =========================================== + +# --- 基础配置 --- +server: + port: 8080 + address: 0.0.0.0 # 绑定所有网卡,允许内网访问 + +spring: + application: + name: agent-platform + + # --- 数据源 --- + datasource: + url: jdbc:postgresql://localhost:5432/spring_ai_agent + username: sa_agent + password: agent_2026 + driver-class-name: org.postgresql.Driver + hikari: + maximum-pool-size: 10 + minimum-idle: 2 + + # --- AI 模型配置(外网) --- + ai: + dashscope: + api-key: ${DASHSCOPE_API_KEY} # 环境变量注入 + chat: + options: + model: qwen-plus + temperature: 0.7 + + # --- Nacos 配置中心 --- + alibaba: + nacos: + config: + server-addr: localhost:8848 + namespace: ${NACOS_CONFIG_NAMESPACE:sa-agent-config} + + # --- Nacos MCP 注册发现 --- + mcp: + nacos: + enabled: true + server-addr: localhost:8848 + username: nacos + password: nacos + registry: + service-namespace: ${NACOS_MCP_NAMESPACE:sa-agent-mcp} + enabled: true + + # --- 对象存储(MinIO)--- + cloud: + aws: + s3: + endpoint: http://localhost:9000 + region: us-east-1 + path-style-access-enabled: true + credentials: + access-key: minioadmin + secret-key: minioadmin + +# --- Spring AI Alibaba Admin Studio --- +spring.ai.alibaba: + studio: + enabled: true + path: /chatui # Studio UI 路径 + +# --- Graph 工作流 --- +spring.ai.alibaba.graph: + observation: + enabled: true # OpenTelemetry 追踪 + +# --- Actuator 健康检查 --- +management: + endpoints: + web: + exposure: + include: health,info,metrics,env + endpoint: + health: + show-details: when-authorized
+ +

环境变量配置

+ +
# 在 ~/.bashrc 或项目 .env 文件中配置 +export DASHSCOPE_API_KEY=sk-your-dashscope-api-key +export NACOS_CONFIG_NAMESPACE=sa-agent-config +export NACOS_MCP_NAMESPACE=sa-agent-mcp +export JINA_API_KEY=jina-your-key # 可选:深度搜索功能
+ +
+

⚠️ DashScope API Key 获取

+

1. 访问 阿里云百炼控制台

+

2. 注册/登录 → API-KEY 管理 → 创建 API Key

+

3. 新用户有大量免费额度(通义千问 Plus 100万 Token/月)

+

4. 内网部署 + 外网模型:确保 WSL2 可以访问 api dashscope.aliyuncs.com

+
+ +

完整 pom.xml 依赖清单

+ +
<!-- ============================================ --> +<!-- Spring AI Alibaba 全功能依赖清单 --> +<!-- ============================================ --> + +<!-- 1. 核心 DashScope AI Starter(必选)--> +<dependency> + <groupId>com.alibaba.cloud.ai</groupId> + <artifactId>spring-ai-alibaba-starter-dashscope</artifactId> +</dependency> + +<!-- 2. Agent 框架(必选:多 Agent 编排 + Graph)--> +<dependency> + <groupId>com.alibaba.cloud.ai</groupId> + <artifactId>spring-ai-alibaba-agent-framework</artifactId> +</dependency> + +<!-- 3. Admin Studio UI(必选:可视化编排 + 评测)--> +<dependency> + <groupId>com.alibaba.cloud.ai</groupId> + <artifactId>spring-ai-alibaba-studio</artifactId> +</dependency> + +<!-- 4. Nacos MCP Server(必选:MCP 分布式)--> +<dependency> + <groupId>com.alibaba.cloud.ai</groupId> + <artifactId>spring-ai-alibaba-starter-nacos-mcp-server</artifactId> +</dependency> + +<!-- 5. Nacos MCP Client(必选:发现 MCP 服务)--> +<dependency> + <groupId>com.alibaba.cloud.ai</groupId> + <artifactId>spring-ai-alibaba-starter-nacos-mcp-client</artifactId> +</dependency> + +<!-- 6. Nacos 配置中心(推荐:动态 Prompt + 参数热更新)--> +<dependency> + <groupId>com.alibaba.cloud.ai</groupId> + <artifactId>spring-ai-alibaba-starter-config-nacos</artifactId> +</dependency> + +<!-- 7. Graph 可观测性(推荐:OTel 追踪)--> +<dependency> + <groupId>com.alibaba.cloud.ai</groupId> + <artifactId>spring-ai-alibaba-starter-graph-observation</artifactId> +</dependency> + +<!-- 8. PostgreSQL(必选:数据持久化)--> +<dependency> + <groupId>org.postgresql</groupId> + <artifactId>postgresql</artifactId> + <scope>runtime</scope> +</dependency> + +<!-- 9. MinIO S3 兼容客户端(必选:对象存储)--> +<dependency> + <groupId>io.awspring.cloud</groupId> + <artifactId>spring-cloud-aws-starter-s3</artifactId> +</dependency> + +<!-- 10. Actuator(推荐:健康检查 + 指标 --> +<dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-actuator</artifactId> +</dependency>
+ +
+ + + + +
+

全功能模块激活指南

+ +

Spring AI Alibaba 五项核心功能中,四项在开源版完整提供。以下是逐模块激活步骤。

+ +

模块 1:多智能体平面 ⭐⭐⭐⭐⭐

+ +

Spring AI Alibaba 的 Graph 引擎 原生支持 6 种 Agent 编排模式。无需额外配置,引入 agent-framework 依赖即生效。

+ +
// 6 种编排模式示例入口 +@RestController +public class AgentOrchestrationController { + + // 1. Sequential — 顺序执行 + @GetMapping("/agent/sequential") + public String sequential() { + var graph = new SequentialAgentGraph() + .addAgent("researcher", researchAgent) + .addAgent("writer", writerAgent); + return graph.execute(input); + } + + // 2. Parallel — 并行执行 + // 3. Routing — 条件路由 + // 4. Loop — 循环迭代 + // 5. Supervisor — 监督模式 + // 6. Handoff — Agent 间交接 +}
+ +
+

💡 多 Agent 分布式(A2A 协议)

+

如果多个 Agent 部署在不同微服务中,通过 Nacos + A2A 协议 实现跨服务通信。每个 Agent 应用引入 Nacos MCP 依赖后,自动注册到 Nacos,其他 Agent 通过服务名发现并调用。无需硬编码 IP:Port。

+
+ +

模块 2:低代码编排 ⭐⭐⭐⭐

+ +

Admin Studio 提供了可视化 Graph 编排能力。引入 spring-ai-alibaba-studio 依赖后:

+ +
+
1
+
+ 启动应用 + mvn spring-boot:run(或 java -jar),访问 http://localhost:8080/chatui +
+
+ +
+
2
+
+ 进入 Graph 编排视图 + 左侧导航 → Agent Graph → 拖拽节点 → 连线 → 配置每个节点的 Agent/工具/条件 +
+
+ +
+
3
+
+ 导出/导入 + 支持 PlantUML / Mermaid 导出,便于文档化;支持 JSON 导入复用工作流 +
+
+ +

模块 3:Harness 基建 ⭐⭐⭐⭐

+ +

Harness 含上下文管理、人工审核、Skill 管理、安全沙箱四大子模块:

+ +
+ + + + + + + + + +
子模块激活方式说明
上下文压缩框架内置,自动启用超长对话自动摘要+压缩,节省 Token。阈值可在 Nacos 动态配置
上下文持久化配置 PostgreSQL 后自动启用Agent 会话状态持久化到 DB,重启不丢失
Human-in-the-Loop代码配置 .humanApproval()敏感操作(发邮件/删除文件)需人工审批
Agent Skillsspring-ai-alibaba-starter-skills渐进式披露 + 按需加载,大幅降低 Token 消耗
安全沙箱框架内置代码执行隔离,工具调用权限检查
+
+ +

模块 4:技能市场 ⭐⭐⭐

+ +

Spring AI Alibaba 的 "技能市场" 基于 Agent Skills 机制(v1.1.2.0 新增),与 OpenClaw 的 ClawHub 不同,没有公开社区市场。技能以本地文件/代码形式管理:

+ +
// 定义 Agent Skill +@Component +public class WeatherSkill implements AgentSkill { + public String getName() { return "weather-query"; } + public String getDescription() { return "查询指定城市的天气"; } + public SkillResult execute(SkillContext ctx) { /*...*/ } +} + +// Agent 声明可用 Skills(渐进式披露——只发描述不发实现) +@Agent(skills={"weather-query", "stock-price", "file-search"}) +public class AssistantAgent { }
+ +

内网小团队场景下,可以自建内部 Skill 仓库(Git 仓库 + MinIO 存储),通过 Agent Skills 机制加载。

+ +

模块 5:评测服务 ⭐⭐⭐⭐

+ +

Admin Studio 内置评测平台,无需额外部署!

+ +
+
1
+
+ 创建数据集 + Admin → 数据集管理 → 新建 → 上传 JSONL/CSV(问答对格式) +
+
+
+
2
+
+ 配置评估器 + 选择评估维度:准确性 / 相关性 / 完整性 / 安全性 / 延迟 +
+
+
+
3
+
+ 创建实验 + 指定 Agent + 数据集 + 评估器 → 运行实验 → 查看结果面板 +
+
+ +
+

✅ 评测功能总结

+

Spring AI Alibaba 的评测模块在 10 个平台中排名前列。优势是 评测内置在 Admin 平台,无需像其他平台那样单独部署评测工具(如 Future AGI / EvalMonkey)。开发→编排→评估→优化的闭环全部在一个 Admin 界面内完成。

+
+ +
+ + + + +
+

内网访问配置

+ +

WSL2 默认 NAT 模式下,局域网其他设备无法直接访问 WSL2 内服务。有三种解决方案,按推荐度排序。

+ +

方案 A:WSL2 Mirrored 模式(最推荐 — Windows 11 24H2+)

+ +
# 在 Windows 用户目录创建 %USERPROFILE%\.wslconfig +# 或编辑 /mnt/c/Users/<你的用户名>/.wslconfig +[wsl2] +networkingMode=mirrored +dnsTunneling=true +firewall=false +autoProxy=true + +# 保存后在 PowerShell 中执行: +# wsl --shutdown +# wsl
+ +
+

✅ Mirrored 模式优点

+

WSL2 与 Windows 共享 IP 地址,局域网设备直接通过 Windows 的局域网 IP 访问 WSL2 内服务。无需端口转发,无需 netsh 配置。

+
+ +

方案 B:NAT + 端口转发(Windows 10 / 不支持 Mirrored 时)

+ +
# 1. 在 WSL2 中查看 IP +ip addr show eth0 | grep inet +# 假设得到 172.18.79.129 + +# 2. 在 Windows PowerShell(管理员)中添加端口转发 +# 将 Windows 宿主机端口 → 转发到 WSL2 端口 +netsh interface portproxy add v4tov4 listenport=8080 listenaddress=0.0.0.0 connectport=8080 connectaddress=172.18.79.129 +netsh interface portproxy add v4tov4 listenport=8848 listenaddress=0.0.0.0 connectport=8848 connectaddress=172.18.79.129 +netsh interface portproxy add v4tov4 listenport=9001 listenaddress=0.0.0.0 connectport=9001 connectaddress=172.18.79.129 + +# 3. 放行 Windows 防火墙 +New-NetFirewallRule -DisplayName "WSL2 Agent Platform 8080" -Direction Inbound -LocalPort 8080 -Protocol TCP -Action Allow +New-NetFirewallRule -DisplayName "WSL2 Nacos 8848" -Direction Inbound -LocalPort 8848 -Protocol TCP -Action Allow + +# 4. 查看已配置的转发规则 +netsh interface portproxy show all + +# 5. 删除转发规则(如果需要) +netsh interface portproxy delete v4tov4 listenport=8080 listenaddress=0.0.0.0
+ +
+

⚠️ NAT 端口转发注意事项

+

WSL2 重启后 IP 会变化,端口转发规则会失效。需要重新执行 step 2。建议写一个 PowerShell 脚本自动化此过程。

+
+ +

方案 C:nginx 反向代理(灵活但复杂)

+ +

在 Windows 宿主机安装 nginx,反向代理到 WSL2 内的服务。适合需要统一入口 + SSL + 认证的场景。

+ +

验证内网可达性

+ +
# 在 WSL2 内确认服务监听 0.0.0.0 +ss -tlnp | grep -E "8080|8848|5432|9000" + +# 在局域网另一台设备(手机/笔记本)浏览器访问: +# http://<Windows局域网IP>:8080/chatui → Admin Studio +# http://<Windows局域网IP>:8848/nacos → Nacos 控制台 +# http://<Windows局域网IP>:9001 → MinIO 控制台
+ +
+
表:内网访问地址速查
+ + + + + + + + + +
服务WSL2 内访问局域网访问(Mirrored 模式)
Admin Studiohttp://localhost:8080/chatuihttp://<Windows-IP>:8080/chatui
Nacos 控制台http://localhost:8848/nacoshttp://<Windows-IP>:8848/nacos
MinIO 控制台http://localhost:9001http://<Windows-IP>:9001
PostgreSQLlocalhost:5432<Windows-IP>:5432
MinIO APIlocalhost:9000<Windows-IP>:9000
+
+ +
+ + + + +
+

运维手册

+ +

服务自启动

+ +

Docker 中间件自启动

+

Docker Compose 中已设置 restart: unless-stopped,WSL2 启动后 Docker daemon 运行即自动拉起中间件。

+ +

Spring Boot 应用自启动(systemd)

+ +
# 创建 systemd service 文件 +sudo tee /etc/systemd/system/agent-platform.service <<'UNIT' +[Unit] +Description=Spring AI Alibaba Agent Platform +After=network.target docker.service +Wants=docker.service + +[Service] +Type=simple +User=zdh +WorkingDirectory=/mnt/d/wiki/智能体平台调研/代码/spring-ai-alibaba-platform +Environment="DASHSCOPE_API_KEY=sk-your-key" +Environment="NACOS_CONFIG_NAMESPACE=sa-agent-config" +Environment="NACOS_MCP_NAMESPACE=sa-agent-mcp" +ExecStart=/usr/bin/java -jar -Xms512m -Xmx2g target/agent-platform-1.0.0.jar +Restart=on-failure +RestartSec=10 +StandardOutput=journal +StandardError=journal + +[Install] +WantedBy=multi-user.target +UNIT + +sudo systemctl daemon-reload +sudo systemctl enable agent-platform +sudo systemctl start agent-platform
+ +

日志管理

+ +
# 查看应用日志(systemd 方式) +journalctl -u agent-platform -f -n 100 + +# 查看应用日志(直接运行方式) +tail -f logs/agent-platform.log + +# Docker 中间件日志 +docker compose logs -f postgres +docker compose logs -f nacos
+ +

数据备份

+ +
#!/bin/bash +# backup-agent-platform.sh — 每日备份脚本 +BACKUP_DIR=/mnt/d/backups/agent-platform/$(date +%Y%m%d) +mkdir -p $BACKUP_DIR + +# 1. PostgreSQL 备份 +docker compose exec -T postgres pg_dump -U sa_agent spring_ai_agent > $BACKUP_DIR/pg_dump.sql + +# 2. MinIO 数据备份 +rsync -av /mnt/d/minio-data/ $BACKUP_DIR/minio-data/ + +# 3. Nacos 配置导出 +curl -X GET "http://localhost:8848/nacos/v1/cs/configs?dataId=&group=&tenant=sa-agent-config&pageNo=1&pageSize=100" > $BACKUP_DIR/nacos-config.json + +echo "Backup complete: $BACKUP_DIR"
+ +

版本升级

+ +
# 1. 检查当前版本 +curl -s http://localhost:8080/actuator/info + +# 2. 更新 pom.xml 中的版本号 +# spring-ai-alibaba.version → 新版本 + +# 3. 重建并重启 +mvn clean package -DskipTests +sudo systemctl restart agent-platform + +# 4. 验证 +curl -s http://localhost:8080/actuator/health
+ +
+ + + + +
+

故障排查

+ +
+
表:常见问题与解决方案
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
症状可能原因解决步骤
Nacos 连接超时Nacos 未启动 / 端口冲突1. docker compose ps nacos 检查容器状态
2. ss -tlnp | grep 8848 检查端口
3. 检查 Nacos 日志 docker compose logs nacos
DashScope API 调用失败API Key 无效 / 网络不通1. curl -H "Authorization: Bearer $DASHSCOPE_API_KEY" https://dashscope.aliyuncs.com/api/v1/models 测试
2. 检查 WSL2 外网连通性 ping dashscope.aliyuncs.com
3. 检查环境变量是否注入 echo $DASHSCOPE_API_KEY
PostgreSQL 连接拒绝PG 未启动 / 认证失败1. docker compose ps postgres 检查容器
2. 手动测试 psql -h localhost -U sa_agent -d spring_ai_agent
3. 检查 pg_hba.conf 远程访问配置
Admin Studio 白屏前端资源未构建 / 路径不对1. 确认依赖包含 spring-ai-alibaba-studio
2. 访问 http://localhost:8080/chatui/index.html
3. 检查浏览器控制台 Network 错误
MCP Server 注册不到 NacosNacos 命名空间不存在1. 登录 Nacos 控制台检查 sa-agent-mcp 命名空间是否存在
2. 检查 application.yml 中 mcp.nacos.registry 配置
3. 查看应用日志 grep "MCP" logs/*.log
内网设备无法访问WSL2 NAT 网络隔离1. 确认 server.address=0.0.0.0
2. 试用 Mirrored 模式或端口转发(详见 S10)
3. ss -tlnp | grep 8080 确认监听 0.0.0.0 而非 127.0.0.1
内存不足(OOM)JVM 内存占用过大1. 降低 JVM 参数 -Xmx1g-Xmx512m
2. 减少 Nacos JVM:修改 nacos/bin/startup.sh 中的 -Xms/-Xmx
3. 检查是否有内存泄漏 jmap -heap <pid>
WSL2 重启后 IP 变化WSL2 默认 DHCP使用 Mirrored 模式(方案 A)彻底解决,或编写端口转发自动修复脚本
+
+ +

快速健康检查脚本

+ +
#!/bin/bash +# health-check.sh — 一键检测全平台状态 +echo "=== Spring AI Alibaba 全平台健康检查 ===" + +# 中间件 +echo -n "[PostgreSQL] "; psql -h localhost -U sa_agent -d spring_ai_agent -c "SELECT 1" >/dev/null 2>&1 && echo "✅ OK" || echo "❌ FAIL" +echo -n "[Nacos] "; curl -s http://localhost:8848/nacos/v1/console/health/readiness >/dev/null && echo "✅ OK" || echo "❌ FAIL" +echo -n "[MinIO] "; curl -s http://localhost:9000/minio/health/live >/dev/null && echo "✅ OK" || echo "❌ FAIL" + +# 应用 +echo -n "[Agent Platform] "; curl -s http://localhost:8080/actuator/health >/dev/null && echo "✅ OK" || echo "❌ FAIL" +echo -n "[Admin Studio] "; curl -s -o /dev/null -w "%{http_code}" http://localhost:8080/chatui/index.html | grep "200" >/dev/null && echo "✅ OK" || echo "❌ FAIL" + +# 外网模型 +echo -n "[DashScope API] "; curl -s -o /dev/null -w "%{http_code}" https://dashscope.aliyuncs.com/api/v1/models -H "Authorization: Bearer $DASHSCOPE_API_KEY" | grep "200" >/dev/null && echo "✅ OK" || echo "❌ FAIL"
+ +
+ +
+

Spring AI Alibaba 全功能部署指南 · V1.0 · 2026-06-05

+

目标环境:WSL2 Debian 13 · 本地内网 · Java 21 · Nacos 3.x · PostgreSQL 16 · MinIO · DashScope

+
+ +
+ + + + + + \ No newline at end of file diff --git a/沈阳顺义-数据-项目建设方案/报告/需求对比分析报告.html b/沈阳顺义-数据-项目建设方案/报告/需求对比分析报告.html index b801505..f22bb2b 100644 --- a/沈阳顺义-数据-项目建设方案/报告/需求对比分析报告.html +++ b/沈阳顺义-数据-项目建设方案/报告/需求对比分析报告.html @@ -71,6 +71,7 @@
+ ← 返回知识库

需求文档 vs 系统实际功能 对比分析报告

建设方案 V1(2026年4月) + 新增需求 vs qData 系统实际功能 | 分析日期:2026-05-12

diff --git a/深国际综合改革方案/index.html b/深国际综合改革方案/index.html index aa71749..6bf57ce 100644 --- a/深国际综合改革方案/index.html +++ b/深国际综合改革方案/index.html @@ -70,6 +70,8 @@ +← 返回知识库 +
深 圳 国 际 · 战 略 研 究

深国际向物流综合服务商转型
综合改革方案系列报告

diff --git a/深国际综合改革方案/报告/深国际改革方案_专家头脑风暴.html b/深国际综合改革方案/报告/深国际改革方案_专家头脑风暴.html index 121684f..e61c039 100644 --- a/深国际综合改革方案/报告/深国际改革方案_专家头脑风暴.html +++ b/深国际综合改革方案/报告/深国际改革方案_专家头脑风暴.html @@ -120,6 +120,8 @@ +← 返回知识库 +
diff --git a/深国际综合改革方案/报告/深国际物流综合服务商转型改革方案_V3.html b/深国际综合改革方案/报告/深国际物流综合服务商转型改革方案_V3.html index c6ed1a7..f297c0f 100644 --- a/深国际综合改革方案/报告/深国际物流综合服务商转型改革方案_V3.html +++ b/深国际综合改革方案/报告/深国际物流综合服务商转型改革方案_V3.html @@ -73,6 +73,8 @@ tr:nth-child(even) td{background:#f5f7fa} +← 返回知识库 +
diff --git a/深国际综合改革方案/报告/深圳国际综合改革方案.html b/深国际综合改革方案/报告/深圳国际综合改革方案.html index 55bcb55..fae5908 100644 --- a/深国际综合改革方案/报告/深圳国际综合改革方案.html +++ b/深国际综合改革方案/报告/深圳国际综合改革方案.html @@ -214,6 +214,8 @@ +← 返回知识库 +
diff --git a/研发型企业AI转型方案/报告/ai-enterprise-maturity-model.html b/研发型企业AI转型方案/报告/ai-enterprise-maturity-model.html new file mode 100644 index 0000000..b92c640 --- /dev/null +++ b/研发型企业AI转型方案/报告/ai-enterprise-maturity-model.html @@ -0,0 +1,1670 @@ + + + + + + 企业 AI 成熟度五级模型 — L0→L3·完整框架 + + + + +
+ +
+ + ← 返回知识库 +

企业 AI 成熟度五级模型

+ V1.0 · 2026-06-03 +
+ + + +
+ + + + +
+

模型概览:五级跃迁全景

+ +

企业 AI 成熟度不是"用没用 AI"的二元判断,而是一个从"离线"到"自治"的五级跃迁谱系。每一级不是时间阶段的划分,而是组织与 AI 关系形态的质变。本模型可用于自我诊断、路径规划和转型对标。

+ +
+
+
L0
+
前AI期
+
"离线状态"
+
+
+
+
L1
+
萌芽期
+
"野生生长"
+
+
+
+
L2
+
规范期
+
"制度驱动"
+
+
+
+
L2.5
+
增强期
+
"AI 辅政"
+
+
+
+
L3
+
原生期
+
"AI 驱动"
+
+
+ +
+
表:五级成熟度核心对比
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
层级代号AI 角色人的角色管理重心关键跃迁成本典型周期
L0前AI期不存在全部手工不管 AI
L1萌芽期个人工具执行者不管极低1-4 周
L2规范期组织能力执行者+管理者管工具+管人+管流程中等3-6 月
L2.5增强期建议者执行者+审核者管目标+管异常中低2-4 月
L3原生期组织操作系统目标定义者+审核者管目标+管异常+管信任6-12 月
+
+ +
+

本模型与"12个月转型路线图"的关系

+

本知识库另有一份《软件企业 AI 转型全套方案》,其中包含按时间推进的 L1-L3 三阶段路线图(12 个月实施计划)。那份是转型项目计划("怎么在 12 个月内从零建立 AI 能力"),本模型是组织成熟度框架("你的组织与 AI 的关系处于什么状态")。两者互补:成熟度模型用于诊断当前位置,路线图用于规划如何前进。

+
+
+ + + + +
+

L0 · 前AI期 — "离线状态"

+ +

AI 不在组织话语体系中。不是"用了但没管好",而是根本不在场上

+ +
+
表:L0 核心特征
+ + + + + + + + + + + +
维度L0 表现
驱动源无。AI 不在组织话语体系中
工具获取不存在。或 IT 部门已封锁所有 AI 工具访问
使用场景零。或极少数员工私下用手机访问,纯个人行为
管理层态度三种变体:① "AI 跟我们没关系"(无感型)② "AI 都是炒作"(怀疑型)③ "AI 有安全风险,禁止使用"(封锁型)
知识流动不存在 AI 相关讨论
数据安全无 AI 相关风险(但也无 AI 相关收益)
可观测性不适用
+
+ +

L0 的三种子类型

+ +
+
表:L0 子类型分化
+ + + + + + + + + + + + + + + + + + + +
子类型特征典型画像
L0a · 无感型不知道 AI 能干什么,觉得跟自己无关传统制造业工厂、小型商贸企业、基层政务单位
L0b · 怀疑型听说过 AI,但认为"华而不实""一阵风就过去了"经历过多次技术浪潮失望的老板、靠关系而非效率竞争的企业
L0c · 封锁型知道 AI 有用,但出于安全/合规/管控原因主动禁止军工供应链企业、涉密单位、金融合规极度敏感部门
+
+ +
+

⚠️ 三种子类型的跃迁路径完全不同

+

无感型需要"看见",怀疑型需要"算账",封锁型需要"安全方案"。用错方法——比如给封锁型看 ROI 数据、给无感型讲安全架构——都无效。

+
+
+ +
+

L0 判定清单

+ +
    +
  • 公司内部不存在任何组织认可的 AI 使用行为
  • +
  • 管理层从未在正式场合讨论 AI 的应用
  • +
  • 没有员工使用 AI 工具完成工作(或完全地下化)
  • +
  • IT 基础设施不支撑 AI 工具的使用(网络封锁 / 无 API 访问)
  • +
  • 招聘 JD 中不出现 AI 相关要求
  • +
  • 战略规划中不包含 AI 相关内容
  • +
+ +

L0 的内在矛盾:沉默成本看不见

+ +
+L0 的隐性代价: +├── 效率机会成本:同行用 AI 3 天完成的活,L0 企业 2 周做完,但自己不知道 +├── 人才流失:年轻员工觉得"这公司太落后",用脚投票 +├── 知识负债:L1 企业积累的 AI 使用经验,L0 要从零开始补 +├── 客户感知:B 端客户开始问"你们的 AI 能力如何",答不上来 = 扣分 +└── 竞品降维:L2/L3 竞品以更低报价、更快交付抢单时,才意识到差距 +
+ +
+

最危险的是

+

L0 企业通常不知道自己落后了多少,因为没有测量基准。他们可能觉得"我们还行",直到订单丢了才反应过来。

+
+ +

L0 的隐蔽优势

+ +

公平地说,L0 并不是只有劣势。后发者有几个独特的优势:

+ +
+ + + + + + + + +
优势说明
零遗留负担没有 L1 的野生工具泛滥问题,起步就是统一治理
跳代可能可以直接从 L0 跳到 L2 的治理水平,不必经历 L1 的混乱
安全无债不存在"已经泄露了多少数据到公网 AI"的历史包袱
组织惯性小没有"我们之前就是这么用 AI 的"的路径依赖
+
+ +
+

💡 关键洞察

+

L0→L2 的跳代跃迁,比 L1→L2 的混乱治理更高效——前提是 L0 企业有足够的认知和决心。

+
+
+ +
+

L0 → L1 跃迁路径

+ +

触发信号(按子类型分化)

+ +
+ + + + + + + + + + + + + + + + + + + + + + +
L0a 无感型L0b 怀疑型L0c 封锁型
关键触发亲眼看到同行/朋友公司用 AI 的效率ROI 数据摆在面前,算得过账找到满足安全要求的 AI 方案
典型场景老板参加行业会议看到 demo;或看到身边的人用 AI 效率激增竞品用 2 人完成自己 8 人的工作量,报价低 30%私有化部署方案出现;或合规框架明确
决策门槛 — 只要"见到" — 需要"算出来" — 需要"安全+合规双过"
+
+ +

三种差异化路径

+ +
+

L0a 无感型路径:看见 → 试用 → 推广

+

组织一次内部 AI demo day,找 2-3 个真实业务场景,让员工亲眼看 AI 在自家业务上的效果。不要用通用 demo,用自家真实的活

+
+ +
+

L0b 怀疑型路径:算账 → 小范围试点 → 数据说服 → 推广

+

选一个项目做 A/B 对比,同一需求:纯人工 vs AI 辅助,算出时间和质量差异。让数据说话,不做价值观辩论。

+
+ +
+

L0c 封锁型路径:安全评估 → 私有化部署 → 白名单场景试点 → 推广

+

先解决"怎么安全地用",再解决"怎么用得好"。可以从私有化部署的代码助手起步,在隔离环境中验证。

+
+ +

跃迁的最小可行动作

+ +
+
+
+
一次认知刷新
管理层 1h 闭门会,现场演示 AI 在自家业务场景的效果
+
+
+
+
一个种子项目
小但真实的任务,1-2 人试用 AI,期限 2 周,只看效果不考核
+
+
+
+
一条底线规则
"鼓励用 AI,但禁止包含客户敏感数据"——避免滑入 L1 风险
+
+
+ +
+

⚠️ 跃迁风险

+

L0→L1 最大的风险不是"跃不过去",而是直接滑入 L1 的混乱——全员开始用 AI,但无任何安全护栏。底线的第三条规则(数据安全)必须在跃迁第一天同步建立。

+
+
+ + + + +
+

L1 · 萌芽期 — "野生生长"

+ +

员工个人好奇心驱动,自下而上。公司口头鼓励,无资源投入,无统一管理。

+ +
+
表:L1 核心特征
+ + + + + + + + + + + +
维度L1 表现
驱动源员工个人好奇心/效率需求,自下而上
工具获取个人账户、免费版、共享账号
使用场景高度集中在编程(Cursor/Copilot/Claude Code),少量文案/翻译
管理层态度"挺好的,大家多用"——口头鼓励,无资源投入
知识流动微信群/飞书群里丢链接,靠口口相传
数据安全零管控,代码可能已流入公网 AI
可观测性无。公司不知道谁在用、用在哪、效果如何
+
+ +

L1 判定清单

+ +
    +
  • 公司内部存在自发 AI 使用行为(不一定是全员)
  • +
  • 管理层知晓且态度正面
  • +
  • 没有正式的 AI 使用政策
  • +
  • 没有公司级别的 AI 工具采购或预算
  • +
  • 没有 AI 使用率的测量机制
  • +
  • AI 知识和经验完全绑定在个人身上,人走经验走
  • +
+
+ +
+

L1 的内在矛盾:效率红利与风险敞口同步增长

+ +
+员工 AI 使用率 ↑ ──→ 个人效率 ↑ ──→ 代码/数据泄露风险 ↑ + ──→ 能力差距拉大(会用 vs 不会用的差距从 1x → 3x) + ──→ 代码风格/质量分化(不同 AI 工具产出不一致) + ──→ 经验无法沉淀(沉默在个人聊天记录里) +
+ +

这个矛盾积累到某个临界点,就会触发跃迁。L1 是一个不稳定状态——它要么走向 L2(制度化),要么因安全事故或内部矛盾而退回到变相的 L0c(一刀切禁用)。

+
+ + + + +
+

L1 → L2 跃迁:从"野生"到"制度"

+ +

这是整个模型中最关键的跃迁——从个人行为升级为组织能力。做对了,为后续所有层级打下地基;做错了,要么退回 L0c(一刀切),要么在 L1 长期混乱。

+ +

触发信号(满足 2-3 条即进入跃迁窗口)

+ +
+ + + + + + + + + + +
信号类型具体表现
安全事故员工将核心代码/客户数据粘贴到公网 AI;或竞品通过 AI 输出推断出技术路线
能力断层同一岗位,AI 用户的产出是非 AI 用户的 2-3 倍,团队内部出现明显分化甚至矛盾
成本觉醒财务发现全员各自订阅 AI 工具,公司实际支出已超过集中采购成本
竞品压力竞争对手开始宣传"AI 驱动的研发体系",客户开始问"你们用 AI 了吗"
招聘信号候选人开始问"公司提供 AI 工具吗",不提供的公司招不到好的人
质量事故AI 生成的代码引入隐蔽 bug,上线后才发现,追溯时发现无人审查
+
+
+ +
+

跃迁的五大支柱

+ +

支柱 1:治理政策(Governance)

+ +
+AI 使用边界定义: +├── 白名单:哪些场景鼓励用 AI(代码生成、文档撰写、测试用例) +├── 灰名单:哪些场景需审批后使用(架构设计、安全敏感模块) +├── 黑名单:哪些场景禁止使用 AI(客户 PII 处理、加密算法实现) +└── 工具准入:哪些 AI 工具经公司批准(私域部署 vs 公网服务) +
+ +

支柱 2:工具标准化(Toolchain)

+ +
+ + + + + + + + +
L1 状态(各自为战)L2 目标(统一武器库)
张三用 ChatGPT全员统一 Claude/Cursor 商业许可
李四用 Cursor代码补全工具统一
王五用 DeepSeek公司级 API 网关(审计、限流、计费)
没人管账号SSO + 统一账号管理
+
+ +
+

关键决策点

+

公有 API vs 私域部署。对于代码和业务数据敏感的企业,L2 必须建立私有网关/代理层,而不是简单地"全员买 ChatGPT Plus"。

+
+ +

支柱 3:度量体系(Measurement)

+ +

你不能管理你无法测量的东西。L2 的最小可行度量集:

+ +
+ + + + + + + + + +
指标定义采集方式
AI 采纳率使用 AI 工具的员工比例工具 license 激活数 / License 总数
AI 代码生成率AI 生成代码行数 / 总新增代码行数Git 统计 + AI 工具元数据
AI 代码存活率AI 生成代码在 N 天后仍存在的比例Git blame + 时间窗口分析
人均 AI 交互频次每日人均 prompt/对话次数API 网关日志
AI 引入缺陷率AI 生成代码导致的 bug 占比Bug 归因标签 + AI 代码溯源
+
+ +

支柱 4:能力建设(Capability)

+ +
+分层培训体系: +├── Level 0(全员):AI 安全意识 + 基础使用入门 → 强制通过 +├── Level 1(研发岗):Prompt 工程 + AI 代码审查 → 认证上岗 +├── Level 2(架构/TL):AI 辅助方案设计 + 技术债分析 → 进阶认证 +└── Level 3(AI Champion):工作流设计 + 新人 mentor → 内部选拔 +
+ +

支柱 5:组织适配(Organization)

+ +

L2 不需要大动组织架构,但至少需要:

+ +
    +
  • 1 个 AI 转型负责人(可以是 CTO 兼,但不能没有)
  • +
  • 每个团队 1-2 个 AI Champion(兼职,负责推广和答疑)
  • +
  • 月度 AI 成效评审会(纳入现有管理例会,不新增会议)
  • +
+
+ +
+

L1→L2 常见陷阱

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
陷阱表现后果
过度管控一刀切禁用公网 AI员工转入地下,变成"影子 AI",风险反而更大
只买不管采购了工具就以为转型完成了没人用、不会用、用不好,ROI 难看
过早考核还没培训就设 AI KPI数据造假、抵触情绪蔓延
忽视变革管理技术派管理者以为工具到位 = 转型到位最大的阻力不是技术,是人和文化
+
+
+ + + + +
+

L2 · 规范期 — "制度驱动"

+ +

AI 使用纳入制度化管理。自上而下推动为主、自下而上为辅。这是大多数认真做 AI 转型的企业目前能达到的状态。

+ +
+
表:L2 核心特征
+ + + + + + + + + + + +
维度L2 表现
驱动源制度 + 管理层推动,自上而下为主、自下而上为辅
工具获取公司统一采购、统一账号、API 网关审计
使用场景从编程扩展到测试、文档、项目管理、招聘
管理层态度"AI 是战略优先级,有预算、有 KPI、有汇报"
知识流动内部 prompt 库、最佳实践文档、定期分享会
数据安全私域网关/代理,敏感数据脱敏后使用,有审计日志
可观测性Dashboard 实时展示各团队 AI 采纳率和效能指标
+
+ +

L2 判定清单

+ +
    +
  • 公司级 AI 工具采购和账号管理
  • +
  • 书面的 AI 使用政策和数据安全规范
  • +
  • AI 采纳率被系统性地测量和跟踪
  • +
  • 正式的 AI 培训体系和认证机制
  • +
  • 关键岗位(研发、测试、产品)的绩效考核包含 AI 相关指标
  • +
  • 组织架构中有 AI 相关角色(AI 负责人 / CoE / Champion 网络)
  • +
  • 内部知识管理覆盖 AI 使用(prompt 库、最佳实践、踩坑记录)
  • +
  • AI 工具使用有审计日志,可追溯
  • +
+
+ +
+

L2 的内在矛盾:管理成本 vs 效率收益的拐点

+ +
+AI 管理投入 ↑ ──→ 治理成熟度 ↑ ──→ 合规安全 ↑ + ──→ 管理开销 ↑(审批流程、培训、审计、汇报) + ──→ 到了一定程度,管理本身成为瓶颈 +
+ +
+

典型症状

+

• AI 评审会占用 TL 30% 时间
+• 审批流程比 AI 生成代码还慢
+• 指标开始被"刷"(为了 AI 代码生成率,让 AI 生成大量无意义代码)
+• 人们开始质疑:"加了这么多管理成本,AI 到底提效了还是降效了?"

+
+ +

这个矛盾指向一个更深层的问题:如果流程和管理者本身成了瓶颈,那下一步是优化人,还是让人退到二线?这就是 L2→L2.5 跃迁的根本驱动力。

+
+ + + + +
+

L2 → L2.5 跃迁:让 AI 开口说话

+ +

这个跃迁不涉及大规模组织重构,但需要在三个维度上"往前推一步"。核心命题:AI 从"工具"升级为"建议者"。

+ +

触发信号

+ +
+ + + + + + + + + +
信号说明
采纳率饱和L2 的 AI 采纳率 >80%,推动阶段已结束,进入自然使用状态
管理层自己开始依赖 AICTO/VP 自己用 AI 做技术决策分析、项目风险评估,而不只是让一线员工用
管理数据富集L2 的度量基础设施积累了足够多的数据,AI 可以基于历史模式做预测
第一次"AI 比人判断更准时"某个项目,AI 提前预警了风险,TL 没当回事,事后应验
竞品开始提"AI 管理"行业里开始出现"AI 辅助项目管理""AI 绩效分析"等工具和案例
+
+ +

三个关键动作

+ +

动作 1:让 AI 开口说话——从数据展示到洞察生成

+ +
+ + + + + + + + +
L2 Dashboard(只展示数据)L2.5 Dashboard(AI 生成洞察)
Sprint 进度: 67%
Bug 数: 12
人均任务: 3.2
Sprint 进度: 67%
Bug 数: 12
⚠️ AI 提示:张三负载 4.5 个任务,李四 1.8 个,建议重分配
⚠️ AI 提示:Bug 中 5 个来自上周 AI 生成的 auth 模块,建议重点 review
📊 AI 预测:按当前速率,本 sprint 有 73% 概率按期完成
+
+ +

这类洞察的生成不依赖复杂的 Agent 平台——GPT-4/Claude 4 + 结构化数据输入就能做。关键是要开始把 AI 洞察纳入决策议程

+ +

动作 2:选一个流程做 AI 建议试点

+ +
+ + + + + + + + +
推荐试点流程理由
Sprint 任务分配数据结构化、判断标准相对明确、影响可控
代码 Review 分配AI 可以根据代码变更范围 + 开发者专长自动推荐 reviewer
技术债优先级排序AI 扫描代码库 + 结合 bug 频率 + 变更频率,给出优先级建议
项目风险预警AI 分析 commit 频率、bug 趋势、需求变更频率,预警延期风险
+
+ +

规则:AI 出建议,人做决策,1 周后复盘对比。连续 4 周 AI 建议优于或等于人工决策的流程,进入下一步。

+ +

动作 3:给中层管理者一个明确的新叙事

+ +
+

中层叙事(必须传递的认知)

+

"AI 不会替代你的判断力,但会替代你的信息搜集和初步分析工作。你的价值从'我知道情况'升级为'我能在 AI 提供的多个选项中选择最好的,并在 AI 看不到的灰色地带做权衡'。"

+
+ +
+

必须诚实面对

+

L2.5 最大的阻力不是技术,是中层。如果你的核心价值只是"汇总信息+转发任务",那确实会被替代——这是需要面对的现实。

+
+
+ + + + +
+

L2.5 · 增强期 — "AI 辅政"

+ +

整个成熟度模型中最微妙的阶段。AI 开始参与管理决策,但人保留最终裁决权。它既是最有可能长期停留的状态,也是最容易退化的状态。

+ +

L2.5 的核心定位

+ +
+L2: 人决策 → 人分配任务 → 人跟踪 → 人考核(AI 只是效率工具) +L2.5: AI 建议 → 人决策 → 人+AI 混合执行 → AI 跟踪 → AI 出评估数据 → 人考核 +L3: 目标 → AI 拆解 → AI 分配 → AI 跟踪 → AI 考核(人只处理异常) +
+ +
+
表:L2.5 核心特征
+ + + + + + + + + + +
维度L2.5 表现
驱动源制度 + AI 建议双驱动。人仍是最终决策者,但越来越多决策由 AI 信息支撑
AI 的管理角色AI 不直接管人,但提供任务分配建议、风险预警、绩效数据
人机分工执行层:AI 做 70%,人审 30%。管理层:AI 提供数据和选项,人做选择和判断
工具形态从"单点 AI 工具"进化为"AI 增强的管理平台"——Dashboard 里有 AI 生成的洞察
组织形态开始出现"AI 实验团队"——某个项目/团队试点 AI Agent 半自主运行,作为 L3 的探路者
文化关键"让 AI 说话"——会议上有 AI 视角:"模型建议推迟这个需求,因为依赖的前端组件还没就绪"
+
+ +

L2.5 判定清单

+ +
    +
  • AI 工具的使用已深入日常(采纳率 >80%,无需推动,不用反而别扭)
  • +
  • 管理 Dashboard 中包含 AI 生成的预警/建议(不仅仅是原始数据)
  • +
  • 至少 1 个核心流程中,AI 给出了被实际采纳的决策建议
  • +
  • 存在 AI Agent 实验项目(哪怕只是内部试点,不面向交付)
  • +
  • 绩效考核中 AI 提供量化输入,但最终评估仍由人完成
  • +
  • 组织内有讨论"AI 的建议比 TL 的判断更准时,该信谁?"这类张力
  • +
  • 中层管理者开始感受到角色焦虑
  • +
  • 尚未达到 L3 的任何一条硬指标(AI 自主分配任务 / AI 考核 / 组织架构以 AI 为中心重构)
  • +
+
+ +
+

L2.5 的内在矛盾

+ +
+L2.5 的核心张力: + + AI 建议质量 ↑ ──→ 人对 AI 建议的依赖 ↑ + ──→ "既然每次都采纳,为什么不直接让 AI 决策?" + ──→ 但组织还没准备好放弃人的最终裁决权 + + 结果:人成了"橡皮图章"——形式上在决策,实质上在点"同意" +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
矛盾表现
建议-责任错位AI 给建议,人签字负责。如果 AI 建议导致问题,是谁的责任?人的——但人会觉得"我按 AI 建议来的"。这种问责不对等会累积怨气
能力空心化管理者长期依赖 AI 建议做决策,独立判断力退化。某天 AI 建议明显不合理时,管理者还有能力识别吗?
双重开销AI 出一版方案 + 人审一版 = 看起来两重保障,但总耗时可能比纯人工还长。L2.5 在某些环节的效率反而低于 L2
试点孤岛L3 实验团队跑得很爽,但主流团队还卡在 L2 流程里,两边节奏不一致导致协作摩擦
中层焦虑中层管理者发现 AI 能做的事情越来越多,开始怀疑自己的价值。焦虑要么转化为抵制,要么转化为过度依赖
+
+
+ +
+

L2.5 的两种命运

+ +
+ ┌──→ L3 原生期(跃迁成功) + │ + L2 ──→ L2.5 ──┤ + │ + └──→ 退化回 L2(跃迁失败,或主动选择停留) +
+ +
+ + + + + + + + + + + + + + + + + + + +
走向条件结果
→ L3主动管理矛盾,把 L2.5 当作过渡阶段(3-6 个月),有明确的时间表和里程碑AI 自主决策范围逐步扩大,组织进入原生期
→ 退化矛盾持续积累但无人解决 → 中层抵制加剧 → AI 实验团队被边缘化 → "还是人管靠谱"的声音占据主流退回到强化版 L2(工具更好用了,但管理模式没变)
→ 停留理性选择不进入 L3——因为 L3 的责任归属、合规风险、组织韧性等问题尚无解L2.5 是"最优停止点":享受 AI 的建议能力,保留人的最终控制权
+
+ +
+

💡 重要认知

+

对很多组织来说,L2.5 是理性最优解。不是每个企业都需要追求 L3——就像不是每家公司都需要成为 Google。关键是有意识地选择停留,而非因为害怕或无能而卡住。

+
+
+ + + + +
+

L2.5 → L3 跃迁:交权

+ +

这是整个模型中最难的跃迁——从"AI 建议,人决策""AI 决策,人处理异常"。本质上是组织权力结构的重新分配。

+ +

触发信号

+ +
+ + + + + + + + + +
信号说明
"橡皮图章"频率 >70%人对 AI 建议的修改率持续下降——说明 AI 建议质量已达到"直接可用"水平
决策延迟成为瓶颈流程中的最大延迟不是 AI 生成建议,而是人"看一眼再点同意"
L3 实验团队跑出了压倒性数据试点团队用 L3 模式,效率是 L2.5 团队的 2 倍以上
责任归属框架就绪组织已经想清楚"AI 决策出错时谁负责"的规则(哪怕是临时规则)
管理层的风险偏好就绪CEO/CTO 愿意承担"AI 自主运行"带来的风险,并公开表态支持
+
+ +

三个层面的重构

+ +

层面 1:技术基础设施 — AI 编排平台

+ +
+AI Agent 编排系统架构: + +目标输入层 + ├── 战略目标(OKR / KPI)结构化解析 + └── 自然语言目标 → 可执行任务图 + +任务编排层 + ├── 目标 → 子目标 → 任务 → 子任务的自动拆解 + ├── 依赖关系自动识别 + ├── 优先级动态排序 + └── 技能-任务匹配(谁/AI 适合做什么) + +执行层 + ├── 人-AI 混合任务队列 + ├── AI Agent 自主执行(代码生成、测试、文档) + ├── 人介入点标记(关键决策、架构评审、客户沟通) + └── 执行结果自动采集 + +治理层 + ├── 实时进度可视化(自动更新,不是人填日报) + ├── 风险自动检测与升级 + ├── 质量门禁自动执行 + └── 全链路审计日志 +
+ +
+

注意

+

这个平台不是买一个 SaaS 就能解决的——它需要深度定制,因为每个组织的目标拆解逻辑、技能模型、审批规则都不同。

+
+ +

层面 2:组织重构 — 角色与流程再造

+ +
+ + + + + + + + + +
传统角色L3 角色演变
一线开发从"写代码"变为"定义任务 + 审查 AI 产出 + 处理 AI 无法处理的边界情况"
Tech Lead从"技术决策者"变为"AI Agent 编排者 + 技术治理规则制定者"
PM从"任务分配者 + 进度跟踪者"变为"目标定义者 + 异常处理者"
QA从"手工测试执行者"变为"AI 测试策略设计者 + 质量模型训练者"
中层管理者最大变化 — 传统"分配任务+盯进度"的职能被 AI 系统替代,要么向上走(战略),要么向下走(专业深钻),要么被淘汰
+
+ +

层面 3:信任体系 — 渐进式交权

+ +
+Phase 1: AI 建议 → 人决策 (影子运行 3 个月,对比 AI 建议 vs 实际决策) +Phase 2: AI 决策 → 人确认 (低风险任务直接执行,高风险人工确认) +Phase 3: AI 决策 → 人抽检 (抽检比例从 20% 逐步降至 5%) +Phase 4: AI 自主运行 → 人处理异常 (人只在系统升级时才介入) +
+ +

跃迁要点

+ +
+

三个关键原则

+

1. 不是全公司同时跳:选 L2.5 阶段已经跑通的试点团队率先进入 L3,其他团队保持 L2.5,用内部对比数据推动扩散

+

2. 先拿低风险流程开刀:最先交给 AI 自主决策的不该是薪资/晋升/裁员,而是"这个 bug 分配给谁修""下个 sprint 的任务优先级怎么排"

+

3. 保留降级开关:L3 系统必须有"回到 L2.5 模式"的机制——AI 自主运行出现问题时,一键切换回"AI 建议 + 人决策"

+
+
+ + + + +
+

L3 · 原生期 — "AI 驱动"

+ +

AI 成为组织运作的核心引擎。人设定目标和约束,AI 自动驱动力流向目标。这不是一个"更好的 L2",而是组织运作范式的质变。

+ +
+
表:L3 核心特征
+ + + + + + + + + + + +
维度L3 表现
驱动源AI 系统自主驱动,人设定目标和约束
任务流动目标 → AI 拆解 → AI 分配 → 人+AI 混合执行 → AI 验证 → AI 报告
管理行为人不再"管进度",而是"审异常"、"调方向"、"教 AI"
组织形态扁平化,大量中层管理职能被 AI 替代,团队围绕"目标域"而非"职能"组织
绩效评估AI 实时、多维度、数据驱动,人的主观判断用于校准而非替代
知识管理不再有"知识库"——知识直接在 AI 系统的记忆和工作流中流转
招聘标准不再问"你会什么",而是"你如何让 AI 做得更好"
+
+ +

L3 判定清单

+ +
    +
  • AI Agent 编排平台上线运行,覆盖核心业务流程
  • +
  • 目标和任务由 AI 自动拆解、分配、追踪
  • +
  • 项目进度和风险信息由 AI 实时生成(非人工填报)
  • +
  • 绩效评估中 AI 生成的量化数据占比 >50%
  • +
  • 人的日常工作中,"review AI 产出"的时间 > "亲自执行"的时间
  • +
  • 组织架构已针对人-AI 协作模式进行过至少一次重大调整
  • +
  • 中层的"任务分配/进度跟踪"职能已被 AI 系统替代
  • +
  • 存在专门的 AI 编排/治理角色(AI Orchestrator)
  • +
+
+ +
+

L3 的新问题(进入 L3 不是终点)

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
新问题具体表现
责任归属模糊AI 分配的任务出错了,是 AI 的责任还是人的?绩效考核时人说是 AI 的问题怎么办?需要建立人机责任划分框架
技能退化风险人长期只做 review,亲手执行能力下降。某天 AI 系统故障,组织还能运转吗?需要定期人工演练(AI 降级日)
算法公平性AI 的任务分配是否公平?是否会系统性地把好做的任务给某些人、难做的给另一些人?需要分配公平性审计
创造力挤出AI 优化的是"已知目标的执行效率",但创新往往来自偏离目标的探索——L3 组织会杀死创新吗?需要刻意保留"非目标导向的探索空间"
组织韧性L3 组织高度依赖 AI 系统。系统宕机、被攻击、或模型质量突然下降时,组织有降级运行的能力吗?需要灾难恢复演练和 L2 模式备份
+
+ +
+

⚠️ 诚实警告

+

以上这些问题目前没有标准答案。L3 本身是一个正在被发明的状态。成为 L3 企业意味着你在参与定义未来组织的形态——同时也意味着你会踩到所有还没有解决方案的坑。

+
+
+ + + + +
+

附录 A:跃迁总览图与跳代规则

+ +
+
表:五级跃迁完整对比
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
跃迁成本周期最关键动作最大风险可跳代?
L0→L1极低1-4 周看见(无感型)/ 算账(怀疑型)/ 安全方案(封锁型)直接滑入 L1 混乱(无安全护栏)
L1→L2中等3-6 个月建制:治理政策 + 工具标准化 + 培训体系 + 度量体系 + 组织适配过度管控(一刀切禁止 → 影子 AI)
L2→L2.5中低2-4 个月让 AI 说话:Dashboard 洞察 + 单流程试点 + 中层叙事中层抵制
L2.5→L36-12 个月交权:AI 编排平台 + 组织重构 + 渐进信任责任真空 + 技能退化
+
+ +

跳代规则

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
跳代路径可行性条件
L0 → L2✓ 可行直接从"没用 AI"到"统一治理的 AI 使用",跳过 L1 混乱期。必要条件:管理层有足够认知,愿意在工具采购和治理框架上一次性投入。实际上比 L1→L2 更高效
L0 → L2.5✓ 理论可行一个认知和执行力都很强的组织,可以从零直接构建 L2.5 级别的 AI 能力。要求管理层自身有极强 AI 素养——罕见但并非不可能
L1 → L2.5✓ 可行跳过 L2 的完整制度建设,但保留 L2.5 作为目标。需要同时处理 L1 的混乱治理 + L2.5 的 AI 建议能力建设
L1 → L3✗ 不可行L1 的野生数据、分散的工具、个人绑定的经验,必须先经过 L2 的统一化和制度化,才能支撑 L3 的系统化编排。没有地基无法建高楼
L2 → L3✗ 不可行必须经过 L2.5。信任是逐步建立的——AI 建议被反复验证后才能被授权自主决策。跳过 L2.5 直接交权 = 盲目信任 = 事故
+
+ +
+

💡 核心规律

+

L2.5 是 L3 的必经之路,不能跳过。L0 可以跳代到 L2 甚至 L2.5(后发优势),但 L1/L2 不能跳代到 L3(没有信任基础)。

+
+
+ +
+

附录 B:关键洞察与展望

+ +

模型的边界与局限

+ +
+ + + + + + + + +
考量说明
行业差异软件企业到达 L3 的路径和制造企业/金融企业/医疗机构完全不同。本模型以软件/科技企业为主要参照,其他行业需要适配
规模效应50 人团队和 5000 人企业的 L2 治理复杂度差一个数量级。模型中的"周期"估算以 50-200 人软件团队为基准
非单向性组织不是只能往上走。安全事故、AI 负责人离职、预算削减都可能导致从 L2 退回到 L1 甚至 L0c
文化前置如果组织文化是"恐惧犯错+严格追责",L2.5 以上的层级几乎不可能达到——AI 建议被采纳的前提是容错
+
+ +

L3 之后是什么?

+ +

L3 不是终点。L3 自身的问题(责任归属、技能退化、创造力挤出)会催生下一级。以下为推测性展望:

+ +
+ + + + + + + + + + + + + + + + + + + +
可能方向核心特征解决什么问题
L4 · 人机共治
Human-AI Co-Governance
人与 AI 在治理层面形成制衡。AI 提案、人批准,但人也可以提案、AI 挑战。双向制衡而非单向授权解决 L3 的责任归属模糊和算法公平性问题
L4 · 自适应组织
Self-Adapting
组织架构不再是静态的——AI 根据目标和环境变化,动态建议组织形态调整(团队合并/拆分/重组)解决 L3 的组织韧性和环境适应问题
L4 · 创新原生化
Innovation-Native
AI 不仅优化执行,还主动提出创新方向。人-AI 在"探索 vs 利用"之间形成动态平衡解决 L3 的创造力挤出问题
+
+ +

目前没有企业真正达到上述任何 L4 状态。这些是 2026 年视野下 的合理推断。L4 的定义本身会随着技术和社会演进不断变化。

+ +

五级模型的应用建议

+ +
+

自我诊断

+

用各层级的判定清单做一次组织自评。大部分组织会发现自己跨层级分布——研发团队可能在 L1.5,HR 团队在 L0,市场团队在 L1。跨层级差异本身就是转型的切入点。

+
+ +
+

路径规划

+

不要追求"全公司同步升级"。用最成熟的团队作为探路者,用最保守的团队设定底线(不能低于哪个层级的某个维度)。异步升级,以快带慢。

+
+ +
+

节奏控制

+

从 L0 到 L2 可以快(6 个月内走完),L2→L2.5 要稳(不要跳过中层叙事),L2.5→L3 要慢(信任建立需要时间)。最危险的不是慢,是在没准备好的层级上做没准备好的事

+
+ +
+ + + + +
+

附录 C:L1→L2.5 培训驱动路线图

+ +

本路线图将五级成熟度模型与具体培训计划对接,展示如何通过系统化培训推动企业从 L1(萌芽期)跃迁至 L2.5(增强期)。培训不是目的,成熟度升级才是。

+ +

培训目标与成熟度映射

+ +
+
表:培训各阶段对应的成熟度升级
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
培训阶段时间对象起点终点核心目标关键验收标准
入门W1-W2全员L1L2人人会用 AI 工具,建立治理底线通过率 ≥ 90%
安全考核 100% 通过
中级W3-W6按角色L2L2.5每个角色掌握专属 AI 工具包,AI 开始参与决策建议效率提升可量化 >30%
AI 采纳率 >80%
进阶W7+ChampionL2.5L2.5 深化培养内部 AI 推广者,固化方法论,为 L3 探路AI Champion 认证 ≥ 2 人/团队
方法论 V1.0 发布
+
+ +

第一级 · 入门培训(W1-W2):L1 → L2

+ +
+

目标:从"野生生长"到"统一制度"

+

打破 L1 的碎片化状态——统一工具、统一安全规范、统一基础能力基线。此阶段全员参加,按角色混合编班。

+
+ +

入门阶段:统一工具分配

+ +
+
表:入门培训后,全员统一配备的基础工具
+ + + + + + + + + +
工具类型配备对象费用用途
DeepSeek API国产 · 云端全员约 50 元/月/人日常对话、文档撰写、方案构思——主力模型
通义千问国产 · 云端全员免费额度中文长文档、PPT 大纲、多模态——辅助模型
Cherry Studio开源 · 本地全员免费零门槛桌面客户端,统一接入上述模型,本地知识库
飞书 AI / 钉钉 AI国产 · SaaS全员已有会议纪要自动生成、待办提取——不新增成本
通义灵码国产 · IDE 插件开发顾问免费代码补全、中文注释生成——仅开发岗安装
+
+ +

入门阶段:培训流程

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
课时时长课程内容与实操覆盖工具解决的 L1 痛点
12hAI 概览与工具安装大模型能做什么/不能做什么 · 国产与开源工具生态 · 现场安装 Cherry Studio + 配置 DeepSeek/通义千问 APICherry Studio
DeepSeek
通义千问
工具碎片化,各用各的
22hPrompt 入门Prompt 四要素(角色·任务·格式·约束)· 分步指令 · 5 个场景实操(写邮件/做总结/列提纲/译文档/改文案)DeepSeek不会跟 AI 沟通,效率差距大
31.5hAI 安全红线数据四级分类(公开/内部/机密/绝密)· 脱敏实操 · 公司 AI 使用政策逐条解读 · 全员签署承诺书零管控
42h四角色场景 Demo用本公司真实项目案例现场演示:售前写方案 · PM 写周报 · 顾问写 FS 片段 · 开发修 Bug。每人跟练DeepSeek
通义千问
通义灵码
不知道 AI 能帮自己干什么
52h综合实操考试模拟工作任务 → 限时用 AI 完成 → 评分(效率·质量·安全合规)→ 排名公示 Top 10%全部入门工具学习效果不可验证
+
+ +
+

入门阶段同步建立的 L2 基础设施

+

治理支柱:AI 使用政策发布(白名单/灰名单/黑名单)+ 全员签署 + API 网关部署(统一审计/限流)
+度量支柱:训前全员问卷 → 现状基线报告(谁在用、用什么、效果感知)+ 入门考试通过率
+组织支柱:CTO 或指定人正式担任 AI 转型负责人 + 每团队暂定 1 名 Champion 候选人
+知识支柱:Dify 部署完成 + 首批 20+ 核心文档入库(方案模板/技术规范/安全政策)

+
+ +
+

✅ L1→L2 验收标准

+

入门考试通过率 ≥ 90% · 安全考核 100% 通过 · 全员工具安装完成 · AI 使用政策生效 · API 网关上线

+
+ + +

第二级 · 中级培训(W3-W6):L2 → L2.5

+ +
+

目标:从"制度驱动"到"AI 辅政"

+

此阶段按角色分班(每班 ≤15 人)。每个角色学习专属 AI 工具包,掌握 AI 参与工作决策的具体方法。

+
+ +

中级阶段:四角色工具包与工作流

+ +
+
表:售前顾问 — AI 增强工作流(W3-W6,每周 2 次 × 2h)
+ + + + + + + + +
课程工作流(传统 → AI 增强)使用工具
W3AI 辅助需求调研与标书解读传统:人工列提纲→现场笔记→事后整理 2-3 天
AI 增强:DeepSeek 生成调研提纲→飞书录音→通义千问转写+提取要点→AI 生成调研报告初稿(4h 完成)
DeepSeek · 通义千问 · 飞书 AI
W4AI 辅助方案编制与 PPT 生成传统:从零写方案→手工做 PPT,5-10 天
AI 增强:DeepSeek 生成方案初稿→人工精修→讯飞智文生成 PPT→人工调优(2-3 天完成)
DeepSeek · 讯飞智文
W5AI 模拟客户汇报演练传统:内部评审靠 TL 提意见,覆盖面有限
AI 增强:方案→AI 生成 20 个客户可能质疑的问题→角色扮演模拟应答→AI 点评应答质量
DeepSeek · 讯飞智文
W6实战考试全新行业模拟招标项目 → 限时 4h 完成标书解读+方案初稿+汇报 PPT+Q&A 预案全部售前工具
+
+ +
+
表:项目经理 — AI 增强工作流(W3-W6)
+ + + + + + + + +
课程工作流(传统 → AI 增强)使用工具
W3AI 辅助项目计划与 WBS传统:PM 手写 WBS→Excel 排期→反复调整,2-3 天
AI 增强:输入范围说明书→DeepSeek 生成 WBS+里程碑+资源估算+关键路径→PM 审核调整(2h 完成)
DeepSeek
W4AI 辅助汇报与风险管理传统:PM 手工收集数据→写周报→凭经验识别风险,半天/次
AI 增强:飞书 AI 自动生成会议纪要+待办→DeepSeek 生成阶段汇报 PPT+风险趋势分析(1h 完成)
DeepSeek · 飞书 AI · 讯飞智文
W5Dify 项目知识库搭建传统:项目文档散落在飞书/本地/邮件
AI 增强:质量检查清单+历史问题库+常见风险库导入 Dify→PM 可实时自然语言查询(如"这个阶段容易出什么问题?")
Dify · DeepSeek API
W6实战考试给定模拟项目状态数据 → 限时 3h 完成阶段汇报 PPT+风险预警报告+下阶段计划全部 PM 工具
+
+ +
+
表:应用顾问 — AI 增强工作流(W3-W6)
+ + + + + + + + +
课程工作流(传统 → AI 增强)使用工具
W3AI 辅助蓝图与 FS 编制传统:手写蓝图→手写 FS,耗时占项目 30-40%
AI 增强:需求文档→DeepSeek 生成蓝图框架→FS 初稿(含功能描述+业务规则+界面规范+异常流程)→顾问精修业务逻辑
DeepSeek
W4AI 辅助接口设计与原型传统:手写接口文档→手工画原型,反复对齐
AI 增强:系统交互需求→DeepSeek 生成接口规范(字段+校验+异常)→即时设计生成交互原型→快速对齐客户
DeepSeek · 即时设计
W5Dify 顾问知识库搭建传统:每次新项目从零开始,无法复用经验
AI 增强:FS 模板+接口模板+行业方案模板导入 Dify→新项目时 AI 基于历史模板快速生成定制版本
Dify · DeepSeek API
W6实战考试给定模拟需求 → 限时 6h 完成调研提纲+蓝图框架+FS 初稿+接口规范+原型草图全部顾问工具
+
+ +
+
表:开发顾问 — AI 增强工作流(W3-W6)
+ + + + + + + + +
课程工作流(传统 → AI 增强)使用工具
W3Claude Code 深度使用传统:IDE 里手写代码,AI 只做代码补全
AI 增强:CLI Agent 模式 · 多文件编辑 · 自定义 Rules · Session 管理 · 架构理解。从"AI 补全一行"到"AI 完成一个任务"
Claude Code CLI
W4通义灵码 + AI 测试传统:手写测试用例→手工执行→覆盖率靠人工统计
AI 增强:FS→通义灵码生成单元测试+集成测试→Playwright E2E 脚本→AI 生成测试报告
通义灵码 · Playwright
W5FS→代码 全流程实战传统:开发看 FS→编码→自测→提交,各环节独立
AI 增强:FS→Claude Code 拆解任务→前后端代码生成→AI 生成测试→AI 代码审查→提交。一条命令走通全链路
Claude Code · 通义灵码
W6实战考试给定 FS → 限时 6h 完成任务拆解+前后端代码+测试+文档。验收:AI 代码存活率 >70%全部开发工具
+
+ +
+

中级阶段同步建立的 L2.5 基础设施

+

AI 洞察 Dashboard:将 L2 度量面板升级,加入 AI 生成的预警("张三负载过高""auth 模块 Bug 集中在 AI 生成代码")
+中层叙事:面向 TL/PM 专项沟通——"AI 取代的是信息搜集和汇总,不是你的判断力"
+知识工程:Dify 知识库扩充至 100+ 文档——方案模板·FS 模板·接口规范·技术标准·行业方案
+Champion 选拔:中级考试 Top 20% + 自愿报名 → AI Champion 候选人(每团队 1-2 人)

+
+ +
+

✅ L2→L2.5 验收标准

+

中级考试通过率 ≥ 80% · 四角色效率提升均可量化 >30% · AI 采纳率 >80% · Dashboard 含 AI 洞察 · 知识库 100+ 文档 · Champion 就位

+
+ + +

第三级 · 进阶培训(W7-W12):L2.5 深化与 L3 探路

+ +
+

目标:固化 L2.5,为 L3 播种

+

此阶段仅面向中级考试 Top 20%的 AI Champion 候选人(每班 ≤8 人)。中级培训让组织"会用 AI 建议",进阶阶段让组织"用好 AI 建议且不退化"。

+
+ +

进阶阶段:Champion 工具链与能力矩阵

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
模块课程时长内容涉及工具/平台产出物
M1Prompt 工程深度2 周Chain-of-Thought · Few-shot · System Prompt 设计 · 多轮对话策略 · Prompt 版本管理与 A/B 测试DeepSeek API · 通义千问 · Claude API角色 Prompt 模板库 V1(≥20 条高质量模板)
M2RAG 与知识库架构2 周Dify 高级工作流 · 向量数据库选型 · Embedding 策略 · 文档切分策略 · RAG 评估指标Dify · MaxKB企业知识库架构方案 + 运维手册
M3AI Agent 开发与编排2 周Multi-Agent 协作模式 · Agent 工作流设计 · Tool Use 开发 · 人机协作界面设计 · API 网关策略Dify 工作流 · Claude Code Agent1 个可运行的 Multi-Agent Demo(如自动任务分配)
M4AI 工作流设计(师带徒)2 周为 1 个真实项目设计端到端 AI 工作流→实施→测量→优化。导师 1v1 辅导,产出可复用模板全工具链2 套可复用的 AI 工作流模板(售前+交付各一)
+
+ +

进阶阶段:L2.5 固化的配套流程

+ +
+W7-W12 持续运营流程: + +├── 双周 AI 成效评审会(纳入现有管理例会,不新增会议) +│ ├── 各团队 AI 采纳率 & 效率数据回顾 +│ ├── AI 生成代码存活率趋势 +│ └── 优秀案例分享 + 踩坑记录 +│ +├── Champion 月度巡讲 +│ ├── 每人每月做 1 次团队内部分享(新工具/新方法/新 Prompt) +│ └── 跨团队交叉辅导(开发 Champion 辅导售前团队的 AI 使用) +│ +├── 知识库持续更新 +│ ├── 每周新增 ≥5 条 Prompt 模板(全员贡献,Champion 审核) +│ ├── 每月更新工具对比数据(跟进国产工具版本迭代) +│ └── 每季度发布 AI 使用案例集 +│ +├── 方法论试点跟踪 +│ ├── 选 2 个项目试点 AI 增强方法论(售前/交付各一) +│ ├── W10 中期数据采集 → W12 试点总结报告 +│ └── 试点报告 = 方法论 V1.0 的实证基础 +│ +└── L3 探路 + ├── Champion M3 产出的 Multi-Agent Demo 在内部试运行 + ├── 评估:AI 自动分配任务在哪个环节最可行? + └── 输出 L3 可行性评估报告(技术就绪度 + 组织就绪度) +
+ +

进阶阶段(W7+):L2.5 深化与 L3 探路

+ +
+

目标:固化 L2.5,为 L3 播种

+

中级培训让组织达到 L2.5。进阶阶段的目标是不让它退化,并培养能推动向 L3 演进的核心力量。

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
模块课程内容对 L2.5 的作用选拔条件
M1Prompt 工程深度Chain-of-Thought、Few-shot、System Prompt 设计、多轮对话策略、A/B 测试提升 AI 建议质量 → 减少"橡皮图章"前的犹豫中级 Top 20%
M2RAG 与知识库架构Dify 高级工作流、Embedding 策略、文档切分、RAG 评估指标企业知识从"人脑"迁移到"AI 脑"→ L3 的前提中级 Top 20%
M3AI Agent 开发与编排Multi-Agent 协作、工作流设计、Tool Use 开发、人机协作界面为 L3 的"AI 自动分配任务"储备技术能力M1+M2 完成
M4AI 工作流设计(师带徒)为真实项目设计端到端 AI 工作流→实施→测量→优化,导师 1v1产出可复用的工作流模板 → 规模化推广的种子M1-M3 完成
+
+ +

L1→L2.5 全程时间线与里程碑

+ +
+
表:12 周培训驱动成熟度升级路线
+ + + + + + + + + + + + + + + + + + + +
阶段成熟度关键动作里程碑 / 验收标准
W0准备L1全员问卷基线 · 工具选型采购 · API 网关部署 · 安全政策起草基线报告完成 · 工具就位
W1-W2入门培训L1 → L25 课时全员培训 · 安全考核 · 实操考试 · 知识库首批文档导入✅ 入门通过率 ≥ 90%
✅ 安全考核 100%
✅ 工具统一 · 政策发布
W3-W6中级培训L2 → L2.5四角色分班培训 · 实战考试 · Dashboard AI 洞察 · 个人知识库辅导 · 中层叙事沟通✅ 中级通过率 ≥ 80%
✅ 效率提升可量化 >30%
✅ AI 采纳率 >80%
W7-W8固化L2.5 稳固Prompt 模板库 V1 · AI 工具包手册 · Champion 选拔 · 方法论初稿✅ 知识资产上线
✅ Champion 就位
W9-W12深化L2.5 深化进阶魔鬼课程 · 试点项目 AI 增强方法论验证 · 数据采集对比 · 方法论 V1.0 发布✅ 方法论 V1.0
✅ 试点量化报告
✅ L3 探路计划
+
+ +

核心投入与预期产出

+ +
+
+
12 周
+
总周期
W0 准备 → W12 深化
+
+
+
约 5-10 万
+
工具采购
国产 & 开源优先
+
+
+
约 5 万
+
培训实施
师资+材料+考核
+
+
+
1-2 人
+
内部投入
AI 负责人+Champion
+
+
+ +
+
+
L1 → L2.5
+
成熟度跃迁
两级跨越
+
+
+
10,000+ 人时/年
+
预计年化节省
相当于 5-6 个 FTE
+
+
+
2 套
+
方法论产出
售前 + 交付 AI 增强版
+
+
+
4+ 人
+
AI Champion
每团队至少 1 人
+
+
+ +
+

💡 培训不是结束,是成熟度升级的起点

+

W12 结束时达成的 L2.5 不是终点。中级培训让组织"会用 AI 建议",进阶阶段让组织"用好 AI 建议"。真正的考验在 W12 之后——方法论能不能在日常工作中被持续执行?Champion 能不能带动后进者?知识库能不能持续更新而非沦为摆设?

+

配套文档:AI 赋能 IT 服务团队 · 培训与落地全套提纲(含四角色赋能矩阵、完整课表、实施服务包)

+
+ +
+ +
+

企业 AI 成熟度五级模型 · V1.0 · 2026-06-03

+
+ +
+ + + + + + \ No newline at end of file diff --git a/研发型企业AI转型方案/报告/ai-training-outline-for-it-services.html b/研发型企业AI转型方案/报告/ai-training-outline-for-it-services.html new file mode 100644 index 0000000..97dffa8 --- /dev/null +++ b/研发型企业AI转型方案/报告/ai-training-outline-for-it-services.html @@ -0,0 +1,1162 @@ + + + + + + AI 赋能 IT 服务团队 — 培训与落地全套提纲 + + + + +
+ +
+ + ← 返回知识库 +

AI 赋能 IT 服务团队 · 培训与落地全套提纲

+ V1.0 · 2026-06-03 +
+ + + +
+ + + + +
+

第一篇:企业画像与 AI 成熟度定位

+ +

在制定培训方案之前,先回答一个问题:这家企业现在在哪里要去哪里

+ +

企业画像速写

+ +
+ + + + + + + + + +
维度特征
业务形态IT 服务 / 数字化转型咨询公司,服务集团内部 + 外部企业客户
服务模式咨询规划 + 套装软件实施(SAP/PLM)+ 自研软件实施(CRM/SRM/MES等)+ AI 服务
覆盖领域市场销售 → 研发设计 → 工艺 → 计划 → 采购 → 生产 → 库存 → 发运 → 财务 → 人资 → 安环,全价值链
核心角色售前顾问 · 项目经理 · 应用顾问 · 开发顾问
AI 当前状态已有 AI 业务线(AI 培训 + 应用规划 + 智能体开发),但内部 AI 使用可能仍在 L1 阶段(个人自发使用为主)
+
+ +

AI 成熟度定位

+ +
+
+
L1→L2
+
当前估计位置
已过萌芽期,正在向规范期跃迁
+
+
+
L2
+
培训完成后目标
统一治理的AI赋能体系
+
+
+
L2.5
+
方法论进化后目标
AI 增强的售前与交付
+
+
+ +
+

定位分析

+

该企业有双重身份:既是 AI 服务的提供者(帮客户做 AI),也是 AI 的使用者(自身用 AI 提效)。这带来一个独特优势——内部实战经验可以直接转化为对外服务能力。培训方案的设计原则是:先把自己变成案例,再把案例变成产品。

+
+ +
+

⚠️ 关键风险

+

AI 服务提供者如果自身 AI 使用水平不高,会出现"鞋匠的儿子没鞋穿"的尴尬——给客户讲 AI 转型,自己还在 L1。本培训方案的第一目标就是消除这个 credibility gap

+
+
+ + + + +
+

第二篇:AI 工具矩阵 — IT 服务企业版

+ +

按 IT 服务企业的四个核心角色 + 两大业务场景(售前 + 交付),筛选和对比市面主流 AI 工具。每个工具标注所属公司、擅长领域、优缺点、推荐建议。

+ +

工具全景速查表

+ +
+
表:IT 服务企业适用的 AI 工具全景(按类别)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别工具所属公司擅长领域缺点推荐
大模型
(底座)
DeepSeek-V3深度求索中文理解、代码生成、逻辑推理、性价比极高(API 价格约为 GPT-4 的 1/50)长文本略弱于 Kimi;高峰期偶有拥堵★★★★★
智谱 GLM-4智谱 AI中文理解、Agent 能力(AutoGLM)、企业私有化部署成熟代码能力中上,不及 DeepSeek★★★★
Kimi月之暗面超长文本(200 万字上下文)、合同/标书等长文档分析代码和逻辑推理弱;API 价格较高★★★★
文心一言百度中文知识问答、企业级应用、百度生态集成代码和创作能力弱于 DeepSeek/通义千问★★★
通义千问阿里云中文文档撰写、PPT 大纲、企业级合规、多模态代码能力弱于 DeepSeek★★★★★
Qwen2.5阿里(开源·Apache 2.0)开源大模型、可私有化部署、中文能力优异、社区活跃需自备算力;运维门槛高★★★★★
代码助手
(开发)
Claude CodeAnthropicAgent 式编程、自主任务执行、架构理解需 API Key;上手门槛较高★★★★★
通义灵码阿里云IDE 内嵌(VS Code/JetBrains)、代码补全、中文注释生成、企业版管理Agent 能力弱于 Claude Code★★★★★
CodeBuddy腾讯云代码补全、支持多 IDE、中文 prompt 友好、腾讯生态集成生态略小于通义灵码★★★★
Aider开源(Apache 2.0)命令行 AI 编程助手、支持多模型(可接 DeepSeek/Qwen 等国产模型)、Git 原生集成命令行界面,无 IDE 图形集成;需自行配置模型 API★★★★
文档/方案
(售前&顾问)
讯飞智文科大讯飞AI 一键生成 PPT/Word 文档、方案汇报材料,中文排版优秀深度定制需付费;免费版有次数限制★★★★★
通义千问阿里云长文档生成、方案撰写、大纲规划,直接输出中文结构化文档不直接生成 PPT 排版,需配合讯飞智文★★★★
Slidev开源(MIT)Markdown 转演示文稿、代码高亮、支持 Vue 组件嵌入、开发者友好非 AI 原生(需配合 LLM 生成 Markdown 内容);设计感弱于商业工具★★★★
项目管理
(PM)
飞书 AI字节跳动会议纪要、文档摘要、项目管理集成生态绑定;独立使用功能受限★★★★
钉钉 AI阿里日程管理、会议纪要、审批流程 AI 辅助、宜搭低代码集成AI 分析深度弱于飞书 AI★★★★
Plane开源(Apache 2.0)开源项目管理工具(Jira 替代)、Issue 跟踪、Sprint 管理、可私有化部署不含 AI 功能(需通过 API 自行对接 LLM);中文支持一般★★★★
知识管理
(全员)
Dify开源私有化 AI 应用搭建、RAG 知识库、工作流编排需部署运维;学习曲线中等★★★★★
Cherry Studio开源多模型客户端、本地知识库、零门槛上手、支持所有国产模型单机使用;不支持团队协作★★★★★
MaxKB开源(飞致云)企业级 RAG 知识库、开箱即用、支持私有化部署、国产模型适配好工作流编排能力弱于 Dify★★★★
设计/原型
(顾问)
即时设计即时设计(国产)UI 设计协作、AI 生成原型、Figma 国产替代、中文生态好AI 功能仍在迭代中,成熟度仍在追赶 Figma★★★★
v0.devVercel自然语言生成前端页面/原型仅前端;生成代码质量不稳定★★★
Penpot开源(MPL 2.0)开源设计协作工具(Figma 替代)、支持 SVG/Web 标准、可私有化部署不含 AI 生成功能;设计生态小于 Figma★★★★
+
+ +

私域部署 vs 公网服务:选型建议

+ +
+ + + + + + + + + +
场景推荐方案说明
日常方案撰写、售前材料DeepSeek + 通义千问(公网 API)非敏感材料可用公网服务(国内模型,数据不出境)
客户项目代码开发Claude Code + 通义灵码(企业版)需配置 .gitignore 排除敏感配置;建议通过 API 网关统一管控
客户敏感数据处理Dify 私有部署 + 本地模型涉及客户 PII 或核心业务逻辑时,走私域 RAG
企业内部知识库Dify + DeepSeek API内部最佳实践/模板/方案沉淀为 RAG 知识库
PPT 方案快速生成讯飞智文 + 通义千问中文 PPT 场景,通义千问生成大纲 → 讯飞智文排版
+
+ +
+

💡 工具采购的三级策略

+

轻量级(试点期):DeepSeek API(50元/月/人)+ 通义灵码(免费)+ 飞书 AI → 人均月费约 100 元
+标准级(推广期):DeepSeek API + 通义灵码企业版 + Dify 私有部署 + 讯飞智文 → 人均月费约 350 元
+增强级(规模化):全工具链 + 自建 API 网关 + 企业知识库(RAG)+ 多模型调度 → 人均月费约 600 元

+
+
+ + + + +
+

第三篇:角色 × 工作内容 × AI 工具赋能矩阵

+ +

核心思路:不是"一个工具对应一个角色",而是"一个工具包围绕一个角色赋能"。每个角色拥有 3-5 个 AI 工具的组合,覆盖其核心工作环节。

+ +

3.1 售前顾问 × AI 工具包

+ +
+
表:售前顾问 AI 赋能矩阵
+ + + + + + + + + +
工作环节AI 工具赋能说明效率提升
需求调研DeepSeek / 通义千问输入客户行业+痛点碎片信息 → AI 生成结构化调研提纲、追问清单;现场录音 → AI 自动生成会议纪要和需求要点50-60%
调研总结 & 现状分析DeepSeek + 飞书 AI多源信息(录音/笔记/问卷)→ AI 自动归类、提炼关键词、生成现状分析报告初稿;人工精修而非从零写60-70%
招标文件解读Kimi / DeepSeek上传招标文件 PDF/Word → AI 提取关键条款、评分标准、技术偏离项、风险提示;自动输出"投标需重点关注事项"清单70-80%
投标文件编制DeepSeek + 讯飞智文AI 根据招标要求 + 公司模板库 → 生成技术方案初稿、项目实施计划、团队配置方案;Gamma 自动排版为 PPT 汇报格式50-60%
售前方案汇报讯飞智文 + 通义千问方案文档 → AI 生成汇报 PPT + 演讲备注 + 常见 Q&A 预案;提前输入客户背景 → AI 模拟客户可能提出的刁钻问题50%
+
+ +
+

售前顾问 AI 工具包

+

核心三件套:DeepSeek(深度分析与方案撰写)+ 讯飞智文(PPT 生成)+ 通义千问(中文长文档备选)
+辅助工具:Kimi(长文档分析)+ 飞书 AI(会议纪要)
+关键 Prompt 技能:结构化需求描述、方案对比生成、客户行业术语翻译、Q&A 预演

+
+
+ +
+

3.2 项目经理 × AI 工具包

+ +
+
表:项目经理 AI 赋能矩阵
+ + + + + + + + + +
工作环节AI 工具赋能说明效率提升
项目计划编制DeepSeek输入项目范围 + 团队规模 + 交付物清单 → AI 生成 WBS 分解、里程碑计划、资源需求估算;自动识别关键路径和依赖冲突50-60%
阶段汇报 / 专题汇报DeepSeek + 讯飞智文项目数据(进度/风险/问题)+ 上次汇报纪要 → AI 自动生成本阶段汇报 PPT(含进度对比、风险趋势图、下阶段计划)60-70%
会议纪要 & 待办跟踪飞书 AI / 通义千问会议录音 → AI 自动转写 + 提取决议 + 生成待办事项 + 按负责人分发;下次会议前自动汇总未完成项80%
风险识别 & 问题管理DeepSeek定期输入项目进展数据 → AI 扫描异常模式(连续延期任务、人员过载、需求变更频率),输出风险预警和应对建议40-50%
质量管理DeepSeek + Dify将项目质量检查清单结构化存入 Dify 知识库 → AI 自动对照项目产出物做质量合规性检查,输出偏差报告30-40%
+
+ +
+

项目经理 AI 工具包

+

核心三件套:DeepSeek(计划/报告/风险分析)+ 飞书 AI(会议/待办)+ 讯飞智文(汇报 PPT)
+辅助工具:Dify(项目知识库 + 质量检查清单)
+关键 Prompt 技能:风险识别 Prompt、计划评审 Prompt、多项目资源冲突分析

+
+
+ +
+

3.3 应用顾问 × AI 工具包

+ +
+
表:应用顾问 AI 赋能矩阵
+ + + + + + + + + + + +
工作环节AI 工具赋能说明效率提升
需求调研DeepSeek / 通义千问输入业务领域(如"制造业 MES 生产排程")+ 客户基础信息 → AI 生成行业标准调研提纲、常见痛点清单、该领域最佳实践参考40-50%
蓝图设计DeepSeek输入需求调研输出 → AI 生成业务蓝图框架(含业务流程图描述、功能模块划分、数据流描述);辅助识别跨模块的集成点50-60%
原型设计即时设计 / v0.dev自然语言描述页面结构 → AI 生成交互原型草图;用于需求确认阶段快速对齐客户期望60-70%
接口设计Claude Code / DeepSeek输入系统间数据交互需求 → AI 生成接口规范文档(含字段定义、校验规则、异常处理);自动检查与已有接口的字段一致性50-60%
FS 编制DeepSeek输入蓝图设计 + 原型确认结果 → AI 生成功能规格说明书初稿(含功能描述、业务规则、界面规范、异常流程),人做补充和确认60-70%
数据工作DeepSeek / 通义灵码数据清洗脚本生成、迁移 SQL 自动编写、数据校验规则自动生成;AI 辅助编写数据字典40-50%
上线支持Dify + MaxKB将系统操作手册和常见问题录入 Dify 知识库 → 上线期间顾问和客户可实时查询 AI 获得操作指导;减少重复性答疑50%
+
+ +
+

应用顾问 AI 工具包

+

核心三件套:DeepSeek(蓝图/FS/接口)+ Dify(知识库 + 上线支持)+ 通义千问(中文文档备选)
+辅助工具:即时设计 / v0.dev(原型)+ 讯飞智文(方案汇报)
+关键 Prompt 技能:领域建模 Prompt、蓝图结构化生成、FS 模板驱动生成、数据迁移脚本生成

+
+
+ +
+

3.4 开发顾问 × AI 工具包

+ +
+
表:开发顾问 AI 赋能矩阵
+ + + + + + + + + +
工作环节AI 工具赋能说明效率提升
FS 沟通与理解Claude Code / DeepSeek将 FS 文档输入 AI → AI 自动拆解为开发任务清单、技术实现要点、潜在技术风险标注;帮助开发快速理解业务需求50-60%
前端开发通义灵码 / Claude CodeFS → AI 生成前端页面代码、组件、状态管理、API 对接代码;复杂表单/表格/图表场景尤其适合60-80%
后端开发Claude Code / 通义灵码接口定义 → AI 生成 Controller/Service/DAO 代码 + 单元测试 + 接口文档;复杂业务逻辑需人工审查50-70%
软件测试Claude Code + PlaywrightFS/接口文档 → AI 自动生成测试用例 + 自动化测试脚本;边界条件穷举、异常场景覆盖60-70%
代码审查Claude Code提交 PR → AI 自动审查代码规范、潜在 bug、性能问题、安全漏洞;输出审查意见供人工确认40-50%
+
+ +
+

开发顾问 AI 工具包

+

核心三件套:Claude Code(主力 Agent)+ 通义灵码(日常编码)+ DeepSeek(备选/成本优化)
+辅助工具:CodeBuddy(代码补全备选)+ Playwright(测试自动化)
+关键 Prompt 技能:结构化需求描述、边界条件追问、测试驱动 Prompt、代码审查 Prompt

+
+
+ +
+

3.5 四角色综合矩阵总览

+ +
+
表:四角色 × AI 工具包 × 效率提升总览
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
角色核心 AI 工具包效率提升区间月均工具成本培训难度
🛒 售前顾问DeepSeek + 讯飞智文 + 通义千问50-80%约 150 元中等
📋 项目经理DeepSeek + 飞书 AI + 讯飞智文 + Dify40-80%约 400 元中等
📐 应用顾问DeepSeek + Dify + 通义千问 + 即时设计40-70%约 400 元中高
💻 开发顾问Claude Code + 通义灵码 + DeepSeek50-80%约 350 元中高
+
+ +
+

💡 工具包设计的三个原则

+

1. 双模型冗余:每个角色至少有一个主力模型(DeepSeek)+ 一个备选模型(通义千问/Kimi),避免单点故障
+2. 场景覆盖:每个角色覆盖其工作流中 3-5 个高耗时环节,优先解决"从零写"的场景
+3. 投入产出:开发顾问月成本最高(600 元),但效率提升也最高(80%),ROI 最优;售前顾问 ROI 次之(150 元→50-80% 效率提升)

+
+
+ + + + +
+

第四篇:培训方案 — 三阶体系

+ +

培训不是"开一次课"能解决的。需要在三个层级上递进推进:先让全员会用(入门),再让各角色用好(中级),最后培养内部 AI Champion(进阶魔鬼)。

+ +

培训三阶架构

+ +
+
+
L1
+
入门系列
全员覆盖 · 2 周
+
+
+
L2
+
中级系列
分角色 · 4 周
+
+
+
L3
+
进阶魔鬼系列
AI Champion · 持续
+
+
+ +
+
表:三阶培训体系总览
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
阶段时长对象目标内容要点考核方式通过标准
入门2 周全员每个人都会用 AI 辅助日常工作工具安装、基础 Prompt、安全意识、场景演示实操考试通过率 ≥ 90%
中级4 周按角色分班每个角色掌握专属 AI 工具包角色化案例、实战演练、Prompt 进阶、工具组合实战项目效率提升可量化 >30%
进阶持续Champion 候选培养内部 AI 推广者和工作流设计者工作流设计、RAG 搭建、Agent 编排、Prompt 工程深度内部认证能独立设计 AI 工作流并指导他人
+
+
+ +
+

4.1 入门系列课程(全员 · 2 周)

+ +
+
表:入门课程大纲(Week 1-2)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
课时课程名称内容练习说明
1AI 来了:工具由来与概览大模型简史、LLM 工作原理通俗解释、AI 能做什么不能做什么、工具生态概览(2h)注册账号、安装 2 个工具激发兴趣,消除恐惧。重点:AI 不是魔法,是可预测的工具
2Prompt 入门:怎么跟 AI 说话Prompt 基本结构、角色设定、上下文提供、分步骤指令、常见错误(2h)5 个基础场景练习核心技能。讲透"垃圾进垃圾出",配套 Prompt 模板
3AI 安全红线数据分类(公开/内部/机密/绝密)、哪些不能发 AI、客户数据脱敏实操、公司 AI 使用政策(1.5h)数据分级练习必修课,强制通过。安全事故零容忍
4场景演示:AI 在各角色的日常现场 Demo:售前写方案、PM 写周报、应用顾问写 FS、开发写代码(2h)角色分组练习用真实案例,不要通用 demo。让每个人看到"AI 在我自己的活上能干什么"
5综合实操考试给出一个模拟工作任务 → 学员用 AI 工具完成 → 评分维度:效率、质量、安全合规(2h)通过线:能在合理时间内用 AI 产出及格质量的成果
+
+ +
+

入门阶段关键原则

+

第一个工具必须是 Cherry Studio 或类似零门槛工具——不要一上来就教 Claude Code CLI,会把非技术人员吓退
+• 安全课必须在第一周上——不要等出了事故再补
+• Demo 必须用本公司真实业务场景——通用 demo 没有说服力

+
+
+ +
+

4.2 中级系列课程(按角色 · 4 周)

+ +
+
表:中级课程 — 售前顾问班(Week 3-6,每周 2 次 × 2h)
+ + + + + + + + +
课程内容与实战
W3AI 辅助需求调研与标书解读用真实历史项目的调研材料演练:录音→纪要→需求要点→结构化提纲。用真实招标文件演练:上传→AI 提取→风险标注→编制建议
W4AI 辅助方案编制与 PPT 生成DeepSeek 生成方案初稿→人工精修→讯飞智文转为汇报 PPT。含方案结构设计 Prompt 模板、行业术语库使用
W5方案汇报演练 + AI 模拟客户方案→AI 生成汇报 PPT+演讲备注+20 个客户可能问的问题。角色扮演:AI 模拟客户提问,学员现场应答
W6实战考试给定一个模拟招标项目(全新行业),限时 4h 完成:标书解读 + 方案初稿 + 汇报 PPT + Q&A 预案。评分:完整度、专业度、效率对比基线
+
+ +
+
表:中级课程 — 项目经理班(Week 3-6)
+ + + + + + + + +
课程内容与实战
W3AI 辅助项目计划与 WBS用真实项目范围说明书演练:→WBS→里程碑→资源估算→关键路径。含甘特图 Prompt 模板
W4AI 辅助阶段汇报与风险管理用历史项目数据:→阶段汇报 PPT + 风险趋势分析 + 应对建议。含飞书 AI 会议纪要→待办分发全流程
W5Dify 知识库搭建(项目级)将项目质量检查清单、历史问题库、常见风险库导入 Dify → 搭建项目级 AI 问答知识库
W6实战考试给定模拟项目状态数据 → 限时 3h 完成:阶段汇报 PPT + 风险预警报告 + 下阶段计划。评分:准确性、完整度、预警合理性
+
+ +
+
表:中级课程 — 应用顾问班(Week 3-6)
+ + + + + + + + +
课程内容与实战
W3AI 辅助蓝图设计与 FS 编制真实需求文档→AI 生成蓝图框架→FS 初稿。含行业领域知识 Prompt 模板(制造业/供应链/财务)
W4AI 辅助接口设计与原型接口规范自动生成 + v0.dev 原型快速产出。含接口一致性校验 Prompt
W5Dify 知识库搭建(顾问级)将 FS 模板、接口规范模板、行业解决方案模板导入 Dify → 搭建顾问专属知识库
W6实战考试给定模拟需求 → 限时 6h 完成:调研提纲 + 蓝图框架 + FS 初稿 + 接口规范 + 原型草图。评分:完整度、专业深度
+
+ +
+
表:中级课程 — 开发顾问班(Week 3-6)
+ + + + + + + + +
课程内容与实战
W3Claude Code 深度使用CLI 工作流、多文件编辑、Agent 模式、自定义 Rules、Session 管理。含常用 CLI 命令速查
W4通义灵码 + AI 测试通义灵码多文件重构、AI 生成单元测试 + 集成测试 + Playwright E2E。含测试驱动 Prompt 模板
W5FS→代码 全流程实战真实 FS 文档→AI 拆解任务→前后端代码生成→测试→审查。含代码审查 Prompt 模板
W6实战考试给定 FS → 限时 6h 完成:任务拆解 + 代码实现 + 测试 + 文档。评分:代码质量、测试覆盖率、AI 生成代码存活率
+
+
+ +
+

4.3 进阶魔鬼系列(AI Champion · 持续进行)

+ +
+
表:进阶魔鬼课程大纲
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
模块课程内容选拔条件
M1Prompt 工程深度Chain-of-Thought、Few-shot、System Prompt 设计、多轮对话策略、Prompt 版本管理与 A/B 测试中级考试排名前 20%
M2RAG 与知识库架构Dify 高级工作流、向量数据库选型、Embedding 策略、文档切分策略、RAG 评估指标中级考试排名前 20%
M3AI Agent 开发与编排Multi-Agent 协作模式、Agent 工作流设计、Tool Use 开发、人机协作界面设计M1+M2 完成后
M4AI 工作流设计(师带徒)为 1 个真实项目设计端到端 AI 工作流 → 实施 → 测量 → 优化。导师 1v1 辅导,产出可复用的工作流模板M1-M3 全部完成
+
+ +
+

AI Champion 的角色定义

+

每个团队 1-2 名 Champion,兼职(约 20% 时间投入)。职责:① 团队 AI 工具的日常技术支持和答疑 ② 新工具/新方法的试用和推广 ③ 收集团队反馈,驱动培训内容更新 ④ 沉淀团队的 AI 使用最佳实践。Champion 不是"多干活",而是获得职业发展的新路径——需要在薪酬/晋升体系中明确体现。

+
+
+ +
+

4.4 培训执行与反馈闭环

+ +
+培训执行全流程: + +第 1 步:训前摸底 +├── 全员 AI 使用现状问卷(谁在用、用什么、用在哪、遇到什么困难) +├── 按角色分组,识别"先行者"和"观望者" +└── 输出:现状基线报告 + +第 2 步:分层开班 +├── 入门课程:全员必修,按角色混合编班(促进跨角色交流) +├── 中级课程:按角色分班,每班 ≤15 人 +└── 进阶课程:Champion 候选,小班 ≤8 人 + +第 3 步:实战考核 +├── 入门:实操考试(通过率目标 ≥90%) +├── 中级:实战项目 + 效率对比基线 +└── 进阶:工作流设计 + 内部认证 + +第 4 步:反馈收集与迭代 +├── 每期培训后 48h 内收集 NPS 评分 + 开放反馈 +├── 月度 AI 使用数据跟踪(采纳率、效率提升、满意度) +├── 按反馈开设"追加深造课"(高频痛点、新工具尝鲜) +└── 季度更新培训内容(工具迭代快,课程需同步刷新) + +第 5 步:考核结果应用 +├── 入门通过 → 解锁公司 AI 工具采购资格 +├── 中级通过 → 纳入岗位 AI 能力认证,影响绩效系数 +├── 进阶通过 → AI Champion 正式任命 + 专项津贴 +└── 排名公示(激发良性竞争)+ 优秀案例全公司分享 +
+ +
+

⚠️ 执行中的关键注意事项

+

不要在第一期就考核效率提升——学习曲线初期效率反而下降,过早考核会引发抵触
+• 高管必须全程参加入门课程——管理层的以身作则是消除"这是给下面人加的活"疑虑的最有效方式
+• 反馈必须闭环——学员提出的问题如果在 2 周内没有回应,信任会迅速瓦解
+• 排名要谨慎——公开排名激励先行者但打击后进者,建议只公示 Top 10%,不公示末尾

+
+
+ + + + +
+

第五篇:AI 时代方法论进化

+ +

当培训有了效果(入门通过率>90%、中级效率提升可量化>30%),现有方法论就需要进化。这不是推翻重来,而是在现有方法论框架中嵌入 AI 增强节点

+ +

5.1 售前方法论:AI 增强版

+ +
+
表:传统售前流程 vs AI 增强售前流程
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
阶段传统做法AI 增强做法变化
商机识别人工盯招标网、行业群消息AI 自动抓取+筛选+评分招标信息,按匹配度排序推送给售前从"找"变"筛"
需求调研现场访谈+手动记录+事后整理AI 生成调研提纲→录音自动转写→AI 提取要点→AI 生成调研报告初稿从"写"变"审"
方案编制从零写或参考历史方案改写AI 基于标书+公司模板库+行业知识库→生成方案初稿→人精修→AI 排版从"写"变"改"
方案评审召集专家会,逐一过方案AI 先行审查(合规性、完整性、评分点覆盖)→人聚焦策略性判断评审时间减半
方案汇报PPT + 口头汇报,QA 靠经验AI 生成汇报 PPT+演讲备注+常见 QA 预案→AI 模拟客户刁钻问题演练准备度提升
合同洽谈人工审合同,靠经验识别风险AI 辅助合同审查:关键条款对比、风险标注、历史类似合同条款参考风险遗漏减少
+
+ +
+

新方法论的核心原则

+

"AI 出初稿,人做精修"——售前顾问的价值从"写方案"升级为"判断方案策略是否正确、行业理解是否到位"。
+"AI 先审查,人做决策"——把规则性检查交给 AI,释放人的精力去做策略性判断。

+
+
+ +
+

5.2 交付方法论:AI 增强版

+ +
+
表:传统交付流程 vs AI 增强交付流程
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
阶段传统做法AI 增强做法变化
项目启动PM 手动编制计划、WBS、资源分配AI 基于范围说明书→自动生成 WBS+里程碑+甘特图→PM 审核调整计划编制 50%↓
蓝图设计顾问手写蓝图文档、FS、接口规范AI 生成蓝图框架+FS 初稿+接口规范初稿→顾问精修和补充业务逻辑文档编制 60%↓
开发实现开发看 FS → 编码 → 自测 → 提交AI 拆解 FS→生成代码+测试→开发审查→AI 代码审查→提交编码时间 50-80%↓
测试验证测试工程师手写用例+手动/自动化测试AI 基于 FS→自动生成测试用例+自动化脚本→测试工程师补充边界场景测试用例编写 60%↓
上线支持顾问现场支持+重复回答用户问题操作手册→Dify 知识库→AI 实时答疑(客户方也可查询)重复答疑 80%↓
进度/风险管理PM 手动收集数据+编制周报+人工识别风险AI 自动采集项目数据→生成周报+风险预警→PM 聚焦异常处理管理报表 70%↓
项目复盘项目结束后人工整理经验教训AI 分析全过程数据→自动生成项目复盘报告(含数据趋势、决策回顾、改进建议)复盘效率 50%↑
+
+ +

方法论进化的关键文档产出

+ +
+ + + + + + + + + +
文档名称内容责任人
AI 增强售前方法论 V1.0六阶段 AI 增强流程 + 每阶段 Prompt 模板库 + 方案质量检查清单(AI版)售前负责人
AI 增强交付方法论 V1.0七阶段 AI 增强流程 + 每阶段角色/AI 分工表 + 交付质量检查清单(AI 版)交付负责人
角色 AI 工具包手册四个角色的 AI 工具包详细使用手册(安装→配置→场景→Prompt→常见问题)AI Champion 团队
Prompt 模板库按角色+场景分类的 Prompt 模板集合(持续更新),含效果评分全员贡献
AI 使用案例集内部实战案例(真实项目、真实数据、对比效果),每季度更新PMO + AI 负责人
+
+
+ +
+

5.3 试点项目计划

+ +
+

试点选择标准

+

2 个项目 作为 AI 增强方法论试点:
+项目 A:新签项目,规模中等(3-6 个月,3-5 人),业务复杂度适中,客户关系好、容忍度高。从 Day 1 就按 AI 增强方法论执行
+项目 B:已进行中的项目,选择 1-2 个痛点最突出的环节(如 FS 编制慢、测试覆盖不足)做 AI 增强试点,其他环节保持传统做法做对照组

+
+ +
+
表:试点项目数据采集计划
+ + + + + + + + + +
采集指标基线(试点前)目标(试点后)采集方式
方案/文档编制时间历史同类项目均值减少 40%+工时记录 + AI 工具使用日志
代码生产效率历史人均代码产出提升 50%+Git 统计 + AI 代码生成率
缺陷密度历史项目均值不高于基线(质量不能下降)Bug 追踪系统
客户满意度历史项目 NPS不低于基线客户满意度调查
团队满意度NPS ≥ 50匿名问卷
+
+ +
+

⚠️ 试点纪律

+

• 试点前必须做基线测量——没有对比数据的试点没有说服力
+• 试点期间每周收集反馈,2 周一迭代
+• 试点结束输出量化对比报告(不是感觉,是数据)
+• 试点失败也是成果——知道"什么情况下 AI 增强不适用"同样有价值

+
+
+ + + + +
+

第六篇:手把手实施服务包

+ +

这是诉求 5 的落地:将已在实战中验证的 AI 工具方案包,提供"培训 + 安装 + 陪跑"的端到端服务。

+ +

服务包清单

+ +
+
表:手把手实施服务项目
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
序号服务项具体内容交付物周期
1工具安装与配置为每位员工安装 AI 工具包(按角色),包括账号开通、API Key 配置、IDE 插件安装、网络/代理配置工具安装清单 + 配置手册1 周
2企业知识库搭建Dify 私有部署 + 导入公司现有文档(方案模板/FS 模板/技术规范/行业知识)→ 搭建企业级 RAG 知识库可用的知识库系统 + 导入指南2 周
3API 网关配置搭建统一的 AI API 网关(如 One API),统一管理多模型调用、审计日志、成本核算、速率限制API 网关 + 管理后台1 周
4个人知识库辅导1v1 辅导每位员工建立个人 AI 记忆/知识库(Claude Code Memory、Cherry Studio 本地知识库),让每个人的 AI 工具"认识他"每人一个可用的个人知识库2 周
5工作流技术支持培训后 4 周的陪跑支持:工作过程中遇到 AI 工具使用问题随时解答、优化 Prompt、调整工具配置问题跟踪表 + 优化报告4 周
6工具调优与升级基于陪跑期的实际使用数据,优化工具组合、Prompt 模板、知识库结构;跟进工具版本更新调优建议报告 + 更新版工具包持续
+
+ +
+

实施服务的原则

+

不追求一步到位:先让工具"能用"(第 1-2 周),再让工具"好用"(第 3-6 周),最后让工具"离不开"(持续优化)
+不替代内部能力:服务的目的是赋能和教会,不是建立对外部顾问的依赖。每个服务项都有"交接清单"——结束后内部可独立运维
+按需裁剪:不是所有团队都需要全部 6 项。根据角色和现状选择最低必要服务包

+
+
+ + + + +
+

第七篇:12 周分阶段推进计划

+ +

将以上所有内容整合为一个可执行的12 周推进计划,与 AI 成熟度模型的跃迁路径对齐。

+ +

12 周甘特图(阶段划分)

+ +
+
表:12 周 AI 赋能落地推进计划
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
阶段时间主线关键动作里程碑
P0W0
准备
现状摸底全员问卷 · 工具选型决策 · 采购 · 培训材料准备 · API 网关部署基线报告 + 工具就位
P1W1-W2
入门
人人会用全员入门培训(5 课时)· 工具安装 · 安全考核 · 实操考试
同步:企业知识库首批文档导入
入门通过率 ≥ 90%
P2W3-W6
中级
角色赋能四角色中级培训(每班 4 周 × 2 次/周)· 实战考试
同步:个人知识库辅导 · 陪跑技术支持启动
中级通过率 ≥ 80%
效率提升基线对比
P3W7-W8
沉淀
知识固化Prompt 模板库 V1 · AI 工具包手册 V1 · AI 使用案例集 V1 · 方法论初稿
同步:AI Champion 选拔(从中级 Top 20% 中选出)
知识库上线 + Champion 就位
P4W9-W10
试点
方法论验证选 2 个项目试点 AI 增强方法论 · 数据采集 · 每周反馈迭代
同步:进阶魔鬼课程启动(Champion 班)
试点数据报告(中期)
P5W11-W12
推广
规模化试点总结 · 方法论 V1.0 发布 · AI 工具包标准化 · 全公司推广启动
同步:Champion 认证 · 持续优化机制建立
方法论发布 +
L2 成熟度达成
+
+
+ +
+

7.1 与 AI 成熟度模型的对接

+ +
+ + + + + + + + + + + + + + + + + + + + + + +
成熟度阶段对应计划阶段达成标志继续推进条件
L1 萌芽期P0 前 → P1 入门全员会用 AI 工具 · 安全考核通过入门通过率 ≥ 90%
L2 规范期P2 中级 + P3 沉淀统一工具链 · 培训体系 · 知识库 · 度量体系中级通过率 ≥ 80% + AI 采纳率 > 60%
L2.5 增强期P3 沉淀 + P4 试点方法论 V1.0 · AI Champion · 试点数据报告 · AI 增强 Dashboard2 个试点项目数据达标
+
+ +

投入估算

+ +
+
+
12 周
+
总周期
+
+
+
约 10-15 万
+
工具采购(按 50 人)
含 API 费用+License
+
+
+
约 5-8 万
+
培训实施成本
含师资+材料+考试
+
+
+
1-2 人
+
内部投入
AI 负责人 + 兼职 Champion
+
+
+ +
+

预期 ROI(12 周后)

+

• 售前方案编制效率提升 50%+(年节省约 2000+ 人时)
+• 开发编码效率提升 50-80%(年节省约 5000+ 人时)
+• FS/蓝图编制效率提升 60%+(年节省约 1500+ 人时)
+• 项目汇报/周报效率提升 70%+(年节省约 800+ 人时)
+共计年化节省 约 10,000+ 人时,按 50 人团队规模,相当于多出 5-6 个全职等效产出

+
+ +
+

💡 一句话总结

+

这个培训方案的核心逻辑:先让每个人用起来(L1)→ 让每个角色用得好(L2)→ 把能力固化为方法论(L2.5)→ 把方法论做成对外服务(价值外溢)。最好的 AI 服务商,首先是 AI 用得最好的服务商。

+
+
+ + + +
+ + + + + + \ No newline at end of file diff --git a/金鹿商城电商小程序需求分析/报告/jinlu-deer-mall-requirements-analysis.html b/金鹿商城电商小程序需求分析/报告/jinlu-deer-mall-requirements-analysis.html index d919ec4..09d1a78 100644 --- a/金鹿商城电商小程序需求分析/报告/jinlu-deer-mall-requirements-analysis.html +++ b/金鹿商城电商小程序需求分析/报告/jinlu-deer-mall-requirements-analysis.html @@ -178,6 +178,7 @@ code {
+ ← 返回知识库

金鹿商城电商小程序 — 需求分析与差异对比报告

基于 CRMEB 现有功能的增量开发评估