From 8072e9567eff79e7bec493f3324c1c497a3bf176 Mon Sep 17 00:00:00 2001 From: Daniel Rosel Date: Tue, 4 Nov 2025 18:05:01 +0100 Subject: [PATCH] baseline setup of agent abstract --- experiments/agents/__init__.py | 1 + experiments/agents/agent.py | 26 ++++++++++++++++++++++++++ experiments/agents/base.py | 27 +++++++++++++++++++++++++++ experiments/agents/test.py | 3 +++ 4 files changed, 57 insertions(+) create mode 100644 experiments/agents/__init__.py create mode 100644 experiments/agents/agent.py create mode 100644 experiments/agents/base.py create mode 100644 experiments/agents/test.py diff --git a/experiments/agents/__init__.py b/experiments/agents/__init__.py new file mode 100644 index 0000000..041baf6 --- /dev/null +++ b/experiments/agents/__init__.py @@ -0,0 +1 @@ +"""Agentic behavior runner for PHANTOM research platform.""" diff --git a/experiments/agents/agent.py b/experiments/agents/agent.py new file mode 100644 index 0000000..f0dadb3 --- /dev/null +++ b/experiments/agents/agent.py @@ -0,0 +1,26 @@ +from base import Agent + + +class GenericComputerUseAgent(Agent): + # TODO: implement code using computer-use library + """ + async def do_job(jtbd): + browser = Browser(headless=True) + llm = ChatOpenAI(model="gpt-5-mini") + task = "You are an agent for doing anything on http://localhost:3000 (wait for the website to load) for the user. The user wants you to do the following job: "+jtbd + ". Use the browser to do it. Be careful to follow all instructions and complete the job fully. You have the power to purchase or to do anything." + agent = Agent(task=task, llm=llm, browser=browser) + return await agent.run() + +if __name__ == "__main__": + JTBD= "Book the best room" + R=asyncio.run(do_job(JTBD)) + print(R.final_result()) + """ + pass + + + + +def get_agent(): + # construct + pass diff --git a/experiments/agents/base.py b/experiments/agents/base.py new file mode 100644 index 0000000..87c0ad0 --- /dev/null +++ b/experiments/agents/base.py @@ -0,0 +1,27 @@ +import asyncio + +class Agent: + def __init__(self, + goal : str = "Get Information on All Prices", + environment_url : str = "https://www.example.com", + timeout : int = 60 * 5): + self.goal = goal + self.environment_url = environment_url + self.timeout = timeout + self.result = None + # TODO: implement agent initialization + pass + async def act(self): + # set the self.result to whatever text result the agents returns + pass # return await _async_method() + + def final_result(self) -> str|None: + return self.result + + +# asyncio.run(Agent(...).act()) +if __name__ == "__main__": + print("Testing Agent...") + agent = Agent(goal="Find the best price for a laptop", environment_url="https://www.example.com") + asyncio.run(agent.act()) + print(f"Agent Result: {agent.final_result()}") diff --git a/experiments/agents/test.py b/experiments/agents/test.py new file mode 100644 index 0000000..1b99a02 --- /dev/null +++ b/experiments/agents/test.py @@ -0,0 +1,3 @@ +import pytest + +from agent import get_agent