Apologies if this is the wrong space. I was wonder...
# proj-agent
o
Apologies if this is the wrong space. I was wondering what was blocking https://github.com/OpenHands/software-agent-sdk/pull/3252 from getting merged? In particular I'm looking for ways to store the event log that make sense in ephemeral, containerized environments, and this provides one way to inject a custom solution
👀 1
c
Sorry for the delay! Out of curiosity, we have assumed that the environment would be ephemeral, which is why I believe we have webhooks to notify a second, permanent storage code. Would that be a solution too?
o
Oh that sounds great
Let me look into that
From my read it's not enough for an exact resume, but maybe practical enough if we just rebuild a new sandbox, clone the latest check-pointed safe of the project, and then start a conversation with the persisted event log plus a new message stating that this is a recovered session? My understanding of what we'd lose is ongoing tool calls and whatever other openhands internal state isn't in the event log (presumably very little)
c
Yes, very little. Practically everything is in the event log, and the agent will have the same information as the first conversation on restore, minus exactly if something was “unfinished “
🙌 1
Are you thinking also of the runtime state, right?
o
What do you mean by runtime state? Like the filesystem in the container?
c
installed programs etc
if the agent installed something during execution, will it exist installed?
This hasn’t been an issue for us so far, afaik, but there are two ways I can think of, to address it • the agent can understand it. If you tell it it’s a resumed session in a new environment, it can figure out that something that was installed might need to be installed again. SOTA LLMs are not too confused by it anymore. • we could replay the agent’s actions affecting environment, anew; we don’t have this in this version, but we used to have it in the past, and if you wish we would accept a PR I’m confident
o
In our narrow case this shouldn't matter much e.g. we have no network access in these sandboxes so it can't install anything
aha 1
w
@orange-holiday-86257 can you say more about the environment you're running in? Typically we run the
agent-server
docker image with a volume mount for the files that need to be persisted across ephemeral sessions (both the coding workspace, and the metadata)
o
Trying to do something experimental where the agent runners can either run on folk's local machine or in ephemeral k8s pods. Could do a PVC to store session data but that wouldn't work for the user machine case and I'd rather not configure PVCs if I can help it (hoping I can write an event log to postgres via a callback and use that to seed new sessions)
w
got it! FWIW we do offer an enterprise product that does exactly this 🙂
👀 1
Depending on the implementation for https://github.com/OpenHands/agent-canvas/issues/1269 it may land in OSS