skill.md 67 KB

数字员工 (Lobster Engine) 完整技术手册

最后更新:2026-06-07 涵盖:架构设计 / 模块清单 / 双端 UI / 节点能力 / 企微发送 / 自进化&学习闭环 / 响应延迟优化 / API / 剩余差距


一、架构总览

┌──────────────────────────────────────────────────────────────┐
│              saasui (租户端30页) / saasadminui (平台端32页)    │
│  Vue 2 + Element UI — 工作流/进化/学习/A-B/看板/渠道/测试      │
└──────────────────────────┬───────────────────────────────────┘
                           │ HTTP REST
┌──────────────────────────▼───────────────────────────────────┐
│  LobsterEngineController / LobsterAdminController /            │
│  LobsterOptimizationController / PayCallbackController         │
└──────────────────────────┬───────────────────────────────────┘
                           │
┌──────────────────────────▼───────────────────────────────────┐
│                    数字员工核心 (fs-service)                    │
│                                                               │
│  ┌─────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │
│  │进化引擎  │ │学习引擎  │ │A/B测试   │ │质量评分 8维度    │ │
│  │Evolution │ │Learning  │ │Feedback  │ │160分+重生成      │ │
│  │+Skill合成│ │+Replay   │ │+自动胜出 │ │                  │ │
│  └────┬─────┘ └────┬─────┘ └────┬─────┘ └────────┬─────────┘ │
│       │             │            │                 │           │
│  ┌────▼─────────────▼────────────▼─────────────────▼─────────┐│
│  │         ContextAssembler (9维上下文 + 租户学习策略注入)      ││
│  │  画像+摘要+多轮+知识库+变量+合规+事实记忆+断点续聊+学习策略   ││
│  └──────────────────────────┬───────────────────────────────┘│
│                             │                                 │
│  ┌──────────────────────────▼───────────────────────────────┐│
│  │     DynamicNodeExecutor (38节点类型, 注册表全部 FULL)      ││
│  └──────────────────────────┬───────────────────────────────┘│
│                             │                                 │
│  ┌──────────────────────────▼───────────────────────────────┐│
│  │          MultiModelRouter → AiSceneDispatcher             ││
│  │          AiModelGateway (豆包/千问/元宝/DeepSeek)          ││
│  └──────────────────────────────────────────────────────────┘│
│                                                               │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │
│  │16 Message│ │13 Contact│ │智能API   │ │支付链路           │ │
│  │Channel   │ │Adapter   │ │ScriptCache│ │PayService+Router │ │
│  └──────────┘ └──────────┘ └──────────┘ └──────────────────┘ │
└───────────────────────────────────────────────────────────────┘

二、完整模块清单(按目录)

2.1 核心执行层 (workflow/impl/)

文件 职责
LobsterWorkflowExecutorImpl.java 工作流主执行器 + enrichQwExtra() 企微会话预填 + 学习样本回写
DynamicNodeExecutorImpl.java 38节点类型路由:支付/关怀/标签/调查/画像/复购/SOP/CID/物流等
LobsterEvolutionEngineImpl.java 进化决策:12步流程 → AI生成 → 8维160分评分 → 合规/敏感词/身份隐藏;延迟策略 + 分环节耗时 + 后置异步
ContextAssemblerImpl.java 9维上下文聚合 + ParallelExecutor 并行加载 + 租户学习策略注入
QualityScoringServiceImpl.java 8维度160分评分 + LobsterLatencyPolicy 快路径(规则分/跳过重生成)
MultiModelWorkflowGeneratorImpl.java AI工作流生成:自然语言 → 完整节点JSON → 三阶段流水线(生成/改进/验证)
ConditionEvaluatorImpl.java 判断节点:10+操作符(eq/ne/gt/lt/contains/in/between/notNull/empty/regex)
VariableStoreImpl.java 变量持久化:内存+DB双写,模板渲染
SummaryGeneratorImpl.java 对话摘要:异步触发,5分钟间隔防频繁
MultiTurnDialogueManagerImpl.java 多轮对话:追问/收集/完成/跳转
PromptManagerImpl.java Prompt三级优先级:节点级 → 租户全局 → Fallback
SensitiveWordServiceImpl.java 敏感词:精确+正则+DB三级匹配
ComplianceServiceImpl.java 合规过滤:severity≥2替换,≥3转人工
SemanticTakeoverDetectorImpl.java 语义转人工:6类危险意图检测
DuplicateReplyDetector.java 消息去重:精确(5条)+语义(2-gram Jaccard>70%)
ToolCallFrameworkImpl.java 工具调用框架:订单查询/短信/日志
LobsterE2eTestServiceImpl.java E2E测试管理
LobsterTestScenarioServiceImpl.java 测试场景管理
LobsterNodeTypeServiceImpl.java 节点类型管理(DB驱动)
LobsterModelConfigServiceImpl.java 模型配置管理
LobsterPromptServiceImpl.java Prompt模板CRUD
LobsterSalesCorpusServiceImpl.java 销售语料分析
LobsterBillingServiceImpl.java 计费服务
LobsterEventAuditServiceImpl.java 事件审计
DynamicNodeImplServiceImpl.java 动态节点实现管理
DynamicNodeAdjusterImpl.java 动态节点调整
PendingAuditKnowledgeServiceImpl.java 待审核知识管理
FactDecayScheduler.java 事实记忆衰减调度

2.2 进化引擎 (workflow/evolution/)

文件 职责
EvolutionEngine.java 接口:recordInteraction / analyzeAndSuggest / applySuggestion / getEvolutionMetrics
EvolutionEngineImpl.java 低效节点识别(按不回复率排序) → AI分析 → 建议落库 → 可选自动应用
UserNodeOptimizer.java 接口:用户级节点优化(千人千面,区别于全局 EvolutionEngine)
UserNodeOptimizerImpl.java 实现:千人千面优化 → 自动/审核双模式 → 批量审核
EvolutionSchedulerImpl.java @Scheduled 每30分钟进化+联动触发学习 + 凌晨2点A/B扫查

2.3 学习引擎 (workflow/learning/)

文件 职责
TenantLearningEngine.java 接口:recordEvent / recordEvolutionInteraction / triggerLearningCycle / recommendStrategies / applyLearningResult
TenantLearningEngineImpl.java 4维度分析 + ReplayBuffer + AI Skill合成 + 策略注入Context + Patch审核落盘
SalesCorpusAnalyzer.java 销冠语料分析 → ingestCorpusKnowledge 喂给学习引擎
DistributedLearningService.java 分布式学习接口
DistributedLearningServiceImpl.java 跨租户模式共享 + 行业最佳实践库 + 高置信模式自动贡献

2.4 反馈进化/A-B测试 (workflow/feedback/)

文件 职责
FeedbackDrivenEvolution.java 接口:recordFeedback / analyzeFeedback / A-B测试
FeedbackDrivenEvolutionImpl.java 实现:反馈统计 → 自动生成A/B变体 + 分流(DB可配比例) + sample_count追踪 + 胜出自动应用

