Type: concept
Confidence: 0.75
Created: 2026-04-18
Updated: 2026-04-18
Tags: context-managementagent-patternralph-loopAgent系统

观察遮蔽(Observation Masking)

概述

观察遮蔽是上下文策略之一,当上下文接近限制时,保留最近 N 轮对话完整,将更早的消息替换为摘要占位符,从而延长单个 Session 的有效工作时间。与 Anthropic 官方的 上下文压缩 不同,这是客户端自主控制的轻量级策略。

关键内容

  1. 核心机制:设定保留轮数阈值(如 keep_last_n=10),当消息总数超过阈值时,将旧消息替换为一条摘要消息: python # 示意:保留最近 10 轮,其余替换为摘要占位符 def mask_old_observations(messages, keep_last_n=10): if len(messages) <= keep_last_n: return messages old_messages = messages[:-keep_last_n] recent_messages = messages[-keep_last_n:] summary_msg = { "role": "system", "content": f"[Previous {len(old_messages)} messages summarized: " f"Implemented features auth-001 through auth-005, " f"all tests passing, last commit: feat(auth-005)]" } return [summary_msg] + recent_messages

  2. 上下文压缩 的区别

  3. 观察遮蔽是客户端自主实现的轻量级策略,用摘要占位符替换旧消息
  4. 上下文压缩Anthropic 官方服务端 API,自动生成摘要并创建 compaction 块
  5. 观察遮蔽更简单直接,但摘要质量取决于客户端实现

  6. Ralph 的立场:Observation Masking 不适合 Ralph 的"每 Story 一迭代"模式,因为每次都重启新实例。但在 Story 实现过程中,子任务之间可以使用 Masking 来延长单个 Session 的有效工作时间。

  7. 适用场景:适合需要在单个 Session 内完成多步骤任务、但又不想触发服务端压缩(或模型不支持压缩)的场景。

来源

相关