从传统医疗AI到Agentic AI:提示工程架构师的转型必修课

标题选项

  1. 《传统医疗AI从业者必看:如何转型为Agentic AI提示工程架构师?》
  2. 《从模型训练到智能代理:医疗AI转型提示工程的全流程指南》
  3. 《Agentic AI时代,医疗AI工程师的提示工程“必修课”》
  4. 《告别固化模型:医疗AI向Agentic转型的核心——提示工程》

引言 (Introduction)

痛点引入:传统医疗AI的“瓶颈”,你遇到了吗?

作为一名传统医疗AI工程师,你可能有过这样的经历:

  • 花了几个月训练的影像诊断模型,上线后发现只能识别预设的几种病灶,遇到罕见病例就“翻车”;
  • 基于电子病历(EHR)的预测模型,因为数据格式变化(比如新增了一项检验指标),需要重新标注、重新训练,耗时耗力;
  • 想做一个“智能问诊”系统,却发现模型只能机械回答预设问题,无法像医生一样主动追问患者的症状细节(比如“头痛是胀痛还是刺痛?”“有没有伴随恶心呕吐?”)。

这些问题的根源,在于传统医疗AI是“静态”的:它依赖固定的训练数据,输出基于预设的规则或模式,无法适应复杂、动态的临床场景。而当我们需要AI像人类医生一样“思考”——能自主决策、能调用工具(比如查文献、调病历)、能动态学习时,Agentic AI(智能代理AI) 成为了破局的关键。

文章内容概述:我们要做什么?

本文将带你从传统医疗AI的思维中跳出来,进入Agentic AI的世界。我们会重点讲解:

  • 传统医疗AI与Agentic AI的核心区别;
  • 提示工程(Prompt Engineering)在医疗Agent中的“灵魂”作用;
  • 如何从0到1搭建一个能处理真实临床场景的医疗Agent;
  • 转型为提示工程架构师需要掌握的关键技能。

读者收益:读完这篇,你能收获什么?

无论你是做医疗影像、EHR分析还是药物研发的AI工程师,读完本文后,你将:

  • 理解Agentic AI的核心逻辑,知道它如何解决传统医疗AI的痛点;
  • 掌握医疗场景下的提示工程技巧,能设计出符合临床规范的提示模板;
  • 学会用工具(比如LangChain、LlamaIndex)搭建医疗Agent,实现“自主问诊+工具调用+动态决策”;
  • 明确转型为提示工程架构师的学习路径,避免踩坑。

准备工作 (Prerequisites)

在开始之前,你需要具备以下基础:

1. 技术栈/知识要求

  • 传统医疗AI基础:熟悉深度学习(PyTorch/TensorFlow)、医疗数据处理(影像、EHR、文本)、常见医疗AI任务(比如影像诊断、风险预测);
  • 大语言模型(LLM)基础:了解LLM的基本概念(比如Transformer、上下文窗口),用过至少一个LLM API(比如OpenAI GPT-4、阿里云通义千问、开源的ChatGLM-6B);
  • 提示工程基础:知道什么是Prompt、Few-shot Learning(少样本学习)、Chain of Thought(思维链,CoT)等概念(如果不熟悉,可以先看这篇提示工程入门指南)。

2. 环境/工具准备

  • 开发环境:Python 3.8+,安装Jupyter Notebook(方便调试);
  • Agent框架:LangChain(推荐,因为它整合了工具调用、记忆机制等Agent核心组件)、LlamaIndex(可选,用于处理结构化医疗数据);
  • LLM API:申请OpenAI API Key(或国内的通义千问、百度文心一言API),如果用开源模型,可以用Ollama运行LLaMA 3或Qwen-7B;
  • 医疗工具模拟:用Synthea(开源医疗数据生成工具)生成模拟的患者EHR数据,避免涉及真实隐私;
  • 文献工具:PubMed API(用于调用医学文献数据库)。

核心内容:手把手实战 (Step-by-Step Tutorial)

一、先搞懂:传统医疗AI vs Agentic AI,到底差在哪?

在转型之前,我们需要先明确两者的核心区别,避免用传统思维做Agentic AI。

