Cet agent implémente l'idée CodeAct (article, tweet) qui consolide les actions des agents LLM en un espace d'action code unifié pour à la fois la simplicité et la performance (voir article pour plus de détails).
L'idée conceptuelle est illustrée ci-dessous. À chaque tour, l'agent peut :
bash Linux validePython valide avec un interpréteur Python interactif. Cela est simulé à travers la commande bash, voir le système de plugin ci-dessous pour plus de détails.Pour rendre l'agent CodeAct plus puissant avec seulement l'accès à l'espace d'action bash, l'agent CodeAct exploite le système de plugins d'OpenDevin:
https://github.com/OpenDevin/OpenDevin/assets/38853559/f592a192-e86c-4f48-ad31-d69282d5f6ac
Exemple de CodeActAgent avec gpt-4-turbo-2024-04-09 effectuant une tâche de science des données (régression linéaire)
Action,
CmdRunAction,
IPythonRunCellAction,
AgentEchoAction,
AgentFinishAction,
AgentTalkAction
CmdOutputObservation,
IPythonRunCellObservation,
AgentMessageObservation,
UserMessageObservation
| Méthode | Description |
|---|---|
__init__ |
Initialise un agent avec llm et une liste de messages list[Mapping[str, str]] |
step |
Effectue une étape en utilisant l'agent CodeAct. Cela inclut la collecte d'informations sur les étapes précédentes et invite le modèle à exécuter une commande. |
[] Support de la navigation sur le web [] Compléter le workflow pour l'agent CodeAct afin de soumettre des PRs Github
L'agent Monologue utilise la mémoire à long terme et à court terme pour accomplir des tâches. La mémoire à long terme est stockée en tant qu'objet LongTermMemory et le modèle l'utilise pour rechercher des exemples du passé. La mémoire à court terme est stockée en tant qu'objet Monologue et le modèle peut la condenser si nécessaire.
Action,
NullAction,
CmdRunAction,
FileWriteAction,
FileReadAction,
BrowseURLAction,
GithubPushAction,
AgentThinkAction
Observation,
NullObservation,
CmdOutputObservation,
FileReadObservation,
BrowserOutputObservation
| Méthode | Description |
|---|---|
__init__ |
Initialise l'agent avec une mémoire à long terme et un monologue interne |
_add_event |
Ajoute des événements au monologue de l'agent et condense avec un résumé automatiquement si le monologue est trop long |
_initialize |
Utilise la liste INITIAL_THOUGHTS pour donner à l'agent un contexte pour ses capacités et comment naviguer dans le /workspace |
step |
Modifie l'état actuel en ajoutant les actions et observations les plus récentes, puis invite le modèle à réfléchir à la prochaine action à entreprendre. |
L'agent planificateur utilise une stratégie d'incitation spéciale pour créer des plans à long terme pour résoudre les problèmes. L'agent reçoit ses paires action-observation précédentes, la tâche actuelle, et un indice basé sur la dernière action effectuée à chaque étape.
NullAction,
CmdRunAction,
BrowseURLAction,
GithubPushAction,
FileReadAction,
FileWriteAction,
AgentThinkAction,
AgentFinishAction,
AgentSummarizeAction,
AddTaskAction,
ModifyTaskAction,
Observation,
NullObservation,
CmdOutputObservation,
FileReadObservation,
BrowserOutputObservation
| Méthode | Description |
|---|---|
__init__ |
Initialise un agent avec llm |
step |
Vérifie si l'étape actuelle est terminée, retourne AgentFinishAction si oui. Sinon, crée une incitation de planification et l'envoie au modèle pour inférence, en ajoutant le résultat comme prochaine action. |