2.5 消息渠道 (workflow/channel/)

文件 状态 说明
MessageChannel.java 接口 sendMessage / isAvailable / supports(大小写不敏感)
MessageChannelRouter.java 路由器 自动发现 + channelType 大小写不敏感路由
QwMessageChannel.java Hook(IQwMsgService.sendMsg) → iPad(WxWorkService) → addAiMsg → legacy Socket
WxMessageChannel.java 微信客服
ImMessageChannel.java APP内IM(OpenIMService)
SmsMessageChannel.java 短信通道(MessageChannel 统一路由)
EmailMessageChannel.java ⚠️ 邮件通道(可配置 email_send API 真实发信)
WhatsAppMessageChannel.java WhatsApp API
TmallMessageChannel.java 千牛API
JdMessageChannel.java 京东开放平台
DouyinDmMessageChannel.java 抖音私信API
DouyinEcMessageChannel.java 抖音电商API
XiaohongshuDmMessageChannel.java 小红书API
KuaishouDmMessageChannel.java 快手API
LineMessageChannel.java Line API
TelegramMessageChannel.java Telegram API
AppImMessageChannel.java APP私信

2.6 联系人适配 (workflow/contact/)

文件 状态
ContactAdapter.java 接口
ContactAdapterRouter.java 路由器
Wx/Qw/Im/WhatsApp/Tmall/Jd/DouyinDm/DouyinEc/Xiaohongshu/Kuaishou/Line/Telegram/AppIm ✅ 全部对接 ChannelTypeRegistry + DB查询

2.7 外部数据 (workflow/data/)

文件 职责
ExternalDataProvider.java 插拔接口:getSourceType() + fetch(params)
ExternalDataRouter.java 自动发现所有 Provider
WeatherDataProvider.java 天气:高德/和风API → 真实解析
HolidayDataProvider.java 节假日:2025-2026法定节假日内置

2.8 智能API调用 (workflow/api/)

文件 职责
ApiRegistryService.java API注册中心:MyBatis化 + priority排序 + 备份降级
SmartApiCallNodeExecutor.java AI语义匹配API → 提取参数 → REST调用 → 脚本解析
ScriptCache.java SpEL脚本编译缓存(零依赖,ConcurrentHashMap)

2.9 支付 (workflow/pay/)

文件 职责
PayProvider.java 插拔支付接口
PayRouter.java 自动发现所有 PayProvider
WechatPayProvider.java 微信支付实现
PayService.java 订单生命周期:创建→UUID订单号→支付链接→状态查询

2.10 监控看板 (workflow/monitor/)

文件 职责
DashboardService.java 8项指标:24h实例/7d消息/进化/知识库排行/转换漏斗/渠道分布/死信/心跳

2.11 消息推送 (workflow/push/)

文件 职责
MessagePushService.java 统一推送入口:用户级+公司级+在线计数

2.12 辅助模块

目录 职责
workflow/heartbeat/ HeartbeatScheduler:@Scheduled每5分钟心跳 + 每15分钟清理
workflow/expression/ ExpressionEngine:SpEL布尔/对象求值,判断节点核心
workflow/prompt/ SystemPromptService:4级优先级(company+industry→company→industry→default)
workflow/dedup/ MessageDedupService:精确+语义去重
workflow/queue/ DeadLetterQueue:死信入队/重试/删除 + DistributedDelayQueue
workflow/semantic/ SemanticAnalyzer:意图分类+实体提取+租户关键词缓存
workflow/vector/ VectorPatternMatcher:向量嵌入存储+检索
workflow/handoff/ HumanHandoffDetector:人工接管检测+记录
workflow/identity/ IdentityHidingService:身份隐藏
workflow/knowledge/ KnowledgeVersionManager:知识版本管理+回滚
workflow/personalization/ PersonalizationEngine + UserSegmentService:千人千面+用户分群
workflow/performance/ LobsterLatencyPolicy + LobsterContextCacheService + ParallelExecutor
workflow/cache/ LobsterContextCacheService — 上下文 Redis 缓存层
workflow/scheduler/ WorkflowTriggerScheduler + WorkflowTaskExecutor:定时触发+任务执行

2.13 节点能力注册 (workflow/capability/)

文件 职责
LobsterNodeCapabilityRegistry.java 38种节点类型注册表,当前 38/38 FULL
LobsterEngineController.java /workflow/lobster/engine/integration-test 集成自测端点

节点类型概览(节选)

type code 说明
1 start 开始
2 message 消息(支持进化)
3 judgment 条件判断
7 order_success 成单支付
30 qw_message 企微消息(channelType=QW)
33 ai_chat AI对话(支持进化)
34 sms_message 短信
35 email_message 邮件
43 sub_workflow 子工作流
50 sop_execute SOP执行
100 external_api 外部API

完整列表见 LobsterNodeCapabilityRegistry.java

2.14 单元测试 (fs-service/src/test/)

文件 覆盖
LobsterNodeCapabilityRegistryTest.java 38节点注册完整性
DynamicNodeExecutorImplTest.java 动态节点执行器路由

三、文件架构一览

fs-service/src/main/java/com/fs/company/
├── controller/
│   ├── LobsterAdminController.java      # 12端点:进化/优化/A-B/学习/看板/支付
│   └── PayCallbackController.java        # 2端点:微信/支付宝异步通知
├── mapper/
│   ├── LobsterAuxiliaryMapper.java       # 15张辅助表统一Mapper
│   ├── LobsterEvolutionConfigMapper.java # 进化日志+建议+节点6张表
│   ├── LobsterTenantLearningMapper.java  # 学习事件+模式+语料9张表
│   ├── LobsterToolCallMapper.java        # 工具调用3张表
│   ├── LobsterApiRegistryMapper.java     # API注册表
│   ├── LobsterFeedbackMapper.java        # 反馈+A/B测试表
│   ├── LobsterChannelPluginConfigMapper.java # 渠道插件配置
│   ├── LobsterChannelRegistryMapper.java # 渠道类型注册
│   ├── LobsterChatSessionMapper.java     # 会话表
│   ├── LobsterChatRecordMapper.java      # 聊天记录表
│   ├── LobsterChatMsgMapper.java         # 聊天消息表
│   ├── LobsterComplianceAuditMapper.java # 合规审计表
│   ├── LobsterComplianceRuleMapper.java  # 合规规则表
│   ├── LobsterConversationSummaryMapper.java # 对话摘要表
│   ├── LobsterDedupConfigMapper.java     # 去重配置表
│   ├── LobsterDialogueStateMapper.java   # 对话状态表
│   ├── LobsterEventAuditMapper.java      # 事件审计表
│   ├── LobsterHandoffEventMapper.java    # 转人工事件表
│   ├── LobsterKnowledgeUsageLogMapper.java # 知识使用日志表
│   ├── LobsterLearningCorpusMapper.java  # 学习语料表
│   ├── LobsterModelConfigMapper.java     # 模型配置表
│   ├── LobsterMultiTurnDialogueMapper.java # 多轮对话表
│   ├── LobsterNodeExecutionLogMapper.java # 节点执行日志表
│   ├── LobsterPendingKnowledgeMapper.java # 待审核知识表
│   ├── LobsterProfileConfigMapper.java   # 画像配置表
│   ├── LobsterSalesCorpusMapper.java     # 销售语料表
│   ├── LobsterSegmentMapper.java         # 用户分群表
│   ├── LobsterSensitiveWordMapper.java   # 敏感词表
│   ├── LobsterSmartApiMapper.java        # 智能API表
│   ├── LobsterSummaryConfigMapper.java   # 摘要配置表
│   ├── LobsterSystemPromptMapper.java    # 系统提示词表
│   ├── LobsterTokenConsumptionMapper.java # Token消耗表
│   ├── LobsterUserPreferenceMapper.java  # 用户偏好表
│   ├── LobsterUserProfileMapper.java     # 用户画像表
│   ├── LobsterWorkflowInstanceMapper.java # 工作流实例表
│   ├── LobsterWorkflowNodeTypeMapper.java # 节点类型表
│   ├── LobsterWorkflowVariableMapper.java # 工作流变量表
│   ├── ProfileEnrichmentMapper.java      # 画像增强表
│   ├── CustomerFactMapper.java           # 客户事实表
│   ├── CustomerHabitMapper.java          # 客户习惯表
│   ├── WhatsAppContactMapper.java        # WhatsApp联系人表
│   └── LobsterBillingMapper.java         # 计费表
└── service/workflow/ (见第二章目录树)

