Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Arch: make agent and runtime pluggable #3753

Open
yufansong opened this issue Sep 6, 2024 · 1 comment
Open

Arch: make agent and runtime pluggable #3753

yufansong opened this issue Sep 6, 2024 · 1 comment

Comments

@yufansong
Copy link
Collaborator

yufansong commented Sep 6, 2024

Summary

We put too much thing in EventStream , so it looks mess now. In order to make OH pluggable, Not only EventStream, but also need to simplify the controller logic.

Motivation
Make the module pluggable. If someone want to try his agent, just replace the agent module. If someone want to interact with robot rather than docker, change the runtime module.

For example:

  1. Agent (Event+Action+ step logic)
  2. Runtime (How to interact with robot)

When we change the above logic, we can change openHands from a code generation platform into robot controll platform.

Technical Design

Our current logic:

  1. controller will call agent via function call.
  2. controller will communicate async with runtime via EventStream
  3. runtime will interact with docker via REST API. We implement a docker client inside the docker.

To achieve pluggable, we should optimize the interaction logic between controller with agent and controller with runtime. If we can decouple their logic, we can make agent/runtime as hot plug.

Alternatives to Consider

Additional context

@All-Hands-AI All-Hands-AI deleted a comment Sep 6, 2024
@imeDevelopers
Copy link

@yufansong
You've my support! Same ideas here: #3758

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants