API schema draft (#189)

* add api schema draft

* Update README.md

* Update opendevin/server/README.md
This commit is contained in:
Robert Brennan 2024-03-27 22:03:55 -04:00 committed by GitHub
parent 658b860d04
commit 89e923679e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -40,3 +40,60 @@ OPENAI_API_KEY=sk-... # Your OpenAI API Key
LLM_MODEL=gpt-4-0125-preview # Default model for the agent to use
WORKSPACE_DIR=/path/to/your/workspace # Default path to model's workspace
```
## API Schema
There are two types of messages that can be sent to, or recieved from, the server:
* Actions
* Observations
### Actions
An action has three parts:
* `action`: The action to be taken
* `args`: The arguments for the action
* `message`: A friendly message that can be put in the chat log
There are several kinds of actions. Their arguments are listed below.
This list may grow over time.
* `initialize` - initializes the agent. Only sent by client.
* `model` - the name of the model to use
* `directory` - the path to the workspace
* `agent_cls` - the class of the agent to use
* `start` - starts a new development task. Only sent by the client.
* `task` - the task to start
* `read` - reads the contents of a file.
* `path` - the path of the file to read
* `write` - writes the contents to a file.
* `path` - the path of the file to write
* `contents` - the contents to write to the file
* `run` - runs a command.
* `command` - the command to run
* `background` - if true, run the command in the background
* `kill` - kills a background command
* `id` - the ID of the background command to kill
* `browse` - opens a web page.
* `url` - the URL to open
* `recall` - searches long-term memory
* `query` - the query to search for
* `think` - Allows the agent to make a plan, set a goal, or record thoughts
* `thought` - the thought to record
* `finish` - agent signals that the task is completed
### Observations
An observation has four parts:
* `observation`: The observation type
* `content`: A string representing the observed data
* `extras`: additional structured data
* `message`: A friendly message that can be put in the chat log
There are several kinds of observations. Their extras are listed below.
This list may grow over time.
* `read` - the contents of a file
* `path` - the path of the file read
* `browse` - the HTML contents of a url
* `url` - the URL opened
* `run` - the output of a command
* `command` - the command run
* `exit_code` - the exit code of the command
* `recall` - the result of a search
* `query` - the query searched for
* `chat` - a message from the user