원클릭으로
context-compaction
3层 Context 压缩策略,支持无限长度会话。 使用此 skill 当你需要: - 理解 Context 压缩的原理 - 实现消息历史摘要 - 处理超长对话导致 context overflow
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
3层 Context 压缩策略,支持无限长度会话。 使用此 skill 当你需要: - 理解 Context 压缩的原理 - 实现消息历史摘要 - 处理超长对话导致 context overflow
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | context-compaction |
| description | 3层 Context 压缩策略,支持无限长度会话。 使用此 skill 当你需要: - 理解 Context 压缩的原理 - 实现消息历史摘要 - 处理超长对话导致 context overflow |
每轮对话 messages[] 都在增长。几轮之后 context 就满了。 解决思路:不是截断,是压缩。
定期把多轮对话压缩成一条摘要消息:
# 原始(10轮对话,~8000 tokens)
messages = [
{"role": "user", "content": "添加用户认证"},
{"role": "assistant", "content": "我帮你..."},
{"role": "user", "content": "再加个注册"},
{"role": "assistant", "content": "好的..."},
... 10轮
]
# Layer 1 压缩后
messages = [
{"role": "user", "content": "添加用户认证 + 注册功能"}, ← 摘要
{"role": "assistant", "content": "完成了,代码已提交"},
]
触发条件:messages 总长度 > 50% max_tokens
只保留重要的架构决策、操作结果、文件路径,丢弃探索过程:
COMPRESSED = """
=== 项目状态 ===
- 完成了用户认证(JWT)
- 添加了 /auth/login 和 /auth/register 端点
- 使用了 PyJWT 库
- 数据库迁移:users 表
=== 关键文件 ===
- apps/api/routers/auth.py
- apps/api/models/user.py
=== 当前进行中 ===
实现论文搜索 API
"""
把完整消息压缩成结构化元信息:
{
"type": "compressed_history",
"summary": "完成用户认证,添加登录注册API,使用PyJWT",
"decisions": ["使用JWT而非session", "密码用bcrypt哈希"],
"files_touched": ["auth.py", "user.py", "models.py"],
"active_task": "实现论文搜索API",
"next_step": "添加 arxiv_id 字段到 papers 表",
}
| 信号 | 动作 |
|---|---|
| messages 长度 > 50% max_tokens | Layer 1 |
| 单轮工具调用 > 20 次 | Layer 2 |
| 会话超过 2 小时 | Layer 2 |
| 历史消息全部是工具调用 | Layer 3 |
def should_compact(messages, max_tokens):
total = sum_tokens(messages)
return total > max_tokens * 0.5
def compact(messages, strategy="auto"):
if strategy == "auto":
if len(messages) > 20:
return layer3_compress(messages)
elif total_tools > 20:
return layer2_compress(messages)
else:
return layer1_summarize(messages)
class CompactingAgentLoop(AgentLoop):
def __init__(self, config, dispatcher, compact_threshold=0.5):
super().__init__(config, dispatcher)
self.compact_threshold = compact_threshold
def run(self, messages):
result = super().run(messages)
if self._should_compact(messages):
messages[:] = self._compact(messages)
return result
AgentLoop 是整个 Agent Harness 的心脏。使用此 skill 当你需要: - 构建新的 Agent 系统 - 理解 Model + Harness 的关系 - 使用 chat() 快捷函数进行单轮对话
多 Agent 协作机制,持久 agent + 异步通信 + 团队管理。 使用此 skill 当你需要: - 理解 Agent Teams 的工作方式 - 使用 MessageBus 进行 agent 间通信 - 使用 TeammateManager 管理持久 agent 线程
Agent Team 通信协议 FSM:shutdown / plan_approval。 使用此 skill 当你需要: - 实现优雅关闭协议 - 实现计划审批协议 - 理解 s10 Team Protocols 的状态机设计
基于文件的 TaskManager,任务持久化 + 依赖图。 使用此 skill 当你需要: - 创建跨会话持久化的任务 - 管理任务间的 blockedBy/blocks 依赖关系 - 理解 s07 TaskSystem 的文件格式
工具注册与分发机制。使用此 skill 当你需要: - 注册新的 tool handler - 理解工具定义(tools list)和工具执行(handlers dict)的分离 - 使用 make_default_dispatcher 快速创建默认工具集