resources/mapper/lobster/
├── LobsterAuxiliaryMapper.xml            # 15表SQL
├── LobsterEvolutionConfigMapper.xml      # 6表SQL
├── LobsterTenantLearningMapper.xml       # 9表SQL
├── LobsterToolCallMapper.xml             # 3表SQL
├── ...共29个XML
└── ➕ 全部使用 MyBatis ${sql} 或 #{param}(JdbcTemplate 已清零)

sql/
├── lobster_tables_ddl.sql                # 17张DDL
├── lobster_workflow_engine.sql           # 引擎核心表
├── lobster_evolution_engine.sql          # 进化表
├── ...
└── lobster_company_menu_init.sql         # 菜单初始化

四、前端菜单结构(saasui / saasadminui)

4.1 saasui(租户端 — 30 个 lobster 页面)

路由 页面 说明
/company/workflowLobster 工作流主入口 AI生成 + 模板管理(主菜单)
/lobster/workflow-canvas 画布编辑 拖拽节点
/lobster/workflow-generate AI生成工作流 NL → JSON
/lobster/chat-test 模拟聊天测试 全流程/逐节点
/lobster/instance 实例监控 暂停/恢复/终止
/lobster/optimization AI优化审核 批量通过/驳回
/lobster/evolution AI进化引擎 指标/分析/应用建议
/lobster/learning-results 学习结果 触发学习/应用模式
/lobster/ab-test A/B测试 变体对比/应用胜出
/lobster/dashboard 引擎看板 漏斗/渠道/死信
/lobster/node-capabilities 节点能力矩阵 38节点成熟度
/lobster/integration-test 集成测试 全量/节点/执行器
/lobster/channel-config 渠道配置 16通道状态
/lobster/model-route 多模型路由 场景模型链
/lobster/prompt / template / sales-corpus / api-registry 资源管理 提示词/模板/语料/API
/lobster/dead-letter / event-audit / dynamic-impl 运维审核 死信/事件/动态节点
/lobster/profile-config / summary-config / dedup-config / sensitive-words 引擎配置 画像/摘要/去重/敏感词
/lobster/chat-aggregate / pay-manage / quality-verify / e2e-history / test-scenario 测试&运营 聚合聊天/支付/质量/E2E
/company/tag/binding 标签-工作流绑定 saasui 独有

