news 2026/5/27 5:25:33

构建AI增强型第二大脑:Obsidian与Claude的深度集成实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
构建AI增强型第二大脑:Obsidian与Claude的深度集成实践

1. 项目概述:当笔记工具遇上AI副脑

最近在折腾一个很有意思的玩意儿,我称之为“AI增强型第二大脑”。核心思路很简单:用 Obsidian 这个我用了好几年的笔记工具作为知识库的“硬盘”,然后把 Claude 这类大语言模型(LLM)变成能随时调用这个硬盘的“CPU”。这听起来像是把两个时髦工具硬凑在一起,但实际用下来,我发现它彻底改变了我处理信息、写作和思考的方式。

过去,我的 Obsidian 库就像一个堆满珍宝但杂乱无章的地下室。我知道里面有我需要的一切——项目笔记、读书摘要、零碎灵感、代码片段——但真要找点东西,或者想把几个不相关的点子串联成一篇新文章,往往得花上半天功夫。而 Claude 这类 AI 助手,虽然能凭空生成不错的文本,但一旦涉及到我个人的、具体的知识背景,它就变得泛泛而谈,缺乏深度和针对性。

“Obsidian + Claude Code as a second brain”这个组合,就是为了解决这个痛点。它不再是简单的“AI写,我存”,而是构建了一个动态的、可交互的知识系统。Obsidian 负责结构化存储和关联,Claude Code(这里特指能处理代码、理解上下文的 Claude 模型,如 Claude 3.5 Sonnet)则扮演一个超级助理的角色,它能深入我的知识库,进行检索、分析、综合,甚至基于现有材料创作出新内容。这相当于给我的第二大脑装上了一套强大的搜索引擎和思维加速器。

这套方案特别适合知识工作者、研究者、写作者以及任何需要持续学习和产出的人。无论你是想快速从过往笔记中提炼出项目报告,还是希望在写作时无缝引用自己积累的案例,或是单纯想更高效地消化每天摄入的海量信息,这个组合都能带来质的提升。接下来,我就详细拆解一下我是如何搭建并优化这套系统的。

2. 核心架构与工具选型解析

2.1 为什么是 Obsidian?本地化与关联性的基石

选择 Obsidian 作为知识库的载体,是基于几个无法妥协的核心需求。首先,数据主权和隐私。我的笔记里包含大量未公开的项目想法、私人日志和敏感信息,这些数据绝不能上传到不可控的云端服务器。Obsidian 使用纯本地 Markdown 文件存储,所有数据都在我自己的设备上,这为后续与 AI 交互提供了安全前提。

其次,强大的关联网络。Obsidian 的双向链接和知识图谱功能,是它作为“第二大脑”的核心。我不只是在记录孤立的笔记,而是在构建一个相互连接的知识网络。当 AI 需要理解某个概念的上下文时,它能通过链接追溯到相关的笔记,这比处理一堆扁平化的文件要高效得多。例如,一篇关于“机器学习模型评估”的笔记,可能会链接到“交叉验证”、“AUC-ROC曲线”以及某个具体项目的实验记录。

最后,极致的可扩展性。Obsidian 丰富的插件生态是关键。为了实现与 Claude 的深度集成,我需要插件来增强搜索、提供 API 接口或简化交互流程。Obsidian 的社区插件市场几乎能满足所有定制化需求。

注意:虽然 Notion、Logseq 等工具也有其优势,但 Obsidian 的本地优先、纯文本(Markdown)特性,使其在与外部 AI 工具集成时,避免了复杂的授权和数据导出问题,是最干净、最可控的基座。

2.2 为什么是 Claude Code?深度理解与长上下文优势

在众多 AI 模型中,我重点使用 Claude(特别是 Claude 3.5 Sonnet 及以上版本),原因在于它处理复杂任务的独特优势。

代码能力与结构化输出:“Claude Code”并非一个独立产品,而是强调 Claude 模型在理解和生成代码、结构化数据(如 JSON、XML)方面的出色能力。这意味着当我要求它分析我的笔记时,它可以生成清晰的摘要表格、提取待办事项列表,甚至将散乱的思路重构成一个标准的产品需求文档(PRD)框架。这种“格式化”能力对于知识整理至关重要。

超长上下文窗口:Claude 支持高达 200K token 的上下文窗口。这意味着我可以一次性将多篇相关的 Obsidian 笔记(经过适当处理)喂给它,让它进行综合分析和创作。例如,我可以把过去半年关于“用户增长”的所有笔记和读书摘要打包发送,让它帮我撰写一份季度复盘报告,AI 能够参考所有这些材料,而不是凭空捏造。

更强的指令遵循与安全性:在实际使用中,Claude 对复杂指令的理解和遵循程度通常更稳定。同时,从其设计理念上,它对有害内容生成更谨慎,这在处理个人私有数据时,多了一分安心(尽管永远不要输入真正高度敏感的信息)。

2.3 连接桥梁:关键插件与脚本方案

Obsidian 和 Claude 本身并不直接对话,需要搭建“桥梁”。主要有以下几种路径,各有优劣:

1. 手动复制粘贴(最基础,但低效):在 Obsidian 中选中内容,复制,粘贴到 Claude 的 Web 界面或桌面应用。这适用于简单的单次问答,但无法实现自动化。

2. 使用 Obsidian 插件增强(推荐方案): *Text Generator (TG):这是核心插件之一。它可以配置 OpenAI 或 Anthropic (Claude) 的 API。你可以在笔记中选中一段文字,通过快捷键调用,让 AI 进行总结、扩写、翻译或基于该内容提问。它实现了在 Obsidian 内部的快速 AI 交互。 *Smart Connections:这个插件能利用 AI 语义搜索你的整个笔记库。当你打开一篇笔记时,它会在侧边栏显示其他语义上相关的笔记,即使你们没有直接的双向链接。这本身就是一种 AI 驱动的知识关联,你可以轻松将这些相关笔记内容组合起来发送给 Claude 进行深度处理。 *Copilot:另一个强大的 AI 助手插件,支持多种模型,提供聊天界面,可以针对当前笔记或整个库进行对话。

3. 自定义脚本(高阶,最灵活): 对于有编程基础的用户,最强大的方式是使用 Python 等语言编写脚本。基本流程是: 1. 使用globos库读取 Obsidian 库目录下的.md文件。 2. 使用frontmatter库解析笔记的元数据(如标签、创建日期)。 3. 根据需求,用简单的文本处理或向量数据库(如ChromaDB,FAISS)进行语义检索,找到最相关的笔记。 4. 通过 Anthropic 官方 API 库,将整理好的笔记内容作为system prompt(系统指令)和user prompt(用户问题)发送给 Claude。 5. 将 Claude 的回复写回一个新的 Obsidian 笔记,或直接用于其他用途。

我的混合方案:日常快速交互用Text Generator插件,深度研究和写作时,使用自定义 Python 脚本。脚本允许我精确控制检索逻辑、提示词工程和输出格式,是发挥“第二大脑”威力的关键。

3. 工作流构建:从信息摄入到知识产出

3.1 信息收集与初步处理

一切始于有效的信息收集。我的原则是:所有输入最终都必须归集到 Obsidian

  • 阅读与摘录:使用浏览器插件(如 Omnivore、Readwise Official)将网页文章、PDF 文档一键保存并同步到 Obsidian。同步过来的内容会生成一个包含原文链接、摘要和完整内容的笔记。
  • 灵感速记:在任何地方产生的想法,通过手机端的 Obsidian 或快捷指令(iOS)快速记录为一个简单的笔记,打上#fleeting(闪念)标签。这些笔记是零散的原材料。
  • 会议与对话记录:用录音工具记录后,通过 AI 转录服务(如 Whisper)生成文字稿,存入 Obsidian。我会用## 要点## 行动项的标题初步整理。

这个阶段,不做过多加工,目标是尽可能减少摩擦,快速捕获。所有笔记都使用统一的 YAML Frontmatter 模板,包含标题、日期、来源、标签和状态,为后续检索提供便利。

--- title: “关于用户体验地图的思考” date: 2023-10-27 source: “与产品团队的内部讨论” tags: [product, ux, meeting-note] status: fleeting ---

3.2 知识加工与深度关联