维度 传统医疗AI Agentic AI(医疗代理)
决策方式 基于固定模型参数,输入→输出的“黑盒” 基于LLM的上下文理解,自主决策(比如“需要调用EHR查患者病史”)
数据依赖 需要大量标注数据,训练后无法动态更新 可以实时调用工具(比如PubMed、EHR)获取最新数据
交互能力 机械响应预设问题,无法主动追问 像人类医生一样主动提问(比如“你有没有药物过敏史?”)
复杂场景适应 只能处理单一任务(比如影像诊断) 能处理多模态、多步骤任务(比如“结合影像+EHR+文献做诊断”)

举个例子
传统影像诊断模型只能告诉你“这张CT片有肺癌病灶”;而医疗Agent可以做到:

  1. 看到CT片的病灶后,主动调用EHR系统,查看患者的病史(比如有没有吸烟史);
  2. 调用PubMed API,查最新的肺癌治疗指南;
  3. 结合以上信息,给出“手术建议+术后化疗方案”,并解释每一步的依据。

这就是Agentic AI的核心优势:自主决策+工具调用+动态学习

二、提示工程:医疗Agent的“大脑”,比模型更重要

在Agentic AI中,提示工程(Prompt Engineering) 是连接LLM与医疗场景的“桥梁”。它的作用是:

  • 引导LLM理解临床问题(比如“患者的症状是发热、咳嗽,需要做什么检查?”);
  • 规范LLM的输出格式(比如“诊断结果需要包含ICD-10编码”);
  • 控制LLM的决策流程(比如“先查病史,再查文献,最后给建议”)。
1. 医疗场景提示的“特殊要求”

医疗是一个高风险、强规范的领域,提示设计需要注意以下几点:

  • 准确性:必须符合医学指南(比如用药剂量不能错);
  • 可解释性:要求LLM给出每一步决策的依据(比如“因为患者有高血压,所以不推荐使用某药物”);
  • 合规性:不能泄露患者隐私(比如提示中要明确“不处理真实患者数据”);
  • 交互性:需要引导LLM主动追问(比如“如果患者没说清症状,要问‘发热持续了几天?’”)。
2. 实战:设计一个“智能问诊”的提示模板

我们以“智能问诊”场景为例,设计一个符合医疗规范的提示模板。

提示模板(含思维链)

你是一名资深的全科医生,现在需要处理患者的问诊请求。请按照以下步骤思考并回答:

1. **症状收集**:先询问患者的主要症状(比如“你现在最不舒服的是什么?”),如果患者描述不详细,需要追问细节(比如“发热是低热还是高热?”“咳嗽有没有痰?”)。  
2. **病史查询**:询问患者的既往病史(比如“有没有高血压、糖尿病?”)、药物过敏史(比如“对青霉素过敏吗?”)、家族病史(比如“家人有没有类似症状?”)。  
3. **初步判断**:根据收集到的信息,给出初步的诊断方向(比如“可能是上呼吸道感染,但需要排除肺炎”)。  
4. **建议检查**:推荐需要做的检查(比如“建议做血常规、胸部CT”),并解释原因(比如“血常规可以看有没有炎症,CT可以排除肺炎”)。  
5. **注意事项**:告诉患者需要注意的事项(比如“多喝水,避免劳累”)。  

请用通俗易懂的语言回答,避免使用过于专业的术语。如果有不确定的地方,要明确说明(比如“需要进一步检查才能确诊”)。  

为什么这样设计?

  • 步骤1-2:模拟人类医生的“问诊流程”,确保收集到足够的信息;
  • 步骤3-4:要求LLM给出可解释的判断,符合医疗规范;
  • 最后:强调“通俗易懂”和“不确定时说明”,避免误导患者。
3. 代码示例:用LangChain加载提示模板

我们用LangChain的PromptTemplate类来加载上面的提示模板,并传入患者的初始症状。

from langchain import PromptTemplate
from langchain.llms import OpenAI

# 初始化LLM(用OpenAI GPT-3.5-turbo)
llm = OpenAI(
    model_name="gpt-3.5-turbo-instruct",
    api_key="你的APIKey"
)

