From ffbcad9a6d94e650d0827f666ba3fafd2ab498c1 Mon Sep 17 00:00:00 2001 From: RadeenXALNW Date: Thu, 7 Aug 2025 23:19:09 +0000 Subject: [PATCH 01/16] gpt 5 project with vibe agent coding --- examples/gpt_5_project/main.py | 1290 ++++++++++++++++++++++ examples/gpt_5_project/static/agent.html | 855 ++++++++++++++ examples/gpt_5_project/static/index.html | 707 ++++++++++++ examples/gpt_5_project/test.py | 12 + 4 files changed, 2864 insertions(+) create mode 100644 examples/gpt_5_project/main.py create mode 100644 examples/gpt_5_project/static/agent.html create mode 100644 examples/gpt_5_project/static/index.html create mode 100644 examples/gpt_5_project/test.py diff --git a/examples/gpt_5_project/main.py b/examples/gpt_5_project/main.py new file mode 100644 index 0000000..b2e69e6 --- /dev/null +++ b/examples/gpt_5_project/main.py @@ -0,0 +1,1290 @@ +from fastapi import FastAPI, HTTPException +from fastapi.middleware.cors import CORSMiddleware +from fastapi.staticfiles import StaticFiles +from pydantic import BaseModel +import os +import json +import uuid +import subprocess +import threading +import time +from typing import Dict, List, Optional +from openai import OpenAI +import shutil +from pathlib import Path + +app = FastAPI(title="RunAgent Generator API") + +# CORS middleware +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) + +# Serve static files +app.mount("/static", StaticFiles(directory="static"), name="static") + +# Initialize OpenAI client +openai_client = OpenAI() + +# In-memory storage for sessions and running agents +sessions: Dict[str, dict] = {} +running_agents: Dict[str, dict] = {} + +# Load templates from documents for RAG +TEMPLATES = { + "langgraph": { + "basic": { + "files": [ + "agents.py", + "requirements.txt", + "runagent.config.json" + ], + "description": "Simple LangGraph Problem Solver with two-agent workflow" + }, + "advanced": { + "files": [ + "agent.py", + "main.py", + "requirements.txt" + ], + "description": "Advanced LangGraph agent with conditional routing and tools" + } + }, + "letta": { + "basic": { + "files": [ + "agent.py", + "run.py", + "runagent.config.json" + ], + "description": "Simple Letta agent for conversational AI" + }, + "advanced": { + "files": [ + "agent.py", + "keyword_tool.py", + "run.py", + "runagent.config.json" + ], + "description": "Advanced Letta agent with custom tools" + } + }, + "agno": { + "basic": { + "files": [ + "simple_assistant.py", + "requirements.txt", + "runagent.config.json" + ], + "description": "Simple Agno assistant agent" + } + }, + "llamaindex": { + "basic": { + "files": [ + "math_genius.py", + "requirements.txt", + "runagent.config.json" + ], + "description": "LlamaIndex math agent with function tools" + } + } +} + +class ChatRequest(BaseModel): + message: str + session_id: Optional[str] = None + +class ChatResponse(BaseModel): + response: str + session_id: str + stage: str # "understanding", "planning", "generating", "complete" + description: Optional[str] = None + mermaid_diagram: Optional[str] = None + agent_id: Optional[str] = None + agent_url: Optional[str] = None + +def analyze_user_request(message: str) -> dict: + """Use GPT-5 to analyze user request and extract agent requirements.""" + + prompt = f""" + Analyze this user request for creating an AI agent: "{message}" + + Extract and return a JSON with: + 1. agent_name: A concise name for the agent + 2. framework: One of [langgraph, letta, agno, llamaindex] + 3. template_type: "basic" or "advanced" + 4. description: What the agent does (2-3 sentences) + 5. main_functionality: Primary purpose + 6. input_fields: List of input field names the agent needs + 7. backend_language: "python" or "typescript" (default python unless specified) + + Choose framework based on: + - langgraph: Complex workflows, multi-agent systems, decision trees + - letta: Conversational AI, memory-based agents, chat interfaces + - agno: Simple assistants, analysis tasks, reporting + - llamaindex: RAG, document processing, knowledge retrieval + + Return only valid JSON. + """ + + try: + # Using GPT-5 Responses API + response = openai_client.responses.create( + model="gpt-5-mini", + input=prompt, + reasoning={"effort": "minimal"} + ) + + # Extract content from GPT-5 response + content = response.output[1].content[0].text # Get the text from output message + result = json.loads(content) + return result + except Exception as e: + print(f"Error analyzing request: {e}") + return { + "agent_name": "custom_agent", + "framework": "agno", + "template_type": "basic", + "description": "A custom AI agent", + "main_functionality": "General assistance", + "input_fields": ["message"], + "backend_language": "python" + } + +def generate_mermaid_diagram(agent_info: dict) -> str: + """Generate Mermaid diagram for the agent workflow.""" + + # Instead of relying on GPT-5 (which is inconsistent), + # generate a reliable diagram based on the framework + framework = agent_info['framework'] + agent_name = agent_info['agent_name'].replace(' ', '') + + try: + if framework == "llamaindex": + return f"""graph TD + A[User Input] --> B[Parse Query] + B --> C[{agent_name}] + C --> D[LlamaIndex Processing] + D --> E[Retrieve Examples] + D --> F[Calculate Solution] + E --> G[Generate Explanation] + F --> G + G --> H[Return Result]""" + + elif framework == "langgraph": + return f"""graph TD + A[User Input] --> B[{agent_name}] + B --> C[Problem Analysis] + C --> D[Solution Planning] + D --> E[Step Execution] + E --> F[Validation] + F --> G[Generate Response] + G --> H[Return Result]""" + + elif framework == "letta": + return f"""graph TD + A[User Input] --> B[{agent_name}] + B --> C[Memory Retrieval] + C --> D[Context Processing] + D --> E[Tool Execution] + E --> F[Response Generation] + F --> G[Memory Update] + G --> H[Return Result]""" + + elif framework == "agno": + return f"""graph TD + A[User Input] --> B[{agent_name}] + B --> C[Request Analysis] + C --> D[Processing] + D --> E[Response Generation] + E --> F[Return Result]""" + + else: + return f"""graph TD + A[User Input] --> B[{agent_name}] + B --> C[Process Request] + C --> D[Generate Response] + D --> E[Return Result]""" + + except Exception as e: + print(f"Error generating diagram: {e}") + # Fallback to ultra-simple diagram + return f"""graph TD + A[Input] --> B[{agent_name}] + B --> C[Output]""" + +def generate_agent_files(agent_info: dict, session_id: str) -> bool: + """Generate agent files based on template and user requirements.""" + + framework = agent_info['framework'] + template_type = agent_info['template_type'] + + # Create session directory + session_dir = Path(f"generated_agents/{session_id}") + session_dir.mkdir(parents=True, exist_ok=True) + + # Create .env file with OpenAI API key + env_content = f"""# OpenAI API Key +OPENAI_API_KEY={os.getenv('OPENAI_API_KEY', 'your_openai_api_key_here')} + +# Letta Configuration (if using Letta) +LETTA_SERVER_URL=http://localhost:8283 +""" + + with open(session_dir / ".env", "w") as f: + f.write(env_content) + + # Get template info + template_info = TEMPLATES.get(framework, {}).get(template_type, {}) + + try: + if framework == "langgraph": + generate_langgraph_files(agent_info, session_dir) + elif framework == "letta": + generate_letta_files(agent_info, session_dir) + elif framework == "agno": + generate_agno_files(agent_info, session_dir) + elif framework == "llamaindex": + generate_llamaindex_files(agent_info, session_dir) + + return True + except Exception as e: + print(f"Error generating files: {e}") + return False + +def generate_langgraph_files(agent_info: dict, session_dir: Path): + """Generate LangGraph agent files.""" + + # Generate main agent file + agent_code = f'''""" +{agent_info['agent_name']} - {agent_info['description']} +Generated by RunAgent Generator +""" + +from typing import List, TypedDict +from langchain_core.messages import HumanMessage +from langchain_openai import ChatOpenAI +from langgraph.graph import END, StateGraph + +class AgentState(TypedDict): + query: str + result: str + input_data: dict + +llm = ChatOpenAI(model="gpt-4o-mini", temperature=0.3) + +def process_agent(state: AgentState) -> AgentState: + """Main processing function for {agent_info['agent_name']}""" + + query = state['query'] + input_data = state.get('input_data', {{}}) + + prompt = f""" + {agent_info['description']} + + User query: {{query}} + Input data: {{input_data}} + + Please provide a helpful response based on the functionality: {agent_info['main_functionality']} + """ + + response = llm.invoke([HumanMessage(content=prompt)]) + + return {{**state, "result": response.content}} + +def create_workflow(): + """Create the agent workflow""" + workflow = StateGraph(AgentState) + + workflow.add_node("process", process_agent) + workflow.set_entry_point("process") + workflow.add_edge("process", END) + + return workflow.compile() + +# Create workflow +app = create_workflow() + +def run(*input_args, **input_kwargs): + """Main entry point for RunAgent""" + + # Extract query and input data + query = input_kwargs.get("query", "") + if not query and input_args: + query = str(input_args[0]) + + # Run the workflow + result = app.invoke({{ + "query": query, + "input_data": input_kwargs, + "result": "" + }}) + + return result["result"] + +def run_stream(*input_args, **input_kwargs): + """Streaming entry point""" + query = input_kwargs.get("query", "") + if not query and input_args: + query = str(input_args[0]) + + # Stream the workflow + for chunk in app.stream({{ + "query": query, + "input_data": input_kwargs, + "result": "" + }}): + yield chunk +''' + + # Write agent file + with open(session_dir / "agent.py", "w") as f: + f.write(agent_code) + + # Generate requirements.txt + requirements = """langgraph>=0.0.65 +langchain>=0.1.0 +langchain-core>=0.1.0 +langchain-openai>=0.0.5 +""" + + with open(session_dir / "requirements.txt", "w") as f: + f.write(requirements) + + # Generate runagent.config.json + config = { + "agent_name": agent_info['agent_name'], + "description": agent_info['description'], + "framework": "langgraph", + "template": "custom", + "version": "1.0.0", + "created_at": time.strftime("%Y-%m-%d %H:%M:%S"), + "template_source": { + "repo_url": "https://github.com/runagent-dev/runagent.git", + "path": "generated/custom", + "author": "runagent-generator" + }, + "agent_architecture": { + "entrypoints": [ + { + "file": "agent.py", + "module": "run", + "tag": "main" + }, + { + "file": "agent.py", + "module": "run_stream", + "tag": "main_stream" + } + ] + }, + "input_fields": agent_info['input_fields'] + } + + with open(session_dir / "runagent.config.json", "w") as f: + json.dump(config, f, indent=2) + + # Debug: Print the generated config + print(f"✅ Generated config for {framework}:") + print(json.dumps(config, indent=2)) + + # Debug: Print the generated config + print(f"✅ Generated config for {framework}:") + print(json.dumps(config, indent=2)) + + # Debug: Print the generated config + print(f"✅ Generated config for {framework}:") + print(json.dumps(config, indent=2)) + + # Debug: Print the generated config + print(f"✅ Generated config for {framework}:") + print(json.dumps(config, indent=2)) + +def generate_letta_files(agent_info: dict, session_dir: Path): + """Generate Letta agent files.""" + + agent_code = f'''import os +from typing import Any +from dotenv import load_dotenv +from letta_client import CreateBlock, Letta + +load_dotenv() + +def _extract_message_from_input(*input_args, **input_kwargs) -> str: + """Extract message from various input formats""" + + # Try different input field names + for field in {agent_info['input_fields']}: + if input_kwargs.get(field): + return str(input_kwargs[field]) + + # Try first positional argument + if input_args and isinstance(input_args[0], str): + return input_args[0] + + return "No input provided" + +def letta_run(*input_args, **input_kwargs): + """Main Letta agent function""" + try: + client = Letta(base_url="http://localhost:8283") + + # Create memory blocks + memory_blocks = [ + CreateBlock( + label="human", + value="You are interacting with a user through RunAgent framework", + ), + CreateBlock( + label="persona", + value="{agent_info['description']}. Be helpful and focused on: {agent_info['main_functionality']}", + ), + ] + + # Create agent + agent = client.agents.create( + name=f"runagent-{agent_info['agent_name']}-{{os.getpid()}}", + memory_blocks=memory_blocks, + system="{agent_info['description']} Focus on: {agent_info['main_functionality']}", + model="openai/gpt-4o-mini", + embedding="openai/text-embedding-ada-002", + include_base_tools=True + ) + + # Extract message from input + message = _extract_message_from_input(*input_args, **input_kwargs) + + # Send message to agent + response = client.agents.messages.create( + agent_id=agent.id, + messages=[{{"role": "user", "content": message}}] + ) + + return response + + except Exception as e: + return f"Letta execution error: {{str(e)}}" + +def letta_run_stream(*input_args, **input_kwargs): + """Streaming Letta function""" + try: + client = Letta(base_url="http://localhost:8283") + + memory_blocks = [ + CreateBlock( + label="human", + value="You are interacting with a user through RunAgent framework", + ), + CreateBlock( + label="persona", + value="{agent_info['description']}. Be helpful and focused on: {agent_info['main_functionality']}", + ), + ] + + agent = client.agents.create( + name=f"runagent-{agent_info['agent_name']}-stream-{{os.getpid()}}", + memory_blocks=memory_blocks, + system="{agent_info['description']} Focus on: {agent_info['main_functionality']}", + model="openai/gpt-4o-mini", + embedding="openai/text-embedding-ada-002", + include_base_tools=True + ) + + message = _extract_message_from_input(*input_args, **input_kwargs) + + stream = client.agents.messages.create_stream( + agent_id=agent.id, + messages=[{{"role": "user", "content": message}}], + stream_tokens=True, + ) + + for chunk in stream: + yield chunk + + except Exception as e: + yield f"Letta streaming error: {{str(e)}}" +''' + + with open(session_dir / "agent.py", "w") as f: + f.write(agent_code) + + # Generate config + config = { + "agent_name": agent_info['agent_name'], + "description": agent_info['description'], + "framework": "letta", + "template": "custom", + "version": "1.0.0", + "created_at": time.strftime("%Y-%m-%d %H:%M:%S"), + "template_source": { + "repo_url": "https://github.com/runagent-dev/runagent.git", + "path": "generated/custom", + "author": "runagent-generator" + }, + "agent_architecture": { + "entrypoints": [ + { + "file": "agent.py", + "module": "letta_run", + "tag": "main" + }, + { + "file": "agent.py", + "module": "letta_run_stream", + "tag": "main_stream" + } + ] + }, + "input_fields": agent_info['input_fields'], + "env_vars": { + "OPENAI_API_KEY": "${OPENAI_API_KEY}", + "LETTA_SERVER_URL": "http://localhost:8283" + } + } + + with open(session_dir / "runagent.config.json", "w") as f: + json.dump(config, f, indent=2) + +def generate_agno_files(agent_info: dict, session_dir: Path): + """Generate Agno agent files.""" + + agent_code = f'''from functools import partial +from agno.agent import Agent +from agno.models.openai import OpenAIChat + +agent = Agent( + model=OpenAIChat(id="gpt-4o-mini"), + description="{agent_info['description']}", + instructions="Focus on: {agent_info['main_functionality']}", + markdown=True +) + +def agent_run(*input_args, **input_kwargs): + """Main agent function""" + + # Extract input from various sources + prompt = "" + for field in {agent_info['input_fields']}: + if input_kwargs.get(field): + prompt = str(input_kwargs[field]) + break + + if not prompt and input_args: + prompt = str(input_args[0]) + + if not prompt: + prompt = "Hello, how can I help you?" + + # Add context about the agent's purpose + full_prompt = f""" + {agent_info['description']} + + User request: {{prompt}} + + Please provide a helpful response focused on: {agent_info['main_functionality']} + """ + + response = agent.run(full_prompt) + + return {{ + "content": response.content if hasattr(response, 'content') else str(response), + }} + +def agent_run_stream(*input_args, **input_kwargs): + """Streaming agent function""" + + prompt = "" + for field in {agent_info['input_fields']}: + if input_kwargs.get(field): + prompt = str(input_kwargs[field]) + break + + if not prompt and input_args: + prompt = str(input_args[0]) + + full_prompt = f""" + {agent_info['description']} + + User request: {{prompt}} + + Please provide a helpful response focused on: {agent_info['main_functionality']} + """ + + for chunk in agent.run(full_prompt, stream=True): + yield {{ + "content": chunk.content if hasattr(chunk, 'content') else str(chunk) + }} + +# Keep original functions for backward compatibility +agent_run_stream = partial(agent.run, stream=True) +''' + + with open(session_dir / "agent.py", "w") as f: + f.write(agent_code) + + # Generate requirements + with open(session_dir / "requirements.txt", "w") as f: + f.write("agno>=1.7.2\n") + + # Generate config + config = { + "agent_name": agent_info['agent_name'], + "description": agent_info['description'], + "framework": "agno", + "template": "custom", + "version": "1.0.0", + "created_at": time.strftime("%Y-%m-%d %H:%M:%S"), + "agent_architecture": { + "entrypoints": [ + { + "file": "agent.py", + "module": "agent_run", + "tag": "main", + "extractor": {{"content": "$.content"}} + }, + { + "file": "agent.py", + "module": "agent_run_stream", + "tag": "main_stream", + "extractor": {{"content": "$.content"}} + } + ] + }, + "input_fields": agent_info['input_fields'] + } + + with open(session_dir / "runagent.config.json", "w") as f: + json.dump(config, f, indent=2) + +def generate_llamaindex_files(agent_info: dict, session_dir: Path): + """Generate LlamaIndex agent files.""" + + agent_code = f'''from llama_index.llms.openai import OpenAI +from llama_index.core.agent.workflow import FunctionAgent + +# Initialize LLM +llm = OpenAI(model="gpt-4o-mini", temperature=0.3) + +# Create the agent +agent = FunctionAgent( + tools=[], # Add tools as needed + llm=llm, + system_prompt="{agent_info['description']} Focus on: {agent_info['main_functionality']}" +) + +async def agent_run(*input_args, **input_kwargs): + """Main agent function""" + + # Extract input from various sources + user_input = "" + for field in {agent_info['input_fields']}: + if input_kwargs.get(field): + user_input = str(input_kwargs[field]) + break + + if not user_input and input_args: + user_input = str(input_args[0]) + + if not user_input: + user_input = "Hello, how can I help you?" + + response = await agent.run(user_input) + return response + +async def agent_run_stream(*input_args, **input_kwargs): + """Streaming agent function""" + + user_input = "" + for field in {agent_info['input_fields']}: + if input_kwargs.get(field): + user_input = str(input_kwargs[field]) + break + + if not user_input and input_args: + user_input = str(input_args[0]) + + handler = agent.run(user_msg=user_input) + async for event in handler.stream_events(): + yield event +''' + + with open(session_dir / "agent.py", "w") as f: + f.write(agent_code) + + # Generate requirements + with open(session_dir / "requirements.txt", "w") as f: + f.write("llama-index>=0.12.48\n") + + # Generate config + config = { + "agent_name": agent_info['agent_name'], + "description": agent_info['description'], + "framework": "llamaindex", + "template": "custom", + "version": "1.0.0", + "created_at": time.strftime("%Y-%m-%d %H:%M:%S"), + "agent_architecture": { + "entrypoints": [ + { + "file": "agent.py", + "module": "agent_run", + "tag": "main" + }, + { + "file": "agent.py", + "module": "agent_run_stream", + "tag": "main_stream" + } + ] + }, + "input_fields": agent_info['input_fields'] + } + + with open(session_dir / "runagent.config.json", "w") as f: + json.dump(config, f, indent=2) + +def start_runagent_server(session_dir: str, session_id: str): + """Start runagent server for the generated agent.""" + + try: + print(f"🚀 Starting RunAgent server for session: {session_id}") + print(f"📁 Agent directory: {session_dir}") + + # Check if runagent is available + try: + result = subprocess.run(["runagent", "--version"], capture_output=True, text=True, timeout=10) + print(f"RunAgent version: {result.stdout.strip()}") + except FileNotFoundError: + print("❌ RunAgent CLI not found! Installing...") + # Try to install runagent + subprocess.run(["pip", "install", "runagent"], check=True) + print("✅ RunAgent installed") + except Exception as e: + print(f"⚠️ RunAgent check failed: {e}") + + # Find an available port starting from 8080 + import socket + def find_free_port(start_port=8080): + for port in range(start_port, start_port + 100): + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: + try: + s.bind(('localhost', port)) + return port + except OSError: + continue + raise Exception("No free ports available") + + port = find_free_port() + print(f"🔌 Using port: {port}") + + # Debug: Check what files exist and their content + session_path = Path(session_dir) + print(f"📂 Checking generated files in {session_path}:") + + try: + if session_path.exists(): + for file_path in session_path.iterdir(): + print(f" 📄 {file_path.name}") + if file_path.name == "runagent.config.json": + try: + with open(file_path, 'r') as f: + config_content = json.load(f) + print(f" 📋 Config content preview:") + print(f" - agent_name: {config_content.get('agent_name')}") + print(f" - framework: {config_content.get('framework')}") + print(f" - template_source: {config_content.get('template_source', 'MISSING!')}") + + # Check if template_source is missing and fix it + if not config_content.get('template_source'): + print(" 🔧 Fixing missing template_source...") + config_content['template_source'] = { + "repo_url": "https://github.com/runagent-dev/runagent.git", + "path": "generated/custom", + "author": "runagent-generator" + } + # Write the fixed config back + with open(file_path, 'w') as f: + json.dump(config_content, f, indent=2) + print(" ✅ Fixed config file!") + + except Exception as e: + print(f" ❌ Error reading config: {e}") + else: + print(f" ❌ Directory {session_path} does not exist!") + except Exception as e: + print(f" ❌ Error checking files: {e}") + + # Install dependencies first + print("📦 Installing agent dependencies...") + try: + result = subprocess.run(["pip", "install", "-r", "requirements.txt"], + cwd=session_dir, capture_output=True, text=True, timeout=120) + if result.returncode != 0: + print(f"⚠️ Dependency installation warning: {result.stderr}") + else: + print("✅ Dependencies installed successfully") + except Exception as e: + print(f"⚠️ Dependency installation failed: {e}") + + # Start runagent serve process + cmd = ["runagent", "serve", ".", "--host", "0.0.0.0", "--port", str(port)] + + print(f"🔧 Running command: {' '.join(cmd)}") + print(f"📂 Working directory: {session_dir}") + + process = subprocess.Popen( + cmd, + cwd=session_dir, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, # Combine stderr with stdout + text=True, + bufsize=1, + universal_newlines=True + ) + + # Wait for server to start and extract agent info + agent_id = None + start_time = time.time() + timeout = 60 # 60 seconds timeout + + print("📡 Waiting for RunAgent server to start...") + + while time.time() - start_time < timeout: + # Check if process is still running + if process.poll() is not None: + stdout, stderr = process.communicate() + print(f"❌ RunAgent process exited early (exit code: {process.returncode}):") + print(f"OUTPUT: {stdout}") + break + + # Read output line by line + try: + line = process.stdout.readline() + if line: + print(f"RunAgent: {line.strip()}") + + # Look for agent ID in output - improved detection + if any(keyword in line.lower() for keyword in ["agent_id", "agent id", "agent-id"]): + import re + # Look for UUID pattern + match = re.search(r'([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})', line) + if match: + agent_id = match.group(1) + print(f"✅ Found Agent ID: {agent_id}") + break + + # Look for server startup confirmation + if any(keyword in line.lower() for keyword in ["server running", "uvicorn running", "started server", "listening on"]): + if not agent_id: + agent_id = str(uuid.uuid4()) + print(f"🆔 Generated Agent ID: {agent_id}") + break + + except Exception as e: + print(f"Error reading output: {e}") + pass + + time.sleep(0.5) + + if not agent_id: + # If we couldn't get an agent ID, generate one and assume it started + agent_id = str(uuid.uuid4()) + print(f"⚠️ Using generated Agent ID: {agent_id}") + + # Test if server is responding + try: + import requests + test_url = f"http://localhost:{port}/health" + response = requests.get(test_url, timeout=5) + print(f"✅ Server health check: {response.status_code}") + except Exception as e: + print(f"⚠️ Health check failed: {e}") + + agent_url = f"http://localhost:8000/static/agent.html?agent={agent_id}" + + # Store the running agent info + running_agents[session_id] = { + "process": process, + "agent_id": agent_id, + "agent_url": agent_url, + "port": port, + "runagent_url": f"http://localhost:{port}" + } + + print(f"🎉 RunAgent server started successfully!") + print(f"🔗 Agent ID: {agent_id}") + print(f"🌐 RunAgent URL: http://localhost:{port}") + print(f"🖥️ UI URL: {agent_url}") + + return agent_id, agent_url, port + + except Exception as e: + print(f"❌ Error starting agent server: {e}") + import traceback + traceback.print_exc() + return None, None, None + +@app.post("/chat", response_model=ChatResponse) +async def chat_endpoint(request: ChatRequest): + """Main chat endpoint for agent generation.""" + + session_id = request.session_id or str(uuid.uuid4()) + message = request.message.lower().strip() + + # Debug logging + print(f"DEBUG: Received message: '{request.message}' (processed: '{message}')") + print(f"DEBUG: Session ID: {session_id}") + + # Get or create session + if session_id not in sessions: + sessions[session_id] = { + "stage": "understanding", + "messages": [], + "agent_info": None, + "files_generated": False + } + + session = sessions[session_id] + print(f"DEBUG: Current stage: {session['stage']}") + + session["messages"].append({"role": "user", "content": request.message}) + + try: + # Stage 1: Understanding the request + if session["stage"] == "understanding": + agent_info = analyze_user_request(request.message) + session["agent_info"] = agent_info + session["stage"] = "planning" + + description = f"""I understand you want to create: **{agent_info['agent_name']}** + +**Framework:** {agent_info['framework']} +**Description:** {agent_info['description']} +**Main Functionality:** {agent_info['main_functionality']} +**Input Fields:** {', '.join(agent_info['input_fields'])} + +Let me create a workflow diagram for this agent...""" + + mermaid_diagram = generate_mermaid_diagram(agent_info) + + return ChatResponse( + response=description, + session_id=session_id, + stage="planning", + description=agent_info['description'], + mermaid_diagram=mermaid_diagram + ) + + # Handle user feedback/modifications + elif session["stage"] == "planning": + if any(phrase in message for phrase in ["go for it", "generate", "create it", "build it", "make it", "proceed", "continue", "yes", "start"]): + print(f"DEBUG: Starting agent generation for session {session_id}") + + # Generate agent files + success = generate_agent_files(session["agent_info"], session_id) + + if success: + print(f"DEBUG: Files generated successfully for session {session_id}") + session["files_generated"] = True + session["stage"] = "starting" + + # Start RunAgent server immediately in background + session_dir_path = Path(f"generated_agents/{session_id}") + + def start_agent(): + print(f"🚀 Background task: Starting agent for session {session_id}") + agent_id, agent_url, port = start_runagent_server(str(session_dir_path), session_id) + + if agent_id and agent_url: + session["agent_id"] = agent_id + session["agent_url"] = agent_url + session["runagent_port"] = port + session["stage"] = "complete" + + # Store agent info for the agent UI to access + running_agents[agent_id] = { + "agent_info": session["agent_info"], + "session_id": session_id, + "status": "active", + "port": port, + "runagent_url": f"http://localhost:{port}" + } + print(f"✅ Agent {agent_id} is now ready at port {port}!") + else: + session["stage"] = "error" + session["error"] = "Failed to start RunAgent server" + print(f"❌ Failed to start agent for session {session_id}") + + # Start the agent server in background + print(f"DEBUG: Starting background thread for session {session_id}") + threading.Thread(target=start_agent, daemon=True).start() + + return ChatResponse( + response=f"""✅ Agent files generated successfully! Now starting the RunAgent server... + +🔄 Starting your **{session["agent_info"]["agent_name"]}** agent server... + +This involves: +1. Installing {session["agent_info"]["framework"]} dependencies +2. Starting RunAgent server on available port +3. Initializing your agent + +⏳ Please wait 30-60 seconds, then **send any message** (like "status") to check if it's ready.""", + session_id=session_id, + stage="starting" + ) + else: + return ChatResponse( + response="❌ Error generating agent files. Please try again.", + session_id=session_id, + stage="error" + ) + else: + # Handle modifications + return ChatResponse( + response="I can help you modify the agent. What would you like to change? Or say 'go for it' or 'generate' to proceed with the current design.", + session_id=session_id, + stage="planning", + description=session["agent_info"]["description"], + mermaid_diagram=generate_mermaid_diagram(session["agent_info"]) + ) + + # Stage 3: Check agent status or continue if starting + elif session["stage"] == "starting": + print(f"DEBUG: Checking status for starting session {session_id}") + + # Check if agent has been started in the background + if session.get("agent_id") and session.get("agent_url"): + # Agent is ready! + session["stage"] = "complete" + agent_id = session["agent_id"] + agent_url = session["agent_url"] + runagent_port = session.get("runagent_port") + + return ChatResponse( + response=f"""🎉 Your **{session["agent_info"]["agent_name"]}** is now ready! + +**Agent ID:** `{agent_id}` + +**🚀 Click here to use your agent:** +{agent_url} + +**RunAgent Server:** `http://localhost:{runagent_port}` + +Your {session["agent_info"]["framework"]} agent is running and will provide real mathematical computations! + +The agent interface connects directly to your RunAgent server for authentic responses.""", + session_id=session_id, + stage="complete", + agent_id=agent_id, + agent_url=agent_url + ) + elif session.get("stage") == "error": + return ChatResponse( + response=f"❌ Error starting agent: {session.get('error', 'Unknown error')}", + session_id=session_id, + stage="error" + ) + else: + # Still starting + return ChatResponse( + response="""⏳ Still starting your agent server... + +The process includes: +- Installing dependencies (this can take time) +- Initializing the RunAgent framework +- Starting the server + +Please wait a bit longer and send another message to check status. + +If it takes more than 2-3 minutes, there might be an issue with dependencies.""", + session_id=session_id, + stage="starting" + ) + + # Agent is complete or checking status + else: + if session["stage"] == "complete": + agent_id = session.get("agent_id") + agent_url = session.get("agent_url") + runagent_port = session.get("runagent_port") + + return ChatResponse( + response=f"""🎉 Your **{session["agent_info"]["agent_name"]}** is ready! + +**Agent ID:** `{agent_id}` + +**🚀 Click here to use your agent:** +{agent_url} + +**RunAgent Server:** `http://localhost:{runagent_port}` + +Your {session["agent_info"]["framework"]} agent is running and will provide real mathematical computations! + +The agent interface connects directly to your RunAgent server for authentic responses.""", + session_id=session_id, + stage="complete", + agent_id=agent_id, + agent_url=agent_url + ) + elif session["stage"] == "starting": + return ChatResponse( + response="⏳ Still starting your agent server... Please wait a bit longer and try again.", + session_id=session_id, + stage="starting" + ) + else: + return ChatResponse( + response=f"Your agent status: {session.get('stage', 'unknown')}. How can I help you?", + session_id=session_id, + stage=session.get("stage", "understanding") + ) + + except Exception as e: + print(f"Error in chat endpoint: {e}") + return ChatResponse( + response=f"Sorry, I encountered an error: {str(e)}", + session_id=session_id, + stage="error" + ) + +@app.get("/agent/{agent_id}") +async def get_agent_info(agent_id: str): + """Get agent information for the UI.""" + + # Check in running_agents first (for real agents) + if agent_id in running_agents: + agent_data = running_agents[agent_id] + return { + "agent_id": agent_id, + "agent_info": { + **agent_data["agent_info"], + "runagent_url": agent_data.get("runagent_url"), + "port": agent_data.get("port") + }, + "session_id": agent_data["session_id"], + "status": agent_data["status"] + } + + # Fallback: Find session with this agent_id + for session_id, session in sessions.items(): + if session.get("agent_id") == agent_id: + # Also check if we have running agent info + if session_id in running_agents: + agent_data = running_agents[session_id] + return { + "agent_id": agent_id, + "agent_info": { + **session["agent_info"], + "runagent_url": agent_data.get("runagent_url"), + "port": agent_data.get("port") + }, + "session_id": session_id, + "status": "active" + } + else: + return { + "agent_id": agent_id, + "agent_info": { + **session["agent_info"], + "runagent_url": f"http://localhost:{session.get('runagent_port', 8080)}", + "port": session.get("runagent_port", 8080) + }, + "session_id": session_id, + "status": "active" + } + + raise HTTPException(status_code=404, detail="Agent not found") + +@app.get("/health") +async def health_check(): + return {"status": "healthy", "active_sessions": len(sessions)} + +@app.get("/debug/test-runagent/{agent_id}") +async def test_runagent_connection(agent_id: str): + """Test connection to a running RunAgent server.""" + import requests + + # Find the agent's port + port = None + if agent_id in running_agents: + port = running_agents[agent_id].get("port") + else: + # Check sessions + for session_id, session in sessions.items(): + if session.get("agent_id") == agent_id: + port = session.get("runagent_port") + break + + if not port: + return {"error": "Agent not found or port not available"} + + base_url = f"http://localhost:{port}" + + # Test various endpoints + results = {} + + test_endpoints = [ + "/", + "/health", + "/docs", + "/run", + "/agents", + "/agents/main/run" + ] + + for endpoint in test_endpoints: + try: + response = requests.get(f"{base_url}{endpoint}", timeout=5) + results[endpoint] = { + "status": response.status_code, + "accessible": True, + "content_type": response.headers.get("content-type", ""), + "content_preview": response.text[:200] if response.text else "" + } + except Exception as e: + results[endpoint] = { + "status": "error", + "accessible": False, + "error": str(e) + } + + return { + "agent_id": agent_id, + "port": port, + "base_url": base_url, + "endpoints": results + } + +@app.get("/debug/clear-sessions") +async def clear_sessions(): + """Clear all sessions and running agents for debugging.""" + global sessions, running_agents + + # Stop any running processes + for session_id, agent_data in running_agents.items(): + if "process" in agent_data and agent_data["process"]: + try: + agent_data["process"].terminate() + print(f"🛑 Terminated process for session {session_id}") + except: + pass + + sessions.clear() + running_agents.clear() + + return {"message": "All sessions and agents cleared", "status": "success"} + +if __name__ == "__main__": + import uvicorn + + # Create directories + os.makedirs("generated_agents", exist_ok=True) + os.makedirs("static", exist_ok=True) + + uvicorn.run(app, host="0.0.0.0", port=8000) \ No newline at end of file diff --git a/examples/gpt_5_project/static/agent.html b/examples/gpt_5_project/static/agent.html new file mode 100644 index 0000000..60982fb --- /dev/null +++ b/examples/gpt_5_project/static/agent.html @@ -0,0 +1,855 @@ + + + + + + Agent Interface + + + +
+
+

Loading Agent...

+

Connecting to your AI agent...

+ +
+
+
Agent ID: -
+
Framework: -
+
Session: -
+
+
+ Connecting +
+
+
+ +
+
+
+

🎯 Execution Mode

+
+
+ ⚡ Standard +
+
+ 🌊 Streaming +
+
+
+ +
+

📝 Input Fields

