Files
OpenHands/opendevin/main.py
Jim Su b1b96df8a8 Replace environment variables with configuration file (#339)
* Replace environment variables with configuration file

* Add config.toml to .gitignore

* Remove unused os imports

* Update README.md

* Update README.md

* Update README.md

* Fix merge conflict

* Fallback to environment variables

* Use template file for config.toml

* Update config.toml.template

* Update config.toml.template

---------

Co-authored-by: Robert Brennan <accounts@rbren.io>
2024-03-29 15:26:20 -04:00

57 lines
1.6 KiB
Python

import asyncio
import argparse
from typing import Type
import agenthub # noqa F401 (we import this to get the agents registered)
from opendevin import config
from opendevin.agent import Agent
from opendevin.controller import AgentController
from opendevin.llm.llm import LLM
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Run an agent with a specific task")
parser.add_argument(
"-d",
"--directory",
required=True,
type=str,
help="The working directory for the agent",
)
parser.add_argument(
"-t",
"--task",
required=True,
type=str,
help="The task for the agent to perform",
)
parser.add_argument(
"-c",
"--agent-cls",
default="LangchainsAgent",
type=str,
help="The agent class to use",
)
parser.add_argument(
"-m",
"--model-name",
default=config.get_or_default("LLM_MODEL", "gpt-4-0125-preview"),
type=str,
help="The (litellm) model name to use",
)
parser.add_argument(
"-i",
"--max-iterations",
default=100,
type=int,
help="The maximum number of iterations to run the agent",
)
args = parser.parse_args()
print(f"Running agent {args.agent_cls} (model: {args.model_name}, directory: {args.directory}) with task: \"{args.task}\"")
llm = LLM(args.model_name)
AgentCls: Type[Agent] = Agent.get_cls(args.agent_cls)
agent = AgentCls(llm=llm)
controller = AgentController(agent, workdir=args.directory, max_iterations=args.max_iterations)
asyncio.run(controller.start_loop(args.task))