# 06 - Case Analyst Agent (案例分析师) 设计详解 ## 1. 核心职责 Case Analyst 是系统中的**案例匹配引擎**。当 Coordinator 需要用真实案例来增强说服力时(评估后展示、异议处理、犹豫用户激励),调用此 Agent 从知识库中查找并呈现最相关的成功案例。 核心能力: 1. **案例检索** -- 从知识库中搜索与用户画像最匹配的成功案例 2. **相似度评估** -- 计算用户条件与案例主角的匹配程度 3. **关键因素提取** -- 分析案例成功的关键因素,映射到当前用户的优劣势 4. **时间线参考** -- 提供案例从准备到获批的时间线供用户参考 5. **差异化呈现** -- 在多个案例之间做差异化展示,覆盖不同角度 > 设计原则:**案例必须来自知识库,不可捏造。** 如果没有匹配的案例,诚实说明而不是编故事。 ## 2. 模型与参数 ```typescript { model: 'claude-haiku-3-5-20241022', // 主要是搜索+格式化,不需要 Sonnet max_tokens: 1500, temperature: 0, // 案例呈现需要准确性 system: [ { type: 'text', text: caseAnalystPrompt, cache_control: { type: 'ephemeral' } } ], } ``` 选用 Haiku 的理由: - 核心工作是搜索知识库 + 结构化整理,不涉及复杂推理 - 需要快速返回结果(用户在等待中) - 成本敏感 -- 案例查找可能频繁触发,Haiku 成本仅为 Sonnet 的 1/10 - 输入/输出格式固定,Haiku 足以胜任 ## 3. 可用工具 (Available Tools) Case Analyst 有 **2 个工具**: ### 3.1 search_knowledge ```typescript { name: 'search_knowledge', description: '搜索知识库中的成功案例、客户故事、申请经验。搜索时应包含用户的核心特征(行业、学历、年龄段)作为关键词。', input_schema: { type: 'object', properties: { query: { type: 'string', description: '案例搜索查询,如"IT行业硕士30岁高才通成功案例"' }, category: { type: 'string', enum: ['QMAS', 'GEP', 'IANG', 'TTPS', 'CIES', 'TECHTAS'], description: '移民类别,用于缩小案例搜索范围' } }, required: ['query'] } } ``` ### 3.2 get_user_context ```typescript { name: 'get_user_context', description: '获取用户的详细背景信息,用于更精准地匹配案例。', input_schema: { type: 'object', properties: { query: { type: 'string', description: '检索用户背景,如"用户的学历工作行业信息"' } }, required: ['query'] } } ``` ## 4. System Prompt 要点 ``` # 身份 你是 iConsulting 的案例分析师。你的任务是从知识库中查找与当前用户最匹配的成功案例。 # 核心原则 1. 所有案例必须来自知识库搜索结果,绝不能编造 2. 如果没有高度匹配的案例,诚实说明并提供最接近的参考 3. 案例呈现要突出与用户的相似点,让用户产生共鸣 4. 同时指出案例与用户的差异,保持客观 5. 优先展示最近的案例(时效性更强) # 搜索策略 - 第一轮搜索:用用户的核心特征组合(行业+学历+类别) - 如果结果不足:放宽条件,搜索同行业或同类别的案例 - 最多搜索 2 轮 # 相似度评分标准(0-100) - 同行业 +25 - 同学历层次 +20 - 年龄差在5岁内 +15 - 同移民类别 +20 - 同地区/城市 +10 - 工作年限差在3年内 +10 # 输出格式 必须返回 JSON,包含 matched_cases[]、similarity_analysis、timeline_reference ``` ## 5. 输入/输出格式 ### 输入 (Coordinator 传入) ```typescript interface CaseAnalystInput { /** 用户的核心画像 */ userProfile: { age?: number; education?: string; university?: string; industry?: string; yearsOfExperience?: number; annualIncome?: number; targetCategory?: string; }; /** 目标移民类别 */ targetCategory: 'QMAS' | 'GEP' | 'IANG' | 'TTPS' | 'CIES' | 'TECHTAS'; /** 案例搜索的侧重点(可选) */ focus?: 'success_story' | 'timeline' | 'similar_background' | 'overcoming_weakness'; } ``` ### 输出 (返回给 Coordinator) ```typescript interface CaseAnalystOutput { /** 匹配到的案例列表(按相似度排序) */ matched_cases: Array<{ /** 案例标题/代号 */ case_title: string; /** 案例主角的背景摘要 */ profile_summary: string; /** 申请的移民类别 */ category: string; /** 与当前用户的相似度(0-100) */ similarity_score: number; /** 相似点列表 */ similarities: string[]; /** 差异点列表 */ differences: string[]; /** 成功的关键因素 */ key_success_factors: string[]; /** 案例时间线 */ timeline?: { preparation: string; // 准备期 application: string; // 申请期 approval: string; // 审批期 total: string; // 总耗时 }; /** 来源引用 */ source?: { title: string; article_id?: string; }; }>; /** 综合相似度分析 */ similarity_analysis: { best_match_score: number; // 最高匹配分数 average_score: number; // 平均匹配分数 match_quality: 'high' | 'medium' | 'low' | 'none'; summary: string; // 一句话总结匹配情况 }; /** 时间线参考(综合多个案例) */ timeline_reference: { estimated_preparation: string; // 预计准备时间 estimated_processing: string; // 预计审批时间 estimated_total: string; // 预计总时间 factors_affecting_timeline: string[]; // 影响时间的因素 }; /** 如果无匹配案例 */ no_match_reason?: string; } ``` ## 6. 触发时机 (When to Trigger) Coordinator 在以下场景调用 `invoke_case_analyst`: | 场景 | 目的 | 触发条件 | |------|------|----------| | 评估结果呈现后 | 用案例增强推荐说服力 | 评估完成,需要展示同类成功案例 | | 用户犹豫不决 | 用案例激励用户 | Strategist 建议 build_rapport | | 异议处理中 | 用案例回应"能成功吗"的顾虑 | Objection Handler 建议 provide_more_data | | 用户主动要求 | "有没有类似的案例?" | 用户直接询问案例 | | 时间线问题 | 用案例提供时间参考 | 用户问"要多久" | **不应触发的场景**: - 对话初期,用户信息不足(无法做有效匹配) - 用户在问纯政策问题(调 Policy Expert) - 已经展示过案例且用户没有追问 ## 7. 内部循环 (Internal Loop) Case Analyst 的 agent loop 最多 **2 轮** tool 调用,设计为**快进快出**: ``` ┌─────────────────────────────────────────────────────┐ │ Case Analyst Internal Loop (max 2 turns) │ │ │ │ Turn 0: 主搜索 │ │ ├── 构建搜索查询: │ │ │ "{industry} {education} {age}岁 │ │ │ {targetCategory} 成功案例" │ │ ├── search_knowledge({query, category}) │ │ │ │ │ ├── 结果分析: │ │ │ ├── 找到 2+ 相关案例 → 直接生成输出,结束 │ │ │ ├── 找到 0-1 条 → 放宽条件进入 Turn 1 │ │ │ └── 找到 0 条 → 返回 no_match_reason │ │ │ │ │ Turn 1: 补充搜索(放宽条件) │ │ ├── 放宽策略: │ │ │ ├── 去掉年龄限制 │ │ │ ├── 只保留行业 + 类别 │ │ │ └── 或搜索同类别的通用成功案例 │ │ ├── search_knowledge({query: 放宽后的查询}) │ │ │ │ │ └── 综合两轮结果生成输出 │ └─────────────────────────────────────────────────────┘ ``` **搜索查询构建逻辑**: ```typescript function buildCaseSearchQuery(input: CaseAnalystInput): string { const parts: string[] = []; // 核心维度 if (input.userProfile.industry) parts.push(input.userProfile.industry); if (input.userProfile.education) parts.push(input.userProfile.education); if (input.userProfile.age) { const ageRange = input.userProfile.age < 30 ? '20多岁' : input.userProfile.age < 40 ? '30多岁' : '40多岁'; parts.push(ageRange); } // 类别 const categoryNames: Record = { QMAS: '优才计划', GEP: '专才计划', IANG: 'IANG', TTPS: '高才通', CIES: '投资移民', TECHTAS: '科技人才' }; parts.push(categoryNames[input.targetCategory] || input.targetCategory); parts.push('成功案例'); return parts.join(' '); } ``` ## 8. 与其他 Agent 的关系 ``` ┌──────────────┐ invoke_case_analyst ┌──────────────┐ │ │ ─────────────────────────────→ │ │ │ Coordinator │ CaseAnalystOutput │ Case │ │ │ ←───────────────────────────── │ Analyst │ └──────┬───────┘ └──────┬───────┘ │ │ │ 常见协作模式: ├── search_knowledge │ └── get_user_context │ 模式 A:评估 + 案例(增强说服) │ ├── invoke_assessment_expert (并行) │ └── invoke_case_analyst (并行) │ → Coordinator 综合评估结果和案例一起呈现 │ │ 模式 B:异议 + 案例(回应质疑) │ ├── invoke_objection_handler │ └── invoke_case_analyst │ → Coordinator 用案例数据支撑异议回应 │ │ 模式 C:单独使用(用户主动问案例) │ └── invoke_case_analyst │ → Coordinator 直接转述案例 ``` **并行调用优化**: Case Analyst 和 Assessment Expert 可以**并行调用**,因为两者互不依赖: ```typescript // Coordinator 同时发起两个 Agent 调用 const [assessmentResult, caseResult] = await Promise.all([ invokeAssessmentExpert({ userInfo }), invokeCaseAnalyst({ userProfile, targetCategory: 'TTPS' }), ]); // 综合两者结果生成回复 ``` ## 9. 示例场景 ### 场景 1:IT 从业者查找高才通案例 **Coordinator 调用**: ```json { "tool": "invoke_case_analyst", "input": { "userProfile": { "age": 32, "education": "硕士", "university": "浙江大学", "industry": "IT/科技", "yearsOfExperience": 8, "targetCategory": "TTPS" }, "targetCategory": "TTPS", "focus": "success_story" } } ``` **内部执行**: ``` Turn 0: search_knowledge({ query: "IT科技 硕士 30多岁 高才通 成功案例", category: "TTPS" }) → 找到 2 条相关案例 → 信息充足,直接生成输出 ``` **返回结果**: ```json { "matched_cases": [ { "case_title": "资深前端工程师 高才通B类获批", "profile_summary": "33岁,华中科技大学硕士,前端开发9年经验,曾就职于腾讯、字节跳动", "category": "TTPS B类", "similarity_score": 82, "similarities": [ "同为IT/科技行业", "硕士学历", "年龄接近(33 vs 32)", "工作经验相近(9年 vs 8年)", "均为百强大学毕业" ], "differences": [ "案例为华中科技大学(用户为浙江大学)", "案例有大厂经历(腾讯、字节)" ], "key_success_factors": [ "百强大学硕士满足B类学历要求", "9年经验远超B类最低3年要求", "IT行业为香港重点发展领域", "准备了详细的项目经验证明" ], "timeline": { "preparation": "约2周(材料准备)", "application": "1天(在线提交)", "approval": "5周", "total": "约7周" }, "source": { "title": "IT行业高才通成功案例集", "article_id": "case-ttps-it-001" } }, { "case_title": "AI算法工程师 高才通B类获批", "profile_summary": "29岁,北京大学学士+硕士,AI/机器学习方向5年经验,年薪50万", "category": "TTPS B类", "similarity_score": 68, "similarities": [ "IT/科技行业", "百强大学", "高才通B类路径" ], "differences": [ "年龄较轻(29 vs 32)", "工作经验较少(5年 vs 8年)", "北大 vs 浙大" ], "key_success_factors": [ "AI领域高度匹配香港科技发展战略", "虽然经验年限不长但项目含金量高", "准备了发表论文和专利清单" ], "timeline": { "preparation": "约1周", "application": "1天", "approval": "4周", "total": "约5周" }, "source": { "title": "AI领域人才高才通案例", "article_id": "case-ttps-ai-001" } } ], "similarity_analysis": { "best_match_score": 82, "average_score": 75, "match_quality": "high", "summary": "找到2个高度匹配的IT行业高才通B类成功案例,您的条件(浙大硕士+8年经验)与案例主角非常接近,匹配度较高。" }, "timeline_reference": { "estimated_preparation": "1-2周", "estimated_processing": "4-6周", "estimated_total": "5-8周", "factors_affecting_timeline": [ "材料准备的完整度直接影响审批速度", "申请高峰期可能延长1-2周", "百强大学认证通常不需要额外时间" ] } } ``` ### 场景 2:无高匹配案例时的处理 **Coordinator 调用**: ```json { "tool": "invoke_case_analyst", "input": { "userProfile": { "age": 45, "education": "大专", "industry": "传统制造业", "yearsOfExperience": 20 }, "targetCategory": "QMAS", "focus": "overcoming_weakness" } } ``` **内部执行**: ``` Turn 0: search_knowledge({query: "传统制造业 大专 40多岁 优才计划 成功案例", category: "QMAS"}) → 0 条直接匹配 Turn 1: search_knowledge({query: "大专学历 优才计划 成功案例 经验丰富"}) → 1 条弱相关案例 → 如实返回低匹配结果 ``` **返回结果**: ```json { "matched_cases": [ { "case_title": "制造业高管 优才计划获批", "profile_summary": "42岁,本科学历,制造业20年经验,担任工厂副总经理,年薪80万", "category": "QMAS", "similarity_score": 45, "similarities": [ "同为制造业从业者", "工作年限相近(20年)", "年龄接近(42 vs 45)" ], "differences": [ "案例为本科(用户为大专)", "案例有高管头衔", "案例年薪较高" ], "key_success_factors": [ "20年行业深耕,强调管理经验和行业贡献", "持有多项行业专利和资质证书", "在申请材料中突出了企业经营业绩" ], "timeline": { "preparation": "约4周(需额外准备补充材料)", "application": "1天", "approval": "约10周", "total": "约15周" }, "source": { "title": "制造业人才优才申请经验分享", "article_id": "case-qmas-mfg-001" } } ], "similarity_analysis": { "best_match_score": 45, "average_score": 45, "match_quality": "low", "summary": "知识库中与您条件高度匹配的案例较少。找到1个同行业案例作为参考,但该案例的学历和职位层级与您有差异。建议通过详细评估确认最优路径。" }, "timeline_reference": { "estimated_preparation": "4-6周(可能需要额外补充材料)", "estimated_processing": "9-12周", "estimated_total": "3-4个月", "factors_affecting_timeline": [ "大专学历可能需要额外的经验证明材料", "需要突出工作成果和行业贡献弥补学历短板", "建议准备推荐信增加申请说服力" ] } } ```