anthropics / anthropics/claude-agent-sdk-python

Support context_management.edits with pause_after_compaction

Aperta
#570 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Python
Stelle
8.1k
Fork
1.3k
Merge medio
2g 31m
PR unite (30g)
1

Descrizione

## Feature Request

The Messages API now supports server-side compaction via `context_management.edits` (beta `compact-2026-01-12`), including a `pause_after_compaction` parameter that pauses the API after generating a compaction summary (returning `stop_reason: "compaction"`).

This is extremely valuable for SDK users building persistent agent sessions (chat bridges, long-running assistants) because it allows:

1. **Memory persistence** — save conversation notes/state to disk before context is compacted
2. **Content injection** — preserve recent messages or inject instructions after compaction
3. **Token budget enforcement** — track compaction count and gracefully wrap up when budget exceeded

### Current behavior

The SDK does its own client-side auto-compact at ~95% context usage. There's no way to hook into the compaction lifecycle to run custom logic (like saving state).

### Requested behavior

1. Allow passing `context_management` parameter through to the Messages API
2. Handle `stop_reason: "compaction"` in the SDK's message loop
3. Expose a callback/hook so SDK consumers can run custom logic when compaction pauses (e.g., save memory, inject messages)
4. Optionally: expose the `instructions` parameter for custom summarization prompts

### Related issues

- #23 — non-interactive `/compact` (same underlying need for programmatic compaction control)
- #531 — no mid-loop compaction for custom MCP tools

### API reference

https://platform.claude.com/docs/en/build-with-claude/compaction

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.