+
+ +
+
+ +
+ + +
+ + +
+ +
+
+

📤 Agent Response

+
+
+ Processing... +
+
+ +
+ 👋 Welcome to your AI agent interface! + +Configure the input fields and click "Run Agent" to get started. + +Your agent will process the input and provide intelligent responses based on its capabilities. +
+
+
+ + +
+ + + + \ No newline at end of file diff --git a/examples/gpt_5_project/static/index.html b/examples/gpt_5_project/static/index.html new file mode 100644 index 0000000..75b4202 --- /dev/null +++ b/examples/gpt_5_project/static/index.html @@ -0,0 +1,707 @@ + + + + + + RunAgent Generator - AI Agent Builder + + + + +
+
+

🤖 RunAgent Generator

+

Create powerful AI agents with natural language

+
+ +
+ +
+
+
+ 🚀 Welcome to RunAgent Generator!

+ I can help you create custom AI agents using natural language. Just tell me what kind of agent you want!

+ Examples:
+ • "I want a weather agent in LangGraph"
+ • "Create a research assistant using Letta"
+ • "Build a math solver with LlamaIndex"
+ • "Make a content writer agent in Agno" +
+
+ +
+ + +
+
+ + +
+
+
Understanding
+
Planning
+
Generating
+
Complete
+
+ + + + + + +
+
+ +
+
+ 🌤️ Weather Agent +
+
+ 🔍 Research Assistant +
+
+ 🔢 Math Solver +
+
+ ✍️ Content Writer +
+
+
+ + + + \ No newline at end of file diff --git a/examples/gpt_5_project/test.py b/examples/gpt_5_project/test.py new file mode 100644 index 0000000..2968d15 --- /dev/null +++ b/examples/gpt_5_project/test.py @@ -0,0 +1,12 @@ +from openai import OpenAI +client = OpenAI() + +response = client.responses.create( + model="gpt-5-mini", + input="Draw simple a mermaid graph of weather agent", + reasoning={ + "effort": "minimal" + } +) + +print(response) \ No newline at end of file From ed986bc4ab3f81a37669447fc1cabf1067683366 Mon Sep 17 00:00:00 2001 From: RadeenXALNW Date: Fri, 8 Aug 2025 09:17:04 +0000 Subject: [PATCH 02/16] fixing gpt-5-project --- .../agent.py | 47 +++ .../requirements.txt | 1 + .../runagent.config.json | 34 ++ .../agent.py | 69 ++++ .../requirements.txt | 1 + .../agent.py | 66 ++++ .../requirements.txt | 1 + .../runagent.config.json | 34 ++ .../agent.py | 47 +++ .../requirements.txt | 1 + .../runagent.config.json | 34 ++ .../agent.py | 47 +++ .../requirements.txt | 1 + .../runagent.config.json | 34 ++ .../agent.py | 47 +++ .../requirements.txt | 1 + .../runagent.config.json | 29 ++ examples/gpt_5_project/main.py | 130 ++----- examples/gpt_5_project/static/agent.html | 345 +++++++++++------- 19 files changed, 743 insertions(+), 226 deletions(-) create mode 100644 examples/gpt_5_project/generated_agents/2a248d1c-c4ca-4126-912b-35c8f39b05b2/agent.py create mode 100644 examples/gpt_5_project/generated_agents/2a248d1c-c4ca-4126-912b-35c8f39b05b2/requirements.txt create mode 100644 examples/gpt_5_project/generated_agents/2a248d1c-c4ca-4126-912b-35c8f39b05b2/runagent.config.json create mode 100644 examples/gpt_5_project/generated_agents/502ec429-36f7-400e-a3b2-e78c9cea584b/agent.py create mode 100644 examples/gpt_5_project/generated_agents/502ec429-36f7-400e-a3b2-e78c9cea584b/requirements.txt create mode 100644 examples/gpt_5_project/generated_agents/8df815f9-a0e5-4392-ae20-105ceae3ae26/agent.py create mode 100644 examples/gpt_5_project/generated_agents/8df815f9-a0e5-4392-ae20-105ceae3ae26/requirements.txt create mode 100644 examples/gpt_5_project/generated_agents/8df815f9-a0e5-4392-ae20-105ceae3ae26/runagent.config.json create mode 100644 examples/gpt_5_project/generated_agents/a4ba4a9f-52bf-45ca-b794-01728e1deb25/agent.py create mode 100644 examples/gpt_5_project/generated_agents/a4ba4a9f-52bf-45ca-b794-01728e1deb25/requirements.txt create mode 100644 examples/gpt_5_project/generated_agents/a4ba4a9f-52bf-45ca-b794-01728e1deb25/runagent.config.json create mode 100644 examples/gpt_5_project/generated_agents/b9370252-7e41-44d8-bd3b-8e710200152f/agent.py create mode 100644 examples/gpt_5_project/generated_agents/b9370252-7e41-44d8-bd3b-8e710200152f/requirements.txt create mode 100644 examples/gpt_5_project/generated_agents/b9370252-7e41-44d8-bd3b-8e710200152f/runagent.config.json create mode 100644 examples/gpt_5_project/generated_agents/c4ace43b-653a-4643-8669-7aa70029914a/agent.py create mode 100644 examples/gpt_5_project/generated_agents/c4ace43b-653a-4643-8669-7aa70029914a/requirements.txt create mode 100644 examples/gpt_5_project/generated_agents/c4ace43b-653a-4643-8669-7aa70029914a/runagent.config.json diff --git a/examples/gpt_5_project/generated_agents/2a248d1c-c4ca-4126-912b-35c8f39b05b2/agent.py b/examples/gpt_5_project/generated_agents/2a248d1c-c4ca-4126-912b-35c8f39b05b2/agent.py new file mode 100644 index 0000000..b8e1709 --- /dev/null +++ b/examples/gpt_5_project/generated_agents/2a248d1c-c4ca-4126-912b-35c8f39b05b2/agent.py @@ -0,0 +1,47 @@ +from llama_index.llms.openai import OpenAI +from llama_index.core.agent.workflow import FunctionAgent + +# Initialize LLM +llm = OpenAI(model="gpt-4o-mini", temperature=0.3) + +# Create the agent +agent = FunctionAgent( + tools=[], # Add tools as needed + llm=llm, + system_prompt="An AI agent that solves math problems by retrieving relevant documents and worked examples from a knowledge base using LlamaIndex, then applying symbolic/math reasoning to produce step-by-step solutions. It supports numeric computations, algebraic manipulations, and explanations with citations to source documents. Focus on: Retrieve math-related documents/examples and generate step-by-step solutions and explanations for user-provided math problems." +) + +async def agent_run(*input_args, **input_kwargs): + """Main agent function""" + + # Extract input from various sources + user_input = "" + for field in ['problem_statement', 'preferred_solution_format', 'allowed_tools', 'reference_documents (optional)', 'precision_or_rounding (optional)']: + if input_kwargs.get(field): + user_input = str(input_kwargs[field]) + break + + if not user_input and input_args: + user_input = str(input_args[0]) + + if not user_input: + user_input = "Hello, how can I help you?" + + response = await agent.run(user_input) + return response + +async def agent_run_stream(*input_args, **input_kwargs): + """Streaming agent function""" + + user_input = "" + for field in ['problem_statement', 'preferred_solution_format', 'allowed_tools', 'reference_documents (optional)', 'precision_or_rounding (optional)']: + if input_kwargs.get(field): + user_input = str(input_kwargs[field]) + break + + if not user_input and input_args: + user_input = str(input_args[0]) + + handler = agent.run(user_msg=user_input) + async for event in handler.stream_events(): + yield event diff --git a/examples/gpt_5_project/generated_agents/2a248d1c-c4ca-4126-912b-35c8f39b05b2/requirements.txt b/examples/gpt_5_project/generated_agents/2a248d1c-c4ca-4126-912b-35c8f39b05b2/requirements.txt new file mode 100644 index 0000000..1604f36 --- /dev/null +++ b/examples/gpt_5_project/generated_agents/2a248d1c-c4ca-4126-912b-35c8f39b05b2/requirements.txt @@ -0,0 +1 @@ +llama-index>=0.12.48 diff --git a/examples/gpt_5_project/generated_agents/2a248d1c-c4ca-4126-912b-35c8f39b05b2/runagent.config.json b/examples/gpt_5_project/generated_agents/2a248d1c-c4ca-4126-912b-35c8f39b05b2/runagent.config.json new file mode 100644 index 0000000..1ea44e0 --- /dev/null +++ b/examples/gpt_5_project/generated_agents/2a248d1c-c4ca-4126-912b-35c8f39b05b2/runagent.config.json @@ -0,0 +1,34 @@ +{ + "agent_name": "LlamaIndex Math Solver", + "description": "An AI agent that solves math problems by retrieving relevant documents and worked examples from a knowledge base using LlamaIndex, then applying symbolic/math reasoning to produce step-by-step solutions. It supports numeric computations, algebraic manipulations, and explanations with citations to source documents.", + "framework": "llamaindex", + "template": "custom", + "version": "1.0.0", + "created_at": "2025-08-07 23:27:04", + "agent_architecture": { + "entrypoints": [ + { + "file": "agent.py", + "module": "agent_run", + "tag": "main" + }, + { + "file": "agent.py", + "module": "agent_run_stream", + "tag": "main_stream" + } + ] + }, + "input_fields": [ + "problem_statement", + "preferred_solution_format", + "allowed_tools", + "reference_documents (optional)", + "precision_or_rounding (optional)" + ], + "template_source": { + "repo_url": "https://github.com/runagent-dev/runagent.git", + "path": "generated/custom", + "author": "runagent-generator" + } +} \ No newline at end of file diff --git a/examples/gpt_5_project/generated_agents/502ec429-36f7-400e-a3b2-e78c9cea584b/agent.py b/examples/gpt_5_project/generated_agents/502ec429-36f7-400e-a3b2-e78c9cea584b/agent.py new file mode 100644 index 0000000..bab2a8d --- /dev/null +++ b/examples/gpt_5_project/generated_agents/502ec429-36f7-400e-a3b2-e78c9cea584b/agent.py @@ -0,0 +1,69 @@ +from functools import partial +from agno.agent import Agent +from agno.models.openai import OpenAIChat + +agent = Agent( + model=OpenAIChat(id="gpt-4o-mini"), + description="A content writer agent that generates blog posts, articles, and marketing copy based on user-provided topics, tone, and length. It produces structured drafts with headings, introductions, conclusions, and optional SEO suggestions.", + instructions="Focus on: Generate polished, topic-focused written content and provide basic SEO and formatting recommendations.", + markdown=True +) + +def agent_run(*input_args, **input_kwargs): + """Main agent function""" + + # Extract input from various sources + prompt = "" + for field in ['topic', 'audience', 'tone', 'word_count', 'keywords', 'content_type', 'call_to_action', 'additional_requirements']: + if input_kwargs.get(field): + prompt = str(input_kwargs[field]) + break + + if not prompt and input_args: + prompt = str(input_args[0]) + + if not prompt: + prompt = "Hello, how can I help you?" + + # Add context about the agent's purpose + full_prompt = f""" + A content writer agent that generates blog posts, articles, and marketing copy based on user-provided topics, tone, and length. It produces structured drafts with headings, introductions, conclusions, and optional SEO suggestions. + + User request: {prompt} + + Please provide a helpful response focused on: Generate polished, topic-focused written content and provide basic SEO and formatting recommendations. + """ + + response = agent.run(full_prompt) + + return { + "content": response.content if hasattr(response, 'content') else str(response), + } + +def agent_run_stream(*input_args, **input_kwargs): + """Streaming agent function""" + + prompt = "" + for field in ['topic', 'audience', 'tone', 'word_count', 'keywords', 'content_type', 'call_to_action', 'additional_requirements']: + if input_kwargs.get(field): + prompt = str(input_kwargs[field]) + break + + if not prompt and input_args: + prompt = str(input_args[0]) + + full_prompt = f""" + A content writer agent that generates blog posts, articles, and marketing copy based on user-provided topics, tone, and length. It produces structured drafts with headings, introductions, conclusions, and optional SEO suggestions. + + User request: {prompt} + + Please provide a helpful response focused on: Generate polished, topic-focused written content and provide basic SEO and formatting recommendations. + """ + + for chunk in agent.run(full_prompt, stream=True): + yield { + "content": chunk.content if hasattr(chunk, 'content') else str(chunk) + } + +# Keep original functions for backward compatibility +agent_run_stream = partial(agent.run, stream=True) diff --git a/examples/gpt_5_project/generated_agents/502ec429-36f7-400e-a3b2-e78c9cea584b/requirements.txt b/examples/gpt_5_project/generated_agents/502ec429-36f7-400e-a3b2-e78c9cea584b/requirements.txt new file mode 100644 index 0000000..ac7f474 --- /dev/null +++ b/examples/gpt_5_project/generated_agents/502ec429-36f7-400e-a3b2-e78c9cea584b/requirements.txt @@ -0,0 +1 @@ +agno>=1.7.2 diff --git a/examples/gpt_5_project/generated_agents/8df815f9-a0e5-4392-ae20-105ceae3ae26/agent.py b/examples/gpt_5_project/generated_agents/8df815f9-a0e5-4392-ae20-105ceae3ae26/agent.py new file mode 100644 index 0000000..f49eb8d --- /dev/null +++ b/examples/gpt_5_project/generated_agents/8df815f9-a0e5-4392-ae20-105ceae3ae26/agent.py @@ -0,0 +1,66 @@ +from llama_index.llms.openai import OpenAI +from llama_index.core.agent.workflow import FunctionAgent + +# Initialize LLM +llm = OpenAI(model="gpt-4o-mini", temperature=0.3) + +# Define calculation tools +def add_numbers(a: float, b: float) -> float: + """Add two numbers together.""" + return a + b + +def subtract_numbers(a: float, b: float) -> float: + """Subtract second number from first number.""" + return a - b + +def multiply_numbers(a: float, b: float) -> float: + """Multiply two numbers together.""" + return a * b + +def divide_numbers(a: float, b: float) -> float: + """Divide first number by second number.""" + if b == 0: + return "Error: Cannot divide by zero" + return a / b + +# Create the agent with tools +agent = FunctionAgent( + tools=[add_numbers, subtract_numbers, multiply_numbers, divide_numbers], + llm=llm, + system_prompt="A math solver that uses LlamaIndex to parse problems, retrieve relevant knowledge or worked examples from a document corpus, and generate step-by-step solutions. It can handle algebra, calculus, and numeric problem solving while citing sources and applying retrieved examples to improve solution accuracy. Focus on: Parse math problems, retrieve relevant documents or examples via LlamaIndex, and produce step-by-step solutions with citations.. Use the available mathematical tools to solve problems accurately." +) + +async def agent_run(*input_args, **input_kwargs): + """Main agent function""" + + # Extract input from various sources + user_input = "" + for field in ['problem_text', 'desired_solution_format', 'supporting_documents (optional)', 'precision_or_tolerance (optional)', 'show_steps (boolean)']: + if input_kwargs.get(field): + user_input = str(input_kwargs[field]) + break + + if not user_input and input_args: + user_input = str(input_args[0]) + + if not user_input: + user_input = "Hello, how can I help you with math?" + + response = await agent.run(user_input) + return response + +async def agent_run_stream(*input_args, **input_kwargs): + """Streaming agent function""" + + user_input = "" + for field in ['problem_text', 'desired_solution_format', 'supporting_documents (optional)', 'precision_or_tolerance (optional)', 'show_steps (boolean)']: + if input_kwargs.get(field): + user_input = str(input_kwargs[field]) + break + + if not user_input and input_args: + user_input = str(input_args[0]) + + handler = agent.run(user_msg=user_input) + async for event in handler.stream_events(): + yield event diff --git a/examples/gpt_5_project/generated_agents/8df815f9-a0e5-4392-ae20-105ceae3ae26/requirements.txt b/examples/gpt_5_project/generated_agents/8df815f9-a0e5-4392-ae20-105ceae3ae26/requirements.txt new file mode 100644 index 0000000..1604f36 --- /dev/null +++ b/examples/gpt_5_project/generated_agents/8df815f9-a0e5-4392-ae20-105ceae3ae26/requirements.txt @@ -0,0 +1 @@ +llama-index>=0.12.48 diff --git a/examples/gpt_5_project/generated_agents/8df815f9-a0e5-4392-ae20-105ceae3ae26/runagent.config.json b/examples/gpt_5_project/generated_agents/8df815f9-a0e5-4392-ae20-105ceae3ae26/runagent.config.json new file mode 100644 index 0000000..16347ef --- /dev/null +++ b/examples/gpt_5_project/generated_agents/8df815f9-a0e5-4392-ae20-105ceae3ae26/runagent.config.json @@ -0,0 +1,34 @@ +{ + "agent_name": "LlamaIndexMathSolver", + "description": "A math solver that uses LlamaIndex to parse problems, retrieve relevant knowledge or worked examples from a document corpus, and generate step-by-step solutions. It can handle algebra, calculus, and numeric problem solving while citing sources and applying retrieved examples to improve solution accuracy.", + "framework": "llamaindex", + "template": "custom", + "version": "1.0.0", + "created_at": "2025-08-07 23:48:19", + "template_source": { + "repo_url": "https://github.com/runagent-dev/runagent.git", + "path": "generated/custom/llamaindex", + "author": "runagent-generator" + }, + "agent_architecture": { + "entrypoints": [ + { + "file": "agent.py", + "module": "agent_run", + "tag": "main" + }, + { + "file": "agent.py", + "module": "agent_run_stream", + "tag": "main_stream" + } + ] + }, + "input_fields": [ + "problem_text", + "desired_solution_format", + "supporting_documents (optional)", + "precision_or_tolerance (optional)", + "show_steps (boolean)" + ] +} \ No newline at end of file diff --git a/examples/gpt_5_project/generated_agents/a4ba4a9f-52bf-45ca-b794-01728e1deb25/agent.py b/examples/gpt_5_project/generated_agents/a4ba4a9f-52bf-45ca-b794-01728e1deb25/agent.py new file mode 100644 index 0000000..72761f4 --- /dev/null +++ b/examples/gpt_5_project/generated_agents/a4ba4a9f-52bf-45ca-b794-01728e1deb25/agent.py @@ -0,0 +1,47 @@ +from llama_index.llms.openai import OpenAI +from llama_index.core.agent.workflow import FunctionAgent + +# Initialize LLM +llm = OpenAI(model="gpt-4o-mini", temperature=0.3) + +# Create the agent +agent = FunctionAgent( + tools=[], # Add tools as needed + llm=llm, + system_prompt="A math problem solving agent that uses LlamaIndex to retrieve relevant mathematical resources, worked examples, and formula references to generate step-by-step solutions. It supports multiple problem types (algebra, calculus, geometry) and can cite source documents or examples used in reasoning. Focus on: Retrieve relevant documents/examples with LlamaIndex and produce step-by-step solutions and citations for math problems." +) + +async def agent_run(*input_args, **input_kwargs): + """Main agent function""" + + # Extract input from various sources + user_input = "" + for field in ['problem_text', 'problem_type', 'desired_detail_level', 'preferred_solution_format', 'reference_documents']: + if input_kwargs.get(field): + user_input = str(input_kwargs[field]) + break + + if not user_input and input_args: + user_input = str(input_args[0]) + + if not user_input: + user_input = "Hello, how can I help you?" + + response = await agent.run(user_input) + return response + +async def agent_run_stream(*input_args, **input_kwargs): + """Streaming agent function""" + + user_input = "" + for field in ['problem_text', 'problem_type', 'desired_detail_level', 'preferred_solution_format', 'reference_documents']: + if input_kwargs.get(field): + user_input = str(input_kwargs[field]) + break + + if not user_input and input_args: + user_input = str(input_args[0]) + + handler = agent.run(user_msg=user_input) + async for event in handler.stream_events(): + yield event diff --git a/examples/gpt_5_project/generated_agents/a4ba4a9f-52bf-45ca-b794-01728e1deb25/requirements.txt b/examples/gpt_5_project/generated_agents/a4ba4a9f-52bf-45ca-b794-01728e1deb25/requirements.txt new file mode 100644 index 0000000..1604f36 --- /dev/null +++ b/examples/gpt_5_project/generated_agents/a4ba4a9f-52bf-45ca-b794-01728e1deb25/requirements.txt @@ -0,0 +1 @@ +llama-index>=0.12.48 diff --git a/examples/gpt_5_project/generated_agents/a4ba4a9f-52bf-45ca-b794-01728e1deb25/runagent.config.json b/examples/gpt_5_project/generated_agents/a4ba4a9f-52bf-45ca-b794-01728e1deb25/runagent.config.json new file mode 100644 index 0000000..85b30a1 --- /dev/null +++ b/examples/gpt_5_project/generated_agents/a4ba4a9f-52bf-45ca-b794-01728e1deb25/runagent.config.json @@ -0,0 +1,34 @@ +{ + "agent_name": "LlamaIndex Math Solver", + "description": "A math problem solving agent that uses LlamaIndex to retrieve relevant mathematical resources, worked examples, and formula references to generate step-by-step solutions. It supports multiple problem types (algebra, calculus, geometry) and can cite source documents or examples used in reasoning.", + "framework": "llamaindex", + "template": "custom", + "version": "1.0.0", + "created_at": "2025-08-07 23:33:10", + "agent_architecture": { + "entrypoints": [ + { + "file": "agent.py", + "module": "agent_run", + "tag": "main" + }, + { + "file": "agent.py", + "module": "agent_run_stream", + "tag": "main_stream" + } + ] + }, + "input_fields": [ + "problem_text", + "problem_type", + "desired_detail_level", + "preferred_solution_format", + "reference_documents" + ], + "template_source": { + "repo_url": "https://github.com/runagent-dev/runagent.git", + "path": "generated/custom", + "author": "runagent-generator" + } +} \ No newline at end of file diff --git a/examples/gpt_5_project/generated_agents/b9370252-7e41-44d8-bd3b-8e710200152f/agent.py b/examples/gpt_5_project/generated_agents/b9370252-7e41-44d8-bd3b-8e710200152f/agent.py new file mode 100644 index 0000000..7f04fce --- /dev/null +++ b/examples/gpt_5_project/generated_agents/b9370252-7e41-44d8-bd3b-8e710200152f/agent.py @@ -0,0 +1,47 @@ +from llama_index.llms.openai import OpenAI +from llama_index.core.agent.workflow import FunctionAgent + +# Initialize LLM +llm = OpenAI(model="gpt-4o-mini", temperature=0.3) + +# Create the agent +agent = FunctionAgent( + tools=[], # Add tools as needed + llm=llm, + system_prompt="A math solver agent built on LlamaIndex that performs symbolic and numeric problem solving, shows step-by-step solutions, and retrieves relevant math references from indexed documents. It supports parsing problem statements, executing computations, and returning clear, verifiable derivations and final answers. Focus on: Parse math problems, perform symbolic and numeric computations, generate step-by-step solutions, and augment solving with retrieved math resources from a document index." +) + +async def agent_run(*input_args, **input_kwargs): + """Main agent function""" + + # Extract input from various sources + user_input = "" + for field in ['problem_statement', 'preferred_solution_format', 'precision_or_tolerance', 'show_steps', 'context_documents']: + if input_kwargs.get(field): + user_input = str(input_kwargs[field]) + break + + if not user_input and input_args: + user_input = str(input_args[0]) + + if not user_input: + user_input = "Hello, how can I help you?" + + response = await agent.run(user_input) + return response + +async def agent_run_stream(*input_args, **input_kwargs): + """Streaming agent function""" + + user_input = "" + for field in ['problem_statement', 'preferred_solution_format', 'precision_or_tolerance', 'show_steps', 'context_documents']: + if input_kwargs.get(field): + user_input = str(input_kwargs[field]) + break + + if not user_input and input_args: + user_input = str(input_args[0]) + + handler = agent.run(user_msg=user_input) + async for event in handler.stream_events(): + yield event diff --git a/examples/gpt_5_project/generated_agents/b9370252-7e41-44d8-bd3b-8e710200152f/requirements.txt b/examples/gpt_5_project/generated_agents/b9370252-7e41-44d8-bd3b-8e710200152f/requirements.txt new file mode 100644 index 0000000..1604f36 --- /dev/null +++ b/examples/gpt_5_project/generated_agents/b9370252-7e41-44d8-bd3b-8e710200152f/requirements.txt @@ -0,0 +1 @@ +llama-index>=0.12.48 diff --git a/examples/gpt_5_project/generated_agents/b9370252-7e41-44d8-bd3b-8e710200152f/runagent.config.json b/examples/gpt_5_project/generated_agents/b9370252-7e41-44d8-bd3b-8e710200152f/runagent.config.json new file mode 100644 index 0000000..b16428b --- /dev/null +++ b/examples/gpt_5_project/generated_agents/b9370252-7e41-44d8-bd3b-8e710200152f/runagent.config.json @@ -0,0 +1,34 @@ +{ + "agent_name": "LlamaIndexMathSolver", + "description": "A math solver agent built on LlamaIndex that performs symbolic and numeric problem solving, shows step-by-step solutions, and retrieves relevant math references from indexed documents. It supports parsing problem statements, executing computations, and returning clear, verifiable derivations and final answers.", + "framework": "llamaindex", + "template": "custom", + "version": "1.0.0", + "created_at": "2025-08-07 23:27:55", + "agent_architecture": { + "entrypoints": [ + { + "file": "agent.py", + "module": "agent_run", + "tag": "main" + }, + { + "file": "agent.py", + "module": "agent_run_stream", + "tag": "main_stream" + } + ] + }, + "input_fields": [ + "problem_statement", + "preferred_solution_format", + "precision_or_tolerance", + "show_steps", + "context_documents" + ], + "template_source": { + "repo_url": "https://github.com/runagent-dev/runagent.git", + "path": "generated/custom", + "author": "runagent-generator" + } +} \ No newline at end of file diff --git a/examples/gpt_5_project/generated_agents/c4ace43b-653a-4643-8669-7aa70029914a/agent.py b/examples/gpt_5_project/generated_agents/c4ace43b-653a-4643-8669-7aa70029914a/agent.py new file mode 100644 index 0000000..ad80319 --- /dev/null +++ b/examples/gpt_5_project/generated_agents/c4ace43b-653a-4643-8669-7aa70029914a/agent.py @@ -0,0 +1,47 @@ +from llama_index.llms.openai import OpenAI +from llama_index.core.agent.workflow import FunctionAgent + +# Initialize LLM +llm = OpenAI(model="gpt-4o-mini", temperature=0.3) + +# Create the agent +agent = FunctionAgent( + tools=[], # Add tools as needed + llm=llm, + system_prompt="A math solver that uses LlamaIndex to retrieve relevant math explanations, worked examples, and reference notes from a curated document store, then composes step-by-step solutions for user-provided problems. It can handle algebra, calculus, and basic applied math by combining retrieved knowledge with on-the-fly symbolic reasoning. Focus on: Retrieve relevant math content from indexed documents and generate clear, step-by-step solutions to user-submitted math problems." +) + +async def agent_run(*input_args, **input_kwargs): + """Main agent function""" + + # Extract input from various sources + user_input = "" + for field in ['math_problem_text', 'preferred_solution_style', 'desired_detail_level', 'reference_documents_ids', 'output_format']: + if input_kwargs.get(field): + user_input = str(input_kwargs[field]) + break + + if not user_input and input_args: + user_input = str(input_args[0]) + + if not user_input: + user_input = "Hello, how can I help you?" + + response = await agent.run(user_input) + return response + +async def agent_run_stream(*input_args, **input_kwargs): + """Streaming agent function""" + + user_input = "" + for field in ['math_problem_text', 'preferred_solution_style', 'desired_detail_level', 'reference_documents_ids', 'output_format']: + if input_kwargs.get(field): + user_input = str(input_kwargs[field]) + break + + if not user_input and input_args: + user_input = str(input_args[0]) + + handler = agent.run(user_msg=user_input) + async for event in handler.stream_events(): + yield event diff --git a/examples/gpt_5_project/generated_agents/c4ace43b-653a-4643-8669-7aa70029914a/requirements.txt b/examples/gpt_5_project/generated_agents/c4ace43b-653a-4643-8669-7aa70029914a/requirements.txt new file mode 100644 index 0000000..1604f36 --- /dev/null +++ b/examples/gpt_5_project/generated_agents/c4ace43b-653a-4643-8669-7aa70029914a/requirements.txt @@ -0,0 +1 @@ +llama-index>=0.12.48 diff --git a/examples/gpt_5_project/generated_agents/c4ace43b-653a-4643-8669-7aa70029914a/runagent.config.json b/examples/gpt_5_project/generated_agents/c4ace43b-653a-4643-8669-7aa70029914a/runagent.config.json new file mode 100644 index 0000000..05c5308 --- /dev/null +++ b/examples/gpt_5_project/generated_agents/c4ace43b-653a-4643-8669-7aa70029914a/runagent.config.json @@ -0,0 +1,29 @@ +{ + "agent_name": "LlamaIndex Math Solver", + "description": "A math solver that uses LlamaIndex to retrieve relevant math explanations, worked examples, and reference notes from a curated document store, then composes step-by-step solutions for user-provided problems. It can handle algebra, calculus, and basic applied math by combining retrieved knowledge with on-the-fly symbolic reasoning.", + "framework": "llamaindex", + "template": "custom", + "version": "1.0.0", + "created_at": "2025-08-07 23:40:04", + "agent_architecture": { + "entrypoints": [ + { + "file": "agent.py", + "module": "agent_run", + "tag": "main" + }, + { + "file": "agent.py", + "module": "agent_run_stream", + "tag": "main_stream" + } + ] + }, + "input_fields": [ + "math_problem_text", + "preferred_solution_style", + "desired_detail_level", + "reference_documents_ids", + "output_format" + ] +} \ No newline at end of file diff --git a/examples/gpt_5_project/main.py b/examples/gpt_5_project/main.py index b2e69e6..a519a46 100644 --- a/examples/gpt_5_project/main.py +++ b/examples/gpt_5_project/main.py @@ -748,26 +748,15 @@ async def agent_run_stream(*input_args, **input_kwargs): with open(session_dir / "runagent.config.json", "w") as f: json.dump(config, f, indent=2) +# In your main.py, modify the start_runagent_server function: + def start_runagent_server(session_dir: str, session_id: str): """Start runagent server for the generated agent.""" try: print(f"🚀 Starting RunAgent server for session: {session_id}") - print(f"📁 Agent directory: {session_dir}") - # Check if runagent is available - try: - result = subprocess.run(["runagent", "--version"], capture_output=True, text=True, timeout=10) - print(f"RunAgent version: {result.stdout.strip()}") - except FileNotFoundError: - print("❌ RunAgent CLI not found! Installing...") - # Try to install runagent - subprocess.run(["pip", "install", "runagent"], check=True) - print("✅ RunAgent installed") - except Exception as e: - print(f"⚠️ RunAgent check failed: {e}") - - # Find an available port starting from 8080 + # Find available port import socket def find_free_port(start_port=8080): for port in range(start_port, start_port + 100): @@ -782,56 +771,24 @@ def find_free_port(start_port=8080): port = find_free_port() print(f"🔌 Using port: {port}") - # Debug: Check what files exist and their content - session_path = Path(session_dir) - print(f"📂 Checking generated files in {session_path}:") - - try: - if session_path.exists(): - for file_path in session_path.iterdir(): - print(f" 📄 {file_path.name}") - if file_path.name == "runagent.config.json": - try: - with open(file_path, 'r') as f: - config_content = json.load(f) - print(f" 📋 Config content preview:") - print(f" - agent_name: {config_content.get('agent_name')}") - print(f" - framework: {config_content.get('framework')}") - print(f" - template_source: {config_content.get('template_source', 'MISSING!')}") - - # Check if template_source is missing and fix it - if not config_content.get('template_source'): - print(" 🔧 Fixing missing template_source...") - config_content['template_source'] = { - "repo_url": "https://github.com/runagent-dev/runagent.git", - "path": "generated/custom", - "author": "runagent-generator" - } - # Write the fixed config back - with open(file_path, 'w') as f: - json.dump(config_content, f, indent=2) - print(" ✅ Fixed config file!") - - except Exception as e: - print(f" ❌ Error reading config: {e}") - else: - print(f" ❌ Directory {session_path} does not exist!") - except Exception as e: - print(f" ❌ Error checking files: {e}") - - # Install dependencies first + # Install dependencies print("📦 Installing agent dependencies...") try: result = subprocess.run(["pip", "install", "-r", "requirements.txt"], cwd=session_dir, capture_output=True, text=True, timeout=120) - if result.returncode != 0: - print(f"⚠️ Dependency installation warning: {result.stderr}") - else: + if result.returncode == 0: print("✅ Dependencies installed successfully") + else: + print(f"⚠️ Dependency installation warning: {result.stderr}") except Exception as e: print(f"⚠️ Dependency installation failed: {e}") - # Start runagent serve process + # Set up environment to bypass database issues + env = os.environ.copy() + env['RUNAGENT_DISABLE_DB'] = 'true' + env['RUNAGENT_LOG_LEVEL'] = 'INFO' + + # Start RunAgent server with simple command cmd = ["runagent", "serve", ".", "--host", "0.0.0.0", "--port", str(port)] print(f"🔧 Running command: {' '.join(cmd)}") @@ -841,48 +798,37 @@ def find_free_port(start_port=8080): cmd, cwd=session_dir, stdout=subprocess.PIPE, - stderr=subprocess.STDOUT, # Combine stderr with stdout + stderr=subprocess.STDOUT, text=True, bufsize=1, - universal_newlines=True + universal_newlines=True, + env=env ) - # Wait for server to start and extract agent info - agent_id = None + # Wait for server to start + agent_id = str(uuid.uuid4()) start_time = time.time() - timeout = 60 # 60 seconds timeout + timeout = 60 print("📡 Waiting for RunAgent server to start...") + server_started = False while time.time() - start_time < timeout: - # Check if process is still running if process.poll() is not None: stdout, stderr = process.communicate() - print(f"❌ RunAgent process exited early (exit code: {process.returncode}):") + print(f"❌ RunAgent process exited early:") print(f"OUTPUT: {stdout}") break - # Read output line by line try: line = process.stdout.readline() if line: print(f"RunAgent: {line.strip()}") - # Look for agent ID in output - improved detection - if any(keyword in line.lower() for keyword in ["agent_id", "agent id", "agent-id"]): - import re - # Look for UUID pattern - match = re.search(r'([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})', line) - if match: - agent_id = match.group(1) - print(f"✅ Found Agent ID: {agent_id}") - break - - # Look for server startup confirmation + # Look for server startup indicators if any(keyword in line.lower() for keyword in ["server running", "uvicorn running", "started server", "listening on"]): - if not agent_id: - agent_id = str(uuid.uuid4()) - print(f"🆔 Generated Agent ID: {agent_id}") + server_started = True + print(f"✅ Server startup detected!") break except Exception as e: @@ -891,23 +837,23 @@ def find_free_port(start_port=8080): time.sleep(0.5) - if not agent_id: - # If we couldn't get an agent ID, generate one and assume it started - agent_id = str(uuid.uuid4()) - print(f"⚠️ Using generated Agent ID: {agent_id}") - - # Test if server is responding - try: - import requests - test_url = f"http://localhost:{port}/health" - response = requests.get(test_url, timeout=5) - print(f"✅ Server health check: {response.status_code}") - except Exception as e: - print(f"⚠️ Health check failed: {e}") + # Test server health + if server_started: + for attempt in range(5): + try: + import requests + test_url = f"http://localhost:{port}/health" + response = requests.get(test_url, timeout=5) + if response.status_code == 200: + print(f"✅ Server health check passed!") + break + except Exception as e: + print(f"⚠️ Health check attempt {attempt + 1} failed: {e}") + time.sleep(2) agent_url = f"http://localhost:8000/static/agent.html?agent={agent_id}" - # Store the running agent info + # Store running agent info running_agents[session_id] = { "process": process, "agent_id": agent_id, diff --git a/examples/gpt_5_project/static/agent.html b/examples/gpt_5_project/static/agent.html index 60982fb..837d168 100644 --- a/examples/gpt_5_project/static/agent.html +++ b/examples/gpt_5_project/static/agent.html @@ -178,6 +178,16 @@ transform: translateY(-1px); } + .btn-test { + background: #17a2b8; + color: white; + } + + .btn-test:hover { + background: #138496; + transform: translateY(-1px); + } + .output-header { display: flex; justify-content: space-between; @@ -258,6 +268,18 @@ background: #f8fbff; } + .output.error { + border-left: 3px solid #dc3545; + background: #f8d7da; + color: #721c24; + } + + .output.success { + border-left: 3px solid #28a745; + background: #d4edda; + color: #155724; + } + .execution-mode { display: flex; gap: 10px; @@ -371,7 +393,7 @@