定期(如每周日晚上)对#fleeting状态的笔记进行加工,这是“第二大脑”真正形成记忆的关键步骤。

  1. Claude 辅助提炼:我会将一周的闪念笔记合并成一个文档,发送给 Claude,并给出指令:“请分析以下我的零散笔记,将其中的核心观点、待验证的想法和具体行动项提取出来,并用表格形式归类。同时,建议它们可能与我的知识库中哪些现有主题(如‘增长黑客’、‘内容策略’)相关联。”
  2. 基于 AI 建议进行链接:根据 Claude 的输出,我会手动(这是必不可少的深度思考过程)将这些闪念笔记与库中已有的永久笔记(#permanent)建立双向链接。例如,一条关于“新用户 onboarding 流程卡点”的闪念,会被链接到名为“用户留存体系”的永久笔记中。
  3. 撰写永久笔记:对于真正有价值的点,我会新建或完善一篇永久笔记。这个过程不再是简单的复制粘贴,而是在 Claude 的帮助下进行。例如,我可以将闪念笔记和与之相关的 3-4 篇旧笔记一起发给 Claude,指令为:“基于以下材料,帮我撰写一篇关于‘优化 SaaS 产品新用户引导的 5 个原则’的完整笔记,要求结构清晰,包含正反案例。” Claude 会生成一个草稿,我在此基础上修改、润色,使其真正内化为我的知识。

实操心得:千万不要让 AI 完全替你写永久笔记。它的作用是“助理研究员”和“初稿写手”,你必须是最终的“主编”和“决策者”。手动建立链接和修改草稿的过程,才是知识内化的核心。

3.3 创造性输出与问题解决

这是系统产生价值的最终环节。当需要写文章、做方案或解决难题时,我不再面对空白的屏幕。

  • 写作:假设我要写一篇“如何构建个人知识管理系统”的博客。我首先在 Obsidian 中搜索所有相关标签(#pkm,#obsidian,#workflow),利用 Smart Connections 插件找到语义相关的笔记。然后,我用脚本将这些笔记的核心内容提取、汇总,发送给 Claude,指令是:“以下是我关于个人知识管理的所有笔记。请以‘构建抗遗忘的第二大脑:我的 Obsidian 实战指南’为题,撰写一篇面向中级用户的、结构完整的博客文章大纲,并确保涵盖我笔记中提到的具体插件和技巧。” 获得大纲后,我再分部分让 Claude 或自己进行充实。
  • 决策支持:当面临一个业务选择时,比如“是否应该启动一个播客项目”,我会让 Claude 分析我笔记中所有关于“内容营销”、“音频产品”、“时间投入”的利弊分析,甚至是我过去记录的相关决策案例,让它帮我整理出一个 SWOT 分析框架,我再来填充具体细节和做最终判断。
  • 学习与探索:当学习一个新概念(如“向量数据库”)时,我会让 Claude 扮演一个导师角色。我先将自己理解的零星笔记给它,然后问:“根据我现有的这些理解,我有哪些明显的认知错误或遗漏?请用比喻的方式解释向量数据库的核心原理,并指出我的知识体系中哪个部分可以与它进行类比关联?”

4. 提示词工程:如何与你的“AI副脑”高效对话

与 Claude 交互的质量,90% 取决于提示词。当它能够访问你的 Obsidian 知识库时,提示词设计就更为关键。

4.1 系统指令设定:定义 AI 的角色与能力

在调用 API 或配置插件时,可以设置一个强大的system prompt,这相当于给 Claude 安装了一个“人格”或“工作手册”。我的系统指令通常包含:

你是我个人知识库的智能助手。这个知识库构建在 Obsidian 中,包含我的项目笔记、读书摘要、灵感记录和专业知识。 你的核心任务是: 1. 严格基于我提供的上下文信息(来自我的知识库)进行回答。如果信息不足,可以基于通用知识补充,但必须明确说明。 2. 擅长从分散的笔记中提取、综合信息,并以清晰、结构化的方式(如大纲、表格、列表)呈现。 3. 当我询问观点或分析时,请模拟我的思维习惯(例如:注重实证、偏好框架模型、关注可行性)。 4. 所有输出默认使用中文,技术术语可保留英文。 请确认你已理解上述角色设定。

这个指令设定了边界,让 AI 明白它不是在全知全能地聊天,而是在一个特定领域(我的知识库)内工作的专家。

4.2 用户指令设计:从模糊需求到精确输出

用户指令需要具体、可操作。以下是一些对比示例:

  • 糟糕的指令:“帮我看看关于营销的笔记。”
    • 问题:范围太广,“看看”目标不明确。
  • 良好的指令:“请从我提供的过去三个月的笔记中,找出所有提及‘社交媒体裂变’的具体案例和效果数据,并以表格形式汇总,表格列包括:案例名称、使用平台、核心策略、记录的效果数据、对应的笔记链接。”
    • 优点:限定了时间范围、明确了主题、指定了信息类型(案例、数据)和输出格式(表格),甚至要求了溯源(笔记链接),这能让我快速追溯到原始材料进行复核。

一个复杂指令的模板

角色:你是一位资深商业分析师。 任务:基于我提供的以下三份材料——1) 项目A的初期市场调研笔记;2) 竞争对手B的产品功能拆解;3) 上周团队内部关于用户痛点的讨论纪要——来生成一份分析报告。 报告要求: - 格式:采用标准的 SWOT 分析框架。 - 内容:在“机会”和“威胁”部分,必须直接引用上述三份材料中的具体内容作为支撑。 - 输出:先输出一个完整的 SWOT 矩阵表格,然后针对‘优势-机会’(SO)组合,提出两条最可行的战略建议。 - 文风:简洁、专业、直接。 材料如下: [此处粘贴或关联你的 Obsidian 笔记内容]

