| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147 |
- {
- "companyId": 338,
- "includeTravelChain": true,
- "includeTravelStress": true,
- "startedAt": "2026-06-23 09:02:54",
- "sections": {
- "engineHealth": {
- "passed": true,
- "health": {
- "companyId": 338,
- "healthy": true,
- "missingCore": [
- ],
- "missingOptional": [
- ],
- "passThreshold": 120
- },
- "message": "core beans wired"
- },
- "integrationTests": {
- "passed": false,
- "summary": "2/4 tests passed in 1631ms",
- "details": [
- "[FAIL] NodeTypeService: START node not found",
- "[FAIL] DynamicNodeExecutor: Judgment node execution failed",
- "[PASS] MultiModelWorkflowGenerator: All tests passed",
- "[PASS] ModelConfigService: All tests passed"
- ],
- "executionTimeMs": 1631,
- "message": "2/4 tests passed in 1631ms"
- },
- "phase2Replay": {
- "passed": true,
- "verify": {
- "companyId": 338,
- "archiveTableExists": true,
- "hotIndexExists": true,
- "hotReplayRows": 80,
- "eventLogRows": 80,
- "archiveRows": 0,
- "status": "ok"
- },
- "message": "phase2 replay verify ok"
- },
- "pageLinkProbes": {
- "totalPages": 29,
- "requiredTotal": 15,
- "requiredPassed": 15,
- "optionalSkipped": 0,
- "failures": [
- ],
- "passed": true,
- "durationMs": 4434,
- "pages": [
- {
- "path": "/lobster/company-workflowLobster",
- "title": "Workflow templates",
- "probe": "templateList",
- "required": true,
- "passed": true,
- "status": "OK",
- "message": "templates=45"
- },
- {
- "path": "/lobster/workflow-execution",
- "title": "Workflow execution tasks",
- "probe": "instanceList",
- "required": true,
- "passed": true,
- "status": "OK",
- "message": "instances=593"
- },
- {
- "path": "/lobster/instance",
- "title": "Instance monitor",
- "probe": "instanceMonitor",
- "required": true,
- "passed": true,
- "status": "OK",
- "message": "monitor list ok, count=593"
- },
- {
- "path": "/lobster/prompt",
- "title": "Prompt management",
- "probe": "promptList",
- "required": true,
- "passed": true,
- "status": "OK",
- "message": "prompt rows=50"
- },
- {
- "path": "/lobster/sensitive-words",
- "title": "Sensitive words",
- "probe": "sensitiveWords",
- "required": true,
- "passed": true,
- "status": "OK",
- "message": "words=147"
- },
- {
- "path": "/lobster/forbidden-words",
- "title": "Forbidden words",
- "probe": "forbiddenWords",
- "required": false,
- "passed": true,
- "status": "OK",
- "message": "forbidden=32"
- },
- {
- "path": "/lobster/typo-words",
- "title": "Typo words",
- "probe": "typoWords",
- "required": false,
- "passed": true,
- "status": "OK",
- "message": "typo=3"
- },
- {
- "path": "/lobster/conversation-summary",
- "title": "Conversation summary",
- "probe": "conversationSummary",
- "required": true,
- "passed": true,
- "status": "OK",
- "message": "summaries=19"
- },
- {
- "path": "/lobster/profile-config",
- "title": "Profile config",
- "probe": "profileConfig",
- "required": false,
- "passed": true,
- "status": "OK",
- "message": "profile fields=16"
- },
- {
- "path": "/lobster/channel-config",
- "title": "Channel config",
- "probe": "channelTypes",
- "required": true,
- "passed": true,
- "status": "OK",
- "message": "channels=14"
- },
- {
- "path": "/lobster/channel-plugin",
- "title": "Channel plugins",
- "probe": "channelPlugins",
- "required": true,
- "passed": true,
- "status": "OK",
- "message": "plugins=3"
- },
- {
- "path": "/lobster/api-registry",
- "title": "API registry",
- "probe": "apiRegistry",
- "required": true,
- "passed": true,
- "status": "OK",
- "message": "apis=0"
- },
- {
- "path": "/lobster/sales-corpus",
- "title": "Sales corpus",
- "probe": "salesCorpus",
- "required": false,
- "passed": false,
- "status": "WARN",
- "message": "\r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \u0027optimized_answer\u0027 in \u0027field list\u0027\r\n### The error may exist in URL [jar:file:/D:/ylrz_saas_new/java/fs-saas-company/target/fs-saas-company.jar!/BOOT-INF/lib/fs-service-1.1.0.jar!/mapper/company/LobsterSalesCorpusMapper.xml]\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: select id, dialog_text, customer_question, sales_answer, optimized_answer, ai_feedback, scenario, score, source_type, external_user_id, company_id, task_id, salesperson_name, tags, status, quality_status, kb_written, enabled, create_by, create_time, update_by, update_time from lobster_sales_corpus where company_id = ? order by create_time desc limit ? offset ?\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \u0027optimized_answer\u0027 in \u0027field list\u0027\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \u0027optimized_answer\u0027 in \u0027field list\u0027"
- },
- {
- "path": "/lobster/chat-aggregate",
- "title": "Chat aggregate",
- "probe": "chatAggregate",
- "required": false,
- "passed": true,
- "status": "OK",
- "message": "sessions=5"
- },
- {
- "path": "/lobster/industry-bootstrap",
- "title": "Industry bootstrap",
- "probe": "industryPacks",
- "required": true,
- "passed": true,
- "status": "OK",
- "message": "packs=28"
- },
- {
- "path": "/lobster/identity-config",
- "title": "External role config",
- "probe": "identityConfig",
- "required": false,
- "passed": true,
- "status": "OK",
- "message": "identity config loaded"
- },
- {
- "path": "/lobster/semantic-keywords",
- "title": "Semantic keywords",
- "probe": "semanticKeywords",
- "required": true,
- "passed": true,
- "status": "OK",
- "message": "keywords=0"
- },
- {
- "path": "/lobster/optimization",
- "title": "AI optimization audit",
- "probe": "optimization",
- "required": true,
- "passed": true,
- "status": "OK",
- "message": "optimization stats=5"
- },
- {
- "path": "/lobster/dynamic-impl",
- "title": "Dynamic node approval",
- "probe": "dynamicImpl",
- "required": true,
- "passed": true,
- "status": "OK",
- "message": "pending impls=0"
- },
- {
- "path": "/lobster/dashboard",
- "title": "Engine dashboard",
- "probe": "dashboard",
- "required": true,
- "passed": true,
- "status": "OK",
- "message": "dashboard keys=8"
- },
- {
- "path": "/lobster/token-stats",
- "title": "Token stats",
- "probe": "tokenStats",
- "required": false,
- "passed": false,
- "status": "WARN",
- "message": "\r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.lobster_token_consumption\u0027 doesn\u0027t exist\r\n### The error may exist in URL [jar:file:/D:/ylrz_saas_new/java/fs-saas-company/target/fs-saas-company.jar!/BOOT-INF/lib/fs-service-1.1.0.jar!/mapper/company/LobsterTokenConsumptionMapper.xml]\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT DATE(request_time) AS date, SUM(token_count) AS totalTokens, SUM(estimated_cost) AS totalCost, COUNT(1) AS requestCount FROM lobster_token_consumption WHERE company_id = ? AND request_time BETWEEN ? AND ? GROUP BY DATE(request_time) ORDER BY date DESC\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.lobster_token_consumption\u0027 doesn\u0027t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \u0027ylrz_saas.lobster_token_consumption\u0027 doesn\u0027t exist"
- },
- {
- "path": "/lobster/evolution",
- "title": "Evolution engine",
- "probe": "evolution",
- "required": true,
- "passed": true,
- "status": "OK",
- "message": "evolution metrics=6"
- },
- {
- "path": "/lobster/chat-test",
- "title": "Chat test",
- "probe": "chatTest",
- "required": false,
- "passed": true,
- "status": "OK",
- "message": "e2e test service ready"
- },
- {
- "path": "/lobster/ab-test",
- "title": "AB / GEPA optimization",
- "probe": "abTest",
- "required": false,
- "passed": true,
- "status": "OK",
- "message": "active ab tests=0"
- },
- {
- "path": "/lobster/profile",
- "title": "Customer profile hub",
- "probe": "userProfile",
- "required": false,
- "passed": true,
- "status": "OK",
- "message": "profiles=39, domain=true"
- },
- {
- "path": "/lobster/profile-domain",
- "title": "Unified profile domain",
- "probe": "profileDomain",
- "required": false,
- "passed": true,
- "status": "OK",
- "message": "profile domain ready, mode=async"
- },
- {
- "path": "/lobster/qdrant",
- "title": "Vector knowledge base",
- "probe": "qdrant",
- "required": false,
- "passed": true,
- "status": "OK",
- "message": "vectors=0"
- },
- {
- "path": "/lobster/global-stats",
- "title": "Global evolution stats",
- "probe": "globalStats",
- "required": false,
- "passed": true,
- "status": "OK",
- "message": "global metrics=6"
- },
- {
- "path": "/lobster/event-audit",
- "title": "Event node audit",
- "probe": "eventAudit",
- "required": false,
- "passed": true,
- "status": "OK",
- "message": "audits=0"
- }
- ]
- },
- "travelFullChain": {
- "companyId": 338,
- "includeStress": true,
- "dialogueIndustry": "travel",
- "startedAt": "2026-06-23 09:03:00",
- "sections": {
- "enginePrompts": {
- "expectedCatalogKeys": 50,
- "newlyInserted": 0,
- "missingKeys": [
- ],
- "platformKeyCount": 50,
- "passed": true,
- "message": "platform engine prompts complete (50 keys)"
- },
- "triggerExclude": {
- "passed": true,
- "errors": [
- ],
- "message": "trigger exclude/sarcasm/schedule checks ok"
- },
- "runtimeCapabilities": {
- "capabilityTags": [
- "product",
- "weather",
- "logistics",
- "survey",
- "live",
- "article",
- "order",
- "order_list",
- "coupon",
- "crm",
- "sms"
- ],
- "toolCount": 11,
- "intentChecks": [
- {
- "message": "这几条线路看起来不错",
- "expectedTool": "query_product",
- "matchedTool": "query_product",
- "passed": "true"
- },
- {
- "message": "云南天气怎么样",
- "expectedTool": "query_weather",
- "matchedTool": "query_weather",
- "passed": "true"
- },
- {
- "message": "我的快递发货了吗",
- "expectedTool": "query_logistics",
- "matchedTool": "query_logistics",
- "passed": "true"
- },
- {
- "message": "满意度打分",
- "expectedTool": "start_survey",
- "matchedTool": "start_survey",
- "passed": "true"
- },
- {
- "message": "有没有新线路优惠",
- "expectedTool": "query_product",
- "matchedTool": "query_product",
- "passed": "true"
- },
- {
- "message": "有直播吗",
- "expectedTool": "push_live",
- "matchedTool": "push_live",
- "passed": "true"
- },
- {
- "message": "发我看看文章",
- "expectedTool": "push_article",
- "matchedTool": "push_article",
- "passed": "true"
- }
- ],
- "surveySmoke": true,
- "issues": [
- ],
- "passed": true,
- "message": "运行时能力校验通过"
- },
- "capabilityDialogue": {
- "lines": [
- {
- "message": "云南7月份天气怎么样,需要带什么衣服",
- "matchedTool": "query_weather",
- "triggered": true,
- "toolStatus": "ok",
- "summary": "已查询 云南 天气"
- },
- {
- "message": "快递发货了吗,帮我查一下物流",
- "matchedTool": "query_logistics",
- "triggered": true,
- "toolStatus": "ok",
- "summary": "{success=false, error=未找到物流单号,请确认是否已发货}"
- },
- {
- "message": "有没有适合带老人的新线路推荐",
- "matchedTool": "query_product",
- "triggered": true,
- "toolStatus": "ok",
- "summary": "{products=[], count=0}"
- },
- {
- "message": "今晚有直播吗,发我直播间链接",
- "matchedTool": "push_live",
- "triggered": true,
- "toolStatus": "ok",
- "summary": "暂无可用直播,请稍后再试"
- },
- {
- "message": "有没有出行攻略文章发我看看",
- "matchedTool": "push_article",
- "triggered": true,
- "toolStatus": "ok",
- "summary": "暂无可用文章,请稍后再试"
- },
- {
- "message": "满意度打5分,服务挺好的",
- "matchedTool": "start_survey",
- "triggered": true,
- "toolStatus": "ok",
- "summary": "已记录客户参与「satisfaction」问卷意向,请在对话中自然引导完成反馈"
- }
- ],
- "lineCount": 6,
- "warnings": [
- ],
- "issues": [
- ],
- "passed": true,
- "message": "capabilityTriggers 联调通过"
- },
- "template": {
- "passed": true,
- "workflowId": 1,
- "templateCode": "TRAVEL_TOP_SALES_001_C338",
- "source": "existing",
- "message": "travel template found"
- },
- "lifecycleCoverage": {
- "coverageRatio": 1.0,
- "minCoverage": 0.75,
- "nodeCount": 16,
- "requiredNodeCount": 15,
- "missingNodes": [
- ],
- "passed": true,
- "message": "lifecycle nodes covered"
- },
- "sopDefaults": {
- "qwSopTempId": "LOBSTER_TRAVEL_POST_BOOKING",
- "wxSopTempId": "LOBSTER_TRAVEL_POST_BOOKING_WX",
- "tenantHint": "Create qw_sop/wx_sop tasks with temp_id matching the values above",
- "sopEnrollNodeConfig": "{\"sopTempId\":\"LOBSTER_TRAVEL_POST_BOOKING\",\"wxSopTempId\":\"LOBSTER_TRAVEL_POST_BOOKING_WX\",\"plannedIndustry\":\"travel\",\"systemPromptKey\":\"node_TRAVEL_TOP_SALES_001_C338_SOP_ENROLL_system\",\"preferContactAccount\":true,\"plannedRole\":\"MESSAGE\",\"instructionPromptKey\":\"node_TRAVEL_TOP_SALES_001_C338_SOP_ENROLL_instruction\",\"actionOnly\":true,\"promptPlanned\":true}",
- "hasSopEnrollNode": true,
- "passed": true,
- "message": "travel SOP defaults and SOP_ENROLL node present"
- },
- "sopEnrollment": {
- "qwTaskConfigured": true,
- "wxTaskConfigured": true,
- "tenantSopReady": true,
- "qwChannel": {
- "success": false,
- "skipped": null,
- "channelType": "QW",
- "message": "未找到企微客户(需 contactId 或 externalUserId+corpId)",
- "tempId": null,
- "sopId": "lobster-travel-val-qw",
- "reachable": true
- },
- "wxChannel": {
- "success": false,
- "skipped": null,
- "channelType": "WX",
- "message": "未找到 CRM 客户(需 customerId 或 wx_contact 关联)",
- "tempId": null,
- "sopId": 1,
- "reachable": true
- },
- "passed": true,
- "notes": [
- ],
- "message": "QW/WX SOP enrollment routing ok"
- },
- "nodePromptsPlanned": {
- "promptNodeTarget": 6,
- "promptNodeFilled": 6,
- "emptyPromptNodes": [
- ],
- "passed": true,
- "message": "key node prompts present"
- },
- "lifecycleSimulation": {
- "waitPreTripConfigured": true,
- "tagAutoConfigured": true,
- "orderActionConfigured": true,
- "holidayWaitConfigured": true,
- "passed": true,
- "message": "lifecycle orchestration nodes configured"
- },
- "lifecycleRuntime": {
- "simMinuteUnit": 10,
- "simDayEqualsMinutes": 10,
- "schedulerWakeWaitMs": 3500,
- "preTripWaitSchedule10m": {
- "waitUntil": 1782177000000,
- "expectedWaitAt": 1782177000000,
- "travelAt": "2026-06-23T10:03:13.076982600",
- "waitInRealMinutes": 6,
- "diffMinutes": 0,
- "simTimeScale": true,
- "passed": true,
- "message": "T-5 10m sim schedule ok"
- },
- "preTripWaitWake": {
- "passed": true,
- "message": "lifecycle wait wake ok",
- "statusAfter": "running",
- "resumeIndex": 8,
- "currentIndexAfter": 9,
- "instanceId": 67
- },
- "preTripSchedulerWake10m": {
- "scheduledWakeAt": 1782176600045,
- "schedulerWaitMs": 3500,
- "passed": true,
- "message": "scheduler 10m sim wake ok",
- "statusAfter": "running",
- "resumeIndex": 8,
- "currentIndexAfter": 9,
- "instanceId": 68
- },
- "holidayWaitSchedule10m": {
- "waitUntil": 1782194400000,
- "expectedWaitAt": 1782194400000,
- "waitInRealMinutes": 296,
- "simHolidayDays": 30,
- "simRealMinutes": 300,
- "diffMinutes": 0,
- "passed": true,
- "message": "holiday 10m sim schedule ok"
- },
- "holidayWaitWake": {
- "passed": true,
- "message": "lifecycle wait wake ok",
- "statusAfter": "completed",
- "resumeIndex": 13,
- "currentIndexAfter": 13,
- "instanceId": 69
- },
- "holidaySchedulerWake10m": {
- "scheduledWakeAt": 1782176608545,
- "schedulerWaitMs": 3500,
- "passed": true,
- "message": "scheduler 10m sim wake ok",
- "statusAfter": "completed",
- "resumeIndex": 13,
- "currentIndexAfter": 13,
- "instanceId": 70
- },
- "passed": true,
- "message": "lifecycle 10m sim schedule/wake ok"
- },
- "lifecycleFullFlowSim": {
- "instanceId": 71,
- "finalStatus": "completed",
- "finalNodeIndex": 13,
- "milestones": [
- "STARTED",
- "T5_SCHEDULED",
- "T5_WAITING",
- "PRE_TRIP_CARE",
- "PRE_TRIP_MULTITURN",
- "HOLIDAY_WAITING",
- "HOLIDAY_PROMO"
- ],
- "errors": [
- ],
- "passed": true,
- "message": "full lifecycle 10m sim flow ok",
- "simMinuteUnit": 10
- },
- "lifecycleExceptions": {
- "waitNotExpired": {
- "passed": true,
- "message": "not-expired wait rejected advance",
- "statusAfter": "waiting"
- },
- "prematureScheduler": {
- "passed": true,
- "message": "premature scheduler did not wake"
- },
- "blockedSchedulerSkip": {
- "passed": true,
- "message": "blocked instance skipped by scheduler"
- },
- "blockedForceWake": {
- "passed": true,
- "message": "blocked force wake rejected"
- },
- "overdueT5SkipWait": {
- "waitUntil": 1782174600000,
- "overdue": true,
- "wouldSkipSchedule": true,
- "passed": true,
- "message": "overdue T-5 skips wait schedule"
- },
- "missingTravelDate": {
- "waitUntil": 1782177246651,
- "expectedFallbackMinutes": 10,
- "passed": true,
- "message": "missing travel_date sim fallback ok"
- },
- "completedRejectWake": {
- "passed": true,
- "message": "completed instance rejects wake"
- },
- "missingResumeIndex": {
- "passed": true,
- "message": "missing resume index fallback ok"
- },
- "doubleWake": {
- "passed": true,
- "message": "double wake idempotent",
- "statusAfter": "running"
- },
- "passed": true,
- "message": "lifecycle exception handling ok"
- },
- "lifecycleMultiTurnDialogue": {
- "bookingTurnCount": 10,
- "postBookingTurnCount": 9,
- "dialogueSource": "bookingFunnel+postBookingLifecycle",
- "consultMultiTurn": {
- "turns": 5,
- "avgScore": 61.6,
- "minScore": 0.0,
- "passed": true,
- "message": "node multiTurn ok",
- "instanceId": 79,
- "inputCount": 6
- },
- "postBookingMultiTurnFlow": {
- "instanceId": 80,
- "preTripMultiTurn": {
- "turns": 3,
- "avgScore": 78.66666666666667,
- "minScore": 78.0,
- "passed": true,
- "message": "node multiTurn ok"
- },
- "holidayMultiTurn": {
- "turns": 1,
- "avgScore": 79.0,
- "minScore": 79.0,
- "earlyCompletion": true,
- "passed": true,
- "message": "node multiTurn ok"
- },
- "milestones": [
- "PRE_TRIP",
- "PRE_TRIP_MT",
- "HOLIDAY",
- "HOLIDAY_MT"
- ],
- "errors": [
- ],
- "dialogueTurns": 9,
- "passed": true,
- "message": "post-booking multi-turn flow ok"
- },
- "passed": true,
- "message": "lifecycle multi-turn dialogue ok"
- },
- "e2eDialogue": {
- "dialogueStage": "bookingFunnel",
- "dialogueTurnCount": 10,
- "runId": "003151395cac40e68a44c30aa7e0680b",
- "status": "SUCCESS",
- "instanceId": 81,
- "totalScore": 62.44,
- "passedNodeCnt": 10,
- "totalNodeCnt": 10,
- "evolutionCount": 1,
- "nodeTraces": 10,
- "minNodeScore": 76.25,
- "maxNodeScore": 79.375,
- "nodesBelowTarget": 0,
- "nodesBelowMin": 0,
- "nodeScoreDetail": [
- {
- "nodeCode": "初始化咨询阶段",
- "score": 76.875,
- "passed": true
- },
- {
- "nodeCode": "直播加微推直播间",
- "score": 78.75,
- "passed": true
- },
- {
- "nodeCode": "推送出行攻略文章",
- "score": 77.5,
- "passed": true
- },
- {
- "nodeCode": "推送出行攻略文章",
- "score": 76.25,
- "passed": true
- },
- {
- "nodeCode": "推送出行攻略文章",
- "score": 79.375,
- "passed": true
- },
- {
- "nodeCode": "推送出行攻略文章",
- "score": 79.375,
- "passed": true
- },
- {
- "nodeCode": "推送出行攻略文章",
- "score": 78.75,
- "passed": true
- },
- {
- "nodeCode": "推送出行攻略文章",
- "score": 77.5,
- "passed": true
- }
- ],
- "passed": true,
- "message": "e2e ok"
- },
- "qualityGate": {
- "enabled": true,
- "targetScorePercent": 75.0,
- "minE2eAvgScorePercent": 75.0,
- "minNodeScorePercent": 60.0,
- "passScorePercent": 75,
- "rawTotalScore": 62.44,
- "scoredNodeAvg": 78.046875,
- "totalScore": 78.046875,
- "nodesBelowTarget": 0,
- "nodesBelowMin": 0,
- "minNodeScore": 76.25,
- "maxNodeScore": 79.375,
- "nodeScoreDetail": [
- {
- "nodeCode": "初始化咨询阶段",
- "score": 76.875,
- "passed": true
- },
- {
- "nodeCode": "直播加微推直播间",
- "score": 78.75,
- "passed": true
- },
- {
- "nodeCode": "推送出行攻略文章",
- "score": 77.5,
- "passed": true
- },
- {
- "nodeCode": "推送出行攻略文章",
- "score": 76.25,
- "passed": true
- },
- {
- "nodeCode": "推送出行攻略文章",
- "score": 79.375,
- "passed": true
- },
- {
- "nodeCode": "推送出行攻略文章",
- "score": 79.375,
- "passed": true
- },
- {
- "nodeCode": "推送出行攻略文章",
- "score": 78.75,
- "passed": true
- },
- {
- "nodeCode": "推送出行攻略文章",
- "score": 77.5,
- "passed": true
- }
- ],
- "passed": true,
- "message": "quality gate ok"
- },
- "inboundNoWorkflow": {
- "turns": [
- {
- "message": "你好,我想了解一下云南旅游",
- "route": "PROMPT_DIRECT",
- "hasReply": true,
- "durationMs": 2484
- },
- {
- "message": "没绑定工作流也能聊吗",
- "route": "PROMPT_DIRECT",
- "hasReply": true,
- "durationMs": 3105
- },
- {
- "message": "大概预算每人5000有什么推荐",
- "route": "PROMPT_DIRECT",
- "hasReply": true,
- "durationMs": 3562
- }
- ],
- "turnCount": 3,
- "issues": [
- ],
- "passed": true,
- "message": "no-workflow inbound chat ok"
- },
- "emotionSpectrum": {
- "cases": [
- {
- "case": "positive_excited",
- "message": "太好了非常期待这次旅行",
- "durationMs": 1,
- "detectedIntent": "positive",
- "detectedSentiment": "0.39",
- "sentiment": 0.39,
- "intent": "positive"
- },
- {
- "case": "negative_complaint",
- "message": "你们服务太差了我要投诉",
- "durationMs": 856,
- "detectedIntent": "complaint",
- "detectedSentiment": "-1.0",
- "sentiment": -1.0,
- "intent": "complaint"
- },
- {
- "case": "anxious_concern",
- "message": "有点担心老人高原反应安全吗",
- "durationMs": 1346,
- "detectedIntent": "inquiry",
- "detectedSentiment": "-0.3",
- "sentiment": -0.3,
- "intent": "inquiry"
- },
- {
- "case": "grateful",
- "message": "谢谢耐心解答很有帮助",
- "durationMs": 1139,
- "detectedIntent": "positive",
- "detectedSentiment": "0.8",
- "sentiment": 0.8,
- "intent": "positive"
- },
- {
- "case": "price_objection",
- "message": "价格太贵了能不能再优惠一点",
- "durationMs": 2,
- "detectedIntent": "purchase",
- "detectedSentiment": "-0.6000000000000001",
- "sentiment": -0.6000000000000001,
- "intent": "purchase"
- },
- {
- "case": "urgency",
- "message": "紧急!明天就要出发还没收到确认",
- "durationMs": 1376,
- "detectedIntent": "complaint",
- "detectedSentiment": "-0.7",
- "sentiment": -0.8,
- "intent": "complaint"
- },
- {
- "case": "sarcasm_cold",
- "message": "呵呵随便吧",
- "sarcasmDetected": true
- },
- {
- "case": "anger_abuse",
- "message": "你们真是烦死了",
- "excludeRecommended": true
- }
- ],
- "caseCount": 8,
- "issues": [
- ],
- "passed": true,
- "message": "emotion spectrum ok"
- },
- "semanticVariationScale": {
- "minRequired": 50,
- "enabledKeywordCount": 539,
- "fullCatalogEndpoint": "/api/lobster/admin/validation/semantic-context/{companyId}?mode=full",
- "passed": true,
- "message": "semantic variation scale ok (539 enabled keywords)"
- },
- "performanceBudget": {
- "timings": {
- "validationElapsedMs": 393339,
- "e2eAvgScore": 62.44,
- "sentimentAvgMs": 0,
- "evolveSampleMs": 7094,
- "evolveQualityScore": 123
- },
- "recommendations": [
- ],
- "passed": true,
- "message": "performance budget ok"
- },
- "summary": {
- "instanceId": 81,
- "externalUserId": "999338001",
- "asyncDbSummary": true,
- "historyLines": 20,
- "syncSummaryLength": 77,
- "microSummaryLength": 210,
- "cachedSummaryOk": true,
- "dbSummaryRows": 0,
- "passed": true,
- "message": "summary persisted to DB"
- },
- "memoryPipeline": {
- "externalUserId": "999338001",
- "instanceId": 81,
- "summaryOk": true,
- "factCount": 9,
- "factKeys": [
- ],
- "passed": true,
- "message": "summary or customer_fact persisted"
- },
- "evolutionAnalyze": {
- "e2eEvolutionCount": 1,
- "evolutionLogsBefore": 182,
- "analyzeInvoked": true,
- "analyzeMessage": "analyzeAndSuggest ok",
- "evolutionLogsAfter": 182,
- "evolutionLogsDelta": 0,
- "pendingSuggestions": 0,
- "passed": true,
- "message": "evolution analyze ok"
- },
- "sensitiveWord": {
- "scopeNote": "lobster SensitiveWordService + evolve step9; not live/call/CompanyAiSensitiveWord AC",
- "layers": {
- "defaultLib": {
- "detectCount": 1,
- "filtered": "推荐云南精品线,***,欢迎咨询",
- "passed": true
- },
- "customCrud": {
- "word": "LOBSTER_VAL_338",
- "hit": true,
- "filtered": "行程含***内容",
- "passed": true
- },
- "highRisk": {
- "word": "LOBSTER_FRAUD_338",
- "highRisk": true,
- "passed": true
- },
- "evolveStep9Simulation": {
- "rawHasSensitive": true,
- "wouldTransferToHuman": true,
- "finalReply": "欢迎咨询,预期收益,***",
- "passed": true
- },
- "wordListLoaded": {
- "count": 149,
- "passed": true
- }
- },
- "passed": true,
- "message": "sensitive word pipeline ok"
- },
- "executionPolicy": {
- "scopeNote": "resolve() strict/content/flow gates used by executor + prompt fallback",
- "strictFixedWorkflow": false,
- "contentPersonalization": true,
- "flowPersonalization": true,
- "allowContent": true,
- "allowFlow": true,
- "executionMode": "HYBRID",
- "issues": [
- ],
- "passed": true,
- "message": "execution policy gates ok"
- },
- "aiGenerate": {
- "recordNo": "LOB_1782176985049",
- "generateUseLlm": false,
- "fallbackGenerate": true,
- "finalStatus": 1,
- "detail": {
- "conversationModel": {
- "defaultStage": "consult",
- "description": "旅游全链路:会话常驻,节点负责打标/签单/出行关怀/满意度/节日营销",
- "version": 2,
- "stages": [
- {
- "code": "consult",
- "promptHint": "你是小美,测试旅行社旅行顾问。客户来自直播间,先破冰并了解是否已有出行计划。",
- "label": "直播加微破冰",
- "goals": [
- ]
- },
- {
- "code": "collect",
- "promptHint": "逐步询问目的地、日期、人数、预算;一次只问一个关键问题。",
- "label": "需求采集打标",
- "goals": [
- {
- "collected": false,
- "label": "目的地",
- "required": true,
- "field": "destination"
- },
- {
- "collected": false,
- "label": "出行日期",
- "required": true,
- "field": "travel_date"
- },
- {
- "collected": false,
- "label": "预算",
- "required": true,
- "field": "budget"
- },
- {
- "collected": false,
- "label": "出行人数",
- "required": true,
- "field": "pax"
- }
- ]
- },
- {
- "code": "offer",
- "promptHint": "基于采集信息推荐云南精品线,突出亮点与优惠,自然引导签单。",
- "label": "线路推荐促单",
- "goals": [
- ]
- },
- {
- "code": "pre_trip",
- "promptHint": "出行前5天提醒证件、行李、当地天气与注意事项。",
- "label": "出行前关怀",
- "goals": [
- ]
- },
- {
- "code": "in_trip",
- "promptHint": "行程中主动问候,询问是否遇到问题,给出景点玩要建议。",
- "label": "行中关怀",
- "goals": [
- ]
- },
- {
- "code": "post_trip",
- "promptHint": "行程结束后收集满意度与改进建议。",
- "label": "满意度回访",
- "goals": [
- ]
- },
- {
- "code": "repurchase",
- "promptHint": "大节日前30天关怀,了解是否有新的出行计划并推荐产品。",
- "label": "节日营销",
- "goals": [
- ]
- }
- ],
- "sideTasks": [
- {
- "triggerIntents": [
- "purchase",
- "high_intent",
- "booked"
- ],
- "nodeCode": "TAG_AUTO",
- "nodeType": 9,
- "action": "add_tag"
- },
- {
- "triggerIntents": [
- "purchase",
- "order",
- "book"
- ],
- "nodeCode": "ORDER_ACTION",
- "nodeType": 7,
- "action": "create_order"
- }
- ]
- },
- "variables": [
- {
- "varName": "客户姓名",
- "label": "客户姓名",
- "source": "user_profile",
- "type": "string",
- "required": 0,
- "varType": "string",
- "sourceType": "user_profile",
- "name": "customerName",
- "varCode": "customerName"
- },
- {
- "varName": "目的地",
- "label": "目的地",
- "source": "conversation",
- "type": "string",
- "required": 0,
- "varType": "string",
- "sourceType": "conversation",
- "name": "destination",
- "varCode": "destination"
- },
- {
- "varName": "出行日期",
- "label": "出行日期",
- "source": "conversation",
- "type": "date",
- "required": 0,
- "varType": "date",
- "sourceType": "conversation",
- "name": "travel_date",
- "varCode": "travel_date"
- },
- {
- "varName": "预算",
- "label": "预算",
- "source": "conversation",
- "type": "string",
- "required": 0,
- "varType": "string",
- "sourceType": "conversation",
- "name": "budget",
- "varCode": "budget"
- },
- {
- "varName": "出行人数",
- "label": "出行人数",
- "source": "conversation",
- "type": "number",
- "required": 0,
- "varType": "number",
- "sourceType": "conversation",
- "name": "pax",
- "varCode": "pax"
- },
- {
- "varName": "测试旅行社",
- "label": "测试旅行社",
- "source": "manual",
- "type": "string",
- "required": 0,
- "varType": "string",
- "sourceType": "manual",
- "name": "company_short_name",
- "varCode": "company_short_name"
- },
- {
- "varName": "小美",
- "label": "小美",
- "source": "manual",
- "type": "string",
- "required": 0,
- "varType": "string",
- "sourceType": "manual",
- "name": "advisor_name",
- "varCode": "advisor_name"
- },
- {
- "varName": "云南精品线",
- "label": "云南精品线",
- "source": "manual",
- "type": "string",
- "required": 0,
- "varType": "string",
- "sourceType": "manual",
- "name": "main_product",
- "varCode": "main_product"
- },
- {
- "varName": "当前阶段",
- "label": "当前阶段",
- "source": "manual",
- "type": "string",
- "required": 0,
- "varType": "string",
- "sourceType": "manual",
- "name": "workflowStage",
- "varCode": "workflowStage"
- },
- {
- "varName": "客户意向",
- "label": "客户意向",
- "source": "conversation",
- "type": "string",
- "required": 0,
- "varType": "string",
- "sourceType": "conversation",
- "name": "customerIntent",
- "varCode": "customerIntent"
- },
- {
- "varName": "行业类型",
- "defaultValue": "travel",
- "label": "行业类型",
- "source": "manual",
- "type": "string",
- "required": 0,
- "varType": "string",
- "sourceType": "manual",
- "name": "industryType",
- "varCode": "industryType"
- },
- {
- "varName": "企微SOP模板ID",
- "defaultValue": "LOBSTER_TRAVEL_POST_BOOKING",
- "label": "企微SOP模板ID",
- "source": "manual",
- "type": "string",
- "required": 0,
- "varType": "string",
- "sourceType": "manual",
- "name": "sopTempId",
- "varCode": "sopTempId"
- },
- {
- "varName": "个微SOP模板ID",
- "defaultValue": "LOBSTER_TRAVEL_POST_BOOKING_WX",
- "label": "个微SOP模板ID",
- "source": "manual",
- "type": "string",
- "required": 0,
- "varType": "string",
- "sourceType": "manual",
- "name": "wxSopTempId",
- "varCode": "wxSopTempId"
- }
- ],
- "edges": [
- {
- "targetNodeCode": "INIT_STAGE",
- "sourceNodeCode": "START",
- "edgeLabel": "启动"
- },
- {
- "targetNodeCode": "LIVE_PUSH",
- "sourceNodeCode": "INIT_STAGE",
- "edgeLabel": "直播加微推直播间"
- },
- {
- "targetNodeCode": "ARTICLE_PUSH",
- "sourceNodeCode": "LIVE_PUSH",
- "edgeLabel": "推送攻略文章"
- },
- {
- "targetNodeCode": "TAG_AUTO",
- "sourceNodeCode": "ARTICLE_PUSH",
- "edgeLabel": "进入采集打标"
- },
- {
- "targetNodeCode": "JUDGE",
- "sourceNodeCode": "TAG_AUTO",
- "edgeLabel": "分支"
- },
- {
- "targetNodeCode": "ORDER_ACTION",
- "sourceNodeCode": "JUDGE",
- "edgeLabel": "签单"
- },
- {
- "targetNodeCode": "WAIT_PRE_TRIP",
- "sourceNodeCode": "JUDGE",
- "edgeLabel": "已订"
- },
- {
- "targetNodeCode": "WAIT_HOLIDAY",
- "sourceNodeCode": "JUDGE",
- "edgeLabel": "培育"
- },
- {
- "targetNodeCode": "SOP_ENROLL",
- "sourceNodeCode": "ORDER_ACTION",
- "edgeLabel": "SOP入营"
- },
- {
- "targetNodeCode": "WAIT_PRE_TRIP",
- "sourceNodeCode": "SOP_ENROLL",
- "edgeLabel": "进入出行前"
- },
- {
- "targetNodeCode": "PRE_TRIP_CARE",
- "sourceNodeCode": "WAIT_PRE_TRIP",
- "edgeLabel": "T-5触达"
- },
- {
- "targetNodeCode": "WEATHER_TIPS",
- "sourceNodeCode": "PRE_TRIP_CARE",
- "edgeLabel": "天气建议"
- },
- {
- "targetNodeCode": "IN_TRIP_CARE",
- "sourceNodeCode": "WEATHER_TIPS",
- "edgeLabel": "行中"
- },
- {
- "targetNodeCode": "SURVEY",
- "sourceNodeCode": "IN_TRIP_CARE",
- "edgeLabel": "满意度"
- },
- {
- "targetNodeCode": "WAIT_HOLIDAY",
- "sourceNodeCode": "SURVEY",
- "edgeLabel": "节日等待"
- },
- {
- "targetNodeCode": "HOLIDAY_PROMO",
- "sourceNodeCode": "WAIT_HOLIDAY",
- "edgeLabel": "节日营销"
- },
- {
- "targetNodeCode": "END",
- "sourceNodeCode": "HOLIDAY_PROMO",
- "edgeLabel": "结束"
- }
- ],
- "description": "旅游公司销冠全流程:直播加微→破冰→采集出行需求→线路推荐→促单签单→出行前关怀→旅途中关怀→回访调研→节日营销→循环推荐",
- "templateCode": "TRAVEL_TOP_SALES_001",
- "errorMsg": "已使用行业兜底模板: validation fast fallback",
- "brandContext": {
- "advisorName": "小美",
- "companyShortName": "测试旅行社",
- "advisorRole": "金牌旅行顾问",
- "mainProduct": "云南精品线"
- },
- "_fallbackSource": "travel_lifecycle_full",
- "nodes": [
- {
- "nodeName": "开始",
- "nextNodeCode": "INIT_STAGE",
- "nodeCode": "START",
- "maxRounds": 0,
- "nodeType": 1,
- "nodeConfig": "{\"autoAdvance\":true,\"channelHint\":\"QW\"}",
- "sortNo": 1,
- "conditionExpr": "",
- "messageTemplate": "您好${customerName},我是小美,测试旅行社旅行顾问。看到您从直播间过来,打算去哪里玩呢?"
- },
- {
- "nodeName": "初始化咨询阶段",
- "nextNodeCode": "LIVE_PUSH",
- "nodeCode": "INIT_STAGE",
- "maxRounds": 0,
- "nodeType": 16,
- "nodeConfig": "{\"assignments\":{\"workflowStage\":\"consult\"},\"stageGate\":true}",
- "sortNo": 2,
- "conditionExpr": "",
- "messageTemplate": ""
- },
- {
- "nodeName": "直播加微推直播间",
- "nextNodeCode": "ARTICLE_PUSH",
- "nodeCode": "LIVE_PUSH",
- "maxRounds": 0,
- "nodeType": 54,
- "nodeConfig": "{\"delivery\":\"proactive\",\"channelHint\":\"QW\",\"actionOnly\":false,\"keyword\":\"云南精品线\",\"liveBaseUrl\":\"/live/watch\"}",
- "sortNo": 3,
- "conditionExpr": "",
- "messageTemplate": ""
- },
- {
- "nodeName": "推送出行攻略文章",
- "nextNodeCode": "TAG_AUTO",
- "nodeCode": "ARTICLE_PUSH",
- "maxRounds": 0,
- "nodeType": 55,
- "nodeConfig": "{\"delivery\":\"proactive\",\"actionOnly\":false,\"keyword\":\"云南精品线\",\"articleBaseUrl\":\"/article/detail\"}",
- "sortNo": 4,
- "conditionExpr": "",
- "messageTemplate": ""
- },
- {
- "nodeName": "自动打标",
- "nextNodeCode": "JUDGE",
- "nodeCode": "TAG_AUTO",
- "maxRounds": 0,
- "nodeType": 9,
- "nodeConfig": "{\"sideTask\":true,\"actionOnly\":true,\"action\":\"add_tag\",\"tags\":[\"travel_lead\",\"qw_live\"],\"triggerIntents\":[\"purchase\",\"high_intent\"]}",
- "sortNo": 5,
- "conditionExpr": "",
- "messageTemplate": ""
- },
- {
- "nodeName": "签单动作",
- "nextNodeCode": "SOP_ENROLL",
- "nodeCode": "ORDER_ACTION",
- "maxRounds": 0,
- "nodeType": 7,
- "nodeConfig": "{\"sideTask\":true,\"actionOnly\":true,\"action\":\"create_order\",\"triggerIntents\":[\"purchase\",\"order\"]}",
- "sortNo": 6,
- "conditionExpr": "",
- "messageTemplate": ""
- },
- {
- "nodeName": "签单后SOP入营",
- "nextNodeCode": "WAIT_PRE_TRIP",
- "nodeCode": "SOP_ENROLL",
- "maxRounds": 0,
- "nodeType": 50,
- "nodeConfig": "{\"sopTempId\":\"LOBSTER_TRAVEL_POST_BOOKING\",\"wxSopTempId\":\"LOBSTER_TRAVEL_POST_BOOKING_WX\",\"preferContactAccount\":true,\"actionOnly\":true}",
- "sortNo": 7,
- "conditionExpr": "",
- "messageTemplate": ""
- },
- {
- "nodeName": "出行前5天等待",
- "nextNodeCode": "PRE_TRIP_CARE",
- "nodeCode": "WAIT_PRE_TRIP",
- "maxRounds": 0,
- "nodeType": 4,
- "nodeConfig": "{\"waitType\":\"date_offset\",\"offsetDays\":-5,\"dateField\":\"travel_date\",\"timeoutHours\":720}",
- "sortNo": 8,
- "conditionExpr": "",
- "messageTemplate": ""
- },
- {
- "nodeName": "出行前提醒",
- "nextNodeCode": "WEATHER_TIPS",
- "nodeCode": "PRE_TRIP_CARE",
- "maxRounds": 0,
- "nodeType": 10,
- "nodeConfig": "{\"delivery\":\"proactive\",\"careType\":\"pre_trip\",\"awaitReply\":true}",
- "sortNo": 9,
- "conditionExpr": "",
- "messageTemplate": "您好,离您的云南精品线出行还有5天啦!请准备好身份证/护照、常用药品和舒适鞋服。需要我帮您核对行程清单吗?"
- },
- {
- "nodeName": "天气与玩要建议",
- "nextNodeCode": "IN_TRIP_CARE",
- "nodeCode": "WEATHER_TIPS",
- "maxRounds": 0,
- "nodeType": 14,
- "nodeConfig": "{\"apiKey\":\"weather_travel_tips\",\"sideTask\":false,\"smartApi\":true}",
- "sortNo": 10,
- "conditionExpr": "",
- "messageTemplate": "根据您目的地近期天气和同行人员情况,建议您注意防晒补水、老人小孩备常用药。具体玩游项目我会结合天气给您建议。"
- },
- {
- "nodeName": "行中关怀",
- "nextNodeCode": "SURVEY",
- "nodeCode": "IN_TRIP_CARE",
- "maxRounds": 0,
- "nodeType": 10,
- "nodeConfig": "{\"delivery\":\"proactive\",\"careType\":\"in_trip\",\"awaitReply\":true}",
- "sortNo": 11,
- "conditionExpr": "",
- "messageTemplate": "旅途还顺利吗?景点玩得怎么样?如有任何问题随时告诉我,小美一直在线。"
- },
- {
- "nodeName": "满意度调查",
- "nextNodeCode": "WAIT_HOLIDAY",
- "nodeCode": "SURVEY",
- "maxRounds": 0,
- "nodeType": 11,
- "nodeConfig": "{\"surveyType\":\"satisfaction\",\"awaitReply\":true}",
- "sortNo": 12,
- "conditionExpr": "",
- "messageTemplate": "感谢您选择测试旅行社!方便用1分钟做个满意度调查吗?您的反馈帮我们做得更好。"
- },
- {
- "nodeName": "节日营销等待",
- "nextNodeCode": "HOLIDAY_PROMO",
- "nodeCode": "WAIT_HOLIDAY",
- "maxRounds": 0,
- "nodeType": 32,
- "nodeConfig": "{\"delayDays\":30,\"cronHint\":\"holiday_minus_30d\"}",
- "sortNo": 13,
- "conditionExpr": "",
- "messageTemplate": ""
- },
- {
- "nodeName": "节日营销触达",
- "nextNodeCode": "END",
- "nodeCode": "HOLIDAY_PROMO",
- "maxRounds": 0,
- "nodeType": 13,
- "nodeConfig": "{\"repurchaseType\":\"holiday\",\"delivery\":\"proactive\"}",
- "sortNo": 14,
- "conditionExpr": "",
- "messageTemplate": "您好!临近节日,想了解下您近期有没有出行计划?云南精品线有新线路优惠,感兴趣我发您看看。"
- },
- {
- "nodeName": "意向分支",
- "nextNodeCode": "",
- "nodeCode": "JUDGE",
- "maxRounds": 0,
- "nodeType": 3,
- "nodeConfig": "{}",
- "sortNo": 15,
- "conditionExpr": "{\"branches\":[{\"nextNodeCode\":\"ORDER_ACTION\",\"condition\":{\"field\":\"customerIntent\",\"operator\":\"eq\",\"value\":\"purchase\"},\"desc\":\"\\u7b7e\\u5355\"},{\"nextNodeCode\":\"WAIT_PRE_TRIP\",\"condition\":{\"field\":\"customerIntent\",\"operator\":\"eq\",\"value\":\"booked\"},\"desc\":\"\\u5df2\\u8ba2\\u8fdb\\u5165\\u51fa\\u884c\\u524d\"},{\"nextNodeCode\":\"HOLIDAY_PROMO\",\"condition\":{\"field\":\"customerIntent\",\"operator\":\"eq\",\"value\":\"inquiry\"},\"desc\":\"\\u7ee7\\u7eed\\u57f9\\u80b2\"}],\"defaultNodeCode\":\"WAIT_HOLIDAY\"}",
- "messageTemplate": ""
- },
- {
- "nodeName": "结束",
- "nextNodeCode": "",
- "nodeCode": "END",
- "maxRounds": 0,
- "nodeType": 5,
- "nodeConfig": "{}",
- "sortNo": 16,
- "conditionExpr": "",
- "messageTemplate": ""
- }
- ],
- "industryType": "travel",
- "templateName": "旅游销冠全链路(A旅游公司)",
- "_generateParam": {
- "advisorName": "小美",
- "companyShortName": "测试旅行社",
- "industryType": "travel",
- "advisorRole": "金牌旅行顾问",
- "mainProduct": "云南精品线"
- },
- "status": 1
- },
- "usedFallback": true,
- "passed": true,
- "workflowId": 4,
- "message": "generate and confirm ok"
- },
- "phase2Learning": {
- "hotReplayRowsBefore": 50,
- "hotReplayRowsAfter": 52,
- "delta": 2,
- "passed": true,
- "status": "ok",
- "hint": "async write ok",
- "message": "learning replay ok",
- "verify": {
- "companyId": 338,
- "archiveTableExists": true,
- "hotIndexExists": true,
- "hotReplayRows": 52,
- "eventLogRows": 52,
- "archiveRows": 0,
- "status": "ok"
- }
- },
- "stress": {
- "multiTurn": {
- "dialogueStage": "stressMultiTurn",
- "turns": 6,
- "avgScore": 65.16666666666667,
- "minScore": 0.0,
- "passed": true,
- "message": "multiTurn ok"
- },
- "rateLimit": {
- "cooldownAt": 6,
- "passed": true,
- "message": "rate limit triggered",
- "instanceId": 83
- },
- "waitWake": {
- "passed": true,
- "message": "lifecycle wait wake ok",
- "statusAfter": "running",
- "resumeIndex": 8,
- "currentIndexAfter": 9,
- "instanceId": 84
- },
- "longMessage": {
- "passed": true,
- "message": "long message handled",
- "code": 200,
- "messageLength": 11000
- },
- "concurrentStart": {
- "passed": true,
- "successCount": 3,
- "instanceIds": [
- 86,
- 87,
- 88
- ],
- "message": "3 burst starts ok"
- },
- "emptyMessage": {
- "passed": true,
- "code": 200,
- "message": "empty message handled"
- },
- "completedReentry": {
- "statusBeforeReentry": "completed",
- "responseMsg": "工作流实例不在运行状态",
- "passed": true,
- "message": "completed reentry handled"
- },
- "instanceState": {
- "passed": true,
- "state": {
- "variables": {
- "_lobsterSimMinuteUnit": 10,
- "workflowStage": "consult",
- "channelType": "TEST",
- "_actionOutcomes": [
- ],
- "activeGoals": [
- ],
- "_recentOutbound": [
- ],
- "conversationMode": "active",
- "_conversationModel": "{\"stages\":[{\"code\":\"consult\",\"promptHint\":\"你是小美,测试旅行社旅行顾问。客户来自直播间,先破冰并了解是否已有出行计划。\",\"label\":\"直播加微破冰\",\"goals\":[]},{\"code\":\"collect\",\"promptHint\":\"逐步询问目的地、日期、人数、预算;一次只问一个关键问题。\",\"label\":\"需求采集打标\",\"goals\":[{\"field\":\"destination\",\"collected\":false,\"label\":\"目的地\",\"required\":true},{\"field\":\"travel_date\",\"collected\":false,\"label\":\"出行日期\",\"required\":true},{\"field\":\"budget\",\"collected\":false,\"label\":\"预算\",\"required\":true},{\"field\":\"pax\",\"collected\":false,\"label\":\"出行人数\",\"required\":true}]},{\"code\":\"offer\",\"promptHint\":\"基于采集信息推荐云南精品线,突出亮点与优惠,自然引导签单。\",\"label\":\"线路推荐促单\",\"goals\":[]},{\"code\":\"pre_trip\",\"promptHint\":\"出行前5天提醒证件、行李、当地天气与注意事项。\",\"label\":\"出行前关怀\",\"goals\":[]},{\"code\":\"in_trip\",\"promptHint\":\"行程中主动问候,询问是否遇到问题,给出景点玩要建议。\",\"label\":\"行中关怀\",\"goals\":[]},{\"code\":\"post_trip\",\"promptHint\":\"行程结束后收集满意度与改进建议。\",\"label\":\"满意度回访\",\"goals\":[]},{\"code\":\"repurchase\",\"promptHint\":\"大节日前30天关怀,了解是否有新的出行计划并推荐产品。\",\"label\":\"节日营销\",\"goals\":[]}],\"sideTasks\":[{\"triggerIntents\":[\"purchase\",\"high_intent\",\"booked\"],\"nodeCode\":\"TAG_AUTO\",\"action\":\"add_tag\",\"nodeType\":9},{\"triggerIntents\":[\"purchase\",\"order\",\"book\"],\"nodeCode\":\"ORDER_ACTION\",\"action\":\"create_order\",\"nodeType\":7}],\"defaultStage\":\"consult\",\"description\":\"旅游全链路:会话常驻,节点负责打标/签单/出行关怀/满意度/节日营销\",\"version\":2}",
- "validation": true
- },
- "instanceId": 91,
- "completedNodes": 0,
- "heartbeat": {
- "instanceId": 91,
- "registered": true,
- "lastHeartbeatTime": "Tue Jun 23 09:10:56 CST 2026",
- "lastHeartbeatTimestamp": 1782177056895,
- "elapsedMinutes": 0,
- "timeoutMinutes": 1440,
- "active": true,
- "status": "active",
- "message": "实例心跳正常"
- },
- "currentNodeName": "开始",
- "startTime": "2026-06-23 09:10:55",
- "currentNodeIndex": 0,
- "lastActivityTime": "2026-06-23 09:10:55",
- "status": "running",
- "totalNodes": 16
- },
- "message": "instance state ok"
- },
- "qualityDirect": {
- "rawScore": 124,
- "normalizedPercent": 77.5,
- "passThreshold": 120,
- "passScorePercent": 75,
- "floorRaw": 96,
- "productionTargetMet": true,
- "passed": true,
- "message": "direct quality score ok"
- }
- }
- },
- "dialogueScript": {
- "industryType": "travel",
- "industryLabel": "旅游销冠全链路",
- "stageKeys": [
- "postBookingPreTripMultiTurn",
- "capabilityTriggers",
- "consultMultiTurn",
- "postBookingLifecycle",
- "bookingFunnel",
- "stressMultiTurn",
- "holidayPromoMultiTurn",
- "preTripCareMultiTurn"
- ],
- "stageLineCounts": {
- "postBookingPreTripMultiTurn": 3,
- "capabilityTriggers": 6,
- "consultMultiTurn": 6,
- "postBookingLifecycle": 9,
- "bookingFunnel": 10,
- "stressMultiTurn": 6,
- "holidayPromoMultiTurn": 3,
- "preTripCareMultiTurn": 3
- }
- },
- "qualityGateConfig": {
- "enabled": true,
- "passScorePercent": 75,
- "targetScorePercent": 75,
- "minNodeScorePercent": 60,
- "minE2eAvgScorePercent": 75,
- "multiturnMinAvgScorePercent": 45
- },
- "failures": [
- ],
- "passed": true,
- "durationMs": 479454,
- "templateIdUsed": 1
- },
- "profileDomain": {
- "basic": {
- "enabled": true,
- "projectionMode": "async",
- "searchMode": "db",
- "esEnabled": false,
- "mqConsumerEnabled": true,
- "missingBeans": [
- ],
- "beansOk": true,
- "simulationMode": "basic",
- "runtime": {
- "unifiedSearchTotal": 38,
- "unifiedSearchMode": "db",
- "searchTotal": 38,
- "searchMode": "db",
- "identityCount": 38,
- "orderStatsSample": 0,
- "qwContactSample": 0
- },
- "passed": true,
- "message": "profile domain ready"
- },
- "fullSimulation": {
- "enabled": true,
- "projectionMode": "async",
- "searchMode": "db",
- "esEnabled": false,
- "mqConsumerEnabled": true,
- "missingBeans": [
- ],
- "beansOk": true,
- "simulationMode": "full",
- "runtime": {
- "unifiedSearchTotal": 38,
- "unifiedSearchMode": "db",
- "searchTotal": 38,
- "searchMode": "db",
- "identityCount": 38,
- "orderStatsSample": 0,
- "qwContactSample": 0
- },
- "simulation": {
- "patchAdapter": true,
- "writePath": {
- "published": true,
- "readBack": true
- },
- "backfillLegacy": {
- "type": "legacy",
- "page": 1,
- "size": 5,
- "processed": 5,
- "published": 5
- },
- "backfillOrders": {
- "type": "order",
- "page": 1,
- "size": 5,
- "processed": 0,
- "published": 0
- },
- "backfillQwContacts": {
- "type": "qw_contact",
- "page": 1,
- "size": 5,
- "processed": 0,
- "published": 0
- }
- },
- "passed": true,
- "message": "profile domain ready"
- },
- "sourceHooks": {
- "companyId": 338,
- "simulationMode": "source-hooks",
- "sources": [
- {
- "source": "wx_call",
- "eventCount": 1,
- "eventOk": true,
- "shardId": 18,
- "profileKey": "__val_src_wx_call__",
- "channelType": "WX",
- "sourceVersion": "val:wx_call:1782177060866",
- "readBack": true,
- "passed": true
- },
- {
- "source": "qw_voice",
- "eventCount": 1,
- "eventOk": true,
- "shardId": 3,
- "profileKey": "__val_src_qw_voice__",
- "channelType": "QW",
- "sourceVersion": "val:qw_voice:1782177060866",
- "readBack": true,
- "passed": true
- },
- {
- "source": "lobster_chat",
- "eventCount": 1,
- "eventOk": true,
- "shardId": 3,
- "profileKey": "__val_src_lobster_chat__",
- "channelType": "QW",
- "sourceVersion": "val:lobster_chat:1782177060866",
- "readBack": true,
- "passed": true
- },
- {
- "source": "crm_analyze",
- "eventCount": 1,
- "eventOk": true,
- "shardId": 18,
- "profileKey": "__val_src_crm_analyze__",
- "channelType": "QW",
- "sourceVersion": "val:crm_analyze:1782177060866",
- "readBack": true,
- "passed": true
- },
- {
- "source": "qw_ai_analyze",
- "eventCount": 1,
- "eventOk": true,
- "shardId": 11,
- "profileKey": "__val_src_qw_ai_analyze__",
- "channelType": "QW",
- "sourceVersion": "val:qw_ai_analyze:1782177060866",
- "readBack": true,
- "passed": true
- },
- {
- "source": "qw_contact",
- "eventCount": 1,
- "eventOk": true,
- "shardId": 14,
- "profileKey": "__val_src_qw_contact__",
- "channelType": "QW",
- "sourceVersion": "val:qw_contact:1782177060866",
- "readBack": true,
- "passed": true
- },
- {
- "source": "qw_tag",
- "eventCount": 1,
- "eventOk": true,
- "shardId": 27,
- "profileKey": "__val_src_qw_tag__",
- "channelType": "QW",
- "sourceVersion": "val:qw_tag:1782177060866",
- "readBack": true,
- "passed": true
- },
- {
- "source": "order",
- "eventCount": 1,
- "eventOk": true,
- "shardId": 29,
- "profileKey": "__val_src_order__",
- "channelType": "QW",
- "sourceVersion": "val:order:1782177060866",
- "readBack": true,
- "passed": true
- },
- {
- "source": "course_watch",
- "eventCount": 1,
- "eventOk": true,
- "shardId": 20,
- "profileKey": "__val_src_course_watch__",
- "channelType": "QW",
- "sourceVersion": "val:course_watch:1782177060866",
- "readBack": true,
- "passed": true
- },
- {
- "source": "live_watch",
- "variant": "meta",
- "eventCount": 1,
- "eventOk": true,
- "shardId": 15,
- "profileKey": "__val_src_live_watch__",
- "channelType": "QW",
- "sourceVersion": "val:live:1782177060866:meta",
- "readBack": true,
- "passed": true
- },
- {
- "source": "live_watch",
- "variant": "counter",
- "eventCount": 1,
- "eventOk": true,
- "shardId": 15,
- "profileKey": "__val_src_live_watch__",
- "channelType": "QW",
- "sourceVersion": "val:live:1782177060866:cnt:1",
- "readBack": true,
- "passed": true
- },
- {
- "source": "sop",
- "eventCount": 1,
- "eventOk": true,
- "shardId": 20,
- "profileKey": "__val_src_sop__",
- "channelType": "QW",
- "sourceVersion": "val:sop:1782177060866",
- "readBack": true,
- "passed": true
- }
- ],
- "passedCount": 12,
- "totalCount": 12,
- "passed": true,
- "message": "all source hooks simulated and verified"
- },
- "passed": true,
- "message": "profile domain all validations passed"
- },
- "semanticFull": {
- "companyId": 338,
- "sections": {
- "semanticKeywordContext": {
- "passed": true,
- "caseCount": 8,
- "message": "all semantic context cases passed"
- },
- "catalogValidation": {
- "companyId": 338,
- "categories": {
- "custom_keywords": {
- "keywordCount": 129,
- "totalCases": 258,
- "passedCases": 258,
- "passed": true,
- "failures": [
- ],
- "failureSampleCount": 0,
- "message": "all 258 checks passed for 129 words"
- },
- "positive_custom": {
- "keywordCount": 107,
- "totalCases": 214,
- "passedCases": 214,
- "passed": true,
- "failures": [
- ],
- "failureSampleCount": 0,
- "message": "all 214 checks passed for 107 words"
- },
- "negative_custom": {
- "keywordCount": 108,
- "totalCases": 216,
- "passedCases": 216,
- "passed": true,
- "failures": [
- ],
- "failureSampleCount": 0,
- "message": "all 216 checks passed for 108 words"
- },
- "soft_refusal": {
- "keywordCount": 56,
- "totalCases": 168,
- "passedCases": 168,
- "passed": true,
- "failures": [
- ],
- "failureSampleCount": 0,
- "message": "all 168 checks passed for 56 words"
- },
- "handoff_trigger": {
- "keywordCount": 78,
- "totalCases": 390,
- "passedCases": 390,
- "passed": true,
- "failures": [
- ],
- "failureSampleCount": 0,
- "message": "all 390 checks passed for 78 words"
- },
- "sarcasm": {
- "keywordCount": 61,
- "totalCases": 122,
- "passedCases": 122,
- "passed": true,
- "failures": [
- ],
- "failureSampleCount": 0,
- "message": "all 122 checks passed for 61 words"
- },
- "_combos": {
- "totalCases": 6,
- "passedCases": 6,
- "passed": true,
- "failures": [
- ],
- "message": "combo checks ok"
- }
- },
- "categoryCount": 6,
- "totalCases": 1374,
- "passedCases": 1374,
- "failedCases": 0,
- "failures": [
- ],
- "failureTruncated": false,
- "passed": true,
- "durationMs": 89098,
- "message": "catalog validation passed (1374 cases across 6 categories)"
- }
- },
- "contextCases": [
- {
- "id": "soft_refusal_first",
- "input": "下个月再说 (empty ctx)",
- "expected": "L2 pause, not exclude",
- "actual": "L2_SOFT_REFUSAL exclude=false reason=soft_refusal",
- "passed": true
- },
- {
- "id": "soft_refusal_second",
- "input": "下个月再说 (_softRefusalCount=1)",
- "expected": "L4 exclude (repeated)",
- "actual": "L4_EXCLUDE exclude=true reason=repeated_soft_refusal",
- "passed": true
- },
- {
- "id": "handoff_first_neutral",
- "input": "了解一下人工 -\u003e keyword 人工 (neutral)",
- "expected": "no transfer, count=1",
- "actual": "takeover=false count=1 reason=Handoff trigger noted (session 1, awaiting confirmation): 人工",
- "passed": true
- },
- {
- "id": "handoff_second_confirm",
- "input": "转人工 (_handoffTriggerCount=1)",
- "expected": "transfer on 2nd hit",
- "actual": "takeover=true reason=Handoff trigger (session escalated x2): 人工",
- "passed": true
- },
- {
- "id": "negation_handoff",
- "input": "不转人工",
- "expected": "no handoff",
- "actual": "takeover=false",
- "passed": true
- },
- {
- "id": "negation_soft_refusal",
- "input": "别下个月",
- "expected": "no soft refusal",
- "actual": "null reason=null",
- "passed": true
- },
- {
- "id": "positive_sentiment_soft",
- "input": "很满意,价格多少 (positive ctx)",
- "expected": "no soft refusal",
- "actual": "null exclude=false",
- "passed": true
- },
- {
- "id": "positive_sentiment_handoff",
- "input": "很满意,价格多少 (positive ctx, no handoff keyword)",
- "expected": "no handoff misfire",
- "actual": "takeover=false reason=客户情绪正面(满意),仅询问价格,属于简单咨询,无需转接更专业支持",
- "passed": true
- }
- ],
- "failures": [
- ],
- "passed": true,
- "durationMs": 97734,
- "totalCases": 1382,
- "passedCases": 1382,
- "message": "semantic keyword full validation passed"
- }
- },
- "integrationWarning": "2/4 tests passed in 1631ms",
- "failures": [
- ],
- "passed": true,
- "durationMs": 585627,
- "pageCount": 29,
- "requiredPagesPassed": "15/15"
- }
|