多数 /lobster/* 在 saasui 为 hidden: true,通过后端动态菜单或 workflowLobster 入口跳转。

4.2 saasadminui(平台端 — 32 个 lobster 页面)

与 saasui 共享上述页面,另增:

路由 页面 说明
/lobster/token-stats Token消耗统计 admin 独有,按日/模型/实例
/lobster/channel-plugin 渠道插件 admin 独有,凭证配置/连通测试

差异摘要

维度 saasui saasadminui
菜单 无顶级「数字员工」,主入口 workflowLobster 完整 /lobster 静态菜单
租户范围 当前登录租户 跨租户 company 下拉
API 租户 scoped + lobster-admin.js / lobster-token.js

五、模块逻辑关系(数据流)

客户消息 arrive
      │
      ▼
┌─ ChannelTypeRegistry.route(companyId, contactId)
│                     │
│  ┌──────────────────▼──────────────────┐
│  │  MessageDedupService               │
│  │  精确去重 → 语义去重(Jaccard>70%)   │
│  └──────────────────┬──────────────────┘
│                     │
│  ┌──────────────────▼──────────────────┐
│  │  SemanticTakeoverDetectorImpl       │
│  │  识别愤怒/投诉/法律威胁 → 转人工     │
│  └──────────────────┬──────────────────┘
│                     │
│  ┌──────────────────▼──────────────────┐
│  │  ContextAssemblerImpl (9维聚合)     │
│  │  画像+摘要+多轮+知识库+变量+合规     │
│  │  +事实记忆+断点续聊+**租户学习策略**  │
│  └──────────────────┬──────────────────┘
│                     │
│  ┌──────────────────▼──────────────────┐
│  │  ModelRouter (意图分类)             │
│  │  greeting/consult → lite模型        │
│  │  objection/complaint → pro模型      │
│  └──────────────────┬──────────────────┘
│                     │
│  ┌──────────────────▼──────────────────┐
│  │  LobsterEvolutionEngine.evolve()    │
│  │  AI生成 + QualityScoring 8维160分    │
│  └──────────────────┬──────────────────┘
│                     │
│  ┌──────────────────▼──────────────────┐
│  │  recordEvolutionInteraction()       │  ← 2026-06-07 新增
│  │  event_log + replay_buffer + skill    │
│  └──────────────────┬──────────────────┘
│                     │
│  ┌──────────────────▼──────────────────┐     ┌─────────────────┐
│  │  DynamicNodeExecutor.execute()       │
│  │  **38**节点类型各自专属处理          │
│  │  type=30 qw_message → channelType=QW│
│  └──────────────────┬──────────────────┘
│                     │
│  ┌──────────────────▼──────────────────┐
│  │  deliverMessage() + enrichQwExtra()  │
│  │  MessageChannelRouter → 16渠道       │
│  │  QW: Hook/iPad/addAiMsg 三级降级     │
│  └──────────────────┬──────────────────┘
│                     │
│  ┌──────────────────▼──────────────────┐     ┌─────────────────┐
│  │  SummaryGenerator (异步)             │────→│ TenantLearning  │
│  │  5分钟间隔防频繁                     │     │ Replay→Skill→AI │
│  └─────────────────────────────────────┘     │ → Patch审核     │
│                                               │ → 策略注入Prompt│
│                     ┌─────────────────────────┴─────────────────┐
│                     │ EvolutionScheduler 30min + Learning 1h   │
│                     │ A/B sweep 02:00 + DistributedLearning    │
│                     └──────────────────────────────────────────┘

六、JdbcTemplate → MyBatis 迁移历史

阶段 起始 结束 说明
第一轮 466处/44文件 ~218处/26文件 热路径全量 MyBatis(对话/知识库/工具调用/API注册等)
第二轮 ~218处/26文件 ~175处/24文件 EvolutionEngine/UserNodeOptimizer(43处) + TenantLearning(27处)
第三轮 ~175处/24文件 0处/0文件 全量清零 + 新增 LobsterAuxiliaryMapper 覆盖15张辅助表

最终状态:workflow 目录零 JdbcTemplate,100% MyBatis 合规。


七、三轮深度修复记录

第一轮:Mock/Stub 消除

# 修复项 变更
1 9 ContactAdapter return null ChannelTypeRegistry.resolveSourceUserId() + DB查询
2 6 MessageChannel 桩 RestTemplate 真实调用(Kuaishou/Line/Telegram/AppIm/DOUYIN_EC/Xiaohongshu)
3 WeatherDataProvider 占位 → 高德API lives / 和风API now 双格式解析
4 支付链路创建 PayService + PayRouter + WechatPayProvider 完整链
5 REST API 创建 LobsterAdminController(12端点) + PayCallbackController(2端点)
6 监控看板 DashboardService 8项指标聚合
7 5个前端页面 → Dashboard/支付/A-B/学习/渠道 新增

第二轮:定时调度 + 逻辑闭环

# 修复项 变更
8 EvolutionScheduler 无定时 @Scheduled 每30分钟遍历租户 + 凌晨2点扫查A/B
9 HeartbeatScheduler 无定时 @Scheduled 每5分钟心跳
10 applyLearningResult NOP → 写入 lobster_workflow_patch 表落地
11 A/B sample_count 未追踪 update sample_count + 1 每次分流累加
12 A/B 分流比例硬编码 getAbSplitRatio(companyId) DB可配
13 模拟回复硬编码 MultiModelRouter AI动态生成
14 TenantLearning 无调度 @Scheduled 每小时自动触发

第三轮:空安全 + SQL注入 + 命名修正

# 修复项 变更
15 auxMapper.update(sql, ?,...) 签名不匹配 → 5处 String.format + sqlEscape() 修复
16 PayService SQL注入 String.format 参数化
17 auxMapper.queryForList() 不存在 → 新增 queryForList/queryForStringList/executeStatement 兼容方法
18 SystemPromptService 用错Mapper → 改用 LobsterSystemPromptMapper.selectList()
19 GroovyScriptCache 误导命名 → 删除,创建 ScriptCache(明确标为 SpEL)
20 SmartApiCallNodeExecutor 引用更新 groovyCachescriptCache
21 ApiRegistryService.get() 多provider随机 Stream.min(priority) 主接口优先
22 PayService Math.random 冲突 UUID.randomUUID()
23 调度器异常级别太低 debugwarn
24 租户加载字段兼容 id/company_id 双字段 fallback

第四轮:企微发送 + 自进化学习闭环(2026-06-07)

# 修复项 变更
25 QwMessageChannel 只写DB → 复用平台链路:IQwMsgService.sendMsg → fs-qwhook aiReplyMsg WebSocket
26 iPad 发送未接入 WxWorkService.SendTextMsg(),失败降级 Hook
27 channelType 大小写 MessageChannelRouter + DynamicNodeExecutor 统一 QW
28 企微会话上下文缺失 LobsterWorkflowExecutorImpl.enrichQwExtra() 预填 qwExtId/qwSessionId
29 25 节点 PARTIAL LobsterNodeCapabilityRegistry 38/38 FULL
30 学习样本无采集 recordEvolutionInteraction() 写入 event_log + replay_buffer
31 学习策略未注入 AI ContextAssembler 【租户学习策略】Prompt 段
32 AI Skill 合成缺失 synthesizeSkillDocument() 高置信模式 → Skill 文档
33 学习定时只跑 companyId=0 → 遍历活跃租户
34 applyLearning 忽略 resultId → 按 ID 单条应用 + markPatternApplied
35 saasadminui 页面缺口 → 补齐 dashboard/evolution/learning 等 8 页 + 路由
36 集成测试端点 LobsterEngineController integration-test
37 JUnit 零覆盖 → NodeCapabilityRegistry + DynamicNodeExecutor 单测

八、@Scheduled 全家桶

调度器 Cron 职责
EvolutionSchedulerImpl 0 */30 * * * ? 遍历租户:进化分析 + 自动应用高置信建议 + 触发学习周期
EvolutionSchedulerImpl 0 0 2 * * ? 扫查胜出A/B变体自动应用
HeartbeatSchedulerImpl 0 */5 * * * ? 引擎心跳
HeartbeatSchedulerImpl 0 */15 * * * ? 清理过期心跳
TenantLearningEngineImpl 0 0 */1 * * ? 遍历活跃租户触发学习周期(非 companyId=0)
FactDecayScheduler 0 0 3 * * ? 清理过期事实记忆

八点五、响应延迟优化(LobsterLatencyPolicy)

问题根因

单次对话热路径 LobsterEvolutionEngineImpl.evolve()quality 模式下可能触发 7~9 次 LLM 调用

环节 耗时来源
变量提取 SummaryGeneratorImpl.extractConversationVariables 同步 LLM
全局摘要 SummaryGeneratorImpl.generateGlobalSummary 超 500 字时再调 LLM
意图分析 SemanticAnalyzerImpl.analyzeIntent 默认先 LLM
动态节点 LobsterEvolutionEngineImpl.enrichWithDynamicNode 额外 LLM
主回复 generateAiReply 1 次 LLM
质量评分 QualityScoringServiceImpl.scoreWithRetry 多模型流水线 + 重生成
后置学习 learnCustomerHabit / profileEnrichment 同步 DB

三档延迟模式

配置项(全局默认 + 租户覆盖):

配置 说明
lobster.latency.mode (application.yml) 全局默认:fast / balanced(默认) / quality
company_config.lobster_latency_mode 租户级覆盖,优先级更高
模式 LLM 次数(典型) 行为
fast 1 规则质量评分;跳过变量提取/动态节点/摘要 LLM;关键词意图
balanced 1~2 规则分达标跳过评分链;禁止重生成;并行上下文加载
quality默认 7~9 保留全量 8 维评分 + 多模型重生成 + 同步变量提取

已落地优化点

