从提示词到上下文工程:构建生产级AI系统的核心架构演进

news2026/4/30 1:34:50
1. 从提示词到上下文工程AI应用范式的根本性转变如果你在过去两年里接触过大型语言模型那么“提示词工程”这个词对你来说一定不陌生。从最初的“请扮演一个专家”到后来的思维链、少样本学习我们一直在学习如何用更精巧的文本指令来“撬动”模型的潜力。但作为一名深度参与过多个AI产品落地的从业者我越来越清晰地感受到一个事实仅仅依靠静态的、一次性的提示词已经无法支撑起真正可靠、可扩展的生产级AI系统。想象一下你正在构建一个企业级的客服助手。用户的问题千变万化涉及的产品知识文档多达数万页对话历史可能跨越数周甚至数月。你不可能把所有信息都塞进一个提示词里。这时你需要的是一个动态的、能够根据当前对话状态、用户意图和外部知识库实时构建和优化输入信息的系统。这就是上下文工程要解决的核心问题。上下文工程简而言之是对提供给大语言模型在推理时的完整信息负载进行系统性设计、管理和优化的工程实践。它不再将输入视为一个孤立的字符串而是看作一个由多个结构化组件构成的、动态演化的“信息包”。这个包可能包括当前用户的指令、多轮对话的历史记录、从向量数据库检索到的相关文档、系统预设的角色与行为准则、可用的工具函数列表及其描述甚至是模型自身在之前步骤中生成的中间结果。为什么这个转变如此重要因为静态提示词在面对复杂、长程、依赖外部状态的任务时其局限性暴露无遗。它无法记忆无法主动获取信息更无法在长时间跨度中保持行为的一致性。而上下文工程正是将AI从“一次性的聪明应答者”升级为“持续运作的智能体”所必需的基础设施。从2023年的提示词热潮到2024年的RAG检索增强生成成为标配再到2025-2026年以智能体运行时、内存系统和开放协议为核心的“智能体时代”上下文工程始终是连接模型能力与真实世界复杂需求的桥梁。接下来我将结合最新的研究与实践为你深入拆解上下文工程的体系、核心组件以及如何将其应用于构建健壮的AI系统。2. 上下文工程的核心组件与架构体系一个成熟的上下文工程体系远不止是“把相关文档找出来塞进去”那么简单。它是一个多层级的、涉及数据流、状态管理和策略决策的复杂系统。我们可以将其核心组件分解为以下几个层面来理解。2.1 上下文缩放超越固定长度窗口早期LLM的上下文长度是硬性瓶颈如早期的4K、8K。如今虽然128K、200K甚至“无限上下文”的模型层出不穷但简单地将所有信息堆砌进去不仅成本高昂更会导致模型性能的“中间丢失”现象——模型对位于上下文中间部分的信息关注度下降。因此上下文缩放的核心思想是“智能压缩”而非“暴力堆砌”。常见策略包括递归摘要与提炼在长对话或多文档场景中定期对历史信息进行摘要用精炼的要点替代冗长的原始文本从而为新的交互腾出空间。关键在于摘要需要保留对未来对话可能至关重要的实体、关系和决策逻辑。选择性关注基于当前查询的语义动态地从海量历史或知识库中筛选出最相关的片段。这通常结合了密集检索如向量搜索与稀疏检索如关键词BM25技术形成混合检索策略以平衡召回率与精确度。层次化上下文组织将上下文结构化为不同的层次或“通道”。例如系统指令层、会话记忆层、工具描述层、检索知识层。模型可以学习在不同层次间分配注意力这比将所有信息扁平化混合更有效。实操心得在实际项目中我们很少会真的把128K上下文用满。一个更经济的做法是设置一个“有效上下文”目标例如16K-32K并建立一套流水线确保进入这个窗口的信息是经过多重过滤和优化的最相关部分。这比盲目依赖模型的超长上下文能力更稳定、更可控。2.2 生产环境中的上下文管理当系统从演示原型走向每天处理百万次请求的生产环境时上下文管理面临一系列工程挑战上下文压缩与缓存对于高频但上下文变化不大的查询如针对某份固定文档的QA可以对处理后的上下文检索结果指令模板进行哈希缓存避免重复的检索与处理开销。基于Artifact的上下文这是2026年智能体架构中的一个重要趋势。将复杂的指令集、角色设定、工作流程模板封装成可复用的“Artifact”制品。例如一个“代码审查专家”的Artifact可能包含角色指令、代码规范检查清单、安全漏洞模式库等。智能体在启动时或执行特定阶段任务时动态加载对应的Artifact而不是每次都传递冗长的系统提示。作用域化的指令加载不同的任务阶段需要不同的行为准则。在智能体执行规划、执行、验证等不同步骤时系统可以动态切换或叠加作用域化的指令引导模型聚焦于当前子任务。2.3 结构化数据集成纯文本上下文在处理复杂逻辑和精确数据时力有不逮。因此将结构化数据如数据库查询结果、API返回的JSON、知识图谱中的关系有效地集成到上下文中是提升模型推理准确性的关键。自然语言与结构化数据的双向转换系统需要具备将用户自然语言查询转换为结构化查询如SQL、GraphQL的能力并将查询结果以模型易于理解的方式如描述性文本、格式化列表重新注入上下文。一种有效模式是“工具调用 - 结果格式化 - 结果摘要”的流水线。图结构的利用对于高度关联的知识如人物关系、事件脉络、系统架构知识图谱比纯文本更优越。上下文工程需要设计机制将图谱中的关键路径和子图以“节点-关系-节点”的文本描述形式或者特定的标记格式如[实体: 属性]呈现给模型。2.4 自生成上下文让模型为自己提供信息这是上下文工程中颇具“元认知”色彩的一环。模型在解决复杂问题过程中产生的中间产物——如推理步骤、暂定结论、待验证的假设——本身可以成为后续步骤的宝贵上下文。思维链作为上下文经典的CoT不仅是一种提示技巧其产出的推理链可以被缓存并在用户追问“为什么”时作为解释性上下文直接提供。自我反思与修正让模型在输出最终答案前先生成一个“自我评估”指出其回答中的不确定性或潜在漏洞。这个评估文本可以作为第二轮生成的上下文引导模型进行修正和补充显著提升答案的稳健性。假设与备选方案对于决策类任务让模型并行生成多个可能的解决方案或假设并将这些选项作为上下文的一部分进行对比分析最终促成更全面的决策。3. 实现框架与核心挑战从RAG到智能体运行时理解了核心组件我们来看看如何将它们组装起来。当前上下文工程的实践主要沿着几个关键路径演进。3.1 检索增强生成动态上下文的基石RAG是上下文工程最成熟的应用场景。但其实现远非“向量搜索拼接”那么简单。一个生产级RAG系统通常包含以下关键环节文档预处理与分块策略如何切分文档直接影响检索质量。按段落、按章节、按语义重叠sliding window是基础方法。更高级的策略包括基于文档结构如Markdown标题的分块或使用小模型进行语义分割确保块内语义完整性。检索器优化混合检索稠密稀疏已成为标准。更进一步可以引入重排序模型对初步检索到的Top K个片段进行精细打分筛选出最相关的Top N个送入上下文。开源的重排序器如BAAI/bge-reranker系列效果显著。上下文构造与提示模板检索到的文档片段如何组织简单的拼接会导致信息混乱。最佳实践是使用清晰的分隔符和元数据标注。例如[文档来源: 用户手册-v2.1, 页码: 45] ...文档片段内容... --- [文档来源: 知识库-QA记录, 关联问题: “如何重置设备”] ...另一个片段内容... --- 请基于以上提供的资料回答用户的问题。 用户问题{query}查询理解与改写用户的原始查询可能模糊、简短或多义。在检索前使用一个轻量级LLM对查询进行扩展或改写能极大提升召回率。例如将“它怎么用”根据对话历史改写为“如何初始化ModelX设备”。避坑指南RAG系统最大的陷阱之一是“幻觉性引用”即模型生成的答案看似引用了提供的上下文但实际上上下文里并没有支持信息。缓解方法包括a) 在指令中明确要求“仅基于提供的上下文回答”b) 实现一个引用溯源的后处理步骤检查答案中的关键陈述是否能在上下文中找到对应原文c) 采用“检索-生成-验证”的闭环让另一个模型或规则系统验证答案的忠实性。3.2 内存系统跨越会话的持续认知如果说RAG解决了“外部知识”问题那么内存系统解决的是“内部状态”问题。它是智能体拥有“记忆”和“个性”的基础。现代内存设计通常包含多种类型内存类型功能描述存储形式与实现示例会话内存存储当前对话轮次中的消息历史。通常以列表形式存储在内存或Redis中可设置轮次窗口进行截断。长期记忆存储跨会话的、重要的用户偏好、事实和经历。向量数据库如Chroma, Weaviate存储记忆片段通过用户ID关联检索。工作记忆当前任务执行过程中的临时信息、中间步骤和计划。程序运行时变量结构化为JSON或特定对象任务结束后清理。程序性记忆智能体学会的常用技能或工作流程模板。存储在文件或数据库中作为可调用的“Artifact”或“技能包”。项目内存是2026年智能体领域特别是编程智能体场景下的焦点。当一个AI助手协助你开发一个软件项目时它需要记住项目结构、已修改的文件、之前的决策逻辑、遇到的错误及解决方案。这远非简单的聊天历史能涵盖。像Claude Code、Cursor等工具其背后正是强大的项目内存系统在支撑它们将代码库的抽象语法树、版本差异、终端输出等结构化信息持续地纳入决策上下文。内存的读写策略是设计难点。何时该写入一条新记忆是基于简单的规则如每轮对话还是基于模型对信息重要性的判断读取时是每次都将所有相关记忆塞入上下文还是采用更精巧的“记忆指针”或“摘要唤起”机制这些决策直接影响系统的性能和智能体的行为连贯性。3.3 智能体运行时与工具使用到了智能体层面上下文工程演变为对运行时状态的管理。一个智能体运行时如LangChain的AgentExecutor、AutoGen的群聊管理器负责协调多个步骤规划根据目标分解任务形成计划。这个计划本身会成为后续步骤的上下文。执行选择并调用工具函数。工具的描述名称、功能、参数格式必须清晰地存在于上下文中模型才能正确调用。观察工具执行的结果成功或错误被反馈并添加到上下文。反思与迭代根据结果决定下一步是继续、重试还是调整计划。这里的上下文是一个动态增长的工作区包含了初始目标、已执行步骤的记录、工具结果、当前的困境和下一步的候选动作。设计良好的运行时会精心控制这个工作区的“信息密度”避免无关历史干扰当前决策。工具使用的上下文集成尤其关键。除了提供工具列表更高级的做法是提供“工具使用范例”。在上下文中插入一两个类似任务的成功调用示例能显著提升模型调用工具的准确率和参数填充的正确性。3.4 开放协议与互操作性随着智能体生态的发展一个智能体可能需要调用不同供应商的工具或者与其他智能体协作。硬编码的集成方式不可扩展。因此开放协议应运而生它们本质上是定义了上下文交换格式的规范。模型上下文协议由Anthropic等公司推动旨在标准化LLM与外部数据源如数据库、API之间的连接方式。它定义了工具、数据源的描述格式使得上下文中的工具信息可以以一种供应商中立的方式提供。智能体间通信协议定义了多个智能体如何通过消息交换进行协作。每个智能体的“上下文”中不仅包含自己的任务和记忆还包含了来自其他智能体的消息历史这构成了一个分布式的共享上下文。这些协议的意义在于它们将上下文的结构标准化了。开发者不再需要为每一个新的工具或数据源编写特定的集成代码而是遵循协议提供描述智能体运行时就能自动将其纳入可用的上下文范畴。4. 评估与可观测性如何衡量上下文的好坏构建了复杂的上下文系统我们如何知道它是否有效传统的单次问答准确率指标已不够用。我们需要一套针对上下文驱动系统的评估范式。4.1 上下文质量评估在信息进入模型之前我们就可以评估其质量相关性检索到的文档与问题的语义相关度可通过交叉编码器模型打分。完整性提供的上下文是否包含了回答问题所需的全部关键信息可以设置一个“理想上下文”作为参考计算关键信息点的覆盖率。噪声水平上下文中包含多少无关或冗余信息可以通过信息熵或与问题无关的句子占比来粗略衡量。结构清晰度上下文是否被良好地组织带有清晰的元数据和分隔这更多是一种定性评估但会影响模型的理解。4.2 面向智能体的评估对于长程运行的智能体评估维度更为复杂任务完成度最终是否达成了预设的、可验证的目标如“成功预订航班并生成行程单”路径效率完成任务的步骤数是否接近最优是否存在不必要的工具调用或循环成本与延迟整个过程中消耗的Token总数直接影响API成本和总耗时。健壮性在面对意外错误如工具调用失败、获取到矛盾信息时智能体能否恢复并继续任务4.3 可观测性与调试生产环境下的上下文工程离不开强大的可观测性。我们需要记录每一次调用的完整上下文快照包括输入上下文的构成检索了哪些片段内存唤醒了哪些记录工具列表是什么模型的完整输入在发送给API前拼接好的完整提示是什么模型的输出与决策生成的文本、调用的工具及其参数。像LangSmith、Arize AI这类平台提供了这样的追踪能力。通过分析失败案例的上下文快照我们可以精准定位问题是检索不准是内存缺失还是工具描述不清这种“基于追踪的调试”是优化上下文系统的生命线。5. 应用场景与系统实例理论最终要落地。上下文工程在哪些场景下产生了关键价值我们来看几个典型的系统实例。5.1 复杂研究系统AlphaCode 2 / Codex它们不仅是代码生成模型其背后的系统是上下文工程的典范。系统会将整个代码库的相关文件、问题描述、测试用例作为上下文提供给模型甚至模拟执行生成的代码并将错误信息反馈回上下文进行迭代修正。Devin / SWE-Agent这类自主编程智能体将上下文工程推向极致。它们的上下文包括完整的项目文件树、终端命令历史及输出、浏览器操作结果、以及自己之前修改代码的意图记录。这是一个动态、多模态、不断演进的超级上下文。5.2 生产级系统与平台客服与支持助手这是RAG和内存系统的经典结合。上下文包括产品知识库RAG、本次会话历史、用户档案与过往工单长期记忆、以及服务流程指南结构化指令Artifact。系统需要动态地从这些源中抽取信息构建一个精准的应答上下文。企业知识管理平台如Glean、Notion AI。它们构建了企业内所有文档、对话、代码的全局索引。当员工提问时系统不仅检索相关文档还会判断员工的角色和部门将与其权限和职责最相关的信息优先纳入上下文并过滤掉敏感内容。低代码/无代码平台用户用自然语言描述想要构建的应用。智能体需要将描述转化为数据模型、UI组件和业务逻辑。其上下文包括平台支持的组件库、数据连接器的API文档、用户已创建的其他应用作为参考范例。这是一个将自然语言约束到特定结构化上下文的典型应用。6. 局限性与未来方向尽管上下文工程取得了巨大进展但挑战依然严峻。6.1 当前主要局限上下文长度与模型性能的权衡即使模型支持超长上下文其处理长文本中段信息的能力、推理速度以及成本仍然是实际部署中的巨大约束。智能的压缩与选择策略变得比模型本身的能力更重要。多模态上下文的融合如何将图像、音频、视频、结构化表格等信息与文本无缝融合成一个连贯的上下文仍然是一个开放问题。简单的“将图像转为描述文本”会丢失大量细节。长期记忆的“遗忘”与“失真”向量存储的记忆在多次检索和更新后如何保证其准确性和一致性如何设计记忆合并与衰减机制使其更接近人类的记忆特性评估基准的缺失目前缺乏公认的、全面的基准测试来评估复杂上下文系统的整体性能。大多数评测仍聚焦于单轮问答的准确性。6.2 未来研究方向上下文感知的模型架构未来的模型可能在架构层面就为外部上下文设计了更好的接入机制例如具有显式的“上下文寄存器”或“工作记忆区”的注意力模块。学习型上下文优化器系统可以通过强化学习自动学习如何为不同类型的任务构建最优的上下文包括选择哪些信息、以何种格式组织、以及何时更新内存。因果与可解释的上下文不仅提供信息还能解释“为什么这些信息被选中作为上下文”增加系统的透明度和可信度。分布式与联邦上下文在隐私保护的前提下如何让智能体能够利用分布在多个机构或设备上的上下文信息进行推理这将开启协作智能的新范式。从我个人的实践经验来看上下文工程已经从一项“技巧”演变为一门“学科”。它要求开发者同时具备软件工程、数据工程、机器学习和人机交互的思维。成功的AI应用其核心竞争力往往不在于使用了最强大的基础模型而在于构建了一套能够为其模型持续提供“恰到好处”信息的上下文系统。这就像为一位天才学者配备了一位无所不知且善于归纳整理的顶级助理两者的结合才能释放出最大的价值。未来的AI系统竞争在很大程度上将是上下文工程能力的竞争。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2554610.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…