4.3 迭代与反馈:让 AI 理解你的“思维偏好”

AI 的输出不会一开始就完全符合你的口味。你需要通过迭代来调教它。

  1. 提供反面教材:如果 AI 生成的摘要太啰嗦,你可以把它的输出和一段你手写的、你认为理想的摘要一起发给它,并说:“对比以下两段关于同一主题的摘要。我更喜欢第二段的风格:它更简洁,直接突出了行动项,并且使用了项目符号。请记住这种风格,以后在为我做摘要时采用。”
  2. 要求分步思考:对于复杂问题,使用“链式思考(Chain-of-Thought)”提示。在指令中加入“请一步步思考,并展示你的推理过程”,这能让 AI 的逻辑更清晰,也方便你中途纠正它的思路偏差。
  3. 建立个人词典:在你的 Obsidian 中建立一个“AI 提示词库”笔记,记录下针对不同任务(如“写邮件”、“做会议纪要”、“头脑风暴”)验证过的最有效的提示词模板。下次需要时直接复制使用。

5. 高级技巧与自动化脚本实战

5.1 使用 Python 实现智能笔记检索与摘要

手动查找和复制笔记内容效率低下。下面是一个简化的 Python 脚本示例,演示如何自动根据问题检索相关笔记并发送给 Claude。

import os import glob from anthropic import Anthropic import frontmatter import hashlib # 配置 OBSIDIAN_VAULT_PATH = “/path/to/your/obsidian/vault” ANTHROPIC_API_KEY = “your_api_key_here” client = Anthropic(api_key=ANTHROPIC_API_KEY) def get_note_content(file_path): """读取笔记内容和元数据""" with open(file_path, ‘r’, encoding=‘utf-8’) as f: post = frontmatter.load(f) content = post.content metadata = post.metadata # 为每篇笔记生成一个简单ID,用于溯源 note_id = hashlib.md5(file_path.encode()).hexdigest()[:8] return {“id”: note_id, “path”: file_path, “content”: content[:1000], “metadata”: metadata} # 只取前1000字符 def find_relevant_notes(query, vault_path, limit=5): """简单的关键词检索(实际应用中可替换为向量检索)""" all_notes = [] for file in glob.glob(os.path.join(vault_path, “**/*.md”), recursive=True): note = get_note_content(file) # 简单的关键词匹配:在标题、标签、内容中查找 search_text = f“{note[‘metadata’].get(‘title’, ‘’)} {‘ ‘.join(note[‘metadata’].get(‘tags’, []))} {note[‘content’]}”.lower() if query.lower() in search_text: all_notes.append(note) return all_notes[:limit] def ask_claude_with_context(question, context_notes): """将检索到的笔记作为上下文提问""" context_str = “\n\n---\n\n”.join([f“【笔记ID: {note[‘id’]}】\n{note[‘content’]}” for note in context_notes]) system_prompt = “””你是我个人知识库的助手。请严格基于我提供的上下文信息来回答问题。如果上下文信息不足,请明确说明。回答时,如果引用了某条笔记,请注明其ID,例如【笔记ID: abc123】。””” user_message = f“””以下是我的知识库中与‘{question}’相关的一些笔记片段: {context_str} 问题:{question} 请基于以上上下文回答。如果信息不足,请指出。””” response = client.messages.create( model=“claude-3-5-sonnet-20241022”, max_tokens=1000, system=system_prompt, messages=[{“role”: “user”, “content”: user_message}] ) return response.content[0].text # 使用示例 if __name__ == “__main__”: user_question = “如何提高用户留存率?” relevant_notes = find_relevant_notes(user_question, OBSIDIAN_VAULT_PATH) print(f“找到了 {len(relevant_notes)} 篇相关笔记...”) answer = ask_claude_with_context(user_question, relevant_notes) print(“\n--- Claude 的回答 ---\n”) print(answer)

这个脚本实现了最基本的检索和问答。你可以通过笔记的 ID 回溯到原始文件进行深入查看。

5.2 定时自动生成每日/每周摘要

你可以设置一个定时任务(如使用系统的 cron 或 Windows 任务计划程序),让脚本自动总结新笔记。

  1. 脚本思路:脚本扫描过去 24 小时(或一周)内新建或修改的笔记。
  2. 调用 Claude:将所有新笔记内容发送给 Claude,指令为:“以下是我过去24小时记录的所有新笔记。请生成一份摘要,包括:1) 主要涉及的3-5个主题;2) 记录下的关键洞察或想法;3) 需要跟进的具体行动项(用列表列出)。请用清晰的分段呈现。”
  3. 写回 Obsidian:脚本将 Claude 生成的摘要,自动写入一个名为“【AI摘要】2023-10-27”的新笔记中,并放入指定的“Summaries”文件夹。你每天只需打开这篇笔记,就能快速回顾昨日所得。

5.3 利用 QuickAdd 插件实现一键AI处理

对于非程序员,Obsidian 的QuickAdd插件是实现自动化的神器。你可以配置一个“Choice”(选择),当触发时,执行以下操作:

  1. 捕获当前笔记的全部内容或选中的内容。
  2. 调用一个预设的 Python 脚本或通过插件(如 Text Generator)的 API。
  3. 将 AI 处理后的结果(如翻译、总结、润色)直接插入到当前笔记的指定位置,或创建一个姊妹笔记。

这相当于为你的笔记编辑器增加了一个强大的“AI 处理”按钮,将复杂的工作流简化为一次点击。

6. 常见问题、避坑指南与安全考量

6.1 效果不理想?可能是这些原因

问题表现可能原因解决方案
AI回答泛泛而谈,没有深度提供的笔记上下文太短或无关。1. 优化检索:使用更精准的关键词或引入向量搜索。
2. 提供更多背景:在提问时,手动关联2-3篇核心笔记的内容。
AI经常“编造”信息(幻觉)系统指令不严,或AI在上下文找不到答案时自行发挥。1. 强化系统指令:加入“严格基于提供上下文,若不知则明确说不知道”。
2. 要求引用溯源:在用户指令中要求AI在回答时注明依据的笔记ID或标题。
处理速度慢,成本高每次提问都发送大量笔记全文,导致token消耗巨大。1. 先摘要后发送:先用简单脚本或插件对相关笔记生成简短摘要,再发送摘要给AI。
2. 分步处理:先让AI帮你找出最相关的笔记标题,你再决定发送哪些全文。

6.2 隐私与安全:必须坚守的底线