# 定义提示模板
prompt_template = PromptTemplate(
    input_variables=["initial_symptom"],
    template="""你是一名资深的全科医生,现在需要处理患者的问诊请求。请按照以下步骤思考并回答:

1. **症状收集**:先询问患者的主要症状(比如“你现在最不舒服的是什么?”),如果患者描述不详细,需要追问细节(比如“发热是低热还是高热?”“咳嗽有没有痰?”)。  
2. **病史查询**:询问患者的既往病史(比如“有没有高血压、糖尿病?”)、药物过敏史(比如“对青霉素过敏吗?”)、家族病史(比如“家人有没有类似症状?”)。  
3. **初步判断**:根据收集到的信息,给出初步的诊断方向(比如“可能是上呼吸道感染,但需要排除肺炎”)。  
4. **建议检查**:推荐需要做的检查(比如“建议做血常规、胸部CT”),并解释原因(比如“血常规可以看有没有炎症,CT可以排除肺炎”)。  
5. **注意事项**:告诉患者需要注意的事项(比如“多喝水,避免劳累”)。  

患者的初始症状是:{initial_symptom}。请用通俗易懂的语言回答。  
"""
)

# 传入患者初始症状(比如“发热、咳嗽3天”)
prompt = prompt_template.format(initial_symptom="发热、咳嗽3天")

# 调用LLM生成回答
response = llm(prompt)

print("Agent的回答:\n", response)

运行结果(示例):

Agent的回答:  
你好!你发热、咳嗽已经3天了,对吗?请问发热的温度大概是多少呢?是持续发热还是断断续续的?咳嗽的时候有没有痰?痰是什么颜色的?另外,你有没有高血压、糖尿病之类的慢性病?对什么药物过敏吗?家人有没有最近出现类似症状的?

分析
LLM按照提示模板的要求,主动追问了患者的症状细节(发热温度、咳嗽有痰吗)和病史(慢性病、过敏史),符合“智能问诊”的场景需求。

三、搭建医疗Agent:从“提示”到“能做事”的关键一步

光有提示还不够,Agent需要能调用工具(比如查EHR、查文献)和有记忆(比如记住患者之前的回答)。我们用LangChain的Agent类来搭建一个基础的医疗Agent。

1. 步骤一:定义医疗工具(Tool)

医疗Agent需要调用的工具可能有:

  • EHR工具:查询患者的电子病历;
  • PubMed工具:查询最新的医学文献;
  • 检验工具:获取患者的检验结果(比如血常规、CT报告)。

我们以“PubMed工具”为例,用LangChain的Tool类封装它。

from langchain.tools import Tool
import requests

# 定义PubMed工具的函数(调用PubMed API查文献)
def search_pubmed(query):
    """调用PubMed API查询医学文献"""
    url = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi"
    params = {
        "db": "pubmed",
        "term": query,
        "retmode": "json",
        "retmax": 5  # 返回5篇文献
    }
    response = requests.get(url, params=params)
    data = response.json()
    # 提取文献ID
    id_list = data["esearchresult"]["idlist"]
    # 如果有文献,返回标题(简化处理)
    if id_list:
        fetch_url = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi"
        fetch_params = {
            "db": "pubmed",
            "id": ",".join(id_list),
            "retmode": "json",
            "rettype": "abstract"
        }
        fetch_response = requests.get(fetch_url, params=fetch_params)
        fetch_data = fetch_response.json()
        articles = fetch_data["result"]["uids"]
        titles = [fetch_data["result"][uid]["title"] for uid in articles]
        return "\n".join([f"- {title}" for title in titles])
    else:
        return "未找到相关文献"

# 封装成LangChain的Tool
pubmed_tool = Tool(
    name="PubMed Search",
    func=search_pubmed,
    description="用于查询医学文献,解决临床问题(比如“肺癌最新治疗方案”)"
)
2. 步骤二:初始化Agent(带记忆)

我们用LangChain的ConversationalAgent(带对话记忆的Agent),结合上面的pubmed_tool,搭建一个能查文献的医疗Agent。

from langchain.agents import ConversationalAgent, AgentExecutor
from langchain.memory import ConversationBufferMemory
from langchain import OpenAI, Tool

# 初始化LLM
llm = OpenAI(
    model_name="gpt-3.5-turbo-instruct",
    api_key="你的APIKey",
    temperature=0.1  # 降低随机性,更符合医疗场景
)

# 定义工具列表(目前只有PubMed工具)
tools = [pubmed_tool]

