git地址:github.com/lovelyqun/M…
当我想让AI像医生一样问诊时,发现它总是忘记前面说啥,或者问完一个问题就停不下来。
传统AI交互模式:
🧑💻 "我肚子疼。"🤖 "好的,肚子疼可能是...,需要进一步检查...,建议你做...检查 巴拉巴拉..."
看似说了很多,其实啥也没说。🤦♂️
显然不行。所以我做了个实验——让AI学会"连续思考",像真正的专家一样有条理地引导整个对话。今天就来聊聊这个有趣的Sequential Thinking实现。
🔄 老式AI vs 新式AI:差别在哪?
老式AI:像个"金鱼"🐟
// 天气查询 - 典型的金鱼记忆server.tool("get_weather", {city}, async ({city}) => { const weather = generateWeatherData(city); return formatWeatherInfo(weather); // 说完就忘,下次重来});
金鱼特色:
- 七秒记忆,每次都是新朋友问一句答一句,绝不多想简单粗暴,适合查个天气啥的
新式AI:像个"老中医"👨⚕️
// 医生助手 - 步步为营,环环相扣server.tool("assistant-doctor", {sessionId, thought, action}, async (params) => { const session = loadOrCreateSession(params); // 翻出病历本 if (session.waitingForPatientResponse) { return "WAITING_FOR_USER_INPUT"; // 闭嘴,听病人说话 } // 下一步该问啥,心里有数 const nextStep = getNextDiagnosisStep(session); return formatGuidedQuestion(nextStep);});
老中医特色:
- 记性好,你昨天说啥都记得有章法,按套路出牌会主动,该问啥就问啥
🏥 让AI变身老中医:实战案例解析
看病这事儿,是个技术活。医生不会上来就给你开药,而是要:
- 👂 听你描述哪里不舒服(主诉)🔍 追问细节:"怎么个疼法?" (症状详询)📋 了解病史:"以前得过啥病?"(病史采集)🩺 看看检查结果(体格检查)🧠 综合分析,给出诊断
这是一套标准动作,不能乱。传统AI就像个莽撞的实习医生🩺👶,想到哪说到哪。而我们的Sequential Thinking MCP就是要让AI变身老中医👨⚕️✨,有条不紊地问诊。
三大法宝,让AI变聪明
法宝一:给AI一个"问诊清单"📋
function getMedicalDiagnosisSteps() { return [ { type: "question", content: "今天哪里不舒服?啥时候开始的?", waitForResponse: true, responseKey: "chief_complaint" }, { type: "question", content: "具体咋疼的?刺痛还是胀痛?", waitForResponse: true, responseKey: "symptom_details" }, // ... 还有好几步,一步都不能少 ];}
法宝二:给AI一个"病例本"📝
const session = { id: "medical_xxx", // 病历号 problem: "肩膀疼", // 主要毛病 currentStep: 3, // 现在问到第几个问题了 totalSteps: 7, // 总共要问几个 waitingForPatientResponse: true, // 是不是在等病人说话 consultationSteps: [], // 完整的问诊记录 patientResponses: {} // 病人说过的话,分类记好};
法宝三:教AI啥时候该说话,啥时候该闭嘴
// 简单粗暴的逻辑if (病人刚说完话 && 有新信息) { 把话记到小本本上(); 翻到下一页(); if (下一个问题需要病人回答) { return "闭嘴,等病人说话"; }} else { 继续按流程走();}
🧠 揭秘:三个小技巧让AI变得有耐心
技巧一:教AI学会"打住!等等!"
你知道最难的是什么吗?让AI闭嘴!传统AI就像话痨,一开口就停不下来。但老中医问诊时,问完一个问题就得等病人回答,不能自说自话。
// 这招太绝了:给AI下个"禁言令"if (session.waitingForPatientResponse) { return `⚠️ 暂停!现在轮到病人说话了👨⚕️ 刚才问的是: ${session.currentQuestion}💡 AI你别抢话,等等真人回答--- 此处必须停止,等待真实用户输入 --- `;}
这招咋管用的:
- AI看到这个"禁言令",立马闭嘴病人说完话,才能继续下一轮简单粗暴,但效果拔群
技巧二:给AI配个"超级大脑"
还记得那个七秒记忆的金鱼吗?我们得给AI换个脑子!这个新脑子不但记性好,还很有条理。
// AI的新大脑长这样:const session = { id: "medical_xxx", currentStep: 3, // 问到第几个问题了 totalSteps: 7, // 总共要问几个 waitingForPatientResponse: true, // 现在是不是该病人说话 consultationSteps: [ // 完整的聊天记录 { step: 1, content: "哪里不舒服?", patientResponse: "肩膀疼,疼了一个月了", timestamp: "2025-01-01T10:00:00Z" }, // ... 每一轮对话都记得清清楚楚 ], patientResponses: { // 重要信息分类整理 "chief_complaint": "肩膀疼,疼了一个月了", "symptom_details": "胀痛,上班时特别严重" }};
这脑子有多厉害:
- 每次对话都会翻出完整的病历病人说过的每句话都记着能根据前面的信息,越问越深入
技巧三:给AI写个"作弊小抄"
最后一招是关键!就像考试时偷偷带小抄一样,我们给AI准备了一个问诊流程表,按着这个来,保准不会乱套。
// AI的问诊小抄function getMedicalDiagnosisSteps() { return [ { type: "question", content: "哪里不舒服?啥时候开始的?", waitForResponse: true, // 这里要等病人回答 responseKey: "chief_complaint" }, { type: "question", content: "具体咋疼的?什么情况下疼得厉害?", waitForResponse: true, // 这里也要等 responseKey: "symptom_details" }, { type: "analysis", content: "让我琢磨琢磨你这症状...", waitForResponse: false // 这里AI自己分析,不用等 } // ... 照着这个流程一步步来 ];}// AI按小抄办事function processNextStep(session, userInput) { const 当前步骤 = getMedicalDiagnosisSteps()[session.currentStep - 1]; if (需要等病人说话 && 病人刚说了话) { 记到小本本上(userInput); 翻页到下一步(); } else if (该AI自己琢磨了) { 开始分析(); 继续下一步(); } return 问下一个问题();}
小抄的威力:
- AI不能胡说八道,必须按流程来每一步都有明确任务,不会跑偏自动判断啥时候该闭嘴,啥时候该分析
🛠️ 代码实现:五分钟看懂精髓
怎么注册这个神奇的工具
server.tool( "assistant-doctor", // 工具名,简单粗暴 "AI老中医问诊助手", // 描述,一目了然 { problem: "病人主要毛病", // 比如"肩膀疼" thought: "刚才说了啥", // 病人的回答或AI的分析 sessionId: "病历号", // 用来找到对应的聊天记录 action: "干啥" // 开始、继续、还是结束 }, async (参数) => { // 根据不同情况,做不同的事 switch (参数.action) { case 'start': return 开始问诊(参数.problem); case 'continue': return 继续问诊(参数.sessionId, 参数.thought); case 'complete': return 结束问诊(参数.sessionId); } });
跟普通工具有啥区别?
普通工具(比如天气查询):
🧑💻:"北京天气咋样?"🤖:"晴天,25度。" // 说完就完事,没有下文 🔚
我们的Sequential Thinking工具:
👨⚕️ AI:"哪里不舒服?"🤒 你:"肩膀疼"👨⚕️ AI:"咋疼的?刺痛还是胀痛?"🤒 你:"胀痛,上班时厉害"👨⚕️ AI:"那让我再问问你的病史..."// 一步步深入,像真正的医生 🎯
🎯 这玩意儿到底有啥用?
解决了AI的三大老毛病
健忘症晚期 🧠🔥
- 以前:每次对话都要重新介绍自己,累人 😰现在:AI有了好记性,聊过的都记得 📚✨
没有章法 🤯
- 以前:用户得当导演,告诉AI下一步该干啥 🎬👀现在:AI自己就是导演,按流程办事 🎯📝
太被动 😴
- 以前:你不问我不说,典型社恐 🙈现在:AI会主动问问题,像个话痨(但是有用的话痨)💬✨
还能用在哪些地方?
- 各种咨询:看病问诊、法律咨询、心理疏导教学相关:一对一辅导、技能培训、考试评估商务流程:客户访谈、需求调研、项目策划决策帮助:风险分析、方案评估、问题诊断
基本上,只要是需要"一步步深入了解"的场景,都能用上这招。
🔮 最后说两句
让AI学会了"耐心" —— 该等你说话时就等着,该自己思考时就思考,不抢话,不乱套。这可比那些话痨AI强多了!