feat(pi-agent-core): harness/compaction 上下文压缩
对应上游 packages/agent/src/harness/compaction/compaction.ts。 落地内容(compaction.py,261 行): - estimate_tokens / estimate_context_tokens:启发式 token 估算(chars/4), 覆盖文本/思考/工具调用参数 - calculate_context_tokens:从 usage 提取已用 token(input + cache) - should_compact:context_tokens 达 context_window 80% 时触发 - find_cut_point:从末尾向前累加找切割点,保留最近 keep_recent_tokens; 避免切割点落在 toolResult(需配对 assistant) - generate_summary:调用 LLM 生成对话摘要(序列化 → system prompt → complete_simple) - compact:执行压缩(找切割点 → 摘要 → 返回 CompactionResult) - CompactionSettings(enabled/reserve_tokens/keep_recent_tokens) - _serialize_conversation:消息列表 → 可读文本 13 个测试覆盖:token 估算(string/list/tool_call)、context tokens、 should_compact(阈值/禁用/精确)、find_cut_point(基础/全保留/避 toolResult/空)。 验证:127 测试通过,mypy strict / ruff 全绿。 pi-agent-core harness 三大子系统(skills/session/compaction)全部完成。
J
Justin Gao committed
b0a8fb40a58bb991be0cb54c9300cdddead863c4
Parent: 20a53cc