感知层解析:感知不是预处理,而是认知入口闸
第四讲结束设计坐标系后,课程正式引入首个能力模式组:感知。
看到这个模块名称时,一个核心问题浮现:感知的本质是解决什么问题?它与我此前在后端开发中熟悉的输入校验、数据清洗有何本质区别?为什么课程需要将其独立为一个完整的能力模式组?
导论揭示了一个关键认知:过去对“感知”的理解存在深度不足的问题。
这一讲并未急于讲解具体模式,而是将“感知”从“prompt之前的简单预处理”中剥离出来,将其确立为一个独立的架构问题。它给出的判断非常明确:模型并不在真实世界中推理,它只在你提供的上下文窗口内进行推理。
感知层的职责,是为Agent守住这道信息闸门。它选择了什么信息、按照何种顺序、压缩到什么粒度,直接决定了后续所有推理能力的上限。
一、感知位于PRA循环的起点
课程通过PRA循环模型定位了感知在整体架构中的位置。
PRA = Perception / Reasoning / Action。行动负责将决策转化为对外部世界的影响;感知则位于另一端,负责将外部世界压缩为模型可处理的上下文;推理只能加工已进入上下文的材料,无法凭空补回未观察到的事实。
这个循环给出了精确判定:感知决定看见什么,看见什么决定能思考什么,能思考什么决定能采取什么行动。感知位于整个循环的入口,决定了后两个阶段可用的输入素材。
Anthropic给出的定义更为精准:上下文工程是“在恰当的时间点,将恰当的信息放入上下文窗口的精密工艺”。感知工程师的核心任务,是找出“能使下一次推理质量最大化的最小高信号token集合”。
这句话的工程含义在于:感知层的问题不是“多塞”,而是“选择什么、压缩到什么粒度、按什么顺序放入”。
二、上下文窗口扩大,不代表可以放弃筛选
许多人认为长上下文解决了信息筛选的问题,窗口足够大就无需过滤。
然而Liu等人在TACL 2024的研究中发现:模型在处理长上下文时,对开头和结尾部分更为敏感,中间位置的关键信息更容易被忽略。窗口变长只是将“未检索到”变成了“检索到但未有效利用”。
一个中等模型处理干净的30K token,往往比最强模型淹没在180K噪声中的结果更可靠。差距未必源于模型能力,而取决于模型到底看到了什么。
课程通过一个退款案例将这一判断落实到代码层面。
粗糙版感知:
context = search_docs(query="退款", top_k=50)
answer = llm(question, context)
改进版感知:
context = [
order.status, # 订单当前状态
order.delivered_at, # 是否已签收,签收多久
user.refund_history, # 是否有异常退款记录
current_refund_policy, # 当前生效的退款规则
sku.refund_exceptions, # 这个商品有没有特殊限制
]
answer = llm(question, context)
粗糙版的问题不在于“找得少”,而在于“找得多且杂”——top_k=50中混杂了旧版退款政策、无关FAQ、其他品类规则。改进版所做的不是堆砌资料,而是预判本次推理真正需要的关键证据集合。
三、感知工程并非全新问题,而是老问题换了载体
这一讲中最值得深思的是一段类比。
沿这个类比看,感知工程与我后端开发中熟悉的那套工程纪律本质上是同一件事:
问题本质未变,只是载体发生了迁移。过去优化查询计划、内存页面、缓存命中率,现在优化上下文窗口、注意力预算和推理质量。
这一判断使Agent系统的工程化有了明确的参照系——感知层并非全新知识,而是老问题在新载体上的回归。后端开发中熟悉的P0/P1/P2/P3优先级分级思路、热数据与冷数据分层策略、缓存命中率优化方法,几乎可以无缝迁移到感知层。
四、选压探融:后续四讲的结构性地图
感知模块并非单一概念,而是一条流水线上的四个关键关卡。
- 选(分诊):决定哪些信息进入Context,哪些排除在外——拓扑结构为Router
- 压(压缩):信息已进入但占用空间过大,如何压缩——拓扑结构为Chain
- 探(发现):目标信息位置未知,如何高效定位——拓扑结构为Loop
- 融(多模态):图像、表格、日志等异构数据如何转化为LLM友好格式——拓扑结构为Parallel
这四种模式分别绑定四种执行拓扑。这并非随意的功能分类,而是第三讲双轴框架在感知层的具体落地。
五、缺乏Perception Trace,系统本质上是在黑盒中调“猜”
这一讲最后的判断尤其值得注意:未部署Perception Trace的Agent系统,本质上是在黑盒环境中进行猜测式调试。
Perception Trace记录的不是模型最终说了什么,而是“模型在开始推理之前经历了什么”:读取了哪些文件,检索到哪些内容,选中了哪些片段,丢弃了哪些材料,关键证据最终落在上下文的哪个位置。
普通日志只能告诉你“该订单已超过退款期限”。Perception Trace能告诉你:检索命中47条,进入context仅有6条,关键证据refund_policy_V3.md被排序到第38位,未进入Context,实际进入的是旧版refund_policy_V1.md。
这与后端开发中引入APM、链路追踪是同一道理:没有可观测性就没有工程化,感知层亦不例外。后续几讲中出现的budget_usage、dropped_count、compression_ratio等感知指标,本质上都是Perception Trace的不同维度展现。
这正是整个感知模块带来的核心认知突破:过去以为LLM时代到来后,后端工程熟悉的那套纪律要么被“长上下文”瓦解,要么需要一套完全不同的方法。这一讲给出的判断相当明确——问题本质未变,只是载体发生了迁移。


