mirror of
https://github.com/OpenHands/OpenHands.git
synced 2025-12-26 05:48:36 +08:00
* docs(docs): start implementing docs website * update video url * add autogenerated codebase docs for backend * precommit * update links * fix config and video * gh actions * rename * workdirs * path * path * fix doc1 * redo markdown * docs * change main folder name * simplify readme * add back architecture * Fix lint errors * lint * update poetry lock --------- Co-authored-by: Jim Su <jimsu@protonmail.com>
122 lines
2.2 KiB
Markdown
122 lines
2.2 KiB
Markdown
---
|
|
sidebar_label: agent
|
|
title: opendevin.agent
|
|
---
|
|
|
|
## Agent Objects
|
|
|
|
```python
|
|
class Agent(ABC)
|
|
```
|
|
|
|
This abstract base class is an general interface for an agent dedicated to
|
|
executing a specific instruction and allowing human interaction with the
|
|
agent during execution.
|
|
It tracks the execution status and maintains a history of interactions.
|
|
|
|
#### complete
|
|
|
|
```python
|
|
@property
|
|
def complete() -> bool
|
|
```
|
|
|
|
Indicates whether the current instruction execution is complete.
|
|
|
|
**Returns**:
|
|
|
|
- complete (bool): True if execution is complete; False otherwise.
|
|
|
|
#### step
|
|
|
|
```python
|
|
@abstractmethod
|
|
def step(state: 'State') -> 'Action'
|
|
```
|
|
|
|
Starts the execution of the assigned instruction. This method should
|
|
be implemented by subclasses to define the specific execution logic.
|
|
|
|
#### search\_memory
|
|
|
|
```python
|
|
@abstractmethod
|
|
def search_memory(query: str) -> List[str]
|
|
```
|
|
|
|
Searches the agent's memory for information relevant to the given query.
|
|
|
|
**Arguments**:
|
|
|
|
- query (str): The query to search for in the agent's memory.
|
|
|
|
|
|
**Returns**:
|
|
|
|
- response (str): The response to the query.
|
|
|
|
#### reset
|
|
|
|
```python
|
|
def reset() -> None
|
|
```
|
|
|
|
Resets the agent's execution status and clears the history. This method can be used
|
|
to prepare the agent for restarting the instruction or cleaning up before destruction.
|
|
|
|
#### register
|
|
|
|
```python
|
|
@classmethod
|
|
def register(cls, name: str, agent_cls: Type['Agent'])
|
|
```
|
|
|
|
Registers an agent class in the registry.
|
|
|
|
**Arguments**:
|
|
|
|
- name (str): The name to register the class under.
|
|
- agent_cls (Type['Agent']): The class to register.
|
|
|
|
|
|
**Raises**:
|
|
|
|
- AgentAlreadyRegisteredError: If name already registered
|
|
|
|
#### get\_cls
|
|
|
|
```python
|
|
@classmethod
|
|
def get_cls(cls, name: str) -> Type['Agent']
|
|
```
|
|
|
|
Retrieves an agent class from the registry.
|
|
|
|
**Arguments**:
|
|
|
|
- name (str): The name of the class to retrieve
|
|
|
|
|
|
**Returns**:
|
|
|
|
- agent_cls (Type['Agent']): The class registered under the specified name.
|
|
|
|
|
|
**Raises**:
|
|
|
|
- AgentNotRegisteredError: If name not registered
|
|
|
|
#### list\_agents
|
|
|
|
```python
|
|
@classmethod
|
|
def list_agents(cls) -> list[str]
|
|
```
|
|
|
|
Retrieves the list of all agent names from the registry.
|
|
|
|
**Raises**:
|
|
|
|
- AgentNotRegisteredError: If no agent is registered
|
|
|