优化 实现
延迟策略中心 LobsterLatencyPolicy.java默认 quality
上下文 Redis 缓存 LobsterContextCacheService.java — 见下表
质量评分快路径 QualityScoringServiceImpl — 仅 fast/balanced 生效
语义快路径 SemanticAnalyzerImpl — 仅 fast/balanced 生效
上下文并行加载 ContextAssemblerImpl + ParallelExecutorImpl
后置异步化 习惯学习/对话状态/画像融合异步 + 写时失效缓存
分环节耗时日志 logEvolution 输出 steps={...}

Redis 缓存覆盖(LobsterContextCacheService)

数据 Redis Key 前缀 TTL 写时失效
用户画像 lobster:ctx:profile: 5min 摘要更新/对话后置
最近对话 lobster:ctx:chats: 2min 每轮对话结束
知识库检索 lobster:ctx:kb: 10min 知识 CRUD
历史事实 lobster:ctx:facts: 5min 摘要写事实
断点状态 lobster:ctx:state: 5min 对话结束
沟通习惯 lobster:ctx:habits: 5min 对话结束
学习策略 lobster:ctx:strategies: 10min 学习周期/应用
合规规则+Prompt lobster:ctx:compliance: 30min 规则变更时需手动清
向量行/Embedding lobster:ctx:vrows: / embed: 10~60min 向量写入

已有 Redis(非本次新增):对话摘要、工作流变量、Prompt、敏感词、多轮状态、消息去重。

配置项(application-common.yml):

lobster:
  latency:
    mode: quality          # 质量优先
  cache:
    enabled: true
    profile-ttl-minutes: 5
    knowledge-ttl-minutes: 10
    # ... 见 application-common.yml

运维建议

  1. 生产默认 quality:已改为全局默认,保留全量评分与重生成,不降质。
  2. Redis 必须可用lobster.cache.enabled=true 时上下文热路径走 Redis;Redis 不可用自动降级 DB 直查。
  3. 高并发/客服高峰:若可接受略降质,对指定租户设 lobster_latency_mode=balanced
  4. 排查慢请求:搜日志 [LobsterEvolution] 完成steps 哪一段最长;第二次同用户请求应明显更快(缓存命中)。

九、剩余差距与联调项

# 优先级 说明
1 企微联调验证 P0 代码已走 Hook/iPad 链路,需在测试环境验证与手动 /qw/qwMsg/sendMsg 行为一致
2 邮件真实发信 P2 EmailMessageChannel 依赖外部 email_send API 配置
3 短信通道配置 P2 SmsMessageChannel 需对接租户短信服务商
4 adminui 跨租户实例监控 P2 部分跨租户查询可能 404,需对齐 lobster-admin API
5 JUnit 覆盖率 P3 目前仅 2 个核心单测,进化/学习/A-B 待补
6 SendMsg 双套逻辑 P3 fs-ipad-task/SendMsg.sendLobsterQwMsg 可统一走 MessageChannelRouter

核心能力(工作流/进化/学习/A-B/38节点/16渠道)均已实现并闭合。



原理篇


十一、数字员工核心原理

11.1 进化决策原理(EvolutionEngine)

数字员工的"智能"来源于其闭环进化决策流程,每一次客户对话都在驱动引擎自我优化:

客户消息到来
      │
      ▼
┌─ ContextAssembler 聚合9维上下文 + 学习策略 ─────────────────┐
│  ① 用户画像 (profile)                                       │
│  ② 对话摘要 (summary, 异步生成, 5分钟防抖)                    │
│  ③ 多轮对话状态 (MultiTurnDialogue)                          │
│  ④ 知识库检索 (本地LIKE + FastGPT向量双路RAG)                │
│  ⑤ 工作流变量 (VariableStore, 内存+DB双写)                   │
│  ⑥ 合规规则 (severity 1/2/3 分级处理)                        │
│  ⑦ 跨实例事实记忆 + 客户沟通习惯                              │
│  ⑧ 断点续聊 (lastState)                                      │
│  ⑨ 租户学习策略 (learnedStrategies, 高置信 pattern 注入)     │
└────────────────────────────┬───────────────────────────────┘
                             │
                             ▼
┌─ ModelRouter 意图分类 ───────────────────────────────────────┐
│  greeting/confirm/reject ──→ lite 轻量模型 (快速低成本)       │
│  consult/objection/complaint ──→ pro 旗舰模型 (高质量必要)   │
└────────────────────────────┬───────────────────────────────┘
                             │
                             ▼
┌─ AiSceneDispatcher 场景分发 ─────────────────────────────────┐
│  场景编码 → AdminAiScene 模型链配置                           │
│  workflow_execution / workflow_generation / quality_scoring  │
│  场景内逐模型尝试: 主模型失败 → 自动降级到次选 → 豆包兜底      │
│  4厂商: 豆包(default) / 千问 / 元宝 / DeepSeek               │
│  全部 OpenAI-compatible API, AiModelGateway 统一网关          │
└────────────────────────────┬───────────────────────────────┘
                             │
                             ▼
┌─ AiModelGateway 统一调用 ────────────────────────────────────┐
│  → 注入 prompt + systemPrompt + AdminAiScene 绑定模型         │
│  → 失败自动 fallback (circuit breaker 模式)                  │
│  → 返回文本 + Token用量 (精确计费)                            │
└────────────────────────────┬───────────────────────────────┘
                             │
                             ▼
┌─ QualityScoringService 8维评分 ──────────────────────────────┐
│  relevance(20) + professionalism(20) + completeness(20)      │
│  + naturalness(20) + compliance(20)                          │
│  + knowledgeConsistency(20) + goalAlignment(20)              │
│  + humanLikeliness(20) = 满分160                             │
│                                                               │
│  评分流水线: generator生成 → scorer评分 → 不达标重生成        │
│  阈值: 第1次≥120分通过 ; 第2次≥104分通过 ; 否则降级兜底      │
│  场景配置≥2个模型时启用流水线模式                             │
└────────────────────────────┬───────────────────────────────┘
                             │
                             ▼
┌─ ComplianceService 合规过滤 ─────────────────────────────────┐
│  severity 1: 轻微违规, 警告日志, 正常发送                     │
│  severity 2: 中等违规, 敏感词替换后发送                       │
│  severity 3: 严重违规, 丢弃回复, 触发转人工                   │
└────────────────────────────┬───────────────────────────────┘
                             │
                             ▼
┌─ DynamicNodeExecutor 节点执行 & 消息发送 ───────────────────┐
│  type=7 成单 → PayService → 订单持久化+支付链接生成           │
│  type=9 标签 → AI提取 + customer_tag写入                     │
│  type=10 关怀 → AI动态生成个性化消息                          │
│  → MessageChannelRouter → **16**渠道 (QW 三级降级)             │
└────────────────────────────┬───────────────────────────────┘
                             │
                             ▼
                    ┌─ 异步闭环 ─┐
                    │  Feedback  │ ← 客户反馈收集
                    │  Summary   │ ← 对话摘要更新
                    │  Learning  │ ← 4维度分析
                    │  Evolution │ ← 30min/天 调度
                    └────────────┘

11.2 模型路由原理