Loading Agent...

Agent ID: -
Framework: -
-
Session: -
+
RunAgent Port: -
Connecting @@ -404,6 +426,9 @@

📝 Input Fields

+ @@ -432,6 +457,8 @@

📤 Agent Response

Configure the input fields and click "Run Agent" to get started. Your agent will process the input and provide intelligent responses based on its capabilities. + +🔍 Click "Test Connection" to verify RunAgent server is running.
@@ -447,6 +474,7 @@

📤 Agent Response

let isProcessing = false; let agentInfo = null; let agentId = null; + let runagentUrl = null; // Get agent ID from URL const urlParams = new URLSearchParams(window.location.search); @@ -469,20 +497,31 @@

📤 Agent Response

async function initializePage() { try { - // Fetch agent information + // Fetch agent information from GPT-5 generator const response = await fetch(`http://localhost:8000/agent/${agentId}`); if (response.ok) { const data = await response.json(); agentInfo = data.agent_info; + runagentUrl = agentInfo.runagent_url || `http://localhost:${agentInfo.port}`; + + console.log('Agent Info:', agentInfo); + console.log('RunAgent URL:', runagentUrl); // Update UI with agent info updateAgentInfo(data); generateInputFields(agentInfo.input_fields); generateExamples(agentInfo); - document.getElementById('statusBadge').innerHTML = '✅ Ready'; - document.getElementById('statusBadge').style.background = '#28a745'; + // Test connection immediately + const connected = await testConnection(false); + if (connected) { + document.getElementById('statusBadge').innerHTML = '✅ Ready'; + document.getElementById('statusBadge').style.background = '#28a745'; + } else { + document.getElementById('statusBadge').innerHTML = '❌ Server Down'; + document.getElementById('statusBadge').style.background = '#dc3545'; + } } else { throw new Error('Agent not found'); } @@ -496,13 +535,16 @@

📤 Agent Response

function useDemoData() { // Demo agent info for development agentInfo = { - agent_name: 'Weather Agent', - description: 'A helpful weather assistant that provides weather information for any city.', - framework: 'langgraph', - main_functionality: 'Weather forecasting and climate information', - input_fields: ['city', 'country', 'query'] + agent_name: 'Math Agent', + description: 'A helpful math assistant that solves mathematical problems.', + framework: 'llamaindex', + main_functionality: 'Mathematical calculations and problem solving', + input_fields: ['problem_text', 'desired_level_of_detail'], + port: 8080 }; + runagentUrl = `http://localhost:${agentInfo.port}`; + updateAgentInfo({ agent_info: agentInfo, session_id: 'demo-session', @@ -522,7 +564,7 @@

📤 Agent Response

document.getElementById('agentName').textContent = info.agent_name; document.getElementById('agentDescription').textContent = info.description; document.getElementById('framework').textContent = info.framework.toUpperCase(); - document.getElementById('sessionId').textContent = data.session_id.substring(0, 8) + '...'; + document.getElementById('runagentPort').textContent = info.port || '8080'; // Update page title document.title = `${info.agent_name} - Agent Interface`; @@ -541,7 +583,11 @@

📤 Agent Response

label.setAttribute('for', field); let input; - if (field.toLowerCase().includes('query') || field.toLowerCase().includes('message') || field.toLowerCase().includes('description')) { + if (field.toLowerCase().includes('query') || + field.toLowerCase().includes('message') || + field.toLowerCase().includes('description') || + field.toLowerCase().includes('text') || + field.toLowerCase().includes('problem')) { input = document.createElement('textarea'); input.className = 'form-control'; input.rows = 3; @@ -569,8 +615,8 @@

📤 Agent Response

function getPlaceholder(field) { const placeholders = { - 'city': 'Enter city name (e.g., London)', - 'country': 'Enter country (e.g., UK)', + 'problem_text': 'Enter your math problem (e.g., what is 2+2?)', + 'desired_level_of_detail': 'Enter desired level of detail', 'query': 'What would you like to know?', 'message': 'Enter your message here...', 'topic': 'Enter topic of interest', @@ -606,37 +652,15 @@

📤 Agent Response

function getExamplesForAgent(info) { const agentType = info.main_functionality.toLowerCase(); - if (agentType.includes('weather')) { - return [ - { - description: 'Get weather for London, UK', - values: { city: 'London', country: 'UK', query: 'What is the current weather?' } - }, - { - description: 'Weekly forecast for Tokyo', - values: { city: 'Tokyo', country: 'Japan', query: 'Show me the 7-day weather forecast' } - } - ]; - } else if (agentType.includes('research')) { - return [ - { - description: 'Research AI trends', - values: { query: 'Research the latest trends in artificial intelligence for 2024' } - }, - { - description: 'Summarize recent developments', - values: { query: 'Summarize recent developments in renewable energy technology' } - } - ]; - } else if (agentType.includes('math')) { + if (agentType.includes('math')) { return [ { description: 'Calculate complex equation', - values: { query: 'What is the derivative of x^3 + 2x^2 - 5x + 3?' } + values: { problem_text: 'What is the derivative of x^3 + 2x^2 - 5x + 3?' } }, { description: 'Solve word problem', - values: { query: 'If a train travels 120 miles in 2 hours, what is its average speed?' } + values: { problem_text: 'If a train travels 120 miles in 2 hours, what is its average speed?' } } ]; } else { @@ -685,6 +709,43 @@

📤 Agent Response

return values; } + async function testConnection(showAlert = true) { + if (!runagentUrl) { + if (showAlert) alert('❌ No RunAgent URL configured'); + return false; + } + + try { + console.log('🔍 Testing connection to:', runagentUrl); + + // Test health endpoint + const healthResponse = await fetch(`${runagentUrl}/health`, { + method: 'GET', + timeout: 5000 + }); + + if (healthResponse.ok) { + const healthData = await healthResponse.text(); + console.log('✅ Health check passed:', healthData); + + if (showAlert) { + alert('✅ RunAgent server is reachable!\n\nHealth check passed successfully.'); + } + return true; + } else { + throw new Error(`Health check failed: ${healthResponse.status}`); + } + + } catch (error) { + console.error('❌ Connection test failed:', error); + + if (showAlert) { + alert(`❌ Cannot reach RunAgent server: ${error.message}\n\nURL: ${runagentUrl}\n\nMake sure the server is running.`); + } + return false; + } + } + async function runAgent() { if (isProcessing) return; @@ -695,6 +756,11 @@

📤 Agent Response

return; } + if (!runagentUrl) { + alert('❌ RunAgent server URL not configured'); + return; + } + isProcessing = true; const runButton = document.getElementById('runButton'); const runButtonText = document.getElementById('runButtonText'); @@ -711,7 +777,7 @@

📤 Agent Response

output.textContent = ''; } else { output.className = 'output'; - output.textContent = 'Processing your request...'; + output.textContent = 'Connecting to RunAgent server...'; } try { @@ -722,7 +788,7 @@

📤 Agent Response

} } catch (error) { output.textContent = `❌ Error: ${error.message}`; - output.className = 'output'; + output.className = 'output error'; } finally { isProcessing = false; runButton.disabled = false; @@ -732,109 +798,120 @@

📤 Agent Response

} async function runStandardAgent(inputValues) { - // For demo purposes, simulate agent execution const output = document.getElementById('output'); - // Simulate processing delay - await new Promise(resolve => setTimeout(resolve, 2000)); - - // Generate mock response based on agent type - let response = generateMockResponse(agentInfo, inputValues); - - output.textContent = response; - output.className = 'output'; - } + try { + console.log('🔗 Connecting to RunAgent server:', runagentUrl); + console.log('📝 Sending input:', inputValues); + + output.textContent = 'Sending request to agent...'; + + // Make actual API call to RunAgent server + const response = await fetch(`${runagentUrl}/agents/main/run`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(inputValues) + }); - async function runStreamingAgent(inputValues) { - const output = document.getElementById('output'); - - // Generate mock streaming response - const response = generateMockResponse(agentInfo, inputValues); - const words = response.split(' '); - - for (let i = 0; i < words.length; i++) { - await new Promise(resolve => setTimeout(resolve, 100)); - output.textContent += words[i] + ' '; - output.scrollTop = output.scrollHeight; - } - } + if (!response.ok) { + const errorText = await response.text(); + throw new Error(`Server responded with ${response.status}: ${errorText}`); + } - function generateMockResponse(info, inputs) { - const agentName = info.agent_name; - const functionality = info.main_functionality; - - if (functionality.toLowerCase().includes('weather')) { - const city = inputs.city || 'Unknown City'; - const country = inputs.country || 'Unknown Country'; - return `🌤️ Weather Report for ${city}, ${country} - -Current Conditions: -• Temperature: 22°C (72°F) -• Conditions: Partly cloudy -• Humidity: 65% -• Wind: 15 km/h NW -• Pressure: 1013 hPa - -7-Day Forecast: -📅 Today: Partly cloudy, High 24°C, Low 16°C -📅 Tomorrow: Sunny, High 26°C, Low 18°C -📅 Wed: Light rain, High 20°C, Low 14°C -📅 Thu: Cloudy, High 19°C, Low 13°C -📅 Fri: Sunny, High 25°C, Low 17°C -📅 Sat: Partly cloudy, High 23°C, Low 16°C -📅 Sun: Thunderstorms, High 21°C, Low 15°C - -🌡️ Weather data provided by ${agentName}`; - } else if (functionality.toLowerCase().includes('research')) { - return `📚 Research Summary - -I've analyzed your query: "${inputs.query || inputs.message || 'research request'}" - -Key Findings: -• Trend 1: Increasing adoption of AI technologies across industries -• Trend 2: Focus on ethical AI development and responsible deployment -• Trend 3: Integration of AI with traditional business processes - -Recommendations: -1. Stay updated with latest developments -2. Consider practical applications for your use case -3. Evaluate potential risks and benefits - -Sources analyzed: 15 academic papers, 8 industry reports, 12 news articles - -📊 Research completed by ${agentName}`; - } else if (functionality.toLowerCase().includes('math')) { - return `🔢 Mathematical Analysis - -Problem: ${inputs.query || inputs.message || 'mathematical query'} - -Solution: -Step 1: Identify the mathematical operation required -Step 2: Apply appropriate formulas and methods -Step 3: Calculate the result with precision - -Result: 42 (The answer to everything! 😉) - -Explanation: -This is a demonstration response from your math agent. -In a real implementation, this would show actual calculations, -step-by-step solutions, and detailed mathematical explanations. - -✅ Calculation completed by ${agentName}`; - } else { - return `🤖 ${agentName} Response + const result = await response.json(); + console.log('✅ Real agent response:', result); + + // Display the REAL response from your agent + if (typeof result === 'string') { + output.textContent = result; + } else if (result.content) { + output.textContent = result.content; + } else if (result.result) { + output.textContent = result.result; + } else { + output.textContent = JSON.stringify(result, null, 2); + } + + output.className = 'output success'; + + } catch (error) { + console.error('❌ RunAgent connection failed:', error); + + output.textContent = `❌ Failed to connect to RunAgent server: ${error.message} -Thank you for your input! I've processed your request: +🔧 Debug Info: +- Agent ID: ${agentId} +- RunAgent URL: ${runagentUrl} +- Input sent: ${JSON.stringify(inputValues, null, 2)} -Input received: -${Object.entries(inputs).map(([key, value]) => `• ${formatFieldName(key)}: ${value}`).join('\n')} +💡 Check: +1. Is RunAgent server running? +2. Is the port correct? +3. Are there any CORS issues? -Analysis: -Based on my capabilities focused on "${functionality}", I can help you with various tasks related to this domain. +🔍 Check browser console for more details.`; + output.className = 'output error'; + } + } + + async function runStreamingAgent(inputValues) { + const output = document.getElementById('output'); + + try { + console.log('🌊 Starting stream to:', runagentUrl); + + output.textContent = 'Starting stream...'; + output.className = 'output streaming'; + + // Use fetch with streaming for RunAgent + const response = await fetch(`${runagentUrl}/agents/main/stream`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(inputValues) + }); -This is a demonstration response showing how your agent would process and respond to user inputs. In a real deployment, this would connect to your actual RunAgent server and provide genuine AI-powered responses. + if (!response.ok) { + throw new Error(`Stream failed: ${response.status}`); + } -🚀 Powered by ${agentName} | Framework: ${info.framework.toUpperCase()}`; + const reader = response.body.getReader(); + const decoder = new TextDecoder(); + + output.textContent = ''; + + while (true) { + const { done, value } = await reader.read(); + + if (done) { + output.textContent += '\n\n✅ Stream completed'; + break; + } + + const chunk = decoder.decode(value); + const lines = chunk.split('\n'); + + for (const line of lines) { + if (line.startsWith('data: ')) { + try { + const data = JSON.parse(line.slice(6)); + const content = data.content || data.delta || data.chunk || JSON.stringify(data); + output.textContent += content; + output.scrollTop = output.scrollHeight; + } catch (e) { + // Skip malformed JSON + } + } + } + } + + } catch (error) { + console.error('❌ Streaming failed:', error); + output.textContent = `❌ Streaming failed: ${error.message}`; + output.className = 'output error'; } } From b756fd723e744a80cc66d711317240575fb24aac Mon Sep 17 00:00:00 2001 From: RadeenXALNW Date: Fri, 8 Aug 2025 10:45:56 +0000 Subject: [PATCH 03/16] fixed mermaid diagram --- .../agent.py | 47 -- .../requirements.txt | 1 - .../runagent.config.json | 34 -- .../agent.py | 69 --- .../requirements.txt | 1 - .../agent.py | 66 -- .../requirements.txt | 1 - .../runagent.config.json | 34 -- .../agent.py | 47 -- .../requirements.txt | 1 - .../runagent.config.json | 34 -- .../agent.py | 47 -- .../requirements.txt | 1 - .../runagent.config.json | 34 -- .../agent.py | 47 -- .../requirements.txt | 1 - .../runagent.config.json | 29 - examples/gpt_5_project/main.py | 567 ++++++++++++------ examples/gpt_5_project/static/agent.html | 510 ++++++++-------- examples/gpt_5_project/static/index.html | 92 ++- 20 files changed, 694 insertions(+), 969 deletions(-) delete mode 100644 examples/gpt_5_project/generated_agents/2a248d1c-c4ca-4126-912b-35c8f39b05b2/agent.py delete mode 100644 examples/gpt_5_project/generated_agents/2a248d1c-c4ca-4126-912b-35c8f39b05b2/requirements.txt delete mode 100644 examples/gpt_5_project/generated_agents/2a248d1c-c4ca-4126-912b-35c8f39b05b2/runagent.config.json delete mode 100644 examples/gpt_5_project/generated_agents/502ec429-36f7-400e-a3b2-e78c9cea584b/agent.py delete mode 100644 examples/gpt_5_project/generated_agents/502ec429-36f7-400e-a3b2-e78c9cea584b/requirements.txt delete mode 100644 examples/gpt_5_project/generated_agents/8df815f9-a0e5-4392-ae20-105ceae3ae26/agent.py delete mode 100644 examples/gpt_5_project/generated_agents/8df815f9-a0e5-4392-ae20-105ceae3ae26/requirements.txt delete mode 100644 examples/gpt_5_project/generated_agents/8df815f9-a0e5-4392-ae20-105ceae3ae26/runagent.config.json delete mode 100644 examples/gpt_5_project/generated_agents/a4ba4a9f-52bf-45ca-b794-01728e1deb25/agent.py delete mode 100644 examples/gpt_5_project/generated_agents/a4ba4a9f-52bf-45ca-b794-01728e1deb25/requirements.txt delete mode 100644 examples/gpt_5_project/generated_agents/a4ba4a9f-52bf-45ca-b794-01728e1deb25/runagent.config.json delete mode 100644 examples/gpt_5_project/generated_agents/b9370252-7e41-44d8-bd3b-8e710200152f/agent.py delete mode 100644 examples/gpt_5_project/generated_agents/b9370252-7e41-44d8-bd3b-8e710200152f/requirements.txt delete mode 100644 examples/gpt_5_project/generated_agents/b9370252-7e41-44d8-bd3b-8e710200152f/runagent.config.json delete mode 100644 examples/gpt_5_project/generated_agents/c4ace43b-653a-4643-8669-7aa70029914a/agent.py delete mode 100644 examples/gpt_5_project/generated_agents/c4ace43b-653a-4643-8669-7aa70029914a/requirements.txt delete mode 100644 examples/gpt_5_project/generated_agents/c4ace43b-653a-4643-8669-7aa70029914a/runagent.config.json diff --git a/examples/gpt_5_project/generated_agents/2a248d1c-c4ca-4126-912b-35c8f39b05b2/agent.py b/examples/gpt_5_project/generated_agents/2a248d1c-c4ca-4126-912b-35c8f39b05b2/agent.py deleted file mode 100644 index b8e1709..0000000 --- a/examples/gpt_5_project/generated_agents/2a248d1c-c4ca-4126-912b-35c8f39b05b2/agent.py +++ /dev/null @@ -1,47 +0,0 @@ -from llama_index.llms.openai import OpenAI -from llama_index.core.agent.workflow import FunctionAgent - -# Initialize LLM -llm = OpenAI(model="gpt-4o-mini", temperature=0.3) - -# Create the agent -agent = FunctionAgent( - tools=[], # Add tools as needed - llm=llm, - system_prompt="An AI agent that solves math problems by retrieving relevant documents and worked examples from a knowledge base using LlamaIndex, then applying symbolic/math reasoning to produce step-by-step solutions. It supports numeric computations, algebraic manipulations, and explanations with citations to source documents. Focus on: Retrieve math-related documents/examples and generate step-by-step solutions and explanations for user-provided math problems." -) - -async def agent_run(*input_args, **input_kwargs): - """Main agent function""" - - # Extract input from various sources - user_input = "" - for field in ['problem_statement', 'preferred_solution_format', 'allowed_tools', 'reference_documents (optional)', 'precision_or_rounding (optional)']: - if input_kwargs.get(field): - user_input = str(input_kwargs[field]) - break - - if not user_input and input_args: - user_input = str(input_args[0]) - - if not user_input: - user_input = "Hello, how can I help you?" - - response = await agent.run(user_input) - return response - -async def agent_run_stream(*input_args, **input_kwargs): - """Streaming agent function""" - - user_input = "" - for field in ['problem_statement', 'preferred_solution_format', 'allowed_tools', 'reference_documents (optional)', 'precision_or_rounding (optional)']: - if input_kwargs.get(field): - user_input = str(input_kwargs[field]) - break - - if not user_input and input_args: - user_input = str(input_args[0]) - - handler = agent.run(user_msg=user_input) - async for event in handler.stream_events(): - yield event diff --git a/examples/gpt_5_project/generated_agents/2a248d1c-c4ca-4126-912b-35c8f39b05b2/requirements.txt b/examples/gpt_5_project/generated_agents/2a248d1c-c4ca-4126-912b-35c8f39b05b2/requirements.txt deleted file mode 100644 index 1604f36..0000000 --- a/examples/gpt_5_project/generated_agents/2a248d1c-c4ca-4126-912b-35c8f39b05b2/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -llama-index>=0.12.48 diff --git a/examples/gpt_5_project/generated_agents/2a248d1c-c4ca-4126-912b-35c8f39b05b2/runagent.config.json b/examples/gpt_5_project/generated_agents/2a248d1c-c4ca-4126-912b-35c8f39b05b2/runagent.config.json deleted file mode 100644 index 1ea44e0..0000000 --- a/examples/gpt_5_project/generated_agents/2a248d1c-c4ca-4126-912b-35c8f39b05b2/runagent.config.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "agent_name": "LlamaIndex Math Solver", - "description": "An AI agent that solves math problems by retrieving relevant documents and worked examples from a knowledge base using LlamaIndex, then applying symbolic/math reasoning to produce step-by-step solutions. It supports numeric computations, algebraic manipulations, and explanations with citations to source documents.", - "framework": "llamaindex", - "template": "custom", - "version": "1.0.0", - "created_at": "2025-08-07 23:27:04", - "agent_architecture": { - "entrypoints": [ - { - "file": "agent.py", - "module": "agent_run", - "tag": "main" - }, - { - "file": "agent.py", - "module": "agent_run_stream", - "tag": "main_stream" - } - ] - }, - "input_fields": [ - "problem_statement", - "preferred_solution_format", - "allowed_tools", - "reference_documents (optional)", - "precision_or_rounding (optional)" - ], - "template_source": { - "repo_url": "https://github.com/runagent-dev/runagent.git", - "path": "generated/custom", - "author": "runagent-generator" - } -} \ No newline at end of file diff --git a/examples/gpt_5_project/generated_agents/502ec429-36f7-400e-a3b2-e78c9cea584b/agent.py b/examples/gpt_5_project/generated_agents/502ec429-36f7-400e-a3b2-e78c9cea584b/agent.py deleted file mode 100644 index bab2a8d..0000000 --- a/examples/gpt_5_project/generated_agents/502ec429-36f7-400e-a3b2-e78c9cea584b/agent.py +++ /dev/null @@ -1,69 +0,0 @@ -from functools import partial -from agno.agent import Agent -from agno.models.openai import OpenAIChat - -agent = Agent( - model=OpenAIChat(id="gpt-4o-mini"), - description="A content writer agent that generates blog posts, articles, and marketing copy based on user-provided topics, tone, and length. It produces structured drafts with headings, introductions, conclusions, and optional SEO suggestions.", - instructions="Focus on: Generate polished, topic-focused written content and provide basic SEO and formatting recommendations.", - markdown=True -) - -def agent_run(*input_args, **input_kwargs): - """Main agent function""" - - # Extract input from various sources - prompt = "" - for field in ['topic', 'audience', 'tone', 'word_count', 'keywords', 'content_type', 'call_to_action', 'additional_requirements']: - if input_kwargs.get(field): - prompt = str(input_kwargs[field]) - break - - if not prompt and input_args: - prompt = str(input_args[0]) - - if not prompt: - prompt = "Hello, how can I help you?" - - # Add context about the agent's purpose - full_prompt = f""" - A content writer agent that generates blog posts, articles, and marketing copy based on user-provided topics, tone, and length. It produces structured drafts with headings, introductions, conclusions, and optional SEO suggestions. - - User request: {prompt} - - Please provide a helpful response focused on: Generate polished, topic-focused written content and provide basic SEO and formatting recommendations. - """ - - response = agent.run(full_prompt) - - return { - "content": response.content if hasattr(response, 'content') else str(response), - } - -def agent_run_stream(*input_args, **input_kwargs): - """Streaming agent function""" - - prompt = "" - for field in ['topic', 'audience', 'tone', 'word_count', 'keywords', 'content_type', 'call_to_action', 'additional_requirements']: - if input_kwargs.get(field): - prompt = str(input_kwargs[field]) - break - - if not prompt and input_args: - prompt = str(input_args[0]) - - full_prompt = f""" - A content writer agent that generates blog posts, articles, and marketing copy based on user-provided topics, tone, and length. It produces structured drafts with headings, introductions, conclusions, and optional SEO suggestions. - - User request: {prompt} - - Please provide a helpful response focused on: Generate polished, topic-focused written content and provide basic SEO and formatting recommendations. - """ - - for chunk in agent.run(full_prompt, stream=True): - yield { - "content": chunk.content if hasattr(chunk, 'content') else str(chunk) - } - -# Keep original functions for backward compatibility -agent_run_stream = partial(agent.run, stream=True) diff --git a/examples/gpt_5_project/generated_agents/502ec429-36f7-400e-a3b2-e78c9cea584b/requirements.txt b/examples/gpt_5_project/generated_agents/502ec429-36f7-400e-a3b2-e78c9cea584b/requirements.txt deleted file mode 100644 index ac7f474..0000000 --- a/examples/gpt_5_project/generated_agents/502ec429-36f7-400e-a3b2-e78c9cea584b/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -agno>=1.7.2 diff --git a/examples/gpt_5_project/generated_agents/8df815f9-a0e5-4392-ae20-105ceae3ae26/agent.py b/examples/gpt_5_project/generated_agents/8df815f9-a0e5-4392-ae20-105ceae3ae26/agent.py deleted file mode 100644 index f49eb8d..0000000 --- a/examples/gpt_5_project/generated_agents/8df815f9-a0e5-4392-ae20-105ceae3ae26/agent.py +++ /dev/null @@ -1,66 +0,0 @@ -from llama_index.llms.openai import OpenAI -from llama_index.core.agent.workflow import FunctionAgent - -# Initialize LLM -llm = OpenAI(model="gpt-4o-mini", temperature=0.3) - -# Define calculation tools -def add_numbers(a: float, b: float) -> float: - """Add two numbers together.""" - return a + b - -def subtract_numbers(a: float, b: float) -> float: - """Subtract second number from first number.""" - return a - b - -def multiply_numbers(a: float, b: float) -> float: - """Multiply two numbers together.""" - return a * b - -def divide_numbers(a: float, b: float) -> float: - """Divide first number by second number.""" - if b == 0: - return "Error: Cannot divide by zero" - return a / b - -# Create the agent with tools -agent = FunctionAgent( - tools=[add_numbers, subtract_numbers, multiply_numbers, divide_numbers], - llm=llm, - system_prompt="A math solver that uses LlamaIndex to parse problems, retrieve relevant knowledge or worked examples from a document corpus, and generate step-by-step solutions. It can handle algebra, calculus, and numeric problem solving while citing sources and applying retrieved examples to improve solution accuracy. Focus on: Parse math problems, retrieve relevant documents or examples via LlamaIndex, and produce step-by-step solutions with citations.. Use the available mathematical tools to solve problems accurately." -) - -async def agent_run(*input_args, **input_kwargs): - """Main agent function""" - - # Extract input from various sources - user_input = "" - for field in ['problem_text', 'desired_solution_format', 'supporting_documents (optional)', 'precision_or_tolerance (optional)', 'show_steps (boolean)']: - if input_kwargs.get(field): - user_input = str(input_kwargs[field]) - break - - if not user_input and input_args: - user_input = str(input_args[0]) - - if not user_input: - user_input = "Hello, how can I help you with math?" - - response = await agent.run(user_input) - return response - -async def agent_run_stream(*input_args, **input_kwargs): - """Streaming agent function""" - - user_input = "" - for field in ['problem_text', 'desired_solution_format', 'supporting_documents (optional)', 'precision_or_tolerance (optional)', 'show_steps (boolean)']: - if input_kwargs.get(field): - user_input = str(input_kwargs[field]) - break - - if not user_input and input_args: - user_input = str(input_args[0]) - - handler = agent.run(user_msg=user_input) - async for event in handler.stream_events(): - yield event diff --git a/examples/gpt_5_project/generated_agents/8df815f9-a0e5-4392-ae20-105ceae3ae26/requirements.txt b/examples/gpt_5_project/generated_agents/8df815f9-a0e5-4392-ae20-105ceae3ae26/requirements.txt deleted file mode 100644 index 1604f36..0000000 --- a/examples/gpt_5_project/generated_agents/8df815f9-a0e5-4392-ae20-105ceae3ae26/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -llama-index>=0.12.48 diff --git a/examples/gpt_5_project/generated_agents/8df815f9-a0e5-4392-ae20-105ceae3ae26/runagent.config.json b/examples/gpt_5_project/generated_agents/8df815f9-a0e5-4392-ae20-105ceae3ae26/runagent.config.json deleted file mode 100644 index 16347ef..0000000 --- a/examples/gpt_5_project/generated_agents/8df815f9-a0e5-4392-ae20-105ceae3ae26/runagent.config.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "agent_name": "LlamaIndexMathSolver", - "description": "A math solver that uses LlamaIndex to parse problems, retrieve relevant knowledge or worked examples from a document corpus, and generate step-by-step solutions. It can handle algebra, calculus, and numeric problem solving while citing sources and applying retrieved examples to improve solution accuracy.", - "framework": "llamaindex", - "template": "custom", - "version": "1.0.0", - "created_at": "2025-08-07 23:48:19", - "template_source": { - "repo_url": "https://github.com/runagent-dev/runagent.git", - "path": "generated/custom/llamaindex", - "author": "runagent-generator" - }, - "agent_architecture": { - "entrypoints": [ - { - "file": "agent.py", - "module": "agent_run", - "tag": "main" - }, - { - "file": "agent.py", - "module": "agent_run_stream", - "tag": "main_stream" - } - ] - }, - "input_fields": [ - "problem_text", - "desired_solution_format", - "supporting_documents (optional)", - "precision_or_tolerance (optional)", - "show_steps (boolean)" - ] -} \ No newline at end of file diff --git a/examples/gpt_5_project/generated_agents/a4ba4a9f-52bf-45ca-b794-01728e1deb25/agent.py b/examples/gpt_5_project/generated_agents/a4ba4a9f-52bf-45ca-b794-01728e1deb25/agent.py deleted file mode 100644 index 72761f4..0000000 --- a/examples/gpt_5_project/generated_agents/a4ba4a9f-52bf-45ca-b794-01728e1deb25/agent.py +++ /dev/null @@ -1,47 +0,0 @@ -from llama_index.llms.openai import OpenAI -from llama_index.core.agent.workflow import FunctionAgent - -# Initialize LLM -llm = OpenAI(model="gpt-4o-mini", temperature=0.3) - -# Create the agent -agent = FunctionAgent( - tools=[], # Add tools as needed - llm=llm, - system_prompt="A math problem solving agent that uses LlamaIndex to retrieve relevant mathematical resources, worked examples, and formula references to generate step-by-step solutions. It supports multiple problem types (algebra, calculus, geometry) and can cite source documents or examples used in reasoning. Focus on: Retrieve relevant documents/examples with LlamaIndex and produce step-by-step solutions and citations for math problems." -) - -async def agent_run(*input_args, **input_kwargs): - """Main agent function""" - - # Extract input from various sources - user_input = "" - for field in ['problem_text', 'problem_type', 'desired_detail_level', 'preferred_solution_format', 'reference_documents']: - if input_kwargs.get(field): - user_input = str(input_kwargs[field]) - break - - if not user_input and input_args: - user_input = str(input_args[0]) - - if not user_input: - user_input = "Hello, how can I help you?" - - response = await agent.run(user_input) - return response - -async def agent_run_stream(*input_args, **input_kwargs): - """Streaming agent function""" - - user_input = "" - for field in ['problem_text', 'problem_type', 'desired_detail_level', 'preferred_solution_format', 'reference_documents']: - if input_kwargs.get(field): - user_input = str(input_kwargs[field]) - break - - if not user_input and input_args: - user_input = str(input_args[0]) - - handler = agent.run(user_msg=user_input) - async for event in handler.stream_events(): - yield event diff --git a/examples/gpt_5_project/generated_agents/a4ba4a9f-52bf-45ca-b794-01728e1deb25/requirements.txt b/examples/gpt_5_project/generated_agents/a4ba4a9f-52bf-45ca-b794-01728e1deb25/requirements.txt deleted file mode 100644 index 1604f36..0000000 --- a/examples/gpt_5_project/generated_agents/a4ba4a9f-52bf-45ca-b794-01728e1deb25/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -llama-index>=0.12.48 diff --git a/examples/gpt_5_project/generated_agents/a4ba4a9f-52bf-45ca-b794-01728e1deb25/runagent.config.json b/examples/gpt_5_project/generated_agents/a4ba4a9f-52bf-45ca-b794-01728e1deb25/runagent.config.json deleted file mode 100644 index 85b30a1..0000000 --- a/examples/gpt_5_project/generated_agents/a4ba4a9f-52bf-45ca-b794-01728e1deb25/runagent.config.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "agent_name": "LlamaIndex Math Solver", - "description": "A math problem solving agent that uses LlamaIndex to retrieve relevant mathematical resources, worked examples, and formula references to generate step-by-step solutions. It supports multiple problem types (algebra, calculus, geometry) and can cite source documents or examples used in reasoning.", - "framework": "llamaindex", - "template": "custom", - "version": "1.0.0", - "created_at": "2025-08-07 23:33:10", - "agent_architecture": { - "entrypoints": [ - { - "file": "agent.py", - "module": "agent_run", - "tag": "main" - }, - { - "file": "agent.py", - "module": "agent_run_stream", - "tag": "main_stream" - } - ] - }, - "input_fields": [ - "problem_text", - "problem_type", - "desired_detail_level", - "preferred_solution_format", - "reference_documents" - ], - "template_source": { - "repo_url": "https://github.com/runagent-dev/runagent.git", - "path": "generated/custom", - "author": "runagent-generator" - } -} \ No newline at end of file diff --git a/examples/gpt_5_project/generated_agents/b9370252-7e41-44d8-bd3b-8e710200152f/agent.py b/examples/gpt_5_project/generated_agents/b9370252-7e41-44d8-bd3b-8e710200152f/agent.py deleted file mode 100644 index 7f04fce..0000000 --- a/examples/gpt_5_project/generated_agents/b9370252-7e41-44d8-bd3b-8e710200152f/agent.py +++ /dev/null @@ -1,47 +0,0 @@ -from llama_index.llms.openai import OpenAI -from llama_index.core.agent.workflow import FunctionAgent - -# Initialize LLM -llm = OpenAI(model="gpt-4o-mini", temperature=0.3) - -# Create the agent -agent = FunctionAgent( - tools=[], # Add tools as needed - llm=llm, - system_prompt="A math solver agent built on LlamaIndex that performs symbolic and numeric problem solving, shows step-by-step solutions, and retrieves relevant math references from indexed documents. It supports parsing problem statements, executing computations, and returning clear, verifiable derivations and final answers. Focus on: Parse math problems, perform symbolic and numeric computations, generate step-by-step solutions, and augment solving with retrieved math resources from a document index." -) - -async def agent_run(*input_args, **input_kwargs): - """Main agent function""" - - # Extract input from various sources - user_input = "" - for field in ['problem_statement', 'preferred_solution_format', 'precision_or_tolerance', 'show_steps', 'context_documents']: - if input_kwargs.get(field): - user_input = str(input_kwargs[field]) - break - - if not user_input and input_args: - user_input = str(input_args[0]) - - if not user_input: - user_input = "Hello, how can I help you?" - - response = await agent.run(user_input) - return response - -async def agent_run_stream(*input_args, **input_kwargs): - """Streaming agent function""" - - user_input = "" - for field in ['problem_statement', 'preferred_solution_format', 'precision_or_tolerance', 'show_steps', 'context_documents']: - if input_kwargs.get(field): - user_input = str(input_kwargs[field]) - break - - if not user_input and input_args: - user_input = str(input_args[0]) - - handler = agent.run(user_msg=user_input) - async for event in handler.stream_events(): - yield event diff --git a/examples/gpt_5_project/generated_agents/b9370252-7e41-44d8-bd3b-8e710200152f/requirements.txt b/examples/gpt_5_project/generated_agents/b9370252-7e41-44d8-bd3b-8e710200152f/requirements.txt deleted file mode 100644 index 1604f36..0000000 --- a/examples/gpt_5_project/generated_agents/b9370252-7e41-44d8-bd3b-8e710200152f/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -llama-index>=0.12.48 diff --git a/examples/gpt_5_project/generated_agents/b9370252-7e41-44d8-bd3b-8e710200152f/runagent.config.json b/examples/gpt_5_project/generated_agents/b9370252-7e41-44d8-bd3b-8e710200152f/runagent.config.json deleted file mode 100644 index b16428b..0000000 --- a/examples/gpt_5_project/generated_agents/b9370252-7e41-44d8-bd3b-8e710200152f/runagent.config.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "agent_name": "LlamaIndexMathSolver", - "description": "A math solver agent built on LlamaIndex that performs symbolic and numeric problem solving, shows step-by-step solutions, and retrieves relevant math references from indexed documents. It supports parsing problem statements, executing computations, and returning clear, verifiable derivations and final answers.", - "framework": "llamaindex", - "template": "custom", - "version": "1.0.0", - "created_at": "2025-08-07 23:27:55", - "agent_architecture": { - "entrypoints": [ - { - "file": "agent.py", - "module": "agent_run", - "tag": "main" - }, - { - "file": "agent.py", - "module": "agent_run_stream", - "tag": "main_stream" - } - ] - }, - "input_fields": [ - "problem_statement", - "preferred_solution_format", - "precision_or_tolerance", - "show_steps", - "context_documents" - ], - "template_source": { - "repo_url": "https://github.com/runagent-dev/runagent.git", - "path": "generated/custom", - "author": "runagent-generator" - } -} \ No newline at end of file diff --git a/examples/gpt_5_project/generated_agents/c4ace43b-653a-4643-8669-7aa70029914a/agent.py b/examples/gpt_5_project/generated_agents/c4ace43b-653a-4643-8669-7aa70029914a/agent.py deleted file mode 100644 index ad80319..0000000 --- a/examples/gpt_5_project/generated_agents/c4ace43b-653a-4643-8669-7aa70029914a/agent.py +++ /dev/null @@ -1,47 +0,0 @@ -from llama_index.llms.openai import OpenAI -from llama_index.core.agent.workflow import FunctionAgent - -# Initialize LLM -llm = OpenAI(model="gpt-4o-mini", temperature=0.3) - -# Create the agent -agent = FunctionAgent( - tools=[], # Add tools as needed - llm=llm, - system_prompt="A math solver that uses LlamaIndex to retrieve relevant math explanations, worked examples, and reference notes from a curated document store, then composes step-by-step solutions for user-provided problems. It can handle algebra, calculus, and basic applied math by combining retrieved knowledge with on-the-fly symbolic reasoning. Focus on: Retrieve relevant math content from indexed documents and generate clear, step-by-step solutions to user-submitted math problems." -) - -async def agent_run(*input_args, **input_kwargs): - """Main agent function""" - - # Extract input from various sources - user_input = "" - for field in ['math_problem_text', 'preferred_solution_style', 'desired_detail_level', 'reference_documents_ids', 'output_format']: - if input_kwargs.get(field): - user_input = str(input_kwargs[field]) - break - - if not user_input and input_args: - user_input = str(input_args[0]) - - if not user_input: - user_input = "Hello, how can I help you?" - - response = await agent.run(user_input) - return response - -async def agent_run_stream(*input_args, **input_kwargs): - """Streaming agent function""" - - user_input = "" - for field in ['math_problem_text', 'preferred_solution_style', 'desired_detail_level', 'reference_documents_ids', 'output_format']: - if input_kwargs.get(field): - user_input = str(input_kwargs[field]) - break - - if not user_input and input_args: - user_input = str(input_args[0]) - - handler = agent.run(user_msg=user_input) - async for event in handler.stream_events(): - yield event diff --git a/examples/gpt_5_project/generated_agents/c4ace43b-653a-4643-8669-7aa70029914a/requirements.txt b/examples/gpt_5_project/generated_agents/c4ace43b-653a-4643-8669-7aa70029914a/requirements.txt deleted file mode 100644 index 1604f36..0000000 --- a/examples/gpt_5_project/generated_agents/c4ace43b-653a-4643-8669-7aa70029914a/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -llama-index>=0.12.48 diff --git a/examples/gpt_5_project/generated_agents/c4ace43b-653a-4643-8669-7aa70029914a/runagent.config.json b/examples/gpt_5_project/generated_agents/c4ace43b-653a-4643-8669-7aa70029914a/runagent.config.json deleted file mode 100644 index 05c5308..0000000 --- a/examples/gpt_5_project/generated_agents/c4ace43b-653a-4643-8669-7aa70029914a/runagent.config.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "agent_name": "LlamaIndex Math Solver", - "description": "A math solver that uses LlamaIndex to retrieve relevant math explanations, worked examples, and reference notes from a curated document store, then composes step-by-step solutions for user-provided problems. It can handle algebra, calculus, and basic applied math by combining retrieved knowledge with on-the-fly symbolic reasoning.", - "framework": "llamaindex", - "template": "custom", - "version": "1.0.0", - "created_at": "2025-08-07 23:40:04", - "agent_architecture": { - "entrypoints": [ - { - "file": "agent.py", - "module": "agent_run", - "tag": "main" - }, - { - "file": "agent.py", - "module": "agent_run_stream", - "tag": "main_stream" - } - ] - }, - "input_fields": [ - "math_problem_text", - "preferred_solution_style", - "desired_detail_level", - "reference_documents_ids", - "output_format" - ] -} \ No newline at end of file diff --git a/examples/gpt_5_project/main.py b/examples/gpt_5_project/main.py index a519a46..4cb1ff4 100644 --- a/examples/gpt_5_project/main.py +++ b/examples/gpt_5_project/main.py @@ -157,72 +157,230 @@ def analyze_user_request(message: str) -> dict: } def generate_mermaid_diagram(agent_info: dict) -> str: - """Generate Mermaid diagram for the agent workflow.""" + """Generate dynamic Mermaid diagram using GPT-5 with improved validation.""" - # Instead of relying on GPT-5 (which is inconsistent), - # generate a reliable diagram based on the framework - framework = agent_info['framework'] - agent_name = agent_info['agent_name'].replace(' ', '') + prompt = f""" + Create a valid Mermaid flowchart diagram for an AI agent with these specifications: + + Agent Name: {agent_info['agent_name']} + Framework: {agent_info['framework']} + Description: {agent_info['description']} + Main Functionality: {agent_info['main_functionality']} + Input Fields: {agent_info['input_fields']} + + IMPORTANT REQUIREMENTS: + 1. Start with "graph TD" (Top Down layout) + 2. Use simple node IDs (A, B, C, etc.) + 3. Use only basic shapes: rectangles [text], diamonds {{text}}, and circles ((text)) + 4. Use only --> arrows + 5. Keep node text short (under 20 characters) + 6. Maximum 8-10 nodes total + 7. No special characters in node text except spaces and basic punctuation + + Create a workflow showing: + - Input processing (start with user input) + - Framework-specific processing steps for {agent_info['framework']} + - Main functionality: {agent_info['main_functionality']} + - Output generation + + EXAMPLE FORMAT: + graph TD + A[User Input] --> B[Parse Query] + B --> C[{agent_info['framework']} Processing] + C --> D[Generate Response] + D --> E[Return Result] + + Return ONLY the Mermaid code. No explanations, no markdown blocks, no extra text. + """ try: - if framework == "llamaindex": - return f"""graph TD - A[User Input] --> B[Parse Query] - B --> C[{agent_name}] - C --> D[LlamaIndex Processing] - D --> E[Retrieve Examples] - D --> F[Calculate Solution] - E --> G[Generate Explanation] - F --> G - G --> H[Return Result]""" + print("🎨 Generating Mermaid diagram with GPT-5...") - elif framework == "langgraph": - return f"""graph TD - A[User Input] --> B[{agent_name}] - B --> C[Problem Analysis] - C --> D[Solution Planning] - D --> E[Step Execution] - E --> F[Validation] - F --> G[Generate Response] - G --> H[Return Result]""" + # Use GPT-5 for dynamic diagram generation + response = openai_client.responses.create( + model="gpt-5-mini", + input=prompt, + reasoning={"effort": "minimal"} # Keep it simple + ) - elif framework == "letta": - return f"""graph TD - A[User Input] --> B[{agent_name}] - B --> C[Memory Retrieval] - C --> D[Context Processing] - D --> E[Tool Execution] - E --> F[Response Generation] - F --> G[Memory Update] - G --> H[Return Result]""" + # Extract the Mermaid code from GPT-5 response + mermaid_code = response.output[1].content[0].text.strip() - elif framework == "agno": - return f"""graph TD - A[User Input] --> B[{agent_name}] - B --> C[Request Analysis] - C --> D[Processing] - D --> E[Response Generation] - E --> F[Return Result]""" + print(f"🔍 Raw GPT-5 output: {mermaid_code}") + + # Clean up the response more thoroughly + mermaid_code = mermaid_code.replace('```mermaid', '').replace('```', '').strip() + + # Remove any leading/trailing whitespace from each line + lines = [line.strip() for line in mermaid_code.split('\n') if line.strip()] + mermaid_code = '\n '.join(lines) + + # Ensure it starts with a valid Mermaid declaration + if not mermaid_code.startswith(('graph TD', 'graph LR', 'flowchart TD', 'flowchart LR')): + mermaid_code = f"graph TD\n {mermaid_code}" + + # Basic validation - check for required elements + if '-->' not in mermaid_code: + raise Exception("Generated diagram missing arrows (-->)") + + # Validate node format - should have at least some nodes + import re + nodes = re.findall(r'[A-Z]\d*\[.*?\]', mermaid_code) + if len(nodes) < 2: + raise Exception(f"Generated diagram has too few nodes: {len(nodes)}") + + print(f"✅ Generated valid Mermaid diagram with {len(nodes)} nodes") + print(f"📋 Final Mermaid code:\n{mermaid_code}") + + return mermaid_code + + except Exception as e: + print(f"❌ Error generating Mermaid diagram: {e}") + +def validate_mermaid_syntax(mermaid_code: str) -> tuple[bool, str]: + """Validate Mermaid syntax before sending to frontend.""" + + try: + # Basic syntax checks + if not mermaid_code.strip(): + return False, "Empty diagram code" + + if not any(mermaid_code.startswith(prefix) for prefix in ['graph TD', 'graph LR', 'flowchart TD', 'flowchart LR']): + return False, "Missing graph declaration" + + if '-->' not in mermaid_code: + return False, "No arrows found in diagram" + + # Check for balanced brackets + open_brackets = mermaid_code.count('[') + mermaid_code.count('{') + mermaid_code.count('(') + close_brackets = mermaid_code.count(']') + mermaid_code.count('}') + mermaid_code.count(')') + + if open_brackets != close_brackets: + return False, f"Unbalanced brackets: {open_brackets} open, {close_brackets} close" + + # Check for valid node IDs + import re + node_pattern = r'[A-Z]\d*(?:\[.*?\]|\{.*?\}|\(.*?\))?' + nodes = re.findall(node_pattern, mermaid_code) + + if len(nodes) < 2: + return False, f"Too few nodes found: {len(nodes)}" + + return True, "Valid Mermaid syntax" - else: - return f"""graph TD - A[User Input] --> B[{agent_name}] - B --> C[Process Request] - C --> D[Generate Response] - D --> E[Return Result]""" - except Exception as e: - print(f"Error generating diagram: {e}") - # Fallback to ultra-simple diagram - return f"""graph TD - A[Input] --> B[{agent_name}] - B --> C[Output]""" + return False, f"Validation error: {str(e)}" + + +def generate_custom_framework_files(agent_info: dict, session_dir: Path): + """Generate custom framework files with proper required fields.""" + + agent_code = f'''""" +{agent_info['agent_name']} - {agent_info['description']} +Generated by RunAgent Generator - Custom Framework +""" +def main(*input_args, **input_kwargs): + """Main entry point for custom agent""" + + # Extract input from various sources + user_input = "" + for field in {agent_info['input_fields']}: + if input_kwargs.get(field): + user_input = str(input_kwargs[field]) + break + + if not user_input and input_args: + user_input = str(input_args[0]) + + if not user_input: + user_input = "Hello, how can I help you?" + + # Simple response for custom framework + response = f""" + Hello! I'm {agent_info['agent_name']}. + + {agent_info['description']} + + You asked: {{user_input}} + + My main functionality is: {agent_info['main_functionality']} + + This is a custom framework implementation. You can modify this code to add your specific logic. + """ + + return response + +def main_stream(*input_args, **input_kwargs): + """Streaming entry point for custom agent""" + + # Get the main response + response = main(*input_args, **input_kwargs) + + # Simulate streaming by yielding words + words = response.split() + for i, word in enumerate(words): + if i == 0: + yield word + else: + yield f" {{word}}" + + # Add small delay for demonstration + import time + time.sleep(0.01) +''' + + with open(session_dir / "agent.py", "w") as f: + f.write(agent_code) + + # Generate minimal requirements + with open(session_dir / "requirements.txt", "w") as f: + f.write("# No additional requirements for custom framework\n") + + # Generate config with ALL required fields + config = { + "agent_name": agent_info['agent_name'], + "description": agent_info['description'], + "framework": "custom", + "template": "custom", + "version": "1.0.0", + "created_at": time.strftime("%Y-%m-%d %H:%M:%S"), + "template_source": { + "repo_url": "https://github.com/runagent-dev/runagent.git", + "path": "templates/custom/basic", + "author": "runagent-generator", + "version": "1.0.0" + }, + "agent_architecture": { + "entrypoints": [ + { + "file": "agent.py", + "module": "main", + "tag": "main" + }, + { + "file": "agent.py", + "module": "main_stream", + "tag": "main_stream" + } + ] + }, + "input_fields": agent_info['input_fields'], + "env_vars": { + "OPENAI_API_KEY": "${OPENAI_API_KEY}" + } + } + + with open(session_dir / "runagent.config.json", "w") as f: + json.dump(config, f, indent=2) + + print(f"✅ Generated custom framework config with required fields") + def generate_agent_files(agent_info: dict, session_id: str) -> bool: """Generate agent files based on template and user requirements.""" framework = agent_info['framework'] - template_type = agent_info['template_type'] + template_type = agent_info.get('template_type', 'basic') # Create session directory session_dir = Path(f"generated_agents/{session_id}") @@ -234,15 +392,19 @@ def generate_agent_files(agent_info: dict, session_id: str) -> bool: # Letta Configuration (if using Letta) LETTA_SERVER_URL=http://localhost:8283 + +# RunAgent Configuration +RUNAGENT_DISABLE_DB=true +RUNAGENT_NO_DATABASE=true +RUNAGENT_LOG_LEVEL=INFO """ with open(session_dir / ".env", "w") as f: f.write(env_content) - # Get template info - template_info = TEMPLATES.get(framework, {}).get(template_type, {}) - try: + print(f"🔧 Generating {framework} agent files...") + if framework == "langgraph": generate_langgraph_files(agent_info, session_dir) elif framework == "letta": @@ -251,14 +413,56 @@ def generate_agent_files(agent_info: dict, session_id: str) -> bool: generate_agno_files(agent_info, session_dir) elif framework == "llamaindex": generate_llamaindex_files(agent_info, session_dir) + else: + # Default/custom framework + generate_custom_framework_files(agent_info, session_dir) + + # Verify the config file was created and is valid + config_file = session_dir / "runagent.config.json" + if not config_file.exists(): + raise Exception("Config file was not created") + + # Validate the config file + with open(config_file, "r") as f: + config = json.load(f) + + # Check for required fields + required_fields = ["agent_name", "description", "framework", "template_source", "agent_architecture"] + missing_fields = [] + + for field in required_fields: + if field not in config: + missing_fields.append(field) + + if missing_fields: + raise Exception(f"Config missing required fields: {missing_fields}") + # Validate template_source structure + if not isinstance(config.get("template_source"), dict): + raise Exception("template_source must be a dictionary") + + template_source = config["template_source"] + required_template_fields = ["repo_url", "path", "author", "version"] + missing_template_fields = [] + + for field in required_template_fields: + if field not in template_source: + missing_template_fields.append(field) + + if missing_template_fields: + raise Exception(f"template_source missing required fields: {missing_template_fields}") + + print(f"✅ Successfully generated and validated {framework} agent") return True + except Exception as e: - print(f"Error generating files: {e}") + print(f"❌ Error generating {framework} files: {e}") + import traceback + traceback.print_exc() return False def generate_langgraph_files(agent_info: dict, session_dir: Path): - """Generate LangGraph agent files.""" + """Generate LangGraph agent files with proper database avoidance.""" # Generate main agent file agent_code = f'''""" @@ -310,14 +514,23 @@ def create_workflow(): # Create workflow app = create_workflow() -def run(*input_args, **input_kwargs): - """Main entry point for RunAgent""" +def main(*input_args, **input_kwargs): + """Main entry point for RunAgent (standard)""" # Extract query and input data query = input_kwargs.get("query", "") if not query and input_args: query = str(input_args[0]) + # Handle different input field names + for field in {agent_info['input_fields']}: + if field in input_kwargs: + query = str(input_kwargs[field]) + break + + if not query: + query = "Hello, how can I help you?" + # Run the workflow result = app.invoke({{ "query": query, @@ -327,19 +540,31 @@ def run(*input_args, **input_kwargs): return result["result"] -def run_stream(*input_args, **input_kwargs): +def main_stream(*input_args, **input_kwargs): """Streaming entry point""" query = input_kwargs.get("query", "") if not query and input_args: query = str(input_args[0]) - # Stream the workflow - for chunk in app.stream({{ - "query": query, - "input_data": input_kwargs, - "result": "" - }}): - yield chunk + # Handle different input field names + for field in {agent_info['input_fields']}: + if field in input_kwargs: + query = str(input_kwargs[field]) + break + + if not query: + query = "Hello, how can I help you?" + + # Stream the workflow execution + try: + for chunk in app.stream({{ + "query": query, + "input_data": input_kwargs, + "result": "" + }}): + yield str(chunk) + except Exception as e: + yield f"Error: {{str(e)}}" ''' # Write agent file @@ -373,12 +598,12 @@ def run_stream(*input_args, **input_kwargs): "entrypoints": [ { "file": "agent.py", - "module": "run", + "module": "main", "tag": "main" }, { "file": "agent.py", - "module": "run_stream", + "module": "main_stream", "tag": "main_stream" } ] @@ -389,20 +614,7 @@ def run_stream(*input_args, **input_kwargs): with open(session_dir / "runagent.config.json", "w") as f: json.dump(config, f, indent=2) - # Debug: Print the generated config - print(f"✅ Generated config for {framework}:") - print(json.dumps(config, indent=2)) - - # Debug: Print the generated config - print(f"✅ Generated config for {framework}:") - print(json.dumps(config, indent=2)) - - # Debug: Print the generated config - print(f"✅ Generated config for {framework}:") - print(json.dumps(config, indent=2)) - - # Debug: Print the generated config - print(f"✅ Generated config for {framework}:") + print(f"✅ Generated LangGraph config:") print(json.dumps(config, indent=2)) def generate_letta_files(agent_info: dict, session_dir: Path): @@ -880,11 +1092,11 @@ async def chat_endpoint(request: ChatRequest): """Main chat endpoint for agent generation.""" session_id = request.session_id or str(uuid.uuid4()) - message = request.message.lower().strip() + message = request.message.strip() # Debug logging - print(f"DEBUG: Received message: '{request.message}' (processed: '{message}')") - print(f"DEBUG: Session ID: {session_id}") + print(f"🔍 Received message: '{request.message}' (processed: '{message}')") + print(f"🆔 Session ID: {session_id}") # Get or create session if session_id not in sessions: @@ -896,13 +1108,14 @@ async def chat_endpoint(request: ChatRequest): } session = sessions[session_id] - print(f"DEBUG: Current stage: {session['stage']}") + print(f"📊 Current stage: {session['stage']}") session["messages"].append({"role": "user", "content": request.message}) try: # Stage 1: Understanding the request if session["stage"] == "understanding": + print("🧠 Analyzing user request with GPT-5...") agent_info = analyze_user_request(request.message) session["agent_info"] = agent_info session["stage"] = "planning" @@ -916,7 +1129,32 @@ async def chat_endpoint(request: ChatRequest): Let me create a workflow diagram for this agent...""" - mermaid_diagram = generate_mermaid_diagram(agent_info) + print("🎨 Generating dynamic Mermaid diagram with GPT-5...") + try: + mermaid_diagram = generate_mermaid_diagram(agent_info) + + # Validate the generated diagram + is_valid, validation_message = validate_mermaid_syntax(mermaid_diagram) + if not is_valid: + print(f"⚠️ Generated diagram validation failed: {validation_message}") + print(f"🔧 Attempting to fix diagram...") + + # Try simple fixes + if "Missing graph declaration" in validation_message: + mermaid_diagram = f"graph TD\n {mermaid_diagram}" + + # Re-validate + is_valid, _ = validate_mermaid_syntax(mermaid_diagram) + + if is_valid: + print("✅ Mermaid diagram generated and validated successfully") + else: + print("❌ Could not generate valid Mermaid diagram") + + except Exception as e: + print(f"❌ Mermaid generation failed: {e}") + # Don't fail the entire request - the frontend will show the error + mermaid_diagram = None return ChatResponse( response=description, @@ -926,24 +1164,28 @@ async def chat_endpoint(request: ChatRequest): mermaid_diagram=mermaid_diagram ) - # Handle user feedback/modifications + # Stage 2: Planning - handle user feedback/modifications elif session["stage"] == "planning": - if any(phrase in message for phrase in ["go for it", "generate", "create it", "build it", "make it", "proceed", "continue", "yes", "start"]): - print(f"DEBUG: Starting agent generation for session {session_id}") + if any(phrase in message.lower() for phrase in ["go for it", "generate", "create it", "build it", "make it", "proceed", "continue", "yes", "start"]): + print(f"🚀 Starting agent generation for session {session_id}") # Generate agent files + print("📁 Generating agent files...") success = generate_agent_files(session["agent_info"], session_id) - if success: - print(f"DEBUG: Files generated successfully for session {session_id}") - session["files_generated"] = True - session["stage"] = "starting" - - # Start RunAgent server immediately in background - session_dir_path = Path(f"generated_agents/{session_id}") - - def start_agent(): - print(f"🚀 Background task: Starting agent for session {session_id}") + if not success: + raise Exception("Failed to generate agent files") + + print(f"✅ Files generated successfully for session {session_id}") + session["files_generated"] = True + session["stage"] = "starting" + + # Start RunAgent server immediately in background + session_dir_path = Path(f"generated_agents/{session_id}") + + def start_agent(): + print(f"🚀 Background task: Starting agent for session {session_id}") + try: agent_id, agent_url, port = start_runagent_server(str(session_dir_path), session_id) if agent_id and agent_url: @@ -965,13 +1207,17 @@ def start_agent(): session["stage"] = "error" session["error"] = "Failed to start RunAgent server" print(f"❌ Failed to start agent for session {session_id}") - - # Start the agent server in background - print(f"DEBUG: Starting background thread for session {session_id}") - threading.Thread(target=start_agent, daemon=True).start() - - return ChatResponse( - response=f"""✅ Agent files generated successfully! Now starting the RunAgent server... + except Exception as e: + print(f"❌ Error in background agent start: {e}") + session["stage"] = "error" + session["error"] = str(e) + + # Start the agent server in background + print(f"🔄 Starting background thread for session {session_id}") + threading.Thread(target=start_agent, daemon=True).start() + + return ChatResponse( + response=f"""✅ Agent files generated successfully! Now starting the RunAgent server... 🔄 Starting your **{session["agent_info"]["agent_name"]}** agent server... @@ -980,16 +1226,10 @@ def start_agent(): 2. Starting RunAgent server on available port 3. Initializing your agent -⏳ Please wait 30-60 seconds, then **send any message** (like "status") to check if it's ready.""", - session_id=session_id, - stage="starting" - ) - else: - return ChatResponse( - response="❌ Error generating agent files. Please try again.", - session_id=session_id, - stage="error" - ) +⏳ Please wait 30-90 seconds, then **send any message** (like "status") to check if it's ready.""", + session_id=session_id, + stage="starting" + ) else: # Handle modifications return ChatResponse( @@ -1002,7 +1242,7 @@ def start_agent(): # Stage 3: Check agent status or continue if starting elif session["stage"] == "starting": - print(f"DEBUG: Checking status for starting session {session_id}") + print(f"📊 Checking status for starting session {session_id}") # Check if agent has been started in the background if session.get("agent_id") and session.get("agent_url"): @@ -1022,7 +1262,7 @@ def start_agent(): **RunAgent Server:** `http://localhost:{runagent_port}` -Your {session["agent_info"]["framework"]} agent is running and will provide real mathematical computations! +Your {session["agent_info"]["framework"]} agent is running and ready to process real requests! The agent interface connects directly to your RunAgent server for authentic responses.""", session_id=session_id, @@ -1031,8 +1271,10 @@ def start_agent(): agent_url=agent_url ) elif session.get("stage") == "error": + error_msg = session.get("error", "Unknown error occurred") + print(f"❌ Error in session {session_id}: {error_msg}") return ChatResponse( - response=f"❌ Error starting agent: {session.get('error', 'Unknown error')}", + response=f"❌ Error starting agent: {error_msg}\n\nPlease try again or check the server logs.", session_id=session_id, stage="error" ) @@ -1042,13 +1284,13 @@ def start_agent(): response="""⏳ Still starting your agent server... The process includes: -- Installing dependencies (this can take time) +- Installing dependencies (this can take time for first install) - Initializing the RunAgent framework -- Starting the server +- Starting the server and verifying connectivity Please wait a bit longer and send another message to check status. -If it takes more than 2-3 minutes, there might be an issue with dependencies.""", +If it takes more than 3-4 minutes, there might be an issue with dependencies or port conflicts.""", session_id=session_id, stage="starting" ) @@ -1070,7 +1312,7 @@ def start_agent(): **RunAgent Server:** `http://localhost:{runagent_port}` -Your {session["agent_info"]["framework"]} agent is running and will provide real mathematical computations! +Your {session["agent_info"]["framework"]} agent is running and will provide real responses based on your framework choice! The agent interface connects directly to your RunAgent server for authentic responses.""", session_id=session_id, @@ -1084,6 +1326,13 @@ def start_agent(): session_id=session_id, stage="starting" ) + elif session["stage"] == "error": + error_msg = session.get("error", "Unknown error") + return ChatResponse( + response=f"❌ Error: {error_msg}\n\nYou can try starting over by describing a new agent.", + session_id=session_id, + stage="error" + ) else: return ChatResponse( response=f"Your agent status: {session.get('stage', 'unknown')}. How can I help you?", @@ -1092,58 +1341,42 @@ def start_agent(): ) except Exception as e: - print(f"Error in chat endpoint: {e}") + print(f"❌ Error in chat endpoint: {e}") + import traceback + traceback.print_exc() + return ChatResponse( - response=f"Sorry, I encountered an error: {str(e)}", + response=f"Sorry, I encountered an error: {str(e)}\n\nPlease check the server logs and try again.", session_id=session_id, stage="error" ) -@app.get("/agent/{agent_id}") -async def get_agent_info(agent_id: str): - """Get agent information for the UI.""" +@app.get("/debug/agent-logs/{agent_id}") +async def get_agent_logs(agent_id: str): + """Get logs for a specific agent to help with debugging.""" - # Check in running_agents first (for real agents) + # Check in running_agents first if agent_id in running_agents: agent_data = running_agents[agent_id] - return { - "agent_id": agent_id, - "agent_info": { - **agent_data["agent_info"], - "runagent_url": agent_data.get("runagent_url"), - "port": agent_data.get("port") - }, - "session_id": agent_data["session_id"], - "status": agent_data["status"] - } + if "process" in agent_data and agent_data["process"]: + process = agent_data["process"] + return { + "agent_id": agent_id, + "status": "running" if process.poll() is None else "stopped", + "port": agent_data.get("port"), + "session_id": agent_data.get("session_id") + } - # Fallback: Find session with this agent_id + # Find session with this agent_id for session_id, session in sessions.items(): if session.get("agent_id") == agent_id: - # Also check if we have running agent info - if session_id in running_agents: - agent_data = running_agents[session_id] - return { - "agent_id": agent_id, - "agent_info": { - **session["agent_info"], - "runagent_url": agent_data.get("runagent_url"), - "port": agent_data.get("port") - }, - "session_id": session_id, - "status": "active" - } - else: - return { - "agent_id": agent_id, - "agent_info": { - **session["agent_info"], - "runagent_url": f"http://localhost:{session.get('runagent_port', 8080)}", - "port": session.get("runagent_port", 8080) - }, - "session_id": session_id, - "status": "active" - } + return { + "agent_id": agent_id, + "session_id": session_id, + "stage": session.get("stage"), + "agent_info": session.get("agent_info"), + "error": session.get("error") + } raise HTTPException(status_code=404, detail="Agent not found") diff --git a/examples/gpt_5_project/static/agent.html b/examples/gpt_5_project/static/agent.html index 837d168..325a319 100644 --- a/examples/gpt_5_project/static/agent.html +++ b/examples/gpt_5_project/static/agent.html @@ -63,7 +63,7 @@ } .status-badge { - background: #28a745; + background: #dc3545; color: white; padding: 5px 12px; border-radius: 15px; @@ -71,6 +71,15 @@ font-weight: 500; } + .status-badge.ready { + background: #28a745; + } + + .status-badge.connecting { + background: #ffc107; + color: black; + } + .main-content { display: grid; grid-template-columns: 1fr 1fr; @@ -304,70 +313,6 @@ color: white; } - .examples-section { - background: white; - border: 1px solid #e9ecef; - border-radius: 10px; - padding: 15px; - margin-top: 20px; - } - - .examples-section h4 { - color: #495057; - margin-bottom: 10px; - font-size: 0.9rem; - } - - .example-item { - background: #f8f9fa; - padding: 8px 12px; - border-radius: 6px; - margin-bottom: 8px; - cursor: pointer; - font-size: 0.8rem; - transition: all 0.2s ease; - border: 1px solid transparent; - } - - .example-item:hover { - background: #e9ecef; - border-color: #667eea; - } - - .footer { - text-align: center; - padding: 20px; - background: #f8f9fa; - border-top: 1px solid #e9ecef; - color: #6c757d; - font-size: 0.9rem; - } - - .footer a { - color: #667eea; - text-decoration: none; - } - - @media (max-width: 768px) { - .main-content { - grid-template-columns: 1fr; - } - - .input-panel { - border-right: none; - border-bottom: 1px solid #e9ecef; - } - - .header h1 { - font-size: 1.5rem; - } - - .agent-details { - flex-direction: column; - gap: 10px; - } - } - .loading-spinner { display: inline-block; width: 12px; @@ -395,7 +340,7 @@

Loading Agent...

Framework: -
RunAgent Port: -
-
+
Connecting
@@ -433,13 +378,6 @@

📝 Input Fields

Clear Output - -
@@ -456,17 +394,10 @@

📤 Agent Response

Configure the input fields and click "Run Agent" to get started. -Your agent will process the input and provide intelligent responses based on its capabilities. - 🔍 Click "Test Connection" to verify RunAgent server is running.
- - \ No newline at end of file diff --git a/examples/gpt_5_project/static/index.html b/examples/gpt_5_project/static/index.html index 75b4202..db7cb8a 100644 --- a/examples/gpt_5_project/static/index.html +++ b/examples/gpt_5_project/static/index.html @@ -4,7 +4,7 @@ RunAgent Generator - AI Agent Builder - + @@ -457,16 +467,16 @@

🎉 Your Agent is Ready!

-
+
🌤️ Weather Agent
-
+
🔍 Research Assistant
-
+
🔢 Math Solver
-
+
✍️ Content Writer
@@ -481,7 +491,7 @@

🎉 Your Agent is Ready!

const chatInput = document.getElementById('chatInput'); const sendButton = document.getElementById('sendButton'); - // Initialize mermaid + // Initialize mermaid - keep it simple mermaid.initialize({ startOnLoad: true, theme: 'default', @@ -575,57 +585,25 @@

🎉 Your Agent is Ready!

function updateDiagram(mermaidCode) { const diagramElement = document.getElementById('mermaid-diagram'); - try { - // Clear previous diagram - diagramElement.innerHTML = ''; - - // Clean the mermaid code - const cleanCode = mermaidCode - .replace(/```mermaid/g, '') - .replace(/```/g, '') - .replace(/^mermaid\s*/gm, '') - .trim(); - - // Validate basic mermaid syntax - if (!cleanCode.includes('graph') && !cleanCode.includes('flowchart')) { - throw new Error('Invalid mermaid syntax'); - } - - // Create new diagram - const div = document.createElement('div'); - div.className = 'mermaid'; - div.textContent = cleanCode; - diagramElement.appendChild(div); - - // Re-initialize mermaid with error handling - mermaid.init(undefined, div).then(() => { - console.log('Mermaid diagram rendered successfully'); - }).catch((error) => { - console.error('Mermaid rendering error:', error); - diagramElement.innerHTML = ` -
-

📊 Workflow diagram generated

-

- Diagram rendering temporarily unavailable -

-
- `; - }); - - document.getElementById('diagramSection').style.display = 'block'; - - } catch (error) { - console.error('Error processing diagram:', error); - diagramElement.innerHTML = ` -
-

📊 Workflow diagram generated

-

- Visual rendering temporarily unavailable -

-
- `; - document.getElementById('diagramSection').style.display = 'block'; - } + // Clear previous diagram + diagramElement.innerHTML = ''; + + // Clean the mermaid code + const cleanCode = mermaidCode + .replace(/```mermaid/g, '') + .replace(/```/g, '') + .trim(); + + // Create new diagram + const div = document.createElement('div'); + div.className = 'mermaid'; + div.textContent = cleanCode; + diagramElement.appendChild(div); + + // Re-initialize mermaid + mermaid.init(undefined, div); + + document.getElementById('diagramSection').style.display = 'block'; } function showAgentResult(agentId, agentUrl) { From ecc4298b91a63338807e1c5ee3a29019b86db825 Mon Sep 17 00:00:00 2001 From: RadeenXALNW Date: Fri, 8 Aug 2025 16:58:41 +0000 Subject: [PATCH 04/16] fixed some bugs regarding pythonic db issue --- examples/gpt_5_project/main.py | 287 +++++--- examples/gpt_5_project/static/agent.html | 839 +++++------------------ examples/gpt_5_project/test.py | 12 - examples/gpt_5_project/test_sdk.py | 79 +++ runagent/sdk/db.py | 8 + runagent/sdk/server/local_server.py | 2 +- 6 files changed, 467 insertions(+), 760 deletions(-) delete mode 100644 examples/gpt_5_project/test.py create mode 100644 examples/gpt_5_project/test_sdk.py diff --git a/examples/gpt_5_project/main.py b/examples/gpt_5_project/main.py index 4cb1ff4..bbb3018 100644 --- a/examples/gpt_5_project/main.py +++ b/examples/gpt_5_project/main.py @@ -581,7 +581,7 @@ def main_stream(*input_args, **input_kwargs): with open(session_dir / "requirements.txt", "w") as f: f.write(requirements) - # Generate runagent.config.json + # Generate runagent.config.json with ALL required fields config = { "agent_name": agent_info['agent_name'], "description": agent_info['description'], @@ -592,7 +592,8 @@ def main_stream(*input_args, **input_kwargs): "template_source": { "repo_url": "https://github.com/runagent-dev/runagent.git", "path": "generated/custom", - "author": "runagent-generator" + "author": "runagent-generator", + "version": "1.0.0" }, "agent_architecture": { "entrypoints": [ @@ -608,14 +609,16 @@ def main_stream(*input_args, **input_kwargs): } ] }, - "input_fields": agent_info['input_fields'] + "input_fields": agent_info['input_fields'], + "env_vars": { + "OPENAI_API_KEY": "${OPENAI_API_KEY}" + } } with open(session_dir / "runagent.config.json", "w") as f: json.dump(config, f, indent=2) - print(f"✅ Generated LangGraph config:") - print(json.dumps(config, indent=2)) + print(f"✅ Generated LangGraph config with all required fields:") def generate_letta_files(agent_info: dict, session_dir: Path): """Generate Letta agent files.""" @@ -725,7 +728,11 @@ def letta_run_stream(*input_args, **input_kwargs): with open(session_dir / "agent.py", "w") as f: f.write(agent_code) - # Generate config + # Generate requirements + with open(session_dir / "requirements.txt", "w") as f: + f.write("letta-client>=0.1.0\npython-dotenv>=1.0.0\n") + + # Generate config with ALL required fields config = { "agent_name": agent_info['agent_name'], "description": agent_info['description'], @@ -736,7 +743,8 @@ def letta_run_stream(*input_args, **input_kwargs): "template_source": { "repo_url": "https://github.com/runagent-dev/runagent.git", "path": "generated/custom", - "author": "runagent-generator" + "author": "runagent-generator", + "version": "1.0.0" }, "agent_architecture": { "entrypoints": [ @@ -761,7 +769,8 @@ def letta_run_stream(*input_args, **input_kwargs): with open(session_dir / "runagent.config.json", "w") as f: json.dump(config, f, indent=2) - + + print(f"✅ Generated Letta config with all required fields") def generate_agno_files(agent_info: dict, session_dir: Path): """Generate Agno agent files.""" @@ -819,6 +828,9 @@ def agent_run_stream(*input_args, **input_kwargs): if not prompt and input_args: prompt = str(input_args[0]) + if not prompt: + prompt = "Hello, how can I help you?" + full_prompt = f""" {agent_info['description']} @@ -831,9 +843,6 @@ def agent_run_stream(*input_args, **input_kwargs): yield {{ "content": chunk.content if hasattr(chunk, 'content') else str(chunk) }} - -# Keep original functions for backward compatibility -agent_run_stream = partial(agent.run, stream=True) ''' with open(session_dir / "agent.py", "w") as f: @@ -843,7 +852,7 @@ def agent_run_stream(*input_args, **input_kwargs): with open(session_dir / "requirements.txt", "w") as f: f.write("agno>=1.7.2\n") - # Generate config + # Generate config with ALL required fields config = { "agent_name": agent_info['agent_name'], "description": agent_info['description'], @@ -851,6 +860,12 @@ def agent_run_stream(*input_args, **input_kwargs): "template": "custom", "version": "1.0.0", "created_at": time.strftime("%Y-%m-%d %H:%M:%S"), + "template_source": { + "repo_url": "https://github.com/runagent-dev/runagent.git", + "path": "generated/custom", + "author": "runagent-generator", + "version": "1.0.0" + }, "agent_architecture": { "entrypoints": [ { @@ -867,28 +882,39 @@ def agent_run_stream(*input_args, **input_kwargs): } ] }, - "input_fields": agent_info['input_fields'] + "input_fields": agent_info['input_fields'], + "env_vars": { + "OPENAI_API_KEY": "${OPENAI_API_KEY}" + } } with open(session_dir / "runagent.config.json", "w") as f: json.dump(config, f, indent=2) + + print(f"✅ Generated Agno config with all required fields") def generate_llamaindex_files(agent_info: dict, session_dir: Path): """Generate LlamaIndex agent files.""" agent_code = f'''from llama_index.llms.openai import OpenAI +from llama_index.core.agent.workflow import AgentStream from llama_index.core.agent.workflow import FunctionAgent -# Initialize LLM -llm = OpenAI(model="gpt-4o-mini", temperature=0.3) -# Create the agent +# Define a simple calculator tool +def multiply(a: float, b: float) -> float: + """Useful for multiplying two numbers.""" + return a * b + + +# Create an agent workflow with our calculator tool agent = FunctionAgent( - tools=[], # Add tools as needed - llm=llm, - system_prompt="{agent_info['description']} Focus on: {agent_info['main_functionality']}" + tools=[multiply], + llm=OpenAI(model="gpt-4o-mini"), + system_prompt="{agent_info['description']} Focus on: {agent_info['main_functionality']}", ) + async def agent_run(*input_args, **input_kwargs): """Main agent function""" @@ -920,9 +946,15 @@ async def agent_run_stream(*input_args, **input_kwargs): if not user_input and input_args: user_input = str(input_args[0]) + if not user_input: + user_input = "Hello, how can I help you?" + handler = agent.run(user_msg=user_input) async for event in handler.stream_events(): - yield event + if isinstance(event, AgentStream): + yield event + else: + yield str(event) ''' with open(session_dir / "agent.py", "w") as f: @@ -930,9 +962,9 @@ async def agent_run_stream(*input_args, **input_kwargs): # Generate requirements with open(session_dir / "requirements.txt", "w") as f: - f.write("llama-index>=0.12.48\n") + f.write("llama-index>=0.12.48\nllama-index-llms-openai>=0.3.0\n") - # Generate config + # Generate config with ALL required fields (including template_source) config = { "agent_name": agent_info['agent_name'], "description": agent_info['description'], @@ -940,6 +972,12 @@ async def agent_run_stream(*input_args, **input_kwargs): "template": "custom", "version": "1.0.0", "created_at": time.strftime("%Y-%m-%d %H:%M:%S"), + "template_source": { + "repo_url": "https://github.com/runagent-dev/runagent.git", + "path": "generated/custom", + "author": "runagent-generator", + "version": "1.0.0" + }, "agent_architecture": { "entrypoints": [ { @@ -954,34 +992,23 @@ async def agent_run_stream(*input_args, **input_kwargs): } ] }, - "input_fields": agent_info['input_fields'] + "input_fields": agent_info['input_fields'], + "env_vars": { + "OPENAI_API_KEY": "${OPENAI_API_KEY}" + } } with open(session_dir / "runagent.config.json", "w") as f: json.dump(config, f, indent=2) - -# In your main.py, modify the start_runagent_server function: + + print(f"✅ Generated LlamaIndex config with all required fields") def start_runagent_server(session_dir: str, session_id: str): - """Start runagent server for the generated agent.""" + """Start runagent server - use only the RunAgent server ID""" try: print(f"🚀 Starting RunAgent server for session: {session_id}") - - # Find available port - import socket - def find_free_port(start_port=8080): - for port in range(start_port, start_port + 100): - with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: - try: - s.bind(('localhost', port)) - return port - except OSError: - continue - raise Exception("No free ports available") - - port = find_free_port() - print(f"🔌 Using port: {port}") + print(f"📂 Working directory: {session_dir}") # Install dependencies print("📦 Installing agent dependencies...") @@ -991,20 +1018,19 @@ def find_free_port(start_port=8080): if result.returncode == 0: print("✅ Dependencies installed successfully") else: - print(f"⚠️ Dependency installation warning: {result.stderr}") + print(f"⚠️ Dependency installation: {result.stderr}") except Exception as e: print(f"⚠️ Dependency installation failed: {e}") - # Set up environment to bypass database issues + # Set up environment env = os.environ.copy() env['RUNAGENT_DISABLE_DB'] = 'true' env['RUNAGENT_LOG_LEVEL'] = 'INFO' - # Start RunAgent server with simple command - cmd = ["runagent", "serve", ".", "--host", "0.0.0.0", "--port", str(port)] + # Start RunAgent server + cmd = ["runagent", "serve", "."] print(f"🔧 Running command: {' '.join(cmd)}") - print(f"📂 Working directory: {session_dir}") process = subprocess.Popen( cmd, @@ -1017,69 +1043,90 @@ def find_free_port(start_port=8080): env=env ) - # Wait for server to start - agent_id = str(uuid.uuid4()) - start_time = time.time() - timeout = 60 - + # Wait and extract port info print("📡 Waiting for RunAgent server to start...") - server_started = False - while time.time() - start_time < timeout: - if process.poll() is not None: - stdout, stderr = process.communicate() - print(f"❌ RunAgent process exited early:") - print(f"OUTPUT: {stdout}") - break - + detected_port = None + runagent_agent_id = None + + # Read first few lines to get the port and agent ID + for i in range(50): try: line = process.stdout.readline() if line: print(f"RunAgent: {line.strip()}") - # Look for server startup indicators - if any(keyword in line.lower() for keyword in ["server running", "uvicorn running", "started server", "listening on"]): - server_started = True - print(f"✅ Server startup detected!") + # Extract port from output + if "Allocated address:" in line and "127.0.0.1:" in line: + try: + port_part = line.split("127.0.0.1:")[-1].strip() + detected_port = int(port_part) + print(f"🔌 Detected Port: {detected_port}") + except: + pass + + # Extract agent ID from output + if "New agent created with ID:" in line: + try: + runagent_agent_id = line.split("ID:")[-1].strip() + print(f"🆔 Detected RunAgent Agent ID: {runagent_agent_id}") + except: + pass + + # Stop reading once we have both pieces of info + if detected_port and runagent_agent_id: break + else: + time.sleep(0.1) + except Exception as e: - print(f"Error reading output: {e}") - pass + print(f"Error reading line: {e}") + break + + # Default values if not detected + if not detected_port: + detected_port = 8450 + print(f"🔌 Using default port: {detected_port}") - time.sleep(0.5) - - # Test server health - if server_started: - for attempt in range(5): - try: - import requests - test_url = f"http://localhost:{port}/health" - response = requests.get(test_url, timeout=5) - if response.status_code == 200: - print(f"✅ Server health check passed!") - break - except Exception as e: - print(f"⚠️ Health check attempt {attempt + 1} failed: {e}") - time.sleep(2) + if not runagent_agent_id: + runagent_agent_id = str(uuid.uuid4()) + print(f"🆔 Generated fallback Agent ID: {runagent_agent_id}") - agent_url = f"http://localhost:8000/static/agent.html?agent={agent_id}" + # Wait for server to fully initialize + print("⏳ Waiting for server to fully initialize...") + time.sleep(3) - # Store running agent info - running_agents[session_id] = { + # Use the ACTUAL RunAgent agent ID for everything + agent_url = f"http://localhost:8000/static/agent.html?agent={runagent_agent_id}" + + # Get session info + session = sessions.get(session_id, {}) + agent_info = session.get("agent_info", {}) + + # Store completion time in session + session["completion_time"] = time.time() + session["runagent_port"] = detected_port + session["agent_id"] = runagent_agent_id # Use the actual RunAgent ID + + # Store agent info using the REAL agent ID + running_agents[runagent_agent_id] = { "process": process, - "agent_id": agent_id, + "agent_id": runagent_agent_id, # Same ID everywhere "agent_url": agent_url, - "port": port, - "runagent_url": f"http://localhost:{port}" + "port": detected_port, + "runagent_url": f"http://localhost:{detected_port}", + "session_id": session_id, + "status": "active", + "agent_info": agent_info } print(f"🎉 RunAgent server started successfully!") - print(f"🔗 Agent ID: {agent_id}") - print(f"🌐 RunAgent URL: http://localhost:{port}") + print(f"🔗 Agent ID: {runagent_agent_id}") + print(f"🌐 RunAgent URL: http://localhost:{detected_port}") print(f"🖥️ UI URL: {agent_url}") - return agent_id, agent_url, port + return runagent_agent_id, agent_url, detected_port except Exception as e: print(f"❌ Error starting agent server: {e}") @@ -1440,6 +1487,68 @@ async def test_runagent_connection(agent_id: str): "endpoints": results } +@app.get("/agent/{agent_id}") +async def get_agent_info(agent_id: str): + """Get agent information - simplified to use only RunAgent IDs""" + try: + print(f"🔍 Looking for RunAgent agent ID: {agent_id}") + + # Check in running_agents (should be the RunAgent server ID) + if agent_id in running_agents: + agent_data = running_agents[agent_id] + agent_info = agent_data.get("agent_info", {}) + port = agent_data.get("port", 8450) + + print(f"✅ Found RunAgent agent: {agent_info.get('agent_name', 'Unknown')} on port {port}") + + return { + "agent_info": { + "agent_name": agent_info.get("agent_name", "Unknown Agent"), + "description": agent_info.get("description", "AI Agent"), + "framework": agent_info.get("framework", "custom"), + "input_fields": agent_info.get("input_fields", ["message"]), + "main_functionality": agent_info.get("main_functionality", "General assistance"), + "port": port, + "runagent_url": f"http://localhost:{port}", + "runagent_agent_id": agent_id, # Same as the lookup ID + "status": "ready" + } + } + + # Check sessions as fallback + for session_id, session in sessions.items(): + if session.get("agent_id") == agent_id: + agent_info = session.get("agent_info", {}) + port = session.get("runagent_port", 8450) + + print(f"✅ Found in session: {agent_info.get('agent_name', 'Unknown')} on port {port}") + + return { + "agent_info": { + "agent_name": agent_info.get("agent_name", "Unknown Agent"), + "description": agent_info.get("description", "AI Agent"), + "framework": agent_info.get("framework", "custom"), + "input_fields": agent_info.get("input_fields", ["message"]), + "main_functionality": agent_info.get("main_functionality", "General assistance"), + "port": port, + "runagent_url": f"http://localhost:{port}", + "runagent_agent_id": agent_id, + "status": "ready" + } + } + + # Not found + print(f"❌ RunAgent agent {agent_id} not found") + print(f"Available RunAgent agents: {list(running_agents.keys())}") + + raise HTTPException(status_code=404, detail=f"RunAgent agent {agent_id} not found") + + except HTTPException: + raise + except Exception as e: + print(f"❌ Error getting agent info: {e}") + raise HTTPException(status_code=500, detail=f"Server error: {str(e)}") + @app.get("/debug/clear-sessions") async def clear_sessions(): """Clear all sessions and running agents for debugging.""" diff --git a/examples/gpt_5_project/static/agent.html b/examples/gpt_5_project/static/agent.html index 325a319..24f6ce6 100644 --- a/examples/gpt_5_project/static/agent.html +++ b/examples/gpt_5_project/static/agent.html @@ -5,14 +5,10 @@ Agent Interface @@ -335,31 +172,17 @@

Loading Agent...

Connecting to your AI agent...

-
-
Agent ID: -
-
Framework: -
-
RunAgent Port: -
-
-
- Connecting +
+ Agent ID: - | + Framework: - | + Port: -
+
✅ Ready
-
-

🎯 Execution Mode

-
-
- ⚡ Standard -
-
- 🌊 Streaming -
-
-
-

📝 Input Fields

@@ -367,60 +190,36 @@

📝 Input Fields

-
+
+ - -
+ +
+ Click "Discover Endpoints" to find available endpoints... +
-
-

📤 Agent Response

-
-
- Processing... -
+
+

📤 Raw Agent Response

-
- 👋 Welcome to your AI agent interface! - -Configure the input fields and click "Run Agent" to get started. - -🔍 Click "Test Connection" to verify RunAgent server is running. -
+
Ready to run agent...
\ No newline at end of file diff --git a/examples/gpt_5_project/test.py b/examples/gpt_5_project/test.py deleted file mode 100644 index 2968d15..0000000 --- a/examples/gpt_5_project/test.py +++ /dev/null @@ -1,12 +0,0 @@ -from openai import OpenAI -client = OpenAI() - -response = client.responses.create( - model="gpt-5-mini", - input="Draw simple a mermaid graph of weather agent", - reasoning={ - "effort": "minimal" - } -) - -print(response) \ No newline at end of file diff --git a/examples/gpt_5_project/test_sdk.py b/examples/gpt_5_project/test_sdk.py new file mode 100644 index 0000000..870d801 --- /dev/null +++ b/examples/gpt_5_project/test_sdk.py @@ -0,0 +1,79 @@ +# test_agent_sdk.py +# Run this script to see what the SDK response looks like + +from runagent import RunAgentClient +import json + +def test_agent(agent_id, port=8450): + """Test the agent with SDK and show detailed output""" + + print(f"🧪 Testing Agent: {agent_id}") + print(f"🔌 Port: {port}") + print("=" * 50) + + try: + # Create client - try different entrypoint tags + entrypoint_tags = ["main", "generic", "basic", "invoke"] + + for tag in entrypoint_tags: + print(f"\n🎯 Trying entrypoint tag: '{tag}'") + + try: + ra = RunAgentClient( + agent_id=agent_id, + entrypoint_tag=tag, + local=True + ) + + print(f"✅ Client created successfully with tag: {tag}") + + # Test with minimal input + test_inputs = [ + {"math_query": "What is 3*3?"} + ] + + for test_input in test_inputs: + try: + print(f"\n📝 Testing with input: {test_input}") + + result = ra.run(**test_input) + + print("✅ SUCCESS!") + print(f"📤 Result type: {type(result)}") + print(f"📤 Result content:") + if isinstance(result, dict): + print(json.dumps(result, indent=2)) + else: + print(result) + + return True # Success, exit + + except Exception as input_error: + print(f"❌ Input failed: {input_error}") + continue + + except Exception as tag_error: + print(f"❌ Tag '{tag}' failed: {tag_error}") + continue + + print("\n❌ All attempts failed") + return False + + except Exception as e: + print(f"❌ General error: {e}") + return False + +if __name__ == "__main__": + import sys + + if len(sys.argv) > 1: + agent_id = sys.argv[1] + else: + agent_id = input("Enter Agent ID: ").strip() + + if len(sys.argv) > 2: + port = int(sys.argv[2]) + else: + port = 8450 + + test_agent(agent_id, port) \ No newline at end of file diff --git a/runagent/sdk/db.py b/runagent/sdk/db.py index 8197321..2337310 100644 --- a/runagent/sdk/db.py +++ b/runagent/sdk/db.py @@ -822,6 +822,10 @@ def add_agent( framework: str = None, status: str = "deployed", ) -> Dict: + if hasattr(framework, 'value'): + framework = framework.value + elif framework is not None: + framework = str(framework) """ Add a new agent with smart limit enforcement @@ -1533,6 +1537,10 @@ def add_agent_with_auto_port( preferred_host: str = "127.0.0.1", preferred_port: int = None, ) -> Dict: + if hasattr(framework, 'value'): + framework = framework.value + elif framework is not None: + framework = str(framework) """ Add a new agent with automatic port allocation diff --git a/runagent/sdk/server/local_server.py b/runagent/sdk/server/local_server.py index 24ee854..83f21af 100644 --- a/runagent/sdk/server/local_server.py +++ b/runagent/sdk/server/local_server.py @@ -537,7 +537,7 @@ def from_path( result = db_service.add_agent_with_auto_port( agent_id=agent_id, agent_path=str(agent_path), - framework=framework, + framework=framework.value if hasattr(framework, 'value') else str(framework), status="ready", preferred_host=host, preferred_port=port, # Will auto-allocate if None or unavailable From 09f3f82740376c77146a1d6c05814cfc8f6a9eae Mon Sep 17 00:00:00 2001 From: RadeenXALNW Date: Fri, 8 Aug 2025 18:22:37 +0000 Subject: [PATCH 05/16] fixing bugs of agent ui --- examples/gpt_5_project/main.py | 1678 ++++++++++++---------- examples/gpt_5_project/static/agent.html | 1074 +++++++++++--- 2 files changed, 1805 insertions(+), 947 deletions(-) diff --git a/examples/gpt_5_project/main.py b/examples/gpt_5_project/main.py index bbb3018..c7f78ef 100644 --- a/examples/gpt_5_project/main.py +++ b/examples/gpt_5_project/main.py @@ -1,6 +1,7 @@ from fastapi import FastAPI, HTTPException from fastapi.middleware.cors import CORSMiddleware from fastapi.staticfiles import StaticFiles +from fastapi.responses import Response from pydantic import BaseModel import os import json @@ -34,67 +35,6 @@ sessions: Dict[str, dict] = {} running_agents: Dict[str, dict] = {} -# Load templates from documents for RAG -TEMPLATES = { - "langgraph": { - "basic": { - "files": [ - "agents.py", - "requirements.txt", - "runagent.config.json" - ], - "description": "Simple LangGraph Problem Solver with two-agent workflow" - }, - "advanced": { - "files": [ - "agent.py", - "main.py", - "requirements.txt" - ], - "description": "Advanced LangGraph agent with conditional routing and tools" - } - }, - "letta": { - "basic": { - "files": [ - "agent.py", - "run.py", - "runagent.config.json" - ], - "description": "Simple Letta agent for conversational AI" - }, - "advanced": { - "files": [ - "agent.py", - "keyword_tool.py", - "run.py", - "runagent.config.json" - ], - "description": "Advanced Letta agent with custom tools" - } - }, - "agno": { - "basic": { - "files": [ - "simple_assistant.py", - "requirements.txt", - "runagent.config.json" - ], - "description": "Simple Agno assistant agent" - } - }, - "llamaindex": { - "basic": { - "files": [ - "math_genius.py", - "requirements.txt", - "runagent.config.json" - ], - "description": "LlamaIndex math agent with function tools" - } - } -} - class ChatRequest(BaseModel): message: str session_id: Optional[str] = None @@ -107,6 +47,7 @@ class ChatResponse(BaseModel): mermaid_diagram: Optional[str] = None agent_id: Optional[str] = None agent_url: Optional[str] = None + sdk_config: Optional[dict] = None # New field for SDK configuration def analyze_user_request(message: str) -> dict: """Use GPT-5 to analyze user request and extract agent requirements.""" @@ -115,13 +56,18 @@ def analyze_user_request(message: str) -> dict: Analyze this user request for creating an AI agent: "{message}" Extract and return a JSON with: - 1. agent_name: A concise name for the agent + 1. agent_name: A concise name for the agent (snake_case, no spaces) 2. framework: One of [langgraph, letta, agno, llamaindex] 3. template_type: "basic" or "advanced" 4. description: What the agent does (2-3 sentences) - 5. main_functionality: Primary purpose - 6. input_fields: List of input field names the agent needs - 7. backend_language: "python" or "typescript" (default python unless specified) + 5. main_functionality: Primary purpose (concise) + 6. input_fields: List of input field names the agent needs (e.g., ["query", "max_results"]) + 7. input_types: Object mapping field names to types (e.g., {{"query": "string", "max_results": "number"}}) + 8. input_descriptions: Object mapping field names to descriptions + 9. expected_output_format: Description of what the agent returns + 10. example_inputs: List of example input objects + 11. backend_language: "python" or "typescript" (default python unless specified) + 12. entrypoint_tags: List of entrypoint tags (e.g., ["main", "main_stream"]) Choose framework based on: - langgraph: Complex workflows, multi-agent systems, decision trees @@ -129,20 +75,33 @@ def analyze_user_request(message: str) -> dict: - agno: Simple assistants, analysis tasks, reporting - llamaindex: RAG, document processing, knowledge retrieval + Make input_fields specific to the use case. For example: + - Weather agent: ["location", "units"] + - Math solver: ["expression", "show_steps"] + - Research agent: ["topic", "depth", "sources"] + - Content writer: ["topic", "style", "length"] + Return only valid JSON. """ try: - # Using GPT-5 Responses API response = openai_client.responses.create( model="gpt-5-mini", input=prompt, reasoning={"effort": "minimal"} ) - # Extract content from GPT-5 response - content = response.output[1].content[0].text # Get the text from output message + content = response.output[1].content[0].text result = json.loads(content) + + # Ensure required fields have defaults + result.setdefault("input_fields", ["query"]) + result.setdefault("input_types", {"query": "string"}) + result.setdefault("input_descriptions", {"query": "User input"}) + result.setdefault("entrypoint_tags", ["main", "main_stream"]) + result.setdefault("expected_output_format", "String response") + result.setdefault("example_inputs", [{"query": "Hello, how can you help me?"}]) + return result except Exception as e: print(f"Error analyzing request: {e}") @@ -152,241 +111,338 @@ def analyze_user_request(message: str) -> dict: "template_type": "basic", "description": "A custom AI agent", "main_functionality": "General assistance", - "input_fields": ["message"], + "input_fields": ["query"], + "input_types": {"query": "string"}, + "input_descriptions": {"query": "User input"}, + "expected_output_format": "String response", + "example_inputs": [{"query": "Hello"}], + "entrypoint_tags": ["main", "main_stream"], "backend_language": "python" } -def generate_mermaid_diagram(agent_info: dict) -> str: - """Generate dynamic Mermaid diagram using GPT-5 with improved validation.""" +def generate_typescript_sdk_test(agent_info: dict, session_dir: Path): + """Generate TypeScript SDK test file with GPT-5""" prompt = f""" - Create a valid Mermaid flowchart diagram for an AI agent with these specifications: + Generate a TypeScript/JavaScript SDK test file for this AI agent using the provided template as reference: Agent Name: {agent_info['agent_name']} Framework: {agent_info['framework']} Description: {agent_info['description']} - Main Functionality: {agent_info['main_functionality']} Input Fields: {agent_info['input_fields']} - - IMPORTANT REQUIREMENTS: - 1. Start with "graph TD" (Top Down layout) - 2. Use simple node IDs (A, B, C, etc.) - 3. Use only basic shapes: rectangles [text], diamonds {{text}}, and circles ((text)) - 4. Use only --> arrows - 5. Keep node text short (under 20 characters) - 6. Maximum 8-10 nodes total - 7. No special characters in node text except spaces and basic punctuation - - Create a workflow showing: - - Input processing (start with user input) - - Framework-specific processing steps for {agent_info['framework']} - - Main functionality: {agent_info['main_functionality']} - - Output generation - - EXAMPLE FORMAT: - graph TD - A[User Input] --> B[Parse Query] - B --> C[{agent_info['framework']} Processing] - C --> D[Generate Response] - D --> E[Return Result] - - Return ONLY the Mermaid code. No explanations, no markdown blocks, no extra text. + Input Types: {agent_info['input_types']} + Input Descriptions: {agent_info['input_descriptions']} + Expected Output: {agent_info['expected_output_format']} + Example Inputs: {agent_info['example_inputs']} + Entrypoint Tags: {agent_info['entrypoint_tags']} + + Create a complete TypeScript/JavaScript file that: + 1. Exports a function `getAgentConfig()` that returns configuration for the dynamic UI + 2. Exports a function `testAgent(agentId, host, port, inputValues, entrypointTag)` that tests the agent + 3. Exports a function `testAgentStream(agentId, host, port, inputValues, entrypointTag)` for streaming + 4. Includes proper error handling and endpoint discovery + 5. Uses HTTP fetch fallback since RunAgent TypeScript SDK may not be available + 6. Provides detailed logging and debugging information + 7. Validates inputs and formats outputs appropriately + + The getAgentConfig() should return an object with: + - agentName: string + - description: string + - framework: string + - inputFields: array of field configurations with name, type, description, required, placeholder + - entrypoints: array of entrypoint configurations with tag, description, streaming + - exampleInputs: array of example input objects + + Make the input fields specific to this agent type. For example: + - Weather agent: location, units, forecast_days + - Math solver: expression, show_steps, precision + - Research agent: topic, depth, max_sources, include_citations + - Content writer: topic, style, tone, word_count, format + + Use appropriate input types: + - "string" for text inputs + - "number" for numeric inputs + - "boolean" for checkboxes + - "textarea" for longer text inputs + + Make the testAgent function robust with multiple endpoint fallbacks and detailed error reporting. + Include the window attachment code at the end for browser compatibility. + + Focus on making this agent-specific and functional. Return only the JavaScript code. """ try: - print("🎨 Generating Mermaid diagram with GPT-5...") - - # Use GPT-5 for dynamic diagram generation response = openai_client.responses.create( model="gpt-5-mini", input=prompt, - reasoning={"effort": "minimal"} # Keep it simple + reasoning={"effort": "minimal"} ) - # Extract the Mermaid code from GPT-5 response - mermaid_code = response.output[1].content[0].text.strip() - - print(f"🔍 Raw GPT-5 output: {mermaid_code}") - - # Clean up the response more thoroughly - mermaid_code = mermaid_code.replace('```mermaid', '').replace('```', '').strip() + sdk_code = response.output[1].content[0].text - # Remove any leading/trailing whitespace from each line - lines = [line.strip() for line in mermaid_code.split('\n') if line.strip()] - mermaid_code = '\n '.join(lines) + # Clean up the code + sdk_code = sdk_code.replace('```typescript', '').replace('```javascript', '').replace('```', '').strip() - # Ensure it starts with a valid Mermaid declaration - if not mermaid_code.startswith(('graph TD', 'graph LR', 'flowchart TD', 'flowchart LR')): - mermaid_code = f"graph TD\n {mermaid_code}" - - # Basic validation - check for required elements - if '-->' not in mermaid_code: - raise Exception("Generated diagram missing arrows (-->)") - - # Validate node format - should have at least some nodes - import re - nodes = re.findall(r'[A-Z]\d*\[.*?\]', mermaid_code) - if len(nodes) < 2: - raise Exception(f"Generated diagram has too few nodes: {len(nodes)}") + # Ensure it includes browser compatibility + if 'window.testAgent' not in sdk_code: + sdk_code += ''' + +// Browser compatibility - attach functions to window +if (typeof window !== 'undefined') { + window.testAgent = testAgent; + window.testAgentStream = testAgentStream; + window.getAgentConfig = getAgentConfig; + console.log('✅ SDK functions attached to window'); +}''' - print(f"✅ Generated valid Mermaid diagram with {len(nodes)} nodes") - print(f"📋 Final Mermaid code:\n{mermaid_code}") + # Write to file + with open(session_dir / "sdk_test.js", "w") as f: + f.write(sdk_code) - return mermaid_code + print(f"✅ Generated TypeScript SDK test file for {agent_info['agent_name']}") + return True except Exception as e: - print(f"❌ Error generating Mermaid diagram: {e}") - -def validate_mermaid_syntax(mermaid_code: str) -> tuple[bool, str]: - """Validate Mermaid syntax before sending to frontend.""" - - try: - # Basic syntax checks - if not mermaid_code.strip(): - return False, "Empty diagram code" + print(f"❌ Error generating TypeScript SDK test: {e}") - if not any(mermaid_code.startswith(prefix) for prefix in ['graph TD', 'graph LR', 'flowchart TD', 'flowchart LR']): - return False, "Missing graph declaration" - - if '-->' not in mermaid_code: - return False, "No arrows found in diagram" - - # Check for balanced brackets - open_brackets = mermaid_code.count('[') + mermaid_code.count('{') + mermaid_code.count('(') - close_brackets = mermaid_code.count(']') + mermaid_code.count('}') + mermaid_code.count(')') + # Enhanced fallback SDK code + fallback_code = f'''// Generated SDK test for {agent_info['agent_name']} +// Framework: {agent_info['framework']} + +export function getAgentConfig() {{ + return {{ + agentName: "{agent_info['agent_name']}", + description: "{agent_info['description']}", + framework: "{agent_info['framework']}", + inputFields: [ + {',\\n '.join([ + '{{\\n name: "{}",\\n type: "{}",\\n description: "{}",\\n required: true,\\n placeholder: "{}"\\n }}'.format( + field, + agent_info['input_types'].get(field, "string"), + agent_info['input_descriptions'].get(field, f"Enter {field}"), + f"Enter {field}..." + ) for field in agent_info['input_fields'] + ])} + ], + entrypoints: [ + {',\\n '.join([ + '{{\\n tag: "{}",\\n description: "{}",\\n streaming: {}\\n }}'.format( + tag, + f"{'Streaming' if 'stream' in tag else 'Synchronous'} endpoint for {agent_info['framework']}", + 'true' if 'stream' in tag else 'false' + ) for tag in agent_info['entrypoint_tags'] + ])} + ], + exampleInputs: {json.dumps(agent_info['example_inputs'], indent=12)} + }}; +}} + +export async function testAgent(agentId, host, port, inputValues, entrypointTag = "main") {{ + try {{ + console.log('🧪 Testing {agent_info['agent_name']} agent...'); + console.log('📝 Input values:', inputValues); + console.log('🎯 Using entrypoint:', entrypointTag); + + const baseUrl = `http://${{host}}:${{port}}`; + const endpointsToTry = [ + `/agents/${{entrypointTag}}/run`, + `/agents/${{entrypointTag}}/invoke`, + `/run`, + `/invoke`, + `/${{entrypointTag}}` + ]; + + let lastError = null; + + for (const endpoint of endpointsToTry) {{ + try {{ + const url = `${{baseUrl}}${{endpoint}}`; + console.log(`🔗 Trying: ${{endpoint}}`); + + const response = await fetch(url, {{ + method: 'POST', + headers: {{ 'Content-Type': 'application/json' }}, + body: JSON.stringify(inputValues) + }}); + + if (response.ok) {{ + const result = await response.text(); + console.log('✅ SUCCESS with:', endpoint); + + return {{ + success: true, + result: result, + endpoint: endpoint, + method: 'http_direct', + statusCode: response.status, + inputValues: inputValues + }}; + }} else {{ + const errorText = await response.text().catch(() => 'No error details'); + lastError = `HTTP ${{response.status}}: ${{errorText}}`; + console.log(`❌ ${{endpoint}} failed: ${{response.status}}`); + }} + + }} catch (error) {{ + lastError = error.message; + console.log(`❌ ${{endpoint}} error:`, error.message); + continue; + }} + }} - if open_brackets != close_brackets: - return False, f"Unbalanced brackets: {open_brackets} open, {close_brackets} close" + throw new Error(`All endpoints failed. Last error: ${{lastError}}`); - # Check for valid node IDs - import re - node_pattern = r'[A-Z]\d*(?:\[.*?\]|\{.*?\}|\(.*?\))?' - nodes = re.findall(node_pattern, mermaid_code) + }} catch (error) {{ + console.error('❌ Agent test failed:', error); + return {{ + success: false, + error: error.message, + method: 'failed', + inputValues: inputValues + }}; + }} +}} + +export async function testAgentStream(agentId, host, port, inputValues, entrypointTag = "main_stream") {{ + try {{ + console.log('🌊 Testing {agent_info['agent_name']} agent streaming...'); + + const baseUrl = `http://${{host}}:${{port}}`; + const endpointsToTry = [ + `/agents/${{entrypointTag}}/stream`, + `/agents/${{entrypointTag}}/run`, + `/stream`, + `/${{entrypointTag}}` + ]; + + for (const endpoint of endpointsToTry) {{ + try {{ + const url = `${{baseUrl}}${{endpoint}}`; + console.log(`🔗 Trying streaming: ${{endpoint}}`); + + const response = await fetch(url, {{ + method: 'POST', + headers: {{ 'Content-Type': 'application/json' }}, + body: JSON.stringify(inputValues) + }}); + + if (response.ok) {{ + let result = ''; + + if (response.body) {{ + const reader = response.body.getReader(); + const decoder = new TextDecoder(); + + while (true) {{ + const {{ done, value }} = await reader.read(); + if (done) break; + result += decoder.decode(value); + }} + }} else {{ + result = await response.text(); + }} + + return {{ + success: true, + result: result, + endpoint: endpoint, + method: 'http_stream', + streaming: true, + inputValues: inputValues + }}; + }} + + }} catch (error) {{ + console.log(`❌ ${{endpoint}} streaming error:`, error.message); + continue; + }} + }} - if len(nodes) < 2: - return False, f"Too few nodes found: {len(nodes)}" + throw new Error('All streaming endpoints failed'); + + }} catch (error) {{ + console.error('❌ Streaming test failed:', error); + return {{ + success: false, + error: error.message, + method: 'failed', + streaming: false, + inputValues: inputValues + }}; + }} +}} + +// Browser compatibility +if (typeof window !== 'undefined') {{ + window.testAgent = testAgent; + window.testAgentStream = testAgentStream; + window.getAgentConfig = getAgentConfig; + console.log('✅ {agent_info['agent_name']} SDK functions loaded'); +}} +''' - return True, "Valid Mermaid syntax" + with open(session_dir / "sdk_test.js", "w") as f: + f.write(fallback_code) - except Exception as e: - return False, f"Validation error: {str(e)}" - - -def generate_custom_framework_files(agent_info: dict, session_dir: Path): - """Generate custom framework files with proper required fields.""" - - agent_code = f'''""" -{agent_info['agent_name']} - {agent_info['description']} -Generated by RunAgent Generator - Custom Framework -""" + print(f"✅ Generated fallback SDK for {agent_info['agent_name']}") + return True -def main(*input_args, **input_kwargs): - """Main entry point for custom agent""" - - # Extract input from various sources - user_input = "" - for field in {agent_info['input_fields']}: - if input_kwargs.get(field): - user_input = str(input_kwargs[field]) - break - - if not user_input and input_args: - user_input = str(input_args[0]) - - if not user_input: - user_input = "Hello, how can I help you?" - - # Simple response for custom framework - response = f""" - Hello! I'm {agent_info['agent_name']}. +def generate_mermaid_diagram(agent_info: dict) -> str: + """Generate dynamic Mermaid diagram using GPT-5""" - {agent_info['description']} + prompt = f""" + Create a valid Mermaid flowchart diagram for an AI agent: - You asked: {{user_input}} + Agent Name: {agent_info['agent_name']} + Framework: {agent_info['framework']} + Description: {agent_info['description']} + Main Functionality: {agent_info['main_functionality']} + Input Fields: {agent_info['input_fields']} - My main functionality is: {agent_info['main_functionality']} + REQUIREMENTS: + 1. Start with "graph TD" + 2. Use simple node IDs (A, B, C, etc.) + 3. Use only basic shapes: [text], {{text}}, ((text)) + 4. Use only --> arrows + 5. Keep node text under 20 characters + 6. Maximum 8 nodes total + 7. Show the specific workflow for this agent type - This is a custom framework implementation. You can modify this code to add your specific logic. + Return ONLY the Mermaid code. """ - return response - -def main_stream(*input_args, **input_kwargs): - """Streaming entry point for custom agent""" - - # Get the main response - response = main(*input_args, **input_kwargs) - - # Simulate streaming by yielding words - words = response.split() - for i, word in enumerate(words): - if i == 0: - yield word - else: - yield f" {{word}}" + try: + response = openai_client.responses.create( + model="gpt-5-mini", + input=prompt, + reasoning={"effort": "minimal"} + ) - # Add small delay for demonstration - import time - time.sleep(0.01) -''' - - with open(session_dir / "agent.py", "w") as f: - f.write(agent_code) - - # Generate minimal requirements - with open(session_dir / "requirements.txt", "w") as f: - f.write("# No additional requirements for custom framework\n") - - # Generate config with ALL required fields - config = { - "agent_name": agent_info['agent_name'], - "description": agent_info['description'], - "framework": "custom", - "template": "custom", - "version": "1.0.0", - "created_at": time.strftime("%Y-%m-%d %H:%M:%S"), - "template_source": { - "repo_url": "https://github.com/runagent-dev/runagent.git", - "path": "templates/custom/basic", - "author": "runagent-generator", - "version": "1.0.0" - }, - "agent_architecture": { - "entrypoints": [ - { - "file": "agent.py", - "module": "main", - "tag": "main" - }, - { - "file": "agent.py", - "module": "main_stream", - "tag": "main_stream" - } - ] - }, - "input_fields": agent_info['input_fields'], - "env_vars": { - "OPENAI_API_KEY": "${OPENAI_API_KEY}" - } - } - - with open(session_dir / "runagent.config.json", "w") as f: - json.dump(config, f, indent=2) - - print(f"✅ Generated custom framework config with required fields") + mermaid_code = response.output[1].content[0].text.strip() + mermaid_code = mermaid_code.replace('```mermaid', '').replace('```', '').strip() + + lines = [line.strip() for line in mermaid_code.split('\n') if line.strip()] + mermaid_code = '\n '.join(lines) + + if not mermaid_code.startswith(('graph TD', 'graph LR')): + mermaid_code = f"graph TD\n {mermaid_code}" + + return mermaid_code + except Exception as e: + print(f"❌ Error generating Mermaid diagram: {e}") + return f"graph TD\n A[User Input] --> B[{agent_info['framework']} Processing]\n B --> C[Generate Response]\n C --> D[Return Result]" + def generate_agent_files(agent_info: dict, session_id: str) -> bool: """Generate agent files based on template and user requirements.""" framework = agent_info['framework'] - template_type = agent_info.get('template_type', 'basic') # Create session directory session_dir = Path(f"generated_agents/{session_id}") session_dir.mkdir(parents=True, exist_ok=True) - # Create .env file with OpenAI API key + # Create .env file env_content = f"""# OpenAI API Key OPENAI_API_KEY={os.getenv('OPENAI_API_KEY', 'your_openai_api_key_here')} @@ -414,44 +470,25 @@ def generate_agent_files(agent_info: dict, session_id: str) -> bool: elif framework == "llamaindex": generate_llamaindex_files(agent_info, session_dir) else: - # Default/custom framework generate_custom_framework_files(agent_info, session_dir) - # Verify the config file was created and is valid + # Generate TypeScript SDK test file + generate_typescript_sdk_test(agent_info, session_dir) + + # Validate config file config_file = session_dir / "runagent.config.json" if not config_file.exists(): raise Exception("Config file was not created") - # Validate the config file with open(config_file, "r") as f: config = json.load(f) - # Check for required fields required_fields = ["agent_name", "description", "framework", "template_source", "agent_architecture"] - missing_fields = [] - - for field in required_fields: - if field not in config: - missing_fields.append(field) + missing_fields = [field for field in required_fields if field not in config] if missing_fields: raise Exception(f"Config missing required fields: {missing_fields}") - # Validate template_source structure - if not isinstance(config.get("template_source"), dict): - raise Exception("template_source must be a dictionary") - - template_source = config["template_source"] - required_template_fields = ["repo_url", "path", "author", "version"] - missing_template_fields = [] - - for field in required_template_fields: - if field not in template_source: - missing_template_fields.append(field) - - if missing_template_fields: - raise Exception(f"template_source missing required fields: {missing_template_fields}") - print(f"✅ Successfully generated and validated {framework} agent") return True @@ -462,39 +499,49 @@ def generate_agent_files(agent_info: dict, session_id: str) -> bool: return False def generate_langgraph_files(agent_info: dict, session_dir: Path): - """Generate LangGraph agent files with proper database avoidance.""" + """Generate LangGraph agent files with proper input handling.""" + + input_fields_str = json.dumps(agent_info['input_fields']) + input_types_str = json.dumps(agent_info['input_types']) - # Generate main agent file agent_code = f'''""" {agent_info['agent_name']} - {agent_info['description']} Generated by RunAgent Generator """ -from typing import List, TypedDict +from typing import List, TypedDict, Any from langchain_core.messages import HumanMessage from langchain_openai import ChatOpenAI from langgraph.graph import END, StateGraph class AgentState(TypedDict): - query: str - result: str input_data: dict + result: str llm = ChatOpenAI(model="gpt-4o-mini", temperature=0.3) def process_agent(state: AgentState) -> AgentState: """Main processing function for {agent_info['agent_name']}""" - query = state['query'] input_data = state.get('input_data', {{}}) + # Extract relevant inputs + extracted_info = [] + for field in {input_fields_str}: + if field in input_data: + extracted_info.append(f"{{field}}: {{input_data[field]}}") + + input_summary = "\\n".join(extracted_info) if extracted_info else "No specific input provided" + prompt = f""" {agent_info['description']} - User query: {{query}} - Input data: {{input_data}} + Main functionality: {agent_info['main_functionality']} + + User input: + {{input_summary}} - Please provide a helpful response based on the functionality: {agent_info['main_functionality']} + Please provide a helpful response based on this agent's purpose. """ response = llm.invoke([HumanMessage(content=prompt)]) @@ -517,23 +564,8 @@ def create_workflow(): def main(*input_args, **input_kwargs): """Main entry point for RunAgent (standard)""" - # Extract query and input data - query = input_kwargs.get("query", "") - if not query and input_args: - query = str(input_args[0]) - - # Handle different input field names - for field in {agent_info['input_fields']}: - if field in input_kwargs: - query = str(input_kwargs[field]) - break - - if not query: - query = "Hello, how can I help you?" - # Run the workflow result = app.invoke({{ - "query": query, "input_data": input_kwargs, "result": "" }}) @@ -542,27 +574,16 @@ def main(*input_args, **input_kwargs): def main_stream(*input_args, **input_kwargs): """Streaming entry point""" - query = input_kwargs.get("query", "") - if not query and input_args: - query = str(input_args[0]) - # Handle different input field names - for field in {agent_info['input_fields']}: - if field in input_kwargs: - query = str(input_kwargs[field]) - break - - if not query: - query = "Hello, how can I help you?" - - # Stream the workflow execution try: for chunk in app.stream({{ - "query": query, "input_data": input_kwargs, "result": "" }}): - yield str(chunk) + if "result" in chunk.get("process", {{}}): + yield chunk["process"]["result"] + else: + yield str(chunk) except Exception as e: yield f"Error: {{str(e)}}" ''' @@ -581,7 +602,7 @@ def main_stream(*input_args, **input_kwargs): with open(session_dir / "requirements.txt", "w") as f: f.write(requirements) - # Generate runagent.config.json with ALL required fields + # Generate runagent.config.json config = { "agent_name": agent_info['agent_name'], "description": agent_info['description'], @@ -610,6 +631,8 @@ def main_stream(*input_args, **input_kwargs): ] }, "input_fields": agent_info['input_fields'], + "input_types": agent_info['input_types'], + "input_descriptions": agent_info['input_descriptions'], "env_vars": { "OPENAI_API_KEY": "${OPENAI_API_KEY}" } @@ -617,11 +640,139 @@ def main_stream(*input_args, **input_kwargs): with open(session_dir / "runagent.config.json", "w") as f: json.dump(config, f, indent=2) + +def generate_agno_files(agent_info: dict, session_dir: Path): + """Generate Agno agent files with proper input handling.""" + + input_fields_str = json.dumps(agent_info['input_fields']) - print(f"✅ Generated LangGraph config with all required fields:") + agent_code = f'''from functools import partial +from agno.agent import Agent +from agno.models.openai import OpenAIChat + +agent = Agent( + model=OpenAIChat(id="gpt-4o-mini"), + description="{agent_info['description']}", + instructions="Focus on: {agent_info['main_functionality']}", + markdown=True +) + +def agent_run(*input_args, **input_kwargs): + """Main agent function""" + + # Extract input from various sources + input_parts = [] + for field in {input_fields_str}: + if input_kwargs.get(field): + input_parts.append(f"{{field}}: {{input_kwargs[field]}}") + + if not input_parts and input_args: + input_parts.append(f"Input: {{str(input_args[0])}}") + + if not input_parts: + input_parts.append("No specific input provided") + + user_input = "\\n".join(input_parts) + + # Add context about the agent's purpose + full_prompt = f""" + {agent_info['description']} + + User input: + {{user_input}} + + Please provide a helpful response focused on: {agent_info['main_functionality']} + """ + + response = agent.run(full_prompt) + + return {{ + "content": response.content if hasattr(response, 'content') else str(response), + }} + +def agent_run_stream(*input_args, **input_kwargs): + """Streaming agent function""" + + input_parts = [] + for field in {input_fields_str}: + if input_kwargs.get(field): + input_parts.append(f"{{field}}: {{input_kwargs[field]}}") + + if not input_parts and input_args: + input_parts.append(f"Input: {{str(input_args[0])}}") + + if not input_parts: + input_parts.append("No specific input provided") + + user_input = "\\n".join(input_parts) + + full_prompt = f""" + {agent_info['description']} + + User input: + {{user_input}} + + Please provide a helpful response focused on: {agent_info['main_functionality']} + """ + + for chunk in agent.run(full_prompt, stream=True): + yield {{ + "content": chunk.content if hasattr(chunk, 'content') else str(chunk) + }} +''' + + with open(session_dir / "agent.py", "w") as f: + f.write(agent_code) + + # Generate requirements + with open(session_dir / "requirements.txt", "w") as f: + f.write("agno>=1.7.2\n") + + # Generate config + config = { + "agent_name": agent_info['agent_name'], + "description": agent_info['description'], + "framework": "agno", + "template": "custom", + "version": "1.0.0", + "created_at": time.strftime("%Y-%m-%d %H:%M:%S"), + "template_source": { + "repo_url": "https://github.com/runagent-dev/runagent.git", + "path": "generated/custom", + "author": "runagent-generator", + "version": "1.0.0" + }, + "agent_architecture": { + "entrypoints": [ + { + "file": "agent.py", + "module": "agent_run", + "tag": "main", + "extractor": {"content": "$.content"} + }, + { + "file": "agent.py", + "module": "agent_run_stream", + "tag": "main_stream", + "extractor": {"content": "$.content"} + } + ] + }, + "input_fields": agent_info['input_fields'], + "input_types": agent_info['input_types'], + "input_descriptions": agent_info['input_descriptions'], + "env_vars": { + "OPENAI_API_KEY": "${OPENAI_API_KEY}" + } + } + + with open(session_dir / "runagent.config.json", "w") as f: + json.dump(config, f, indent=2) def generate_letta_files(agent_info: dict, session_dir: Path): - """Generate Letta agent files.""" + """Generate Letta agent files with proper input handling.""" + + input_fields_str = json.dumps(agent_info['input_fields']) agent_code = f'''import os from typing import Any @@ -634,15 +785,15 @@ def _extract_message_from_input(*input_args, **input_kwargs) -> str: """Extract message from various input formats""" # Try different input field names - for field in {agent_info['input_fields']}: + input_parts = [] + for field in {input_fields_str}: if input_kwargs.get(field): - return str(input_kwargs[field]) + input_parts.append(f"{{field}}: {{input_kwargs[field]}}") - # Try first positional argument - if input_args and isinstance(input_args[0], str): - return input_args[0] + if not input_parts and input_args and isinstance(input_args[0], str): + input_parts.append(f"Input: {{input_args[0]}}") - return "No input provided" + return "\\n".join(input_parts) if input_parts else "No input provided" def letta_run(*input_args, **input_kwargs): """Main Letta agent function""" @@ -718,131 +869,11 @@ def letta_run_stream(*input_args, **input_kwargs): stream_tokens=True, ) - for chunk in stream: - yield chunk - - except Exception as e: - yield f"Letta streaming error: {{str(e)}}" -''' - - with open(session_dir / "agent.py", "w") as f: - f.write(agent_code) - - # Generate requirements - with open(session_dir / "requirements.txt", "w") as f: - f.write("letta-client>=0.1.0\npython-dotenv>=1.0.0\n") - - # Generate config with ALL required fields - config = { - "agent_name": agent_info['agent_name'], - "description": agent_info['description'], - "framework": "letta", - "template": "custom", - "version": "1.0.0", - "created_at": time.strftime("%Y-%m-%d %H:%M:%S"), - "template_source": { - "repo_url": "https://github.com/runagent-dev/runagent.git", - "path": "generated/custom", - "author": "runagent-generator", - "version": "1.0.0" - }, - "agent_architecture": { - "entrypoints": [ - { - "file": "agent.py", - "module": "letta_run", - "tag": "main" - }, - { - "file": "agent.py", - "module": "letta_run_stream", - "tag": "main_stream" - } - ] - }, - "input_fields": agent_info['input_fields'], - "env_vars": { - "OPENAI_API_KEY": "${OPENAI_API_KEY}", - "LETTA_SERVER_URL": "http://localhost:8283" - } - } - - with open(session_dir / "runagent.config.json", "w") as f: - json.dump(config, f, indent=2) - - print(f"✅ Generated Letta config with all required fields") -def generate_agno_files(agent_info: dict, session_dir: Path): - """Generate Agno agent files.""" - - agent_code = f'''from functools import partial -from agno.agent import Agent -from agno.models.openai import OpenAIChat - -agent = Agent( - model=OpenAIChat(id="gpt-4o-mini"), - description="{agent_info['description']}", - instructions="Focus on: {agent_info['main_functionality']}", - markdown=True -) - -def agent_run(*input_args, **input_kwargs): - """Main agent function""" - - # Extract input from various sources - prompt = "" - for field in {agent_info['input_fields']}: - if input_kwargs.get(field): - prompt = str(input_kwargs[field]) - break - - if not prompt and input_args: - prompt = str(input_args[0]) - - if not prompt: - prompt = "Hello, how can I help you?" - - # Add context about the agent's purpose - full_prompt = f""" - {agent_info['description']} - - User request: {{prompt}} - - Please provide a helpful response focused on: {agent_info['main_functionality']} - """ - - response = agent.run(full_prompt) - - return {{ - "content": response.content if hasattr(response, 'content') else str(response), - }} - -def agent_run_stream(*input_args, **input_kwargs): - """Streaming agent function""" - - prompt = "" - for field in {agent_info['input_fields']}: - if input_kwargs.get(field): - prompt = str(input_kwargs[field]) - break - - if not prompt and input_args: - prompt = str(input_args[0]) - - if not prompt: - prompt = "Hello, how can I help you?" - - full_prompt = f""" - {agent_info['description']} - - User request: {{prompt}} - - Please provide a helpful response focused on: {agent_info['main_functionality']} - """ - - for chunk in agent.run(full_prompt, stream=True): - yield {{ - "content": chunk.content if hasattr(chunk, 'content') else str(chunk) - }} + for chunk in stream: + yield chunk + + except Exception as e: + yield f"Letta streaming error: {{str(e)}}" ''' with open(session_dir / "agent.py", "w") as f: @@ -850,13 +881,13 @@ def agent_run_stream(*input_args, **input_kwargs): # Generate requirements with open(session_dir / "requirements.txt", "w") as f: - f.write("agno>=1.7.2\n") + f.write("letta-client>=0.1.0\npython-dotenv>=1.0.0\n") - # Generate config with ALL required fields + # Generate config config = { "agent_name": agent_info['agent_name'], "description": agent_info['description'], - "framework": "agno", + "framework": "letta", "template": "custom", "version": "1.0.0", "created_at": time.strftime("%Y-%m-%d %H:%M:%S"), @@ -870,66 +901,65 @@ def agent_run_stream(*input_args, **input_kwargs): "entrypoints": [ { "file": "agent.py", - "module": "agent_run", - "tag": "main", - "extractor": {{"content": "$.content"}} + "module": "letta_run", + "tag": "main" }, { "file": "agent.py", - "module": "agent_run_stream", - "tag": "main_stream", - "extractor": {{"content": "$.content"}} + "module": "letta_run_stream", + "tag": "main_stream" } ] }, "input_fields": agent_info['input_fields'], + "input_types": agent_info['input_types'], + "input_descriptions": agent_info['input_descriptions'], "env_vars": { - "OPENAI_API_KEY": "${OPENAI_API_KEY}" + "OPENAI_API_KEY": "${OPENAI_API_KEY}", + "LETTA_SERVER_URL": "http://localhost:8283" } } with open(session_dir / "runagent.config.json", "w") as f: json.dump(config, f, indent=2) - - print(f"✅ Generated Agno config with all required fields") def generate_llamaindex_files(agent_info: dict, session_dir: Path): - """Generate LlamaIndex agent files.""" + """Generate LlamaIndex agent files with proper input handling.""" + + input_fields_str = json.dumps(agent_info['input_fields']) agent_code = f'''from llama_index.llms.openai import OpenAI from llama_index.core.agent.workflow import AgentStream from llama_index.core.agent.workflow import FunctionAgent +# Define a simple tool based on agent functionality +def process_request(query: str) -> str: + """Process user request based on agent functionality.""" + return f"Processing: {{query}} for {agent_info['main_functionality']}" -# Define a simple calculator tool -def multiply(a: float, b: float) -> float: - """Useful for multiplying two numbers.""" - return a * b - - -# Create an agent workflow with our calculator tool +# Create an agent workflow agent = FunctionAgent( - tools=[multiply], + tools=[process_request], llm=OpenAI(model="gpt-4o-mini"), system_prompt="{agent_info['description']} Focus on: {agent_info['main_functionality']}", ) - async def agent_run(*input_args, **input_kwargs): """Main agent function""" # Extract input from various sources - user_input = "" - for field in {agent_info['input_fields']}: + input_parts = [] + for field in {input_fields_str}: if input_kwargs.get(field): - user_input = str(input_kwargs[field]) - break + input_parts.append(f"{{field}}: {{input_kwargs[field]}}") + + if not input_parts and input_args: + input_parts.append(f"Input: {{str(input_args[0])}}") - if not user_input and input_args: - user_input = str(input_args[0]) + if not input_parts: + input_parts.append("No specific input provided") - if not user_input: - user_input = "Hello, how can I help you?" + user_input = "\\n".join(input_parts) response = await agent.run(user_input) return response @@ -937,17 +967,18 @@ async def agent_run(*input_args, **input_kwargs): async def agent_run_stream(*input_args, **input_kwargs): """Streaming agent function""" - user_input = "" - for field in {agent_info['input_fields']}: + input_parts = [] + for field in {input_fields_str}: if input_kwargs.get(field): - user_input = str(input_kwargs[field]) - break + input_parts.append(f"{{field}}: {{input_kwargs[field]}}") - if not user_input and input_args: - user_input = str(input_args[0]) + if not input_parts and input_args: + input_parts.append(f"Input: {{str(input_args[0])}}") - if not user_input: - user_input = "Hello, how can I help you?" + if not input_parts: + input_parts.append("No specific input provided") + + user_input = "\\n".join(input_parts) handler = agent.run(user_msg=user_input) async for event in handler.stream_events(): @@ -964,7 +995,7 @@ async def agent_run_stream(*input_args, **input_kwargs): with open(session_dir / "requirements.txt", "w") as f: f.write("llama-index>=0.12.48\nllama-index-llms-openai>=0.3.0\n") - # Generate config with ALL required fields (including template_source) + # Generate config config = { "agent_name": agent_info['agent_name'], "description": agent_info['description'], @@ -993,6 +1024,8 @@ async def agent_run_stream(*input_args, **input_kwargs): ] }, "input_fields": agent_info['input_fields'], + "input_types": agent_info['input_types'], + "input_descriptions": agent_info['input_descriptions'], "env_vars": { "OPENAI_API_KEY": "${OPENAI_API_KEY}" } @@ -1000,15 +1033,119 @@ async def agent_run_stream(*input_args, **input_kwargs): with open(session_dir / "runagent.config.json", "w") as f: json.dump(config, f, indent=2) + +def generate_custom_framework_files(agent_info: dict, session_dir: Path): + """Generate custom framework files with proper input handling.""" + + input_fields_str = json.dumps(agent_info['input_fields']) + + agent_code = f'''""" +{agent_info['agent_name']} - {agent_info['description']} +Generated by RunAgent Generator - Custom Framework +""" + +def main(*input_args, **input_kwargs): + """Main entry point for custom agent""" + + # Extract input from various sources + input_parts = [] + for field in {input_fields_str}: + if input_kwargs.get(field): + input_parts.append(f"{{field}}: {{input_kwargs[field]}}") + + if not input_parts and input_args: + input_parts.append(f"Input: {{str(input_args[0])}}") + + if not input_parts: + input_parts.append("Hello, how can I help you?") + + user_input = "\\n".join(input_parts) + + # Simple response for custom framework + response = f""" +Hello! I'm {agent_info['agent_name']}. + +{agent_info['description']} + +You provided: {{user_input}} + +My main functionality is: {agent_info['main_functionality']} + +This is a custom framework implementation. You can modify this code to add your specific logic. + """ + + return response.strip() + +def main_stream(*input_args, **input_kwargs): + """Streaming entry point for custom agent""" + + # Get the main response + response = main(*input_args, **input_kwargs) + + # Simulate streaming by yielding words + words = response.split() + for i, word in enumerate(words): + if i == 0: + yield word + else: + yield f" {{word}}" + + # Add small delay for demonstration + import time + time.sleep(0.01) +''' + + with open(session_dir / "agent.py", "w") as f: + f.write(agent_code) + + # Generate minimal requirements + with open(session_dir / "requirements.txt", "w") as f: + f.write("# No additional requirements for custom framework\n") + + # Generate config + config = { + "agent_name": agent_info['agent_name'], + "description": agent_info['description'], + "framework": "custom", + "template": "custom", + "version": "1.0.0", + "created_at": time.strftime("%Y-%m-%d %H:%M:%S"), + "template_source": { + "repo_url": "https://github.com/runagent-dev/runagent.git", + "path": "templates/custom/basic", + "author": "runagent-generator", + "version": "1.0.0" + }, + "agent_architecture": { + "entrypoints": [ + { + "file": "agent.py", + "module": "main", + "tag": "main" + }, + { + "file": "agent.py", + "module": "main_stream", + "tag": "main_stream" + } + ] + }, + "input_fields": agent_info['input_fields'], + "input_types": agent_info['input_types'], + "input_descriptions": agent_info['input_descriptions'], + "env_vars": { + "OPENAI_API_KEY": "${OPENAI_API_KEY}" + } + } - print(f"✅ Generated LlamaIndex config with all required fields") + with open(session_dir / "runagent.config.json", "w") as f: + json.dump(config, f, indent=2) def start_runagent_server(session_dir: str, session_id: str): - """Start runagent server - use only the RunAgent server ID""" + """Start runagent server and return connection info""" try: print(f"🚀 Starting RunAgent server for session: {session_id}") - print(f"📂 Working directory: {session_dir}") # Install dependencies print("📦 Installing agent dependencies...") @@ -1030,8 +1167,6 @@ def start_runagent_server(session_dir: str, session_id: str): # Start RunAgent server cmd = ["runagent", "serve", "."] - print(f"🔧 Running command: {' '.join(cmd)}") - process = subprocess.Popen( cmd, cwd=session_dir, @@ -1043,20 +1178,17 @@ def start_runagent_server(session_dir: str, session_id: str): env=env ) - # Wait and extract port info - print("📡 Waiting for RunAgent server to start...") - + # Wait and extract info detected_port = None runagent_agent_id = None - # Read first few lines to get the port and agent ID + # Read output to get port and agent ID for i in range(50): try: line = process.stdout.readline() if line: print(f"RunAgent: {line.strip()}") - # Extract port from output if "Allocated address:" in line and "127.0.0.1:" in line: try: port_part = line.split("127.0.0.1:")[-1].strip() @@ -1065,7 +1197,6 @@ def start_runagent_server(session_dir: str, session_id: str): except: pass - # Extract agent ID from output if "New agent created with ID:" in line: try: runagent_agent_id = line.split("ID:")[-1].strip() @@ -1073,7 +1204,6 @@ def start_runagent_server(session_dir: str, session_id: str): except: pass - # Stop reading once we have both pieces of info if detected_port and runagent_agent_id: break @@ -1087,45 +1217,33 @@ def start_runagent_server(session_dir: str, session_id: str): # Default values if not detected if not detected_port: detected_port = 8450 - print(f"🔌 Using default port: {detected_port}") - if not runagent_agent_id: runagent_agent_id = str(uuid.uuid4()) - print(f"🆔 Generated fallback Agent ID: {runagent_agent_id}") - # Wait for server to fully initialize - print("⏳ Waiting for server to fully initialize...") + # Wait for server to initialize time.sleep(3) - # Use the ACTUAL RunAgent agent ID for everything agent_url = f"http://localhost:8000/static/agent.html?agent={runagent_agent_id}" - # Get session info + # Update session session = sessions.get(session_id, {}) - agent_info = session.get("agent_info", {}) - - # Store completion time in session session["completion_time"] = time.time() session["runagent_port"] = detected_port - session["agent_id"] = runagent_agent_id # Use the actual RunAgent ID + session["agent_id"] = runagent_agent_id - # Store agent info using the REAL agent ID + # Store running agent info running_agents[runagent_agent_id] = { "process": process, - "agent_id": runagent_agent_id, # Same ID everywhere + "agent_id": runagent_agent_id, "agent_url": agent_url, "port": detected_port, "runagent_url": f"http://localhost:{detected_port}", "session_id": session_id, "status": "active", - "agent_info": agent_info + "agent_info": session.get("agent_info", {}) } print(f"🎉 RunAgent server started successfully!") - print(f"🔗 Agent ID: {runagent_agent_id}") - print(f"🌐 RunAgent URL: http://localhost:{detected_port}") - print(f"🖥️ UI URL: {agent_url}") - return runagent_agent_id, agent_url, detected_port except Exception as e: @@ -1141,8 +1259,7 @@ async def chat_endpoint(request: ChatRequest): session_id = request.session_id or str(uuid.uuid4()) message = request.message.strip() - # Debug logging - print(f"🔍 Received message: '{request.message}' (processed: '{message}')") + print(f"🔍 Received message: '{message}'") print(f"🆔 Session ID: {session_id}") # Get or create session @@ -1155,8 +1272,6 @@ async def chat_endpoint(request: ChatRequest): } session = sessions[session_id] - print(f"📊 Current stage: {session['stage']}") - session["messages"].append({"role": "user", "content": request.message}) try: @@ -1173,65 +1288,61 @@ async def chat_endpoint(request: ChatRequest): **Description:** {agent_info['description']} **Main Functionality:** {agent_info['main_functionality']} **Input Fields:** {', '.join(agent_info['input_fields'])} +**Expected Output:** {agent_info['expected_output_format']} Let me create a workflow diagram for this agent...""" - print("🎨 Generating dynamic Mermaid diagram with GPT-5...") - try: - mermaid_diagram = generate_mermaid_diagram(agent_info) - - # Validate the generated diagram - is_valid, validation_message = validate_mermaid_syntax(mermaid_diagram) - if not is_valid: - print(f"⚠️ Generated diagram validation failed: {validation_message}") - print(f"🔧 Attempting to fix diagram...") - - # Try simple fixes - if "Missing graph declaration" in validation_message: - mermaid_diagram = f"graph TD\n {mermaid_diagram}" - - # Re-validate - is_valid, _ = validate_mermaid_syntax(mermaid_diagram) - - if is_valid: - print("✅ Mermaid diagram generated and validated successfully") - else: - print("❌ Could not generate valid Mermaid diagram") - - except Exception as e: - print(f"❌ Mermaid generation failed: {e}") - # Don't fail the entire request - the frontend will show the error - mermaid_diagram = None + # Generate Mermaid diagram + mermaid_diagram = generate_mermaid_diagram(agent_info) + + # Include SDK configuration in response + sdk_config = { + "inputFields": [ + { + "name": field, + "type": agent_info['input_types'].get(field, "string"), + "description": agent_info['input_descriptions'].get(field, f"Enter {field}"), + "required": True, + "placeholder": f"Enter {field}..." + } for field in agent_info['input_fields'] + ], + "entrypoints": [ + { + "tag": tag, + "description": f"Main {'streaming' if 'stream' in tag else 'synchronous'} endpoint", + "streaming": "stream" in tag + } for tag in agent_info['entrypoint_tags'] + ], + "exampleInputs": agent_info['example_inputs'] + } return ChatResponse( response=description, session_id=session_id, stage="planning", description=agent_info['description'], - mermaid_diagram=mermaid_diagram + mermaid_diagram=mermaid_diagram, + sdk_config=sdk_config ) - # Stage 2: Planning - handle user feedback/modifications + # Stage 2: Planning elif session["stage"] == "planning": if any(phrase in message.lower() for phrase in ["go for it", "generate", "create it", "build it", "make it", "proceed", "continue", "yes", "start"]): print(f"🚀 Starting agent generation for session {session_id}") # Generate agent files - print("📁 Generating agent files...") success = generate_agent_files(session["agent_info"], session_id) if not success: raise Exception("Failed to generate agent files") - print(f"✅ Files generated successfully for session {session_id}") session["files_generated"] = True session["stage"] = "starting" - # Start RunAgent server immediately in background + # Start RunAgent server in background session_dir_path = Path(f"generated_agents/{session_id}") def start_agent(): - print(f"🚀 Background task: Starting agent for session {session_id}") try: agent_id, agent_url, port = start_runagent_server(str(session_dir_path), session_id) @@ -1241,7 +1352,6 @@ def start_agent(): session["runagent_port"] = port session["stage"] = "complete" - # Store agent info for the agent UI to access running_agents[agent_id] = { "agent_info": session["agent_info"], "session_id": session_id, @@ -1249,18 +1359,13 @@ def start_agent(): "port": port, "runagent_url": f"http://localhost:{port}" } - print(f"✅ Agent {agent_id} is now ready at port {port}!") else: session["stage"] = "error" session["error"] = "Failed to start RunAgent server" - print(f"❌ Failed to start agent for session {session_id}") except Exception as e: - print(f"❌ Error in background agent start: {e}") session["stage"] = "error" session["error"] = str(e) - # Start the agent server in background - print(f"🔄 Starting background thread for session {session_id}") threading.Thread(target=start_agent, daemon=True).start() return ChatResponse( @@ -1271,29 +1376,26 @@ def start_agent(): This involves: 1. Installing {session["agent_info"]["framework"]} dependencies 2. Starting RunAgent server on available port -3. Initializing your agent +3. Initializing your agent with custom TypeScript SDK integration -⏳ Please wait 30-90 seconds, then **send any message** (like "status") to check if it's ready.""", +⏳ Please wait 30-90 seconds, then **send any message** to check if it's ready.""", session_id=session_id, stage="starting" ) else: # Handle modifications + mermaid_diagram = generate_mermaid_diagram(session["agent_info"]) return ChatResponse( response="I can help you modify the agent. What would you like to change? Or say 'go for it' or 'generate' to proceed with the current design.", session_id=session_id, stage="planning", description=session["agent_info"]["description"], - mermaid_diagram=generate_mermaid_diagram(session["agent_info"]) + mermaid_diagram=mermaid_diagram ) - # Stage 3: Check agent status or continue if starting + # Stage 3: Check agent status elif session["stage"] == "starting": - print(f"📊 Checking status for starting session {session_id}") - - # Check if agent has been started in the background if session.get("agent_id") and session.get("agent_url"): - # Agent is ready! session["stage"] = "complete" agent_id = session["agent_id"] agent_url = session["agent_url"] @@ -1309,9 +1411,12 @@ def start_agent(): **RunAgent Server:** `http://localhost:{runagent_port}` -Your {session["agent_info"]["framework"]} agent is running and ready to process real requests! +Your {session["agent_info"]["framework"]} agent is running with: +- Dynamic input fields based on your requirements +- Custom TypeScript SDK integration +- Both synchronous and streaming endpoints -The agent interface connects directly to your RunAgent server for authentic responses.""", +The agent interface will automatically configure inputs based on the generated SDK configuration!""", session_id=session_id, stage="complete", agent_id=agent_id, @@ -1319,30 +1424,27 @@ def start_agent(): ) elif session.get("stage") == "error": error_msg = session.get("error", "Unknown error occurred") - print(f"❌ Error in session {session_id}: {error_msg}") return ChatResponse( response=f"❌ Error starting agent: {error_msg}\n\nPlease try again or check the server logs.", session_id=session_id, stage="error" ) else: - # Still starting return ChatResponse( response="""⏳ Still starting your agent server... The process includes: -- Installing dependencies (this can take time for first install) +- Installing dependencies +- Generating TypeScript SDK integration - Initializing the RunAgent framework - Starting the server and verifying connectivity -Please wait a bit longer and send another message to check status. - -If it takes more than 3-4 minutes, there might be an issue with dependencies or port conflicts.""", +Please wait a bit longer and send another message to check status.""", session_id=session_id, stage="starting" ) - # Agent is complete or checking status + # Agent is complete else: if session["stage"] == "complete": agent_id = session.get("agent_id") @@ -1359,27 +1461,12 @@ def start_agent(): **RunAgent Server:** `http://localhost:{runagent_port}` -Your {session["agent_info"]["framework"]} agent is running and will provide real responses based on your framework choice! - -The agent interface connects directly to your RunAgent server for authentic responses.""", +Your {session["agent_info"]["framework"]} agent is running with dynamic inputs and TypeScript SDK integration!""", session_id=session_id, stage="complete", agent_id=agent_id, agent_url=agent_url ) - elif session["stage"] == "starting": - return ChatResponse( - response="⏳ Still starting your agent server... Please wait a bit longer and try again.", - session_id=session_id, - stage="starting" - ) - elif session["stage"] == "error": - error_msg = session.get("error", "Unknown error") - return ChatResponse( - response=f"❌ Error: {error_msg}\n\nYou can try starting over by describing a new agent.", - session_id=session_id, - stage="error" - ) else: return ChatResponse( response=f"Your agent status: {session.get('stage', 'unknown')}. How can I help you?", @@ -1398,156 +1485,285 @@ def start_agent(): stage="error" ) -@app.get("/debug/agent-logs/{agent_id}") -async def get_agent_logs(agent_id: str): - """Get logs for a specific agent to help with debugging.""" - - # Check in running_agents first - if agent_id in running_agents: - agent_data = running_agents[agent_id] - if "process" in agent_data and agent_data["process"]: - process = agent_data["process"] - return { - "agent_id": agent_id, - "status": "running" if process.poll() is None else "stopped", - "port": agent_data.get("port"), - "session_id": agent_data.get("session_id") - } - - # Find session with this agent_id - for session_id, session in sessions.items(): - if session.get("agent_id") == agent_id: - return { - "agent_id": agent_id, - "session_id": session_id, - "stage": session.get("stage"), - "agent_info": session.get("agent_info"), - "error": session.get("error") +@app.get("/agent/{agent_id}") +async def get_agent_info(agent_id: str): + """Get comprehensive agent information including SDK configuration""" + try: + print(f"🔍 Looking for agent ID: {agent_id}") + + # Find agent data + agent_data = None + session_id = None + + if agent_id in running_agents: + agent_data = running_agents[agent_id] + session_id = agent_data.get("session_id") + else: + # Check sessions + for sid, session in sessions.items(): + if session.get("agent_id") == agent_id: + session_id = sid + agent_info = session.get("agent_info", {}) + port = session.get("runagent_port", 8450) + agent_data = { + "agent_info": agent_info, + "port": port + } + break + + if not agent_data: + raise HTTPException(status_code=404, detail=f"Agent {agent_id} not found") + + agent_info = agent_data.get("agent_info", {}) + port = agent_data.get("port", 8450) + + # Check if SDK file exists + sdk_available = False + sdk_url = None + if session_id: + sdk_file = Path(f"generated_agents/{session_id}/sdk_test.js") + if sdk_file.exists(): + sdk_available = True + sdk_url = f"http://localhost:8000/agent/{agent_id}/sdk" + + return { + "agent_info": { + "agent_name": agent_info.get("agent_name", "Unknown Agent"), + "description": agent_info.get("description", "AI Agent"), + "framework": agent_info.get("framework", "custom"), + "input_fields": agent_info.get("input_fields", ["query"]), + "input_types": agent_info.get("input_types", {"query": "string"}), + "input_descriptions": agent_info.get("input_descriptions", {"query": "User input"}), + "main_functionality": agent_info.get("main_functionality", "General assistance"), + "expected_output_format": agent_info.get("expected_output_format", "String response"), + "example_inputs": agent_info.get("example_inputs", [{"query": "Hello"}]), + "entrypoint_tags": agent_info.get("entrypoint_tags", ["main", "main_stream"]), + "port": port, + "runagent_url": f"http://localhost:{port}", + "runagent_agent_id": agent_id, + "status": "ready", + "sdk_available": sdk_available, + "sdk_url": sdk_url, + "session_id": session_id } - - raise HTTPException(status_code=404, detail="Agent not found") + } + + except HTTPException: + raise + except Exception as e: + print(f"❌ Error getting agent info: {e}") + raise HTTPException(status_code=500, detail=f"Server error: {str(e)}") -@app.get("/health") -async def health_check(): - return {"status": "healthy", "active_sessions": len(sessions)} +@app.get("/agent/{agent_id}/sdk") +async def serve_agent_sdk(agent_id: str): + """Serve the generated SDK JavaScript file for dynamic loading""" + try: + # Find the session directory + session_id = None + for sid, session in sessions.items(): + if session.get("agent_id") == agent_id: + session_id = sid + break + + if not session_id: + raise HTTPException(status_code=404, detail="Agent session not found") + + sdk_file = Path(f"generated_agents/{session_id}/sdk_test.js") + if not sdk_file.exists(): + raise HTTPException(status_code=404, detail="SDK file not found") + + # Read and return the SDK file with proper content type + with open(sdk_file, "r") as f: + sdk_content = f.read() + + return Response( + content=sdk_content, + media_type="application/javascript", + headers={"Cache-Control": "no-cache"} + ) + + except HTTPException: + raise + except Exception as e: + raise HTTPException(status_code=500, detail=f"Error serving SDK: {str(e)}") -@app.get("/debug/test-runagent/{agent_id}") -async def test_runagent_connection(agent_id: str): - """Test connection to a running RunAgent server.""" - import requests - - # Find the agent's port - port = None - if agent_id in running_agents: - port = running_agents[agent_id].get("port") - else: - # Check sessions - for session_id, session in sessions.items(): +@app.get("/agent/{agent_id}/sdk-config") +async def get_agent_sdk_config(agent_id: str): + """Get the generated SDK configuration for the agent""" + try: + # Find the session directory + session_id = None + for sid, session in sessions.items(): if session.get("agent_id") == agent_id: - port = session.get("runagent_port") + session_id = sid break - - if not port: - return {"error": "Agent not found or port not available"} - - base_url = f"http://localhost:{port}" - - # Test various endpoints - results = {} - - test_endpoints = [ - "/", - "/health", - "/docs", - "/run", - "/agents", - "/agents/main/run" - ] - - for endpoint in test_endpoints: - try: - response = requests.get(f"{base_url}{endpoint}", timeout=5) - results[endpoint] = { - "status": response.status_code, - "accessible": True, - "content_type": response.headers.get("content-type", ""), - "content_preview": response.text[:200] if response.text else "" - } - except Exception as e: - results[endpoint] = { - "status": "error", - "accessible": False, - "error": str(e) - } - - return { - "agent_id": agent_id, - "port": port, - "base_url": base_url, - "endpoints": results - } + + if not session_id: + raise HTTPException(status_code=404, detail="Agent session not found") + + sdk_file = Path(f"generated_agents/{session_id}/sdk_test.js") + if not sdk_file.exists(): + raise HTTPException(status_code=404, detail="SDK configuration not found") + + # Read and return the SDK file content + with open(sdk_file, "r") as f: + sdk_content = f.read() + + return { + "agent_id": agent_id, + "sdk_content": sdk_content, + "file_path": str(sdk_file) + } + + except HTTPException: + raise + except Exception as e: + raise HTTPException(status_code=500, detail=f"Error reading SDK config: {str(e)}") -@app.get("/agent/{agent_id}") -async def get_agent_info(agent_id: str): - """Get agent information - simplified to use only RunAgent IDs""" +@app.get("/debug/test-agent/{agent_id}") +async def debug_test_agent(agent_id: str, test_input: str = "Hello, how can you help me?"): + """Debug endpoint to test agent functionality directly""" try: - print(f"🔍 Looking for RunAgent agent ID: {agent_id}") + import requests - # Check in running_agents (should be the RunAgent server ID) + # Find agent info + agent_data = None if agent_id in running_agents: agent_data = running_agents[agent_id] - agent_info = agent_data.get("agent_info", {}) - port = agent_data.get("port", 8450) - - print(f"✅ Found RunAgent agent: {agent_info.get('agent_name', 'Unknown')} on port {port}") - - return { - "agent_info": { - "agent_name": agent_info.get("agent_name", "Unknown Agent"), - "description": agent_info.get("description", "AI Agent"), - "framework": agent_info.get("framework", "custom"), - "input_fields": agent_info.get("input_fields", ["message"]), - "main_functionality": agent_info.get("main_functionality", "General assistance"), - "port": port, - "runagent_url": f"http://localhost:{port}", - "runagent_agent_id": agent_id, # Same as the lookup ID - "status": "ready" - } - } + else: + # Check sessions + for session_id, session in sessions.items(): + if session.get("agent_id") == agent_id: + port = session.get("runagent_port", 8450) + agent_info = session.get("agent_info", {}) + agent_data = { + "port": port, + "agent_info": agent_info + } + break - # Check sessions as fallback - for session_id, session in sessions.items(): - if session.get("agent_id") == agent_id: - agent_info = session.get("agent_info", {}) - port = session.get("runagent_port", 8450) + if not agent_data: + return {"error": f"Agent {agent_id} not found"} + + port = agent_data.get("port", 8450) + agent_info = agent_data.get("agent_info", {}) + base_url = f"http://localhost:{port}" + + # Get first input field name + input_fields = agent_info.get("input_fields", ["query"]) + first_field = input_fields[0] if input_fields else "query" + + test_data = {first_field: test_input} + + # Test different endpoints + endpoints_to_test = [ + "/agents/main/run", + "/agents/main/invoke", + "/run", + "/invoke" + ] + + results = {} + + for endpoint in endpoints_to_test: + try: + response = requests.post( + f"{base_url}{endpoint}", + json=test_data, + timeout=10 + ) - print(f"✅ Found in session: {agent_info.get('agent_name', 'Unknown')} on port {port}") + results[endpoint] = { + "status_code": response.status_code, + "success": response.status_code == 200, + "content": response.text[:500] if response.text else "", + "headers": dict(response.headers) + } - return { - "agent_info": { - "agent_name": agent_info.get("agent_name", "Unknown Agent"), - "description": agent_info.get("description", "AI Agent"), - "framework": agent_info.get("framework", "custom"), - "input_fields": agent_info.get("input_fields", ["message"]), - "main_functionality": agent_info.get("main_functionality", "General assistance"), - "port": port, - "runagent_url": f"http://localhost:{port}", - "runagent_agent_id": agent_id, - "status": "ready" - } + except Exception as e: + results[endpoint] = { + "status_code": "error", + "success": False, + "error": str(e) } - # Not found - print(f"❌ RunAgent agent {agent_id} not found") - print(f"Available RunAgent agents: {list(running_agents.keys())}") + return { + "agent_id": agent_id, + "port": port, + "base_url": base_url, + "test_input": test_data, + "results": results, + "agent_info": { + "name": agent_info.get("agent_name", "Unknown"), + "framework": agent_info.get("framework", "unknown"), + "input_fields": input_fields + } + } + + except Exception as e: + return {"error": f"Debug test failed: {str(e)}"} + +@app.get("/debug/agent-files/{agent_id}") +async def debug_agent_files(agent_id: str): + """Debug endpoint to show generated agent files""" + try: + # Find the session directory + session_id = None + for sid, session in sessions.items(): + if session.get("agent_id") == agent_id: + session_id = sid + break + + if not session_id: + return {"error": "Agent session not found"} - raise HTTPException(status_code=404, detail=f"RunAgent agent {agent_id} not found") + session_dir = Path(f"generated_agents/{session_id}") + if not session_dir.exists(): + return {"error": "Session directory not found"} + + files_info = {} + + # Check common files + common_files = [ + "runagent.config.json", + "agent.py", + "requirements.txt", + "sdk_test.js", + ".env" + ] + + for filename in common_files: + file_path = session_dir / filename + if file_path.exists(): + try: + with open(file_path, "r") as f: + content = f.read() + files_info[filename] = { + "exists": True, + "size": len(content), + "content_preview": content[:500] + "..." if len(content) > 500 else content + } + except Exception as e: + files_info[filename] = { + "exists": True, + "error": f"Could not read: {str(e)}" + } + else: + files_info[filename] = {"exists": False} + + return { + "agent_id": agent_id, + "session_id": session_id, + "session_dir": str(session_dir), + "files": files_info + } - except HTTPException: - raise except Exception as e: - print(f"❌ Error getting agent info: {e}") - raise HTTPException(status_code=500, detail=f"Server error: {str(e)}") + return {"error": f"Debug failed: {str(e)}"} + +@app.get("/health") +async def health_check(): + return {"status": "healthy", "active_sessions": len(sessions)} @app.get("/debug/clear-sessions") async def clear_sessions(): @@ -1555,11 +1771,11 @@ async def clear_sessions(): global sessions, running_agents # Stop any running processes - for session_id, agent_data in running_agents.items(): + for agent_id, agent_data in running_agents.items(): if "process" in agent_data and agent_data["process"]: try: agent_data["process"].terminate() - print(f"🛑 Terminated process for session {session_id}") + print(f"🛑 Terminated process for agent {agent_id}") except: pass @@ -1575,4 +1791,4 @@ async def clear_sessions(): os.makedirs("generated_agents", exist_ok=True) os.makedirs("static", exist_ok=True) - uvicorn.run(app, host="0.0.0.0", port=8000) \ No newline at end of file + uvicorn.run(app, host="0.0.0.0", port=8000) diff --git a/examples/gpt_5_project/static/agent.html b/examples/gpt_5_project/static/agent.html index 24f6ce6..cda5163 100644 --- a/examples/gpt_5_project/static/agent.html +++ b/examples/gpt_5_project/static/agent.html @@ -3,7 +3,7 @@ - Agent Interface + Enhanced Debug Agent Interface
-

Loading Agent...

-

Connecting to your AI agent...

+

🔧 Enhanced Debug Agent Interface

+

Advanced debugging and testing tools

-
- Agent ID: - | - Framework: - | +
+ Agent ID: - +
+
+ Framework: - +
+
Port: -
-
✅ Ready
+
+ Status: Connecting... +
+
🔍 Debugging Mode
-
-
-

📝 Input Fields

+ +
+

📝 Agent Input & Testing

+ +
+
Input
+
Advanced
+
+ +
- + +
+ +
+ + + +
+
+ +
+
+ + +
+
+ + +
+
+ +
+ +
Ready for testing...
+
-
- - +
- -
- Click "Discover Endpoints" to find available endpoints... + +
+
+ +
Click "Full Diagnostic" to start endpoint discovery...
-
-
-

📤 Raw Agent Response

+ +
+

🔍 Debug Information & Logs

+ +
+
Logs
+
Files
+
Config
-
Ready to run agent...
+
+
+ + +
+
Debug logs will appear here...
+
+ +
+
+ + +
+
Click "Load Files" to see generated files...
+
+ +
+
+ + +
+
Click "Load SDK" to see configuration...
+
@@ -216,6 +381,7 @@

📤 Raw Agent Response

let agentInfo = null; let runagentUrl = null; let discoveredEndpoints = []; + let workingEndpoints = []; // Get agent ID from URL const urlParams = new URLSearchParams(window.location.search); @@ -230,234 +396,710 @@

📤 Raw Agent Response

async function initializePage() { if (!agentId) { - showError("No agent ID provided in URL"); + updateDebugLog("❌ No agent ID provided in URL"); return; } + await loadAgentInfo(); + await setTimeout(() => fullDiagnostic(), 1000); + } + + async function loadAgentInfo() { try { - console.log('🔍 Fetching agent info for agent ID:', agentId); + updateDebugLog('🔍 Loading agent information...'); const response = await fetch(`http://localhost:8000/agent/${agentId}`); - const data = await response.json(); + if (!response.ok) { + throw new Error(`HTTP ${response.status}: ${response.statusText}`); + } + + const data = await response.json(); agentInfo = data.agent_info; runagentUrl = agentInfo.runagent_url; - console.log('📋 Agent data received:', data); - console.log('🌐 RunAgent URL:', runagentUrl); + updateDebugLog(`✅ Agent info loaded successfully`); + updateDebugLog(`🌐 RunAgent URL: ${runagentUrl}`); // Update UI - document.getElementById('agentName').textContent = agentInfo.agent_name; + document.getElementById('agentName').textContent = `🔧 Debug: ${agentInfo.agent_name}`; document.getElementById('agentDescription').textContent = agentInfo.description; document.getElementById('framework').textContent = agentInfo.framework?.toUpperCase(); document.getElementById('runagentPort').textContent = agentInfo.port; // Generate input fields - generateInputFields(agentInfo.input_fields || ['message']); - - // Auto-discover endpoints on load - setTimeout(discoverEndpoints, 1000); + generateInputFields(); } catch (error) { - console.error('❌ Error loading agent:', error); - showError(`Failed to load agent: ${error.message}`); + updateDebugLog(`❌ Error loading agent info: ${error.message}`); + document.getElementById('connectionStatus').textContent = 'Connection Failed'; + document.getElementById('connectionStatus').style.color = '#dc3545'; } } - function generateInputFields(inputFields) { + function generateInputFields() { const container = document.getElementById('dynamicInputs'); container.innerHTML = ''; + const inputFields = agentInfo.input_fields || ['query']; + const inputTypes = agentInfo.input_types || {}; + const inputDescriptions = agentInfo.input_descriptions || {}; + inputFields.forEach(field => { const group = document.createElement('div'); group.className = 'form-group'; const label = document.createElement('label'); - label.textContent = field.replace(/_/g, ' ').replace(/\b\w/g, l => l.toUpperCase()); + const fieldType = inputTypes[field] || 'string'; + const description = inputDescriptions[field] || `Enter ${field}`; + + label.textContent = `${field.replace(/_/g, ' ').replace(/\b\w/g, l => l.toUpperCase())} (${fieldType})`; + + let input; + if (fieldType === 'textarea') { + input = document.createElement('textarea'); + input.className = 'form-control textarea'; + input.rows = 3; + } else { + input = document.createElement('input'); + input.className = 'form-control'; + + if (fieldType === 'number') { + input.type = 'number'; + } else if (fieldType === 'boolean') { + input.type = 'checkbox'; + } else { + input.type = 'text'; + } + } - const input = document.createElement('input'); - input.type = 'text'; - input.className = 'form-control'; input.id = field; input.name = field; - input.placeholder = `Enter ${field}`; + input.placeholder = description; group.appendChild(label); group.appendChild(input); container.appendChild(group); }); - } - async function discoverEndpoints() { - const debugInfo = document.getElementById('debugInfo'); - debugInfo.textContent = "🔍 Discovering endpoints...\n"; + updateDebugLog(`✅ Generated ${inputFields.length} input fields`); + } + async function fullDiagnostic() { + const diagnosticButton = document.getElementById('diagnosticButton'); + const originalText = diagnosticButton.innerHTML; + + diagnosticButton.disabled = true; + diagnosticButton.innerHTML = 'Running Diagnostic...'; + + updateDebugLog('🩺 Starting full diagnostic...'); + updateDiscoveryLog('🔍 Full Diagnostic Started\n' + '='.repeat(50)); + try { - // Try to get the OpenAPI docs - debugInfo.textContent += `📡 Fetching docs from: ${runagentUrl}/docs\n`; + // Step 1: Test basic connectivity + await testBasicConnectivity(); - const docsResponse = await fetch(`${runagentUrl}/docs`); - if (docsResponse.ok) { - const docsHtml = await docsResponse.text(); + // Step 2: Discover available endpoints + await discoverEndpoints(); + + // Step 3: Test discovered endpoints + await testAllEndpoints(); + + // Step 4: Check agent files + await loadAgentFiles(); + + // Step 5: Test SDK configuration + await loadSDKConfig(); + + updateDebugLog('✅ Full diagnostic completed'); + updateDiscoveryLog('\n✅ DIAGNOSTIC COMPLETED'); + + } catch (error) { + updateDebugLog(`❌ Diagnostic failed: ${error.message}`); + updateDiscoveryLog(`\n❌ DIAGNOSTIC FAILED: ${error.message}`); + } finally { + diagnosticButton.disabled = false; + diagnosticButton.innerHTML = originalText; + } + } + + async function testBasicConnectivity() { + updateDiscoveryLog('\n🔗 Testing Basic Connectivity...'); + + const tests = [ + { name: 'Base URL', url: runagentUrl }, + { name: 'Root Path', url: `${runagentUrl}/` }, + { name: 'Health Check', url: `${runagentUrl}/health` }, + { name: 'Docs', url: `${runagentUrl}/docs` }, + { name: 'OpenAPI', url: `${runagentUrl}/openapi.json` } + ]; + + for (const test of tests) { + try { + const response = await fetch(test.url, { + method: 'GET', + timeout: 5000 + }); - // Extract all /agents/ endpoints - const agentEndpoints = [...docsHtml.matchAll(/\/agents\/([^\/\s"]+)(\/[^\/\s"]*)?/g)] - .map(match => match[0]) - .filter((value, index, self) => self.indexOf(value) === index); + const status = response.status; + const statusText = response.ok ? '✅' : '❌'; + updateDiscoveryLog(` ${statusText} ${test.name}: ${status}`); - discoveredEndpoints = agentEndpoints; - debugInfo.textContent += `✅ Found agent endpoints: ${discoveredEndpoints.join(', ')}\n`; - } else { - debugInfo.textContent += `❌ Could not fetch docs (${docsResponse.status})\n`; - } - - // Also try common patterns - const commonEndpoints = [ - '/agents/main/run', - '/agents/main_stream/run', - '/agents/main_stream/stream', - '/agents/generic/run', - '/agents/basic/run', - '/agents/invoke/run', - '/run', - '/invoke' - ]; - - debugInfo.textContent += "\n🧪 Testing common endpoints:\n"; - - for (const endpoint of commonEndpoints) { - try { - const testUrl = `${runagentUrl}${endpoint}`; - const testResponse = await fetch(testUrl, { method: 'OPTIONS' }); - const status = testResponse.status; - - if (status === 200 || status === 405) { // 405 = Method not allowed but endpoint exists - debugInfo.textContent += ` ✅ ${endpoint}: Available (${status})\n`; - if (!discoveredEndpoints.includes(endpoint)) { - discoveredEndpoints.push(endpoint); - } - } else { - debugInfo.textContent += ` ❌ ${endpoint}: ${status}\n`; - } - } catch (e) { - debugInfo.textContent += ` ❌ ${endpoint}: Error\n`; + if (response.ok && test.name === 'Base URL') { + document.getElementById('connectionStatus').textContent = 'Connected'; + document.getElementById('connectionStatus').style.color = '#28a745'; } + + } catch (error) { + updateDiscoveryLog(` ❌ ${test.name}: ${error.message}`); } + } + } - if (discoveredEndpoints.length > 0) { - debugInfo.textContent += `\n🎯 Will try these endpoints: ${discoveredEndpoints.join(', ')}\n`; - } else { - debugInfo.textContent += "\n❌ No working endpoints found\n"; + async function discoverEndpoints() { + updateDiscoveryLog('\n🔍 Discovering Endpoints...'); + discoveredEndpoints = []; + + // Try to get OpenAPI documentation + try { + const docsResponse = await fetch(`${runagentUrl}/docs`); + if (docsResponse.ok) { + const docsText = await docsResponse.text(); + + // Extract endpoints from HTML + const endpointMatches = docsText.match(/\/[a-zA-Z0-9_\/\-\{\}]+/g); + if (endpointMatches) { + const uniqueEndpoints = [...new Set(endpointMatches)]; + discoveredEndpoints.push(...uniqueEndpoints); + updateDiscoveryLog(` 📋 Found ${uniqueEndpoints.length} endpoints from docs`); + } } - } catch (error) { - debugInfo.textContent += `❌ Discovery error: ${error.message}\n`; + updateDiscoveryLog(` ⚠️ Could not fetch docs: ${error.message}`); } + + // Try common RunAgent endpoint patterns + const commonEndpoints = [ + '/', + '/health', + '/run', + '/invoke', + '/agents', + '/agents/main/run', + '/agents/main/invoke', + '/agents/main_stream/run', + '/agents/main_stream/stream', + '/api/run', + '/api/invoke', + '/v1/run', + '/v1/invoke' + ]; + + for (const endpoint of commonEndpoints) { + if (!discoveredEndpoints.includes(endpoint)) { + discoveredEndpoints.push(endpoint); + } + } + + updateDiscoveryLog(` 🎯 Total endpoints to test: ${discoveredEndpoints.length}`); + updateDebugLog(`🔍 Discovered ${discoveredEndpoints.length} potential endpoints`); } - function collectInputValues() { - const values = {}; - const inputs = document.querySelectorAll('#dynamicInputs input'); + async function testAllEndpoints() { + updateDiscoveryLog('\n🧪 Testing All Endpoints...'); + workingEndpoints = []; + const endpointResults = document.getElementById('endpointResults'); + endpointResults.innerHTML = ''; - inputs.forEach(input => { - if (input.value.trim()) { - values[input.name] = input.value.trim(); + const testData = collectInputValues(); + + for (const endpoint of discoveredEndpoints) { + const resultDiv = document.createElement('div'); + resultDiv.className = 'endpoint-test'; + resultDiv.innerHTML = `${endpoint}Testing...`; + endpointResults.appendChild(resultDiv); + + try { + // Test GET first + let response = await fetch(`${runagentUrl}${endpoint}`, { + method: 'GET', + timeout: 3000 + }); + + let method = 'GET'; + let success = response.ok; + + // If GET fails, try POST with data + if (!success && (endpoint.includes('run') || endpoint.includes('invoke'))) { + response = await fetch(`${runagentUrl}${endpoint}`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(testData), + timeout: 5000 + }); + method = 'POST'; + success = response.ok; + } + + const statusText = `${method} ${response.status}`; + + if (success) { + resultDiv.className = 'endpoint-test success'; + resultDiv.innerHTML = `${endpoint}✅ ${statusText}`; + workingEndpoints.push({ endpoint, method, status: response.status }); + updateDiscoveryLog(` ✅ ${endpoint}: ${statusText}`); + } else { + resultDiv.className = 'endpoint-test error'; + resultDiv.innerHTML = `${endpoint}❌ ${statusText}`; + updateDiscoveryLog(` ❌ ${endpoint}: ${statusText}`); + } + + } catch (error) { + resultDiv.className = 'endpoint-test error'; + resultDiv.innerHTML = `${endpoint}❌ Error`; + updateDiscoveryLog(` ❌ ${endpoint}: ${error.message}`); } - }); + + // Small delay to avoid overwhelming the server + await new Promise(resolve => setTimeout(resolve, 100)); + } - return values; + updateDiscoveryLog(`\n🎯 Working endpoints: ${workingEndpoints.length}`); + updateDebugLog(`✅ Found ${workingEndpoints.length} working endpoints`); } - async function runAgent() { - const output = document.getElementById('output'); + async function runAgentTest() { const runButton = document.getElementById('runButton'); - const debugInfo = document.getElementById('debugInfo'); + const originalText = runButton.innerHTML; + + runButton.disabled = true; + runButton.innerHTML = 'Testing...'; + + const testOutput = document.getElementById('testOutput'); + testOutput.textContent = '🚀 Running agent test...\n'; const inputValues = collectInputValues(); + updateDebugLog(`🧪 Testing agent with input: ${JSON.stringify(inputValues, null, 2)}`); - if (Object.keys(inputValues).length === 0) { - showError("Please fill at least one input field"); - return; - } - - runButton.disabled = true; - runButton.textContent = "Running..."; - output.textContent = "🚀 Running agent...\n"; - try { - console.log('📝 Input values:', inputValues); - console.log('🌐 Using RunAgent URL:', runagentUrl); + // If we have working endpoints, try them first + if (workingEndpoints.length > 0) { + updateDebugLog('🎯 Using discovered working endpoints...'); + + for (const endpointInfo of workingEndpoints) { + if (endpointInfo.endpoint.includes('run') || endpointInfo.endpoint.includes('invoke')) { + try { + const response = await fetch(`${runagentUrl}${endpointInfo.endpoint}`, { + method: endpointInfo.method, + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(inputValues) + }); + + if (response.ok) { + const result = await response.text(); + testOutput.className = 'output success'; + testOutput.textContent = `✅ SUCCESS with ${endpointInfo.endpoint}\n\nResponse:\n${result}`; + updateDebugLog(`✅ Agent test successful with ${endpointInfo.endpoint}`); + return; + } + } catch (error) { + updateDebugLog(`❌ ${endpointInfo.endpoint} failed: ${error.message}`); + } + } + } + } - // Try discovered endpoints first, then fallbacks - const endpointsToTry = [ - ...discoveredEndpoints, + // Fallback: try all common patterns + const fallbackEndpoints = [ '/agents/main/run', - '/agents/generic/run', - '/agents/basic/run', + '/agents/main/invoke', '/run', - '/invoke' + '/invoke', + '/api/run', + '/api/invoke' ]; - - debugInfo.textContent += `\n🚀 Trying ${endpointsToTry.length} endpoints...\n`; - let success = false; + updateDebugLog('🔄 Trying fallback endpoints...'); - for (const endpoint of endpointsToTry) { + for (const endpoint of fallbackEndpoints) { try { - const url = `${runagentUrl}${endpoint}`; - debugInfo.textContent += `🔗 Trying: ${endpoint}\n`; - console.log(`🔗 Trying: ${url}`); - - const response = await fetch(url, { + const response = await fetch(`${runagentUrl}${endpoint}`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(inputValues) }); - - debugInfo.textContent += `📡 Response: ${response.status}\n`; - + if (response.ok) { const result = await response.text(); - console.log('✅ SUCCESS with endpoint:', endpoint); - console.log('📤 Raw result:', result); - - debugInfo.textContent += `✅ SUCCESS with: ${endpoint}\n`; - - // Just display the raw result - no parsing - output.textContent = `✅ SUCCESS with endpoint: ${endpoint}\n\n${result}`; - output.className = 'output'; - success = true; - break; + testOutput.className = 'output success'; + testOutput.textContent = `✅ SUCCESS with ${endpoint}\n\nResponse:\n${result}`; + updateDebugLog(`✅ Agent test successful with ${endpoint}`); + return; } else { - const errorText = await response.text(); - debugInfo.textContent += `❌ Failed: ${response.status}\n`; - console.log(`❌ ${endpoint} failed:`, response.status, errorText); + updateDebugLog(`❌ ${endpoint}: HTTP ${response.status}`); } - } catch (error) { - debugInfo.textContent += `❌ Error: ${error.message}\n`; - console.log(`❌ Error with ${endpoint}:`, error.message); + updateDebugLog(`❌ ${endpoint}: ${error.message}`); } } + + throw new Error('All endpoints failed - see debug logs for details'); + + } catch (error) { + testOutput.className = 'output error'; + testOutput.textContent = `❌ Test Failed: ${error.message}\n\nCheck the debug logs for detailed information.`; + updateDebugLog(`❌ Agent test failed: ${error.message}`); + } finally { + runButton.disabled = false; + runButton.innerHTML = originalText; + } + } - if (!success) { - throw new Error("All endpoints failed. Check debug info and console for details."); + async function testCustomEndpoint() { + const endpoint = document.getElementById('customEndpoint').value; + const method = document.getElementById('httpMethod').value; + + if (!endpoint) { + alert('Please enter a custom endpoint'); + return; + } + + const inputValues = collectInputValues(); + updateDebugLog(`🔧 Testing custom endpoint: ${method} ${endpoint}`); + + try { + const options = { + method: method, + headers: { 'Content-Type': 'application/json' } + }; + + if (method !== 'GET') { + options.body = JSON.stringify(inputValues); } + + const response = await fetch(`${runagentUrl}${endpoint}`, options); + const result = await response.text(); + + const testOutput = document.getElementById('testOutput'); + if (response.ok) { + testOutput.className = 'output success'; + testOutput.textContent = `✅ Custom endpoint SUCCESS\nEndpoint: ${method} ${endpoint}\nStatus: ${response.status}\n\nResponse:\n${result}`; + updateDebugLog(`✅ Custom endpoint successful: ${method} ${endpoint}`); + } else { + testOutput.className = 'output error'; + testOutput.textContent = `❌ Custom endpoint FAILED\nEndpoint: ${method} ${endpoint}\nStatus: ${response.status}\n\nResponse:\n${result}`; + updateDebugLog(`❌ Custom endpoint failed: ${method} ${endpoint} - ${response.status}`); + } + + } catch (error) { + const testOutput = document.getElementById('testOutput'); + testOutput.className = 'output error'; + testOutput.textContent = `❌ Custom endpoint ERROR\nEndpoint: ${method} ${endpoint}\nError: ${error.message}`; + updateDebugLog(`❌ Custom endpoint error: ${error.message}`); + } + } + + async function checkServerHealth() { + updateDebugLog('❤️ Checking server health...'); + + const healthEndpoints = [ + '/health', + '/status', + '/ping', + '/' + ]; + + for (const endpoint of healthEndpoints) { + try { + const response = await fetch(`${runagentUrl}${endpoint}`); + if (response.ok) { + const result = await response.text(); + updateDiscoveryLog(`✅ Health check successful: ${endpoint}\n${result}`); + updateDebugLog(`✅ Server is healthy via ${endpoint}`); + return; + } + } catch (error) { + updateDebugLog(`❌ Health check failed for ${endpoint}: ${error.message}`); + } + } + + updateDiscoveryLog('❌ No health endpoints responding'); + updateDebugLog('❌ Server health check failed'); + } + async function loadAgentFiles() { + updateDebugLog('📁 Loading agent files...'); + + try { + const response = await fetch(`http://localhost:8000/debug/agent-files/${agentId}`); + + if (response.ok) { + const data = await response.json(); + const filesOutput = document.getElementById('filesOutput'); + + let output = `Agent Files Status:\n${'='.repeat(30)}\n`; + output += `Session ID: ${data.session_id}\n`; + output += `Directory: ${data.session_dir}\n\n`; + + Object.entries(data.files).forEach(([filename, info]) => { + if (info.exists) { + output += `✅ ${filename}\n`; + if (info.size) output += ` Size: ${info.size} bytes\n`; + if (info.content_preview) { + output += ` Preview:\n${info.content_preview}\n\n`; + } + if (info.error) output += ` ⚠️ Error: ${info.error}\n\n`; + } else { + output += `❌ ${filename} (missing)\n`; + } + }); + + filesOutput.textContent = output; + updateDebugLog('✅ Agent files loaded successfully'); + } else { + throw new Error(`HTTP ${response.status}`); + } + } catch (error) { - console.error('❌ Agent execution failed:', error); - showError(error.message); - } finally { - runButton.disabled = false; - runButton.textContent = "Run Agent"; + document.getElementById('filesOutput').textContent = `❌ Failed to load files: ${error.message}`; + updateDebugLog(`❌ Failed to load agent files: ${error.message}`); } } - function showError(message) { - const output = document.getElementById('output'); - output.textContent = `❌ Error: ${message}`; - output.className = 'output error'; + async function validateConfig() { + updateDebugLog('✅ Validating agent configuration...'); + + try { + const response = await fetch(`http://localhost:8000/debug/agent-files/${agentId}`); + + if (response.ok) { + const data = await response.json(); + const configInfo = data.files['runagent.config.json']; + + if (configInfo && configInfo.exists && configInfo.content_preview) { + try { + const config = JSON.parse(configInfo.content_preview); + + let validation = 'Configuration Validation:\n' + '='.repeat(30) + '\n'; + + // Check required fields + const requiredFields = ['agent_name', 'description', 'framework', 'agent_architecture']; + const missingFields = requiredFields.filter(field => !config[field]); + + if (missingFields.length === 0) { + validation += '✅ All required fields present\n'; + } else { + validation += `❌ Missing required fields: ${missingFields.join(', ')}\n`; + } + + // Check entrypoints + if (config.agent_architecture && config.agent_architecture.entrypoints) { + validation += `✅ Entrypoints: ${config.agent_architecture.entrypoints.length} defined\n`; + config.agent_architecture.entrypoints.forEach(ep => { + validation += ` - ${ep.tag} (${ep.module})\n`; + }); + } else { + validation += '❌ No entrypoints defined\n'; + } + + // Check input fields + if (config.input_fields && config.input_fields.length > 0) { + validation += `✅ Input fields: ${config.input_fields.join(', ')}\n`; + } else { + validation += '⚠️ No input fields defined\n'; + } + + document.getElementById('filesOutput').textContent = validation; + updateDebugLog('✅ Configuration validated'); + + } catch (parseError) { + document.getElementById('filesOutput').textContent = `❌ Invalid JSON configuration: ${parseError.message}`; + updateDebugLog(`❌ Configuration parsing failed: ${parseError.message}`); + } + } else { + document.getElementById('filesOutput').textContent = '❌ Configuration file not found'; + updateDebugLog('❌ Configuration file not found'); + } + } else { + throw new Error(`HTTP ${response.status}`); + } + + } catch (error) { + document.getElementById('filesOutput').textContent = `❌ Validation failed: ${error.message}`; + updateDebugLog(`❌ Configuration validation failed: ${error.message}`); + } + } + + async function loadSDKConfig() { + updateDebugLog('🔧 Loading SDK configuration...'); + + try { + const response = await fetch(`http://localhost:8000/agent/${agentId}/sdk-config`); + + if (response.ok) { + const data = await response.json(); + const configOutput = document.getElementById('configOutput'); + + let output = `SDK Configuration:\n${'='.repeat(20)}\n`; + output += `Agent ID: ${data.agent_id}\n`; + output += `File Path: ${data.file_path}\n\n`; + output += `SDK Content Preview:\n${'-'.repeat(20)}\n`; + output += data.sdk_content.substring(0, 1000); + if (data.sdk_content.length > 1000) { + output += '\n... (truncated)'; + } + + configOutput.textContent = output; + updateDebugLog('✅ SDK configuration loaded successfully'); + } else { + throw new Error(`HTTP ${response.status}`); + } + + } catch (error) { + document.getElementById('configOutput').textContent = `❌ Failed to load SDK: ${error.message}`; + updateDebugLog(`❌ Failed to load SDK configuration: ${error.message}`); + } + } + + async function testSDKFunctions() { + updateDebugLog('🧪 Testing SDK functions...'); + + try { + // Try to load SDK dynamically + const sdkResponse = await fetch(`http://localhost:8000/agent/${agentId}/sdk`); + + if (sdkResponse.ok) { + const sdkCode = await sdkResponse.text(); + + // Create and execute script + const script = document.createElement('script'); + script.textContent = sdkCode; + document.head.appendChild(script); + + // Test SDK functions + setTimeout(() => { + let testResult = 'SDK Function Test Results:\n' + '='.repeat(30) + '\n'; + + if (typeof window.getAgentConfig === 'function') { + testResult += '✅ getAgentConfig() - Available\n'; + try { + const config = window.getAgentConfig(); + testResult += ` Agent: ${config.agentName}\n`; + testResult += ` Framework: ${config.framework}\n`; + testResult += ` Input Fields: ${config.inputFields.length}\n`; + } catch (e) { + testResult += ` ❌ Error calling function: ${e.message}\n`; + } + } else { + testResult += '❌ getAgentConfig() - Not available\n'; + } + + if (typeof window.testAgent === 'function') { + testResult += '✅ testAgent() - Available\n'; + } else { + testResult += '❌ testAgent() - Not available\n'; + } + + if (typeof window.testAgentStream === 'function') { + testResult += '✅ testAgentStream() - Available\n'; + } else { + testResult += '❌ testAgentStream() - Not available\n'; + } + + document.getElementById('configOutput').textContent = testResult; + updateDebugLog('✅ SDK function test completed'); + }, 500); + + } else { + throw new Error(`HTTP ${sdkResponse.status}`); + } + + } catch (error) { + document.getElementById('configOutput').textContent = `❌ SDK test failed: ${error.message}`; + updateDebugLog(`❌ SDK function test failed: ${error.message}`); + } } + + function collectInputValues() { + const values = {}; + const inputs = document.querySelectorAll('#dynamicInputs input, #dynamicInputs textarea'); + + inputs.forEach(input => { + if (input.type === 'checkbox') { + values[input.name] = input.checked; + } else if (input.type === 'number') { + values[input.name] = input.value ? parseFloat(input.value) : null; + } else if (input.value && input.value.trim()) { + values[input.name] = input.value.trim(); + } + }); + + // If no values, provide a default test input + if (Object.keys(values).length === 0) { + values.query = 'Hello, this is a test message'; + } + + return values; + } + + function switchTab(tabId) { + // Hide all tab contents + document.querySelectorAll('.tab-content').forEach(tab => { + tab.classList.remove('active'); + }); + + // Remove active class from all tabs + document.querySelectorAll('.tab').forEach(tab => { + tab.classList.remove('active'); + }); + + // Show selected tab + document.getElementById(tabId).classList.add('active'); + + // Add active class to clicked tab + event.target.classList.add('active'); + } + + function updateDebugLog(message) { + const debugOutput = document.getElementById('debugOutput'); + const timestamp = new Date().toLocaleTimeString(); + debugOutput.textContent += `[${timestamp}] ${message}\n`; + debugOutput.scrollTop = debugOutput.scrollHeight; + } + + function updateDiscoveryLog(message) { + const discoveryOutput = document.getElementById('discoveryOutput'); + discoveryOutput.textContent += message + '\n'; + discoveryOutput.scrollTop = discoveryOutput.scrollHeight; + } + + function clearDebugLog() { + document.getElementById('debugOutput').textContent = 'Debug logs cleared.\n'; + } + + function exportDebugLog() { + const content = document.getElementById('debugOutput').textContent; + const blob = new Blob([content], { type: 'text/plain' }); + const url = URL.createObjectURL(blob); + const a = document.createElement('a'); + a.href = url; + a.download = `debug-log-${agentId}-${Date.now()}.txt`; + document.body.appendChild(a); + a.click(); + document.body.removeChild(a); + URL.revokeObjectURL(url); + } + + // Auto-refresh agent info every 30 seconds + setInterval(async () => { + if (agentId) { + try { + await loadAgentInfo(); + } catch (error) { + // Silent fail for auto-refresh + } + } + }, 30000); \ No newline at end of file From eb9e6dc514994a776c8c51595d0677ba85236c4c Mon Sep 17 00:00:00 2001 From: RadeenXALNW Date: Fri, 8 Aug 2025 19:22:49 +0000 Subject: [PATCH 06/16] fixing bugs --- examples/gpt_5_project/main.py | 468 ++++------- examples/gpt_5_project/static/agent.html | 949 ++++++++--------------- 2 files changed, 455 insertions(+), 962 deletions(-) diff --git a/examples/gpt_5_project/main.py b/examples/gpt_5_project/main.py index c7f78ef..51b3a5e 100644 --- a/examples/gpt_5_project/main.py +++ b/examples/gpt_5_project/main.py @@ -119,273 +119,81 @@ def analyze_user_request(message: str) -> dict: "entrypoint_tags": ["main", "main_stream"], "backend_language": "python" } - -def generate_typescript_sdk_test(agent_info: dict, session_dir: Path): - """Generate TypeScript SDK test file with GPT-5""" +def generate_python_sdk_test(agent_info: dict, session_dir: Path): + """Generate Python SDK test file with GPT-5 - no fallback, pure generation""" + # Create a very specific prompt for GPT-5 prompt = f""" - Generate a TypeScript/JavaScript SDK test file for this AI agent using the provided template as reference: - - Agent Name: {agent_info['agent_name']} - Framework: {agent_info['framework']} - Description: {agent_info['description']} - Input Fields: {agent_info['input_fields']} - Input Types: {agent_info['input_types']} - Input Descriptions: {agent_info['input_descriptions']} - Expected Output: {agent_info['expected_output_format']} - Example Inputs: {agent_info['example_inputs']} - Entrypoint Tags: {agent_info['entrypoint_tags']} - - Create a complete TypeScript/JavaScript file that: - 1. Exports a function `getAgentConfig()` that returns configuration for the dynamic UI - 2. Exports a function `testAgent(agentId, host, port, inputValues, entrypointTag)` that tests the agent - 3. Exports a function `testAgentStream(agentId, host, port, inputValues, entrypointTag)` for streaming - 4. Includes proper error handling and endpoint discovery - 5. Uses HTTP fetch fallback since RunAgent TypeScript SDK may not be available - 6. Provides detailed logging and debugging information - 7. Validates inputs and formats outputs appropriately - - The getAgentConfig() should return an object with: - - agentName: string - - description: string - - framework: string - - inputFields: array of field configurations with name, type, description, required, placeholder - - entrypoints: array of entrypoint configurations with tag, description, streaming - - exampleInputs: array of example input objects - - Make the input fields specific to this agent type. For example: - - Weather agent: location, units, forecast_days - - Math solver: expression, show_steps, precision - - Research agent: topic, depth, max_sources, include_citations - - Content writer: topic, style, tone, word_count, format - - Use appropriate input types: - - "string" for text inputs - - "number" for numeric inputs - - "boolean" for checkboxes - - "textarea" for longer text inputs - - Make the testAgent function robust with multiple endpoint fallbacks and detailed error reporting. - Include the window attachment code at the end for browser compatibility. - - Focus on making this agent-specific and functional. Return only the JavaScript code. + Create a Python script to test this AI agent using the RunAgent Python SDK. + + EXACT COMMAND LINE INTERFACE REQUIRED: + python3 agent_test.py + + MANDATORY REQUIREMENTS: + 1. Use sys.argv for arguments (NO argparse or click) + 2. Check len(sys.argv) == 5 exactly + 3. agent_id = sys.argv[1], host = sys.argv[2], port = int(sys.argv[3]), test_message = sys.argv[4] + 4. Import: from runagent import RunAgentClient + 5. Exit with sys.exit(0) for success, sys.exit(1) for failure + + AGENT CONFIGURATION: + - Name: {agent_info['agent_name']} + - Framework: {agent_info['framework']} + - Primary Input Field: {agent_info['input_fields'][0] if agent_info['input_fields'] else 'query'} + - All Input Fields: {agent_info['input_fields']} + - Input Types: {agent_info['input_types']} + - Entrypoint Tags to Try: {agent_info['entrypoint_tags']} + + IMPLEMENTATION DETAILS: + 1. Create input dictionary mapping test_message to the primary input field + 2. Add default values for other input fields based on their types + 3. Try each entrypoint tag in sequence until one succeeds + 4. For each tag, create RunAgentClient(agent_id=agent_id, entrypoint_tag=tag, local=True) + 5. Call client.run(**input_dict) and print the result + 6. Print clear success/failure messages + 7. Include timing information + + OUTPUT FORMAT: + Print testing progress, show which entrypoint works, display the agent response clearly. + + Generate a complete, working Python script that follows this exact interface. """ try: response = openai_client.responses.create( model="gpt-5-mini", input=prompt, - reasoning={"effort": "minimal"} + reasoning={"effort": "high"} # Use more effort for better generation ) - sdk_code = response.output[1].content[0].text + python_code = response.output[1].content[0].text - # Clean up the code - sdk_code = sdk_code.replace('```typescript', '').replace('```javascript', '').replace('```', '').strip() + # Clean up the generated code + python_code = python_code.replace('```python', '').replace('```', '').strip() - # Ensure it includes browser compatibility - if 'window.testAgent' not in sdk_code: - sdk_code += ''' - -// Browser compatibility - attach functions to window -if (typeof window !== 'undefined') { - window.testAgent = testAgent; - window.testAgentStream = testAgentStream; - window.getAgentConfig = getAgentConfig; - console.log('✅ SDK functions attached to window'); -}''' + # Ensure proper imports are at the top + if not python_code.startswith(('import', 'from')): + python_code = 'import sys\nfrom runagent import RunAgentClient\nimport json\nimport time\n\n' + python_code + + # Write the generated script to file + with open(session_dir / "agent_test.py", "w") as f: + f.write(python_code) - # Write to file - with open(session_dir / "sdk_test.js", "w") as f: - f.write(sdk_code) + # Make it executable + import stat + script_path = session_dir / "agent_test.py" + script_path.chmod(script_path.stat().st_mode | stat.S_IEXEC) - print(f"✅ Generated TypeScript SDK test file for {agent_info['agent_name']}") + print(f"✅ Generated Python SDK test script for {agent_info['agent_name']}") + print(f"📁 Script location: {script_path}") return True except Exception as e: - print(f"❌ Error generating TypeScript SDK test: {e}") - - # Enhanced fallback SDK code - fallback_code = f'''// Generated SDK test for {agent_info['agent_name']} -// Framework: {agent_info['framework']} + print(f"❌ Error generating Python SDK test: {e}") + import traceback + traceback.print_exc() + return False -export function getAgentConfig() {{ - return {{ - agentName: "{agent_info['agent_name']}", - description: "{agent_info['description']}", - framework: "{agent_info['framework']}", - inputFields: [ - {',\\n '.join([ - '{{\\n name: "{}",\\n type: "{}",\\n description: "{}",\\n required: true,\\n placeholder: "{}"\\n }}'.format( - field, - agent_info['input_types'].get(field, "string"), - agent_info['input_descriptions'].get(field, f"Enter {field}"), - f"Enter {field}..." - ) for field in agent_info['input_fields'] - ])} - ], - entrypoints: [ - {',\\n '.join([ - '{{\\n tag: "{}",\\n description: "{}",\\n streaming: {}\\n }}'.format( - tag, - f"{'Streaming' if 'stream' in tag else 'Synchronous'} endpoint for {agent_info['framework']}", - 'true' if 'stream' in tag else 'false' - ) for tag in agent_info['entrypoint_tags'] - ])} - ], - exampleInputs: {json.dumps(agent_info['example_inputs'], indent=12)} - }}; -}} - -export async function testAgent(agentId, host, port, inputValues, entrypointTag = "main") {{ - try {{ - console.log('🧪 Testing {agent_info['agent_name']} agent...'); - console.log('📝 Input values:', inputValues); - console.log('🎯 Using entrypoint:', entrypointTag); - - const baseUrl = `http://${{host}}:${{port}}`; - const endpointsToTry = [ - `/agents/${{entrypointTag}}/run`, - `/agents/${{entrypointTag}}/invoke`, - `/run`, - `/invoke`, - `/${{entrypointTag}}` - ]; - - let lastError = null; - - for (const endpoint of endpointsToTry) {{ - try {{ - const url = `${{baseUrl}}${{endpoint}}`; - console.log(`🔗 Trying: ${{endpoint}}`); - - const response = await fetch(url, {{ - method: 'POST', - headers: {{ 'Content-Type': 'application/json' }}, - body: JSON.stringify(inputValues) - }}); - - if (response.ok) {{ - const result = await response.text(); - console.log('✅ SUCCESS with:', endpoint); - - return {{ - success: true, - result: result, - endpoint: endpoint, - method: 'http_direct', - statusCode: response.status, - inputValues: inputValues - }}; - }} else {{ - const errorText = await response.text().catch(() => 'No error details'); - lastError = `HTTP ${{response.status}}: ${{errorText}}`; - console.log(`❌ ${{endpoint}} failed: ${{response.status}}`); - }} - - }} catch (error) {{ - lastError = error.message; - console.log(`❌ ${{endpoint}} error:`, error.message); - continue; - }} - }} - - throw new Error(`All endpoints failed. Last error: ${{lastError}}`); - - }} catch (error) {{ - console.error('❌ Agent test failed:', error); - return {{ - success: false, - error: error.message, - method: 'failed', - inputValues: inputValues - }}; - }} -}} - -export async function testAgentStream(agentId, host, port, inputValues, entrypointTag = "main_stream") {{ - try {{ - console.log('🌊 Testing {agent_info['agent_name']} agent streaming...'); - - const baseUrl = `http://${{host}}:${{port}}`; - const endpointsToTry = [ - `/agents/${{entrypointTag}}/stream`, - `/agents/${{entrypointTag}}/run`, - `/stream`, - `/${{entrypointTag}}` - ]; - - for (const endpoint of endpointsToTry) {{ - try {{ - const url = `${{baseUrl}}${{endpoint}}`; - console.log(`🔗 Trying streaming: ${{endpoint}}`); - - const response = await fetch(url, {{ - method: 'POST', - headers: {{ 'Content-Type': 'application/json' }}, - body: JSON.stringify(inputValues) - }}); - - if (response.ok) {{ - let result = ''; - - if (response.body) {{ - const reader = response.body.getReader(); - const decoder = new TextDecoder(); - - while (true) {{ - const {{ done, value }} = await reader.read(); - if (done) break; - result += decoder.decode(value); - }} - }} else {{ - result = await response.text(); - }} - - return {{ - success: true, - result: result, - endpoint: endpoint, - method: 'http_stream', - streaming: true, - inputValues: inputValues - }}; - }} - - }} catch (error) {{ - console.log(`❌ ${{endpoint}} streaming error:`, error.message); - continue; - }} - }} - - throw new Error('All streaming endpoints failed'); - - }} catch (error) {{ - console.error('❌ Streaming test failed:', error); - return {{ - success: false, - error: error.message, - method: 'failed', - streaming: false, - inputValues: inputValues - }}; - }} -}} - -// Browser compatibility -if (typeof window !== 'undefined') {{ - window.testAgent = testAgent; - window.testAgentStream = testAgentStream; - window.getAgentConfig = getAgentConfig; - console.log('✅ {agent_info['agent_name']} SDK functions loaded'); -}} -''' - - with open(session_dir / "sdk_test.js", "w") as f: - f.write(fallback_code) - - print(f"✅ Generated fallback SDK for {agent_info['agent_name']}") - return True def generate_mermaid_diagram(agent_info: dict) -> str: """Generate dynamic Mermaid diagram using GPT-5""" @@ -433,70 +241,6 @@ def generate_mermaid_diagram(agent_info: dict) -> str: print(f"❌ Error generating Mermaid diagram: {e}") return f"graph TD\n A[User Input] --> B[{agent_info['framework']} Processing]\n B --> C[Generate Response]\n C --> D[Return Result]" -def generate_agent_files(agent_info: dict, session_id: str) -> bool: - """Generate agent files based on template and user requirements.""" - - framework = agent_info['framework'] - - # Create session directory - session_dir = Path(f"generated_agents/{session_id}") - session_dir.mkdir(parents=True, exist_ok=True) - - # Create .env file - env_content = f"""# OpenAI API Key -OPENAI_API_KEY={os.getenv('OPENAI_API_KEY', 'your_openai_api_key_here')} - -# Letta Configuration (if using Letta) -LETTA_SERVER_URL=http://localhost:8283 - -# RunAgent Configuration -RUNAGENT_DISABLE_DB=true -RUNAGENT_NO_DATABASE=true -RUNAGENT_LOG_LEVEL=INFO -""" - - with open(session_dir / ".env", "w") as f: - f.write(env_content) - - try: - print(f"🔧 Generating {framework} agent files...") - - if framework == "langgraph": - generate_langgraph_files(agent_info, session_dir) - elif framework == "letta": - generate_letta_files(agent_info, session_dir) - elif framework == "agno": - generate_agno_files(agent_info, session_dir) - elif framework == "llamaindex": - generate_llamaindex_files(agent_info, session_dir) - else: - generate_custom_framework_files(agent_info, session_dir) - - # Generate TypeScript SDK test file - generate_typescript_sdk_test(agent_info, session_dir) - - # Validate config file - config_file = session_dir / "runagent.config.json" - if not config_file.exists(): - raise Exception("Config file was not created") - - with open(config_file, "r") as f: - config = json.load(f) - - required_fields = ["agent_name", "description", "framework", "template_source", "agent_architecture"] - missing_fields = [field for field in required_fields if field not in config] - - if missing_fields: - raise Exception(f"Config missing required fields: {missing_fields}") - - print(f"✅ Successfully generated and validated {framework} agent") - return True - - except Exception as e: - print(f"❌ Error generating {framework} files: {e}") - import traceback - traceback.print_exc() - return False def generate_langgraph_files(agent_info: dict, session_dir: Path): """Generate LangGraph agent files with proper input handling.""" @@ -1485,6 +1229,7 @@ def start_agent(): stage="error" ) + @app.get("/agent/{agent_id}") async def get_agent_info(agent_id: str): """Get comprehensive agent information including SDK configuration""" @@ -1517,11 +1262,11 @@ async def get_agent_info(agent_id: str): agent_info = agent_data.get("agent_info", {}) port = agent_data.get("port", 8450) - # Check if SDK file exists + # Check if Python SDK file exists sdk_available = False sdk_url = None if session_id: - sdk_file = Path(f"generated_agents/{session_id}/sdk_test.js") + sdk_file = Path(f"generated_agents/{session_id}/agent_test.py") if sdk_file.exists(): sdk_available = True sdk_url = f"http://localhost:8000/agent/{agent_id}/sdk" @@ -1544,6 +1289,7 @@ async def get_agent_info(agent_id: str): "status": "ready", "sdk_available": sdk_available, "sdk_url": sdk_url, + "sdk_type": "python", "session_id": session_id } } @@ -1555,8 +1301,8 @@ async def get_agent_info(agent_id: str): raise HTTPException(status_code=500, detail=f"Server error: {str(e)}") @app.get("/agent/{agent_id}/sdk") -async def serve_agent_sdk(agent_id: str): - """Serve the generated SDK JavaScript file for dynamic loading""" +async def serve_agent_python_sdk(agent_id: str): + """Serve the generated Python SDK file""" try: # Find the session directory session_id = None @@ -1568,24 +1314,28 @@ async def serve_agent_sdk(agent_id: str): if not session_id: raise HTTPException(status_code=404, detail="Agent session not found") - sdk_file = Path(f"generated_agents/{session_id}/sdk_test.js") - if not sdk_file.exists(): - raise HTTPException(status_code=404, detail="SDK file not found") + python_file = Path(f"generated_agents/{session_id}/agent_test.py") + if not python_file.exists(): + raise HTTPException(status_code=404, detail="Python SDK file not found") - # Read and return the SDK file with proper content type - with open(sdk_file, "r") as f: - sdk_content = f.read() + # Read and return the Python file + with open(python_file, "r") as f: + python_content = f.read() return Response( - content=sdk_content, - media_type="application/javascript", - headers={"Cache-Control": "no-cache"} + content=python_content, + media_type="text/plain", + headers={ + "Cache-Control": "no-cache", + "Content-Disposition": f"attachment; filename=agent_test_{agent_id}.py" + } ) except HTTPException: raise except Exception as e: - raise HTTPException(status_code=500, detail=f"Error serving SDK: {str(e)}") + raise HTTPException(status_code=500, detail=f"Error serving Python SDK: {str(e)}") + @app.get("/agent/{agent_id}/sdk-config") async def get_agent_sdk_config(agent_id: str): @@ -1784,6 +1534,70 @@ async def clear_sessions(): return {"message": "All sessions and agents cleared", "status": "success"} +@app.get("/agent/{agent_id}/run-test") +async def run_python_sdk_test(agent_id: str, test_message: str = "Hello, how can you help me?"): + """Run the Python SDK test""" + try: + # Find the session directory + session_id = None + for sid, session in sessions.items(): + if session.get("agent_id") == agent_id: + session_id = sid + break + + if not session_id: + raise HTTPException(status_code=404, detail="Agent session not found") + + session_dir = Path(f"generated_agents/{session_id}") + python_file = session_dir / "agent_test.py" + + if not python_file.exists(): + raise HTTPException(status_code=404, detail="Python SDK file not found") + + # Get agent info + session = sessions[session_id] + agent_info = session.get("agent_info", {}) + port = session.get("runagent_port", 8450) + + # Prepare environment + env = os.environ.copy() + env['PYTHONPATH'] = str(Path.cwd()) # Add current directory to Python path + + # Run the test + test_result = subprocess.run( + ["python3", "agent_test.py", agent_id, "localhost", str(port), test_message], + cwd=session_dir, + capture_output=True, + text=True, + timeout=60, + env=env + ) + + return { + "success": test_result.returncode == 0, + "test_stdout": test_result.stdout, + "test_stderr": test_result.stderr, + "agent_info": { + "name": agent_info.get("agent_name", "Unknown"), + "framework": agent_info.get("framework", "unknown"), + "port": port + }, + "sdk_type": "python" + } + + except subprocess.TimeoutExpired: + return { + "success": False, + "error": "Test timeout", + "sdk_type": "python" + } + except Exception as e: + return { + "success": False, + "error": f"Test failed: {str(e)}", + "sdk_type": "python" + } + if __name__ == "__main__": import uvicorn diff --git a/examples/gpt_5_project/static/agent.html b/examples/gpt_5_project/static/agent.html index cda5163..9133fa4 100644 --- a/examples/gpt_5_project/static/agent.html +++ b/examples/gpt_5_project/static/agent.html @@ -3,7 +3,7 @@ - Enhanced Debug Agent Interface + Python SDK Agent Interface
-

Agent Interface

-

AI Agent Testing Interface

+
+ RunAgent +
+

Agent Interface

+

AI Agent Testing Interface

+
+
- Agent ID: - + Agent ID -
- Framework: - + Framework -
- Port: - + Port -
- Status: Connecting... + Status Connecting...
Agent Interface
@@ -276,8 +437,8 @@

Agent Testing

- - + +
@@ -285,14 +446,14 @@

Agent Testing

Test Agent
-
+
Click "Refresh Info" to see current input values...
@@ -353,6 +514,21 @@

Results & Information

// Initialize the page window.addEventListener('DOMContentLoaded', initializePage); + // Helper function to convert snake_case to Title Case + function formatTitle(text) { + return text + .split('_') + .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()) + .join(' '); + } + + // Helper function to format field names + function formatFieldName(fieldName) { + return fieldName + .replace(/_/g, ' ') + .replace(/\b\w/g, letter => letter.toUpperCase()); + } + async function initializePage() { if (!agentId) { log("No agent ID provided in URL"); @@ -380,13 +556,17 @@

Results & Information

log(`Agent info loaded successfully`); log(`RunAgent URL: ${runagentUrl}`); - // Update UI - document.getElementById('agentName').textContent = `${agentInfo.agent_name}`; + // Update UI with formatted titles + const agentName = formatTitle(agentInfo.agent_name); + document.getElementById('agentName').textContent = agentName; document.getElementById('agentDescription').textContent = agentInfo.description; document.getElementById('framework').textContent = agentInfo.framework?.toUpperCase(); document.getElementById('runagentPort').textContent = agentInfo.port; document.getElementById('connectionStatus').textContent = 'Connected'; - document.getElementById('connectionStatus').style.color = '#28a745'; + document.getElementById('connectionStatus').style.color = '#10b981'; + + // Update status badge + document.getElementById('statusBadge').textContent = `${agentName} Active`; // Generate input fields generateInputFields(); @@ -394,7 +574,7 @@

Results & Information

} catch (error) { log(`Error loading agent info: ${error.message}`); document.getElementById('connectionStatus').textContent = 'Connection Failed'; - document.getElementById('connectionStatus').style.color = '#dc3545'; + document.getElementById('connectionStatus').style.color = '#ef4444'; } } @@ -420,9 +600,12 @@

Results & Information

const description = inputDescriptions[field] || `Enter ${field}`; const isRequired = index === 0; - label.textContent = `${field.replace(/_/g, ' ').replace(/\b\w/g, l => l.toUpperCase())} (${fieldType})${isRequired ? ' *' : ''}`; + // Format the field name nicely + const formattedFieldName = formatFieldName(field); + label.textContent = `${formattedFieldName}${isRequired ? ' *' : ''}`; if (isRequired) { - label.style.fontWeight = 'bold'; + label.style.fontWeight = '600'; + label.style.color = '#1e293b'; } let input; @@ -652,12 +835,12 @@

Results & Information

testOutput.scrollTop = testOutput.scrollHeight; } else if (data.type === 'complete') { testOutput.className = 'output success'; - testOutput.textContent += '\n✅ Live streaming completed!'; + testOutput.textContent += '\nLive streaming completed successfully!'; log(`Live streaming completed successfully`); return; } else if (data.type === 'error') { testOutput.className = 'output error'; - testOutput.textContent += '\n❌ Error: ' + data.content; + testOutput.textContent += '\nError: ' + data.content; log(`Live streaming error: ${data.content}`); return; } @@ -715,13 +898,14 @@

Results & Information

if (agentInfo) { const infoOutput = document.getElementById('infoOutput'); infoOutput.className = 'output info'; + const formattedName = formatTitle(agentInfo.agent_name); infoOutput.textContent = `Agent Details: -Name: ${agentInfo.agent_name} +Name: ${formattedName} Description: ${agentInfo.description} Framework: ${agentInfo.framework} Port: ${agentInfo.port} -Input Fields: ${agentInfo.input_fields?.join(', ') || 'None'} +Input Fields: ${agentInfo.input_fields?.map(field => formatFieldName(field)).join(', ') || 'None'} Entrypoints: ${agentInfo.entrypoint_tags?.join(', ') || 'None'} Expected Output: ${agentInfo.expected_output_format || 'String response'} diff --git a/examples/gpt_5_project/static/icon.png b/examples/gpt_5_project/static/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d110f8a3fe78ea3b5317484c616ee286a6978217 GIT binary patch literal 1473262 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�jjjS+GLHKtnO7Mjpr+l( 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%0A}_KS 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

k

  • 2XKvKzOjMP$#-Kp_}Y3XuDV6q=ak+=2>9cEt)g2DtklNjcY1_ z8<>_F<8Vp$Mj8BLH?XxMq7vBKfVkmtJOPuErR?6ZxS8|7`bkFAl7(#sJ`slVnT)<}04}Dq^7(nfS zVt_pU0HT5Ij6Of5@%b)TEs!X2WafL|iylVwga2y#{2%v!OuXa+EaL^Pn<+^R=e7m9 zt(~xWu$;F|I)6sm;_;oDRKL7f?#Vgx*~G@o3JzgtT*c%k!IhJLA<^?jE`N$pm?BA3 z&O^wY-GcLHYGI1;goz|SGhq~v**rjb5}SQxVxB7C(bnPbh{2|xbDxLe3z-KIdt7Xd zG~LN|80ASZz3t1@IMt&XFXZ9NNwQ7CT(NV?69g_EseE#NTtuXbD0EiofI6l-bsSmk;5?1et$Ho}X0v`_tM0I4x4Cu0<*<%OG2+y;v z5E!|4v*xMx18E!Z^N$C2V#t+1%I)z_eGC4Qfg@3|f`<1C01v6TRu*snZ^m!^)7x&mWmGJ_q6&76i#u z{5w{0EMIpRaaTqCPyX*Rk&2v^=dgy!x5W5f*`F?FF3E0p-_F!%xrf*Ua#@G$}Yoz2uJ_S_s;EE8=+2Q|;y(^S~r}} z#c1*~$KP~r5gTiPr4<-!sg#P+FkMzky$adsOF&GwUtlTNIn`u`r5T$Yk zKJ=51Qj-DdB{topj2cy(5rkiNK}B^fW3BKs#YKq0*pfS*SbgN!6jdH~7K|h9ST0&} zJnxXZCAuyJcC|{vQdbp=hNe9y`~+NQN#+rnJEXki2Bf9ZB#@JCmNgeVS@n?r5QIwv zJq@GnJ|PkPT*)ita_IC#kAs$67+;6|n`Y($ZnWF{Bo({d2Ew{U-Z=}?iU0P`{!0Jg zZ~ve9NB_sa$Jc-1*J%25IsXZ%k&Y~Mt-`thw0oip*ew)`RYl$H37aE*g9KFb$&YV$ ztGC%xHSoOEQng6kcZagC2=V>Uo3^lwsR})e(|#CTz_blQUDouVYc`dd&FXcP4HaAH z07jTY5qar?C~ar08UGw#KC~F_h?xuSNroQaA@*q*cMF_uvpNMri|V@+vYqFAFiv+m zJ_i{9(wMtlrKj_$QPn`5w&hp5O-M4zf-Cbb3K9FAM?a`u?8U7hd=cQ5Z&-OZ=JQgVXNUrRl zjZ9pG8?#KyXz$&+F95Rjpal0Uh|7-!+DrjT^PFifACoDgPPwq$1q-i9wBJ{^py|-_ zipL@=4y?u9><`bXw{M_WOHOJOj%0D2imyjn9_jtiT=h=Ohh}avcQc?KWcd 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
  • *HVHv!DKLy<9K2U%w*Yq3P3snn=Cky|KekOGK+H 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 z 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 z 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%0AiFwkAseF`e*^e#$Vr%gh%W8I7AP+YLEePO5FH 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%0A2Wl`rh*oAS=g^Se`hbN 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Ǿ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