feat: add v2 agent residency lru#26632
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bf67b391ab
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
4574f24 to
46e2da8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Multi-agent v2 treats agents as durable logical agents, not just live entries in
ThreadManager. After the reload-on-delivery change, a v2 agent can be addressed even if its thread is not currently loaded.This PR adds the next layer: loaded v2 subagents can be paged out of
ThreadManagerwhen the session has too many resident agents. That keeps residency separate from logical identity and prepares the stack for making v2 concurrency count active execution instead of existing agents.What Changed
AgentControl-scoped LRU for resident v2 subagents.ThreadManager.ThreadManageras a primitive loaded-thread store; it does not own the LRU policy.Eviction is intentionally conservative. A thread is unloadable only when it is a v2 subagent, has completed or errored, has no active turn, and has no pending mailbox work. Before removal, the rollout is materialized and flushed.
Assumptions And Non-Goals
ThreadManagermembership means loaded/resident, not logical agent existence.AgentRegistryremains the logical identity/metadata source for v2 agents that may be unloaded.list_agentsremains a recent/resident view for now.close_agentsemantics.resume_agent.Stack
ThreadManagerwhen resident capacity is full.Validation