三层路由架构

层级 组件 职责
L1 意图路由 ModelRouter 根据意图分类(问候/咨询/异议/订单等)选择 lite/pro 模型
L2 场景分发 AiSceneDispatcher 根据 systemPrompt 映射到场景编码(workflow_generation/quality_scoring/workflow_execution),按场景模型链逐模型调用
L3 统一网关 AiModelGateway 屏蔽厂商差异,全部 OpenAI-compatible API,单入口覆盖4厂商

降级熔断机制(Failure Cascade):

节点 A 请求 → 场景主模型(如豆包pro)
  ├─ 成功 → 返回结果
  └─ 失败 → 场景次选模型(如千问)
       ├─ 成功 → 返回结果
       └─ 失败 → 兜底模型(豆包lite)
            └─ 返回结果 (绝不抛异常)

多模型流水线(适用于工作流生成/质量评分):

模型A(generator) → 生成原始输出
  → 模型B(scorer) → 评分+反馈
    → 模型C(regenerator) → 根据反馈重新生成
      → 模型D(scorer) → 二次评分
        → 达标? 发送 : 降级兜底

11.3 AI工作流生成原理

用户输入: "我是旅游行业的,需要给客户发早间问候,根据回复智能跟进"

                     ▼
┌─ Phase 1: Generator ─────────────────────────────────────────┐
│  Prompt = 行业模板(旅游SOP规则) + 14种节点类型说明 + 用户需求 │
│  AI生成原始JSON: { "nodes": [...], "edges": [...], ... }     │
│  JSON鲁棒性治理: 截断自动补全 / 非法字符修复 / 缺失字段诊断   │
└────────────────────────────┬───────────────────────────────┘
                             │
                     ▼
┌─ Phase 2: Improver ─────────────────────────────────────────┐
│  Prompt = 模型A输出 + "请优化: 补充话术模板/完善分支条件/      │
│           添加变量绑定/优化节点连接"                           │
│  输出: 优化后的完整节点JSON                                    │
└────────────────────────────┬───────────────────────────────┘
                             │
                     ▼
┌─ Phase 3: Validator ─────────────────────────────────────────┐
│  Prompt = 模型B输出 + "验证JSON完整性/节点引用合法性/           │
│           分支条件可达性/话术模板变量正确性"                    │
│  返回: { passed: true/false, score: "0-100",                 │
│           details: "...", suggestions: [...] }               │
└────────────────────────────┬───────────────────────────────┘
                             │
                     ▼
┌─ Auto-Generate Prompts ─────────────────────────────────────┐
│  基于生成的工作流自动创建行业Prompt模板 → lobster_system_prompt │
│  租户+行业双维度绑定, 后续同行业自动复用                       │
└────────────────────────────────────────────────────────────┘

11.4 进化引擎闭环原理

数字员工的"进化"是指让模型自己发现哪些话术/策略效果不好,并自动提出改进方案

                ┌─ 事件日志 ─┐
                │  instance   │  每次对话执行结果
                │  执行结果    │  成单/失败/转人工/...
                └─────┬───────┘
                      │
       ┌──────────────▼──────────────────────────────┐
       │  EvolutionEngine.analyzeAndSuggest()        │
       │  按节点分组统计, 识别低效节点                  │
       │  规则①: 转人工率 > 30% → 话术可能太激进       │
       │  规则②: 成单率 < 5% → 促单话术需优化         │
       │  规则③: 平均停留时间异常 → 节点流程设计问题    │
       └──────────────┬──────────────────────────────┘
                      │
       ┌──────────────▼──────────────────────────────┐
       │  AI分析低效节点 → 生成EvolutionSuggestion   │
       │  提示词: "当前话术/流程导致XX%转人工率,       │
       │           请生成3条优化方案..."               │
       │  返回: { originalContent, optimizedContent,  │
       │          optimizationReason, confidence }    │
       └──────────────┬──────────────────────────────┘
                      │
          ┌───────────▼───────────┐
          │  autoApply=true       │  autoApply=false
          │  → 自动写入节点配置    │  → 进入审核队列
          │  → evolution_log 记录 │  → UserNodeOptimizer
          └───────────────────────┘  → 人工通过/驳回

UserNodeOptimizer 审核流程

待审核列表(公司/分组/公司级数据范围)
  → 管理员批量选择 → 通过/驳回
  → 通过: 更新节点话术 + 写入evolution_log
  → 驳回: 记录驳回原因
  → 批量审核+单条审核双模式

11.5 A/B 测试原理

数字员工的 A/B 测试完全自动化——无需人工设计变体:

Feedback 收集
  │  客户反馈(点赞/点踩/投诉/成单)
  ▼
analyzeFeedback()
  │  识别 positiveRate < 50% 的节点
  │  且 sample数 ≥ 10
  ▼
generateVariants()
  │  AI生成变体话术 (3个候选)
  │  基于 historical 数据给每个变体打分
  │  取最高分 → 写入 lobster_ab_tests
  ▼
resolveVariantForNode()  ← Prompt组装时自动调用
  │  sample_count++ (实时追踪样本量)
  │  按 split_ratio 分流 (DB可配, 默认50%)
  │  随机数 < ratio → 返回变体话术
  │  随机数 ≥ ratio → 返回原始话术
  ▼
applyResult()
  │  变体转化率 - 对照转化率 > WIN_THRESHOLD(10%)
  │  → 胜出 → 应用变体为正式话术
  │  变体转化率 ← 对照转化率
  │  → 败北 → 归档, 重新生成新变体

11.6 学习引擎原理(2026-06-07 增强版)

借鉴 Hermes 式 Skill 自进化,保留企业 Patch 审核门控

┌─ 实时样本采集(每次 AI 进化回复后)─────────────────────────────┐
│  LobsterWorkflowExecutor.recordEvolutionOutcome()                │
│    → TenantLearningEngine.recordEvolutionInteraction()           │
│    → lobster_learning_event_log   (事件 + qualityScore)          │
│    → lobster_learning_replay_buffer (customerMessage/aiReply)    │
│    → 高质量(≥120分) → 即时 upsert skill 模式 (EvolutionReplay)   │
└────────────────────────────┬────────────────────────────────────┘
                             │
                             ▼  (EvolutionScheduler 30min 联动 OR 1h 定时 OR 手动)
┌─ triggerLearningCycle() ─────────────────────────────────────────┐
│  前置: eventCount ≥ 10(不足则仅返回现有模式统计)                │
│                                                                   │
│  ① analyzeMessageEffectiveness  高/低质量回复率 + 样例           │
│  ② analyzeTimingOptimization    时段高质量率 + best_window 推荐   │
│  ③ analyzeFlowBottlenecks       卡住节点/失败节点/低质量节点      │
│  ④ analyzeCustomerProfileCorrelations  画像标签×高质量率         │
│  ⑤ generateStrategyRecommendations  综合策略 pattern             │
│  ⑥ synthesizeSkillDocument()     AI 合成 Skill 文档 (learning_synthesizer) │
│  ⑦ contributeHighConfidencePatterns  贡献 DistributedLearning 库   │
└────────────────────────────┬────────────────────────────────────┘
                             │
                             ▼
