| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import os
- import asyncio
- import argparse
- from typing import Type
- import agenthub # noqa F401 (we import this to get the agents registered)
- 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=os.getenv("LLM_MODEL") or "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))
|