Replies: 1 comment
-
|
Scope/alignment note with #3163: this is feature-planning for a future core capability, not my proposed Stabilization v1 item. I do not want this discussion used to widen #3400 or to turn the current stabilization lane into a broad mobile/agent feature epic. If this moves forward, it should be after stabilization as a narrow accepted plan for a core goal runner, with companion/mobile consumption following that core design. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
Odysseus already has several pieces that make longer agent work possible:
stream_agent_loopcan run multi-round tool use, detached runs can survive a tab disconnect, background shell jobs can auto-continue after completion, and scheduled tasks can run prompts in the background.What it does not appear to have as a first-class product/API concept is a durable Pursue Goal mode: start with an objective, keep working through bounded continuations, and only stop when the goal is complete, blocked, cancelled, or out of budget.
This discussion is meant to align on the shape of that feature before it becomes a large implementation.
Related work
[codex] Add persistent agent goals)The intent here is not to expand #3400. The companion/mobile work can consume a future goal API, but the goal runner should be designed as a core Odysseus capability first.
Proposed capability
Add an opt-in Pursue Goal layer around the existing agent loop.
A goal would have a persisted lifecycle, for example:
active: the agent is allowed to keep working within configured limitswaiting_for_user: the agent needs a human decision or approvalblocked: the same blocker repeated and the agent cannot make useful progresscomplete: success criteria were satisfiedcancelled: stopped by the userexhausted: budget, round, wall-clock, or tool-call cap reachedThe key distinction from a normal agent turn is that completion is not just “the model stopped streaming.” The runner should explicitly decide whether the objective is complete, still needs another continuation, or is blocked.
Possible implementation outline
stream_agent_loopfor actual tool-using workagent_runsfor detached stream/reconnect behaviorbg_jobsfor long shell jobs that should resume the objective after completionSafety boundaries
This should not be an infinite loop or a raw remote-control surface.
Suggested guardrails:
blockedinstead of continuing forever.Acceptance criteria
A minimal acceptable version might be:
complete,blocked,cancelled, orexhausted) with a human-readable reason.Open questions
Beta Was this translation helpful? Give feedback.
All reactions