绝对原则:不要将高度敏感的个人身份信息、财务数据、未公开的商业机密或任何一旦泄露会造成不可挽回损失的资料放入这个系统,即使它是本地的。

  1. API 调用风险:当你使用 Text Generator 等插件或自己的脚本调用 Claude API 时,你的笔记内容会被发送到 Anthropic 的服务器。虽然主流 API 提供商都有严格的数据使用政策(例如承诺不用于训练模型),但这在理论上仍存在风险。
    • 应对策略:在发送前,对内容进行脱敏处理。例如,将真实人名、公司名、具体数字替换为占位符(如[客户A],[公司X],[具体营收数据])。可以在 AI 处理完成后再手动替换回来。
  2. 本地模型是终极方案:如果你对隐私要求极高,且拥有性能足够的硬件(如带显卡的电脑),可以考虑在本地部署开源大语言模型(如 Llama 3、Qwen 等),并通过ollamaLM Studio等工具提供本地 API 服务。这样,所有数据处理都在本地完成,彻底杜绝数据外泄风险。当然,本地模型的性能(尤其是长上下文和理解能力)目前与 Claude/GPT-4 等顶级闭源模型仍有差距。
  3. 笔记库备份与加密:定期备份你的 Obsidian 库。可以考虑使用 Cryptomator 等工具对整个库进行加密后再同步到云端,增加一层安全保障。

6.3 避免过度依赖:保持人的主体性

这是最重要的“避坑指南”。这个系统的目标是增强你的能力,而非替代你的思考

  • AI 是参谋,不是司令:永远由你来做出最终判断和决策。AI 提供的分析、建议、草稿,都必须经过你的批判性审视和修改。
  • 警惕思维惰性:不要因为有了强大的检索和摘要功能,就停止自己深入阅读原始材料、建立手动链接。手动建立链接的过程,本身就是最有效的学习和记忆方式。
  • 定期“断网”思考:安排不依赖 AI 的纯思考时间,比如用纸笔进行头脑风暴。这有助于保持你独立产生原创想法的能力。

构建这样一个“AI 增强型第二大脑”并非一蹴而就,它更像是在打理一个数字花园。你需要持续地播种(记录)、修剪(整理)、施肥(关联),并借助 AI 这个智能工具来更好地观察花园的全貌、发现植物间意想不到的联系,从而让整个系统生机勃勃,真正成为你思维的外延和创造力的倍增器。我从最初的简单拼凑,到如今形成流畅的工作流,花了近半年时间不断调整。最大的体会是,工具组合本身不是目的,通过它们建立起一个更高效、更深入的知识消化与创造循环,才是真正的价值所在。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/27 5:21:59

ARM编译器IPv6许可支持与配置指南

1. ARM编译器IPv6许可支持解析在嵌入式开发领域,Arm Compiler 5作为Keil MDK工具链的核心组件,其许可管理机制直接影响开发环境的部署灵活性。近期官方知识库更新显示,从5.04u3版本开始,编译器已实现对IPv6纯网络环境的完整支持&a…

作者头像 李华
网站建设 2026/5/27 5:15:01

Lanes:AI并行编码工作流管理工具的设计与实践

1. 项目概述:从并行AI编码的混乱到清晰工作流最近几个月,我几乎把所有个人项目的编码工作都交给了Claude Code CLI和Codex CLI。这种“AI结对编程”的体验无疑是革命性的,它极大地提升了原型构建和探索性编程的效率。然而,当兴奋期…

作者头像 李华
网站建设 2026/5/27 5:12:21

AI编码工具配置管理器的设计与实现:告别配置混乱,一键切换开发场景

1. 项目概述:一个AI编码工具配置管理器的诞生作为一名在软件开发一线摸爬滚打了十多年的老程序员,我最近几年明显感觉到,我的开发环境正在被各种AI编码工具“接管”。从代码补全、代码解释、代码重构到自动生成单元测试,每个工具都…

作者头像 李华
网站建设 2026/5/27 5:11:20

英伟达收购SchedMD:AI调度器Slurm控制权转移的技术影响与应对策略

1. 英伟达收购SchedMD:AI基础设施的“控制权”之争 过去24小时,AI圈子里最值得技术团队关注的消息,不是某个新模型的发布,也不是算力价格的波动,而是一则来自路透社的商业报道:英伟达(Nvidia&am…

作者头像 李华
网站建设 2026/5/27 5:10:02

微处理器瞬态执行技术与安全漏洞形式化建模

1. 微处理器瞬态执行技术概述现代微处理器通过预测执行和乱序执行等机制大幅提升了性能,其中瞬态执行(Transient Execution)是一种关键优化技术。简单来说,处理器会在分支预测或内存访问未完成时,提前执行后续指令。这…

作者头像 李华