mirror of https://github.com/kortix-ai/suna.git
53 lines
2.1 KiB
Python
53 lines
2.1 KiB
Python
from typing import Dict, Any
|
|
from agentpress.db import Database
|
|
from agentpress.thread_manager import ThreadAgent, ThreadManager
|
|
from agentpress.tool_registry import ToolRegistry
|
|
|
|
async def run_agent():
|
|
db = Database()
|
|
manager = ThreadManager(db)
|
|
tool_registry = ToolRegistry()
|
|
|
|
thread_id = await manager.create_thread()
|
|
await manager.add_message(thread_id, {"role": "user", "content": "Let's create a Python + HTML website. Start by outlining the project structure. Use the available tools to create and edit files as needed."})
|
|
|
|
tools = tool_registry.get_all_tools()
|
|
|
|
async def initializer(agent):
|
|
pass
|
|
|
|
async def pre_iteration(iteration: int, agent: ThreadAgent):
|
|
pass
|
|
|
|
async def after_iteration(iteration: int, result: Dict[str, Any], agent: ThreadAgent):
|
|
pass
|
|
|
|
async def finalizer(status: str, agent: ThreadAgent):
|
|
pass
|
|
|
|
system_message = {
|
|
"role": "system",
|
|
"content": "You are an expert AI Software Developer specializing in creating Python + HTML websites. Your task is to design, structure, and implement a website. Use the available tools to create and edit files for the project. Provide clear explanations and use the tools to implement code snippets directly into the appropriate files."
|
|
}
|
|
|
|
response = await manager.run_thread_agent(
|
|
thread_id=thread_id,
|
|
system_message=system_message,
|
|
model_name="gpt-4",
|
|
temperature=0.7,
|
|
max_tokens=4096,
|
|
autonomous_iterations_amount=3,
|
|
continue_instructions="Continue developing the Python + HTML website. Focus on one aspect at a time, such as backend setup, frontend design, or specific features. Use the available tools to create new files or edit existing ones. Implement code snippets directly into the appropriate files using the tools.",
|
|
initializer=initializer,
|
|
pre_iteration=pre_iteration,
|
|
after_iteration=after_iteration,
|
|
finalizer=finalizer,
|
|
tools=list(tools.keys())
|
|
)
|
|
|
|
return response
|
|
|
|
if __name__ == "__main__":
|
|
import asyncio
|
|
asyncio.run(run_agent())
|