┌─ 策略注入 AI 上下文(运行时闭环)────────────────────────────────┐
│  ContextAssembler.assembleFullContext()                          │
│    → recommendStrategies(companyId, nodeCode)                    │
│    → context.learnedStrategies                                   │
│  buildAiPrompt() 追加【租户学习策略(历史高置信模式)】             │
└────────────────────────────┬────────────────────────────────────┘
                             │
                             ▼
┌─ 人工审核应用 ───────────────────────────────────────────────────┐
│  前端 learning-results → applyLearningResult(companyId, resultId)│
│    → lobster_workflow_patch (WorkflowPatcher 审核)               │
│    → markPatternApplied(status=applied)                          │
└──────────────────────────────────────────────────────────────────┘

学习模式类型(pattern_type)

type 含义 应用 Patch 字段
message 话术有效性 messageTemplate
timing 触达时机 sendTimeWindow
flow 流程瓶颈 nodeConfig
profile 画像关联 learningPatch
strategy 综合策略 learningPatch
skill Skill 文档/优质样例 messageTemplate
corpus 销冠语料 learningPatch

关键表

用途
lobster_learning_event_log 交互事件 + 质量分
lobster_learning_replay_buffer 对话样本(分析原料)
lobster_learned_pattern 发现的模式/Skill(含 id/confidence/source/applied)
lobster_workflow_patch 审核落盘队列

11.7 安全合规原理

客户消息
    │
    ▼
┌─ 第一层: 敏感词精确匹配 ─────────────────────────────────────┐
│  SensitiveWordService: 精确匹配 + 正则 + DB三级过滤           │
│  命中 → 触发转人工 OR 关键词替换 (ContentReplaceService)      │
└────────────────────────┬────────────────────────────────────┘
                         │
                         ▼
┌─ 第二层: 语义转人工检测 ─────────────────────────────────────┐
│  SemanticTakeoverDetector (6类危险意图):                      │
│  • 愤怒/威胁 (投诉举报/找领导/律师函)                         │
│  • 法律风险 (虚假宣传/隐私泄露/医疗责任)                      │
│  • 竞品攻击 (诋毁竞品)                                       │
│  • 自杀/自残信号                                             │
│  • 紧急医疗求助                                              │
│  • 儿童安全风险                                              │
│  任一命中 → 状态变更为"人工接管" → 停止AI回复                │
└────────────────────────┬────────────────────────────────────┘
                         │
                         ▼
┌─ 第三层: 合规输出过滤 ───────────────────────────────────────┐
│  ComplianceService: AI回复 → DB规则匹配                      │
│  severity 1: 标记但发送                                      │
│  severity 2: 敏感内容替换后发送                               │
│  severity 3: 丢弃, 触发转人工                                │
│                                                               │
│  ContentReplaceService: 词汇级最终精修                       │
│  示例: "癌症"→"严重疾病", "保证治愈"→"建议就诊"              │
└────────────────────────────────────────────────────────────┘

11.8 消息去重原理

AI生成回复
    │
    ▼
┌─ 第一步: 精确去重 ───────────────────────────────────────────┐
│  与最近5条已发送消息逐条对比 (equals)                          │
│  完全相同 → 跳过发送, 记录日志                                │
└────────────────────────┬────────────────────────────────────┘
                         │
                         ▼
┌─ 第二步: 语义去重 ───────────────────────────────────────────┐
│  2-gram 分词 → Jaccard 相似度计算                             │
│  相似度 > 70% → 替代发送策略:                                 │
│    调用 AI 用同义表达重写 (保留原意, 改变措辞)                │
│    重写后再次去重检查                                         │
│    仍 > 70% → 跳过 (2小时内不重试)                            │
└────────────────────────────────────────────────────────────┘

11.9 多轮对话原理

客户消息到达多轮节点(type=2/7/10/11/13)
    │
    ▼
┌─ 检查对话状态 ───────────────────────────────────────────────┐
│  新对话: 发送话术模板 → 进入等待状态                           │
│  进行中: 客户消息 → AI分析回答质量                            │
│          a) 信息充分: conversationComplete=true              │
│             → exitCondition? exitNodeCode : defaultNext      │
│          b) 信息不足: conversationComplete=false             │
│             → continueNodeCode (追问收集更多信息)             │
└──────────────────────────────────────────────────────────────┘

示例(旅游销售, type=2 消息节点):
  Round 1: AI "请问您计划什么时间去呢?"
           客户 "下个月中旬"
  Round 2: AI "好的, 请问几个人出行呢?"
           客户 "两个人"
  Round 3: AI "预算大概是多少呢?"
           客户 "5000左右"
  → 信息充分 → 跳到推荐路线节点(type=12)

11.10 千人千面原理

PersonalizationEngine (用户个性化)
    │
    ├─ 分群引擎 (UserSegmentService)
    │   按画像字段(年龄段/消费力/活跃度/渠道来源)自动分群
    │   每群 → 独立的话术 override (lobster_segment_message_override)
    │
    ├─ 偏好学习 (learnUserPreference)
    │   记录客户偏好类型(价格/品牌/服务)和偏好值
    │   → upsert 到 lobster_user_preference
    │
    ├─ 消息重写 (personalizeMessage)
    │   模板变量: {name}, {lastProduct}, {preference}
    │   → 变量替换 → 千人千面
    │
    └─ 画像长期更新 (handleTagOperation/UserProfile节点)
       AI从对话提取: 预算/偏好/家庭结构
       → 写入 customer_tag + lobster_user_profile

11.11 支付订单原理

handleOrderSuccessNode (type=7)
    │
    ▼
┌─ PayService.createPayOrder() ────────────────────────────────┐
│  ① 生成订单号: LOB + timestamp + UUID(8位)                   │
│  ② 持久化DB: lobster_pay_order (order_no/amount/status)      │
│  ③ 支付网关调用: PayRouter → PayProvider                     │
│     • 配置了WechatPayProvider → 统一下单API                   │
│     • 未配置 → Mock模式 (pay.example.com)                     │
│  ④ 返回: { orderNo, payUrl, amount, status, gateway }       │
│  ⑤ push到客户: "点击链接完成支付: [payUrl]"                  │
└────────────────────────────┬───────────────────────────────┘
                             │
          ┌──────────────────▼──────────────────┐
          │  微信支付异步通知 payNotify          │
          │  POST /api/lobster/pay/notify/wechat │
          │  → checkPayStatus()                 │
          │  → 更新order状态为PAID               │
          │  → 推送支付结果到前端                │
          │  → 工作流自动推进到下个节点           │
          └─────────────────────────────────────┘

11.12 定时调度体系原理

数字员工通过 6 个 @Scheduled 实现全自动闭环运营:

┌────────────────────────────────────────────────────────────────┐
│  调度器              频率       职责                            │
│───────────────────────────────────────────────────────────────│
│  EvolutionScheduler   30min    进化分析 + 自动应用 + **触发学习**  │
│  TenantLearningEngine 1hour    **遍历活跃租户** 学习周期           │
│                                4维分析 → Skill合成 → Patch落盘     │
│───────────────────────────────────────────────────────────────│
│  FactDecayScheduler   03:00am  清理过期事实记忆                 │
│───────────────────────────────────────────────────────────────│
│  WorkflowTrigger      轮询     扫描待触发实例                   │
│  Scheduler                     创建执行记录 → 异步执行          │
└────────────────────────────────────────────────────────────────┘

11.13 企微消息发送链路

数字员工企微发送 复用平台既有三条路径,按 QwUser.sendMsgType 分流:

LobsterWorkflowExecutor.deliverMessage()
      │
      ├─ enrichQwExtra() → qwExtId / qwUserId / qwSessionId
      │
      ▼
MessageChannelRouter.route(channelType=QW)
      │
      ▼
QwMessageChannel.sendMessage()
      │
      ├─ resolveQwUser()     ← extra.qwUserId / contact.qwUserId
      ├─ resolveOrCreateSession() ← extId+qwUserId 查/建 QwSession
      │
      ├─ sendMsgType=1 + WxWork 可用
      │     → WxWorkService.SendTextMsg()  (同 SendMsg.sendLobsterQwMsg)
      │     → 失败且 appKey 存在 → 降级 Hook
      │
      ├─ sendMsgType=0 + appKey + IQwMsgService
      │     → QwMsgServiceImpl.sendMsg()
      │     → fs-qwhook POST /app/qwmsg/sendMsg
      │     → WebSocket aiReplyMsg (type=101003)  ← 真实下发
      │
      ├─ qwMsgService 可用
      │     → addAiMsg() 写库 + UI 同步
      │
      └─ 兜底 legacy
            → insertQwMsg + receiveMsg Socket

与手动发消息对齐的关键:Hook 路径必须走 IQwMsgService.sendMsg(),而非仅写 DB。

11.14 与 OpenClaw / Hermes 定位对比(简要)

二者为外部开源 Agent 框架,未集成到本仓库。数字员工是企业 SaaS 销售自动化工作流引擎。

维度 数字员工 OpenClaw Hermes
定位 B端多租户 SCRM 工作流 个人 AI Gateway 自进化单 Agent
编排 38 业务节点 + 可视化画布 Tool/Skill 插件 70+ Tool
自进化 Evolution + Learning + A/B + Patch审核 ClawHub 社区 Skill 自动 Skill 创建/补丁
中国区渠道 企微/微信/电商私信 16通道 WeChat/QQ 等 较弱
企业合规 三层合规 + 敏感词 + 转人工 插件依赖 自研安全模型

借鉴关系:Hermes 的 Skill 闭环 → 龙虾 synthesizeSkillDocument + replay_buffer;OpenClaw 的 Gateway → 龙虾 MessageChannelRouter


十二、关键设计决策

决策 选择 理由
脚本引擎 SpEL 而非 Groovy 零额外依赖, Spring内置, 语法覆盖90%场景, 编译缓存在ConcurrentHashMap
持久化框架 MyBatis 而非 JdbcTemplate 类型安全/XML可读/参数绑定, 全量迁移完成(466→0)
模型路由 场景编码+Provider链 每个场景独立模型链, 配置驱动, 无需改代码
多渠道 统一MessageChannel接口 新增渠道只需实现接口+注册, Spring自动注入
A/B分流 单例级ConcurrentHashMap 无需分布式锁, sample_count实时追踪
学习闭环 Patch表统一落盘 学习/进化/A-B结果统一审核入口, 防止模型自我"跑偏"
自进化 Skill AI合成 + 即时高质量沉淀 借鉴 Hermes Skill 机制,但强制 Patch 审核后才改生产话术
企微发送 复用 IQwMsgService 而非重写 SDK 与平台 /qw/qwMsg/sendMsg 行为一致,降低双套逻辑风险

十、API 端点清单

10.1 Admin API (/api/lobster/admin)

Endpoint 方法 说明
/dashboard/{companyId} GET 全景看板
/evolution/metrics/{companyId} GET 进化指标(含 avgQualityScore)
/evolution/apply/{companyId}/{id} POST 应用优化建议
/optimization/pending/{companyId} GET 待审核列表
/optimization/audit/{companyId} POST 批量审核
/optimization/config/{companyId} POST 优化开关配置
/ab-test/active/{companyId} GET A/B测试列表
/ab-test/apply/{companyId}/{testId} POST 应用变体
/learning/trigger/{companyId} POST 触发学习(返回 eventsAnalyzed/newDiscoveries 等)
/learning/results/{companyId} GET 学习结果列表(含 id/learningType/status)
/learning/metrics/{companyId} GET 学习指标(eventCount/avgQualityScore)
/learning/apply/{companyId}/{resultId} POST 按 ID 应用单条学习结果
/pay/status GET 支付状态查询
/scheduler/trigger POST 手动触发进化+学习调度

10.2 引擎 API (/workflow/lobster/engine)

Endpoint 方法 说明
/evolution/metrics GET 租户进化指标
/evolution/analyze?workflowId= GET 触发进化分析
/evolution/apply?suggestionId= POST 应用进化建议
/node-capabilities GET 38节点能力矩阵
/integration-test/run-all POST 全量集成测试
/integration-test/node-types POST 节点类型测试
/integration-test/dynamic-executor POST 动态执行器测试
/channels GET 渠道列表
/heartbeat/status GET 心跳状态

10.3 执行 API (/workflow/lobster-exec)

Endpoint 方法 说明
/start POST 启动实例
/next-node/{instanceId} POST 推进一步
/pause/{instanceId} POST 暂停
/resume/{instanceId} POST 恢复
/terminate/{instanceId} POST 终止
/instance/list GET 实例列表
/node-logs/{instanceId} GET 节点日志

10.4 支付回调

Endpoint 方法 说明
/api/lobster/pay/notify/wechat POST 微信支付回调
/api/lobster/pay/notify/alipay POST 支付宝支付回调

十三、关键源码索引

场景 入口文件
工作流执行 LobsterWorkflowExecutorImpl.java
AI 对话进化 LobsterEvolutionEngineImpl.java
响应延迟策略 LobsterLatencyPolicy.java
上下文 Redis 缓存 LobsterContextCacheService.java
全局进化分析 EvolutionEngineImpl.java
租户学习 TenantLearningEngineImpl.java
A/B 测试 FeedbackDrivenEvolutionImpl.java
企微发送 QwMessageChannel.java
上下文组装 ContextAssemblerImpl.java
节点路由 DynamicNodeExecutorImpl.java
节点注册表 LobsterNodeCapabilityRegistry.java
定时调度 EvolutionSchedulerImpl.java
前端租户端 saasui/src/views/lobster/
前端平台端 saasadminui/src/views/lobster/