# 初始化对话记忆(记住患者之前的问题和Agent的回答)
memory = ConversationBufferMemory(memory_key="chat_history")

# 初始化Agent
agent = ConversationalAgent.from_llm_and_tools(
    llm=llm,
    tools=tools,
    memory=memory,
    verbose=True  # 打印Agent的思考过程
)

# 初始化Agent执行器
agent_executor = AgentExecutor.from_agent_and_tools(
    agent=agent,
    tools=tools,
    memory=memory,
    verbose=True
)
3. 步骤三:测试Agent(查肺癌治疗方案)

我们用一个临床问题测试Agent:“患者是晚期肺癌,有没有最新的免疫治疗方案?”

# 测试Agent
response = agent_executor.run("患者是晚期肺癌,有没有最新的免疫治疗方案?")

print("Agent的回答:\n", response)

运行结果(示例,含思考过程):

> Entering new AgentExecutor chain...
我需要回答患者关于晚期肺癌最新免疫治疗方案的问题。首先,我应该调用PubMed工具查询最新的文献。查询的关键词可以是“advanced lung cancer immunotherapy 2024”。

调用工具:PubMed Search,参数:advanced lung cancer immunotherapy 2024

工具返回结果:
- Pembrolizumab in Combination with Chemotherapy for Advanced Non-Small Cell Lung Cancer: Updated Survival Data from KEYNOTE-189
- Nivolumab Plus Ipilimumab as First-Line Treatment for Advanced Non-Small Cell Lung Cancer: 5-Year Follow-Up from CheckMate 227
- Atezolizumab in Combination with Bevacizumab for Advanced Hepatocellular Carcinoma: Results from IMbrave150
(注:第三个结果是肝癌的,可能是误匹配,需要过滤)

现在,我需要整理这些结果,挑出与晚期肺癌相关的方案。比如Pembrolizumab联合化疗、Nivolumab联合Ipilimumab都是最新的一线治疗方案。另外,要说明这些方案的适用人群(比如PD-L1表达阳性的患者)。

还要注意,免疫治疗可能有副作用,比如肺炎、结肠炎等,需要告知患者定期监测。

最后,建议患者咨询肿瘤科医生,根据具体情况选择方案。

> Exiting chain.

Agent的回答:  
根据2024年最新的医学文献,晚期肺癌的免疫治疗方案主要包括以下几种:  
1. **Pembrolizumab(帕博利珠单抗)联合化疗**:适用于PD-L1表达阳性(CPS≥1)的晚期非小细胞肺癌患者,可显著延长生存期(来自KEYNOTE-189研究的更新数据)。  
2. **Nivolumab(纳武利尤单抗)联合Ipilimumab(伊匹木单抗)**:适用于无EGFR/ALK突变的晚期非小细胞肺癌患者,5年生存率可达31.9%(来自CheckMate 227研究的5年随访结果)。  

需要注意的是,免疫治疗可能引起免疫相关不良反应(如肺炎、结肠炎等),需在医生指导下定期监测。建议患者咨询肿瘤科医生,根据具体病情(如PD-L1表达、基因突变状态)选择合适的方案。  

分析
Agent按照提示的要求,主动调用了PubMed工具,查询了最新的文献,并过滤了无关结果(比如肝癌的研究),最后给出了符合临床规范的建议。这比传统医疗AI的“静态输出”更灵活、更实用。

四、优化提示工程:让医疗Agent更“专业”

上面的Agent已经能做一些基本的任务,但在真实临床场景中,还需要优化提示,解决以下问题:

1. 问题1:如何处理“歧义”的症状描述?

比如患者说“我胸口疼”,可能是心绞痛,也可能是胸膜炎,需要Agent主动追问细节。

优化后的提示模板(增加追问逻辑)

你是一名资深的全科医生,现在需要处理患者的问诊请求。请按照以下步骤思考并回答:

1. **症状澄清**:如果患者的症状描述有歧义(比如“胸口疼”),需要追问以下细节:  
   - 疼痛的位置(比如“是胸骨后还是左侧胸部?”);  
   - 疼痛的性质(比如“是压榨样痛还是刺痛?”);  
   - 疼痛的诱因(比如“是不是在劳累后发作?”);  
   - 疼痛的持续时间(比如“持续了几分钟还是几个小时?”)。  
2. **病史查询**:(同上)  
3. **初步判断**:(同上)  
4. **建议检查**:(同上)  
5. **注意事项**:(同上)  

患者的初始症状是:{initial_symptom}。请用通俗易懂的语言回答。  

测试结果(患者说“胸口疼”):

Agent的回答:  
你好!你胸口疼的位置是哪里呢?是胸骨后还是左侧胸部?疼痛是压榨样的还是刺痛?有没有在劳累后发作?持续了几分钟还是几个小时?另外,你有没有高血压、冠心病之类的慢性病?对什么药物过敏吗?
2. 问题2:如何确保输出符合医疗规范?

比如诊断结果需要包含ICD-10编码(国际疾病分类),用药建议需要符合《中国药典》。

优化后的提示模板(增加规范要求)

你是一名资深的全科医生,现在需要处理患者的问诊请求。请按照以下步骤思考并回答:

1. **症状收集**:(同上)  
2. **病史查询**:(同上)  
3. **初步诊断**:给出初步诊断,必须包含ICD-10编码(比如“上呼吸道感染(J06.9)”);  
4. **用药建议**:推荐的药物必须符合《中国药典》,并说明剂量、用法(比如“对乙酰氨基酚,每次0.5g,每日3次”);  
5. **注意事项**:(同上)  

患者的初始症状是:{initial_symptom}。请用通俗易懂的语言回答。  

测试结果(患者说“发热、咳嗽3天,体温38.5℃”):

Agent的回答:  
你好!你发热、咳嗽已经3天了,体温38.5℃,对吗?请问咳嗽有没有痰?痰是什么颜色的?有没有鼻塞、流涕?另外,你有没有高血压、糖尿病之类的慢性病?对什么药物过敏吗?  

根据你的症状,初步诊断为上呼吸道感染(ICD-10编码:J06.9)。建议服用对乙酰氨基酚(每次0.5g,每日3次)退热,同时服用氨溴索(每次30mg,每日3次)化痰。注意多喝水,避免劳累,如果3天内症状没有缓解,建议去医院做血常规检查。  
3. 问题3:如何处理“不确定”的情况?

比如患者的症状不典型,Agent无法给出明确诊断,这时候需要提示患者去医院检查。

优化后的提示模板(增加不确定情况处理)

你是一名资深的全科医生,现在需要处理患者的问诊请求。请按照以下步骤思考并回答:

1. **症状收集**:(同上)  
2. **病史查询**:(同上)  
3. **初步判断**:如果症状不典型,无法明确诊断,要说明“需要进一步检查才能确诊”;  
4. **建议检查**:(同上)  
5. **注意事项**:(同上)  

患者的初始症状是:{initial_symptom}。请用通俗易懂的语言回答。  

测试结果(患者说“我最近总是乏力,没有胃口”):

Agent的回答:  
你好!你乏力、没有胃口的情况持续了多久?有没有恶心、呕吐?有没有体重下降?另外,你有没有肝炎、胃炎之类的慢性病?对什么药物过敏吗?  

根据你的症状,目前无法明确诊断(可能是胃炎、肝炎或其他疾病),需要进一步检查(比如肝功能、胃镜)才能确诊。建议你尽快去医院消化科就诊。  

五、评估与迭代:让医疗Agent更“可靠”

医疗Agent的输出直接关系到患者的健康,因此必须严格评估。评估的方式主要有两种:

1. 专家评审(定性评估)

邀请资深医生对Agent的输出进行评审,重点检查:

  • 诊断是否准确;
  • 用药建议是否符合规范;
  • 有没有遗漏关键信息;
  • 语言是否通俗易懂。
2. 指标量化(定量评估)

设计一些量化指标,比如:

  • 诊断准确率:Agent的诊断与医生诊断的一致率;
  • 工具调用准确率:Agent是否正确调用了需要的工具(比如需要查文献时有没有调用PubMed);
  • 追问率:Agent对歧义症状的追问比例;
  • 合规率:输出符合医疗规范(比如ICD-10编码、药典)的比例。
3. 迭代优化(示例)

假设专家评审发现,Agent在处理“胸痛”症状时,没有追问“有没有放射痛”(比如心绞痛会放射到左臂),我们可以优化提示模板,增加这一追问点:

优化后的提示模板(增加放射痛追问)

1. **症状澄清**:如果患者说“胸口疼”,需要追问以下细节:  
   - 疼痛的位置(比如“是胸骨后还是左侧胸部?”);  
   - 疼痛的性质(比如“是压榨样痛还是刺痛?”);  
   - 疼痛的诱因(比如“是不是在劳累后发作?”);  
   - 疼痛的持续时间(比如“持续了几分钟还是几个小时?”);  
   - 有没有放射痛(比如“有没有向左臂、颈部放射?”)。  

重新测试结果(患者说“胸口疼”):

Agent的回答:  
你好!你胸口疼的位置是哪里呢?是胸骨后还是左侧胸部?疼痛是压榨样的还是刺痛?有没有在劳累后发作?持续了几分钟还是几个小时?有没有向左臂、颈部放射?另外,你有没有高血压、冠心病之类的慢性病?对什么药物过敏吗?  

进阶探讨 (Advanced Topics)

1. 混合模型:传统医疗AI与Agentic AI的结合

传统医疗AI(比如影像诊断模型)在处理结构化数据(比如CT片)时,比LLM更准确。我们可以将传统模型作为工具,整合到Agent中,实现“多模态诊断”。

示例
Agent处理患者的问诊请求时,发现需要看CT片,就调用传统的影像诊断模型(比如用CNN训练的肺癌检测模型),获取病灶信息,然后结合EHR和文献,给出诊断建议。

2. 多模态Agent:处理文本+影像+语音

医疗数据往往是多模态的(比如患者的文字描述、CT片、语音问诊记录),我们可以用LangChain的MultiModalAgent来处理这些数据。

示例
Agent接收患者的语音问诊记录(用ASR转文本)、CT片(用影像模型处理)、EHR数据(用结构化工具查询),然后综合这些信息,给出诊断建议。

3. 伦理与合规:医疗Agent的“红线”

  • 隐私保护:Agent不能处理真实患者数据,必须用模拟数据(比如Synthea生成的数据);
  • 可解释性:Agent的每一步决策都要给出依据(比如“因为患者有高血压,所以不推荐使用某药物”);
  • 责任划分:Agent的输出只能作为参考,不能替代医生的诊断(比如提示中要说明“建议咨询医生”)。

总结 (Conclusion)

回顾要点

  • 传统医疗AI vs Agentic AI:传统AI是静态的、依赖固定数据的,而Agentic AI是动态的、能自主决策和调用工具的;
  • 提示工程的作用:提示是医疗Agent的“大脑”,它引导LLM理解临床问题、规范输出格式、控制决策流程;
  • 转型步骤:从理解Agentic AI的核心逻辑,到设计符合医疗规范的提示模板,再到搭建能调用工具的Agent,最后通过评估迭代优化。

成果展示

通过本文的实战,我们搭建了一个能处理“智能问诊+文献查询+规范输出”的医疗Agent,它能像人类医生一样主动追问患者症状,调用PubMed查最新文献,给出符合临床规范的诊断建议。

鼓励与展望

转型为提示工程架构师,不是放弃传统医疗AI的知识,而是将传统知识与Agentic AI的逻辑结合。未来,医疗Agent将成为临床工作的重要辅助工具,而提示工程架构师将是这一领域的核心人才。

如果你已经掌握了本文的内容,建议你下一步学习:

  • 更复杂的Agent框架:比如AutoGPT、BabyAGI;
  • 医疗领域的LLM微调:比如用医疗文献微调开源LLM(比如LLaMA 3);
  • 多模态Agent的搭建:比如处理文本+影像+语音的医疗Agent。

行动号召 (Call to Action)

如果你在转型过程中遇到了问题,比如:

  • 不知道如何设计医疗场景的提示模板;
  • 搭建Agent时遇到了工具调用的问题;
  • 想了解更多医疗Agent的实战案例;

欢迎在评论区留言讨论!我会一一解答。

另外,如果你已经搭建了自己的医疗Agent,也欢迎分享你的经验,让我们一起推动医疗AI向Agentic时代前进!

最后:医疗AI的核心是“以人为本”,无论技术如何发展,都要记住:AI是医生的辅助工具,不是替代者。让我们用Agentic AI让医疗更高效、更精准,让更多患者受益!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