Agent Builder

AI agent builder — describe it, get a function-calling schema

Describe what your agent should do in plain English. Get a system prompt, a JSON-Schema function-calling definition, and OpenAI-compatible Python code to start. Free, no signup.

Describe your agent

Try the AI agents API

Tools, function calling, memory, and orchestration — in one OpenAI-compatible API.

Start $5 trial → AI agents API
(function(){ function escHtml(s){ return (s||"").replace(/[&<>"']/g, c => ({"&":"&","<":"<",">":">","\"":""","'":"'"}[c])); } document.getElementById('genBtn').onclick = function() { var desc = document.getElementById('desc').value.trim(); var toolsText = document.getElementById('tools').value.trim(); var tools = []; toolsText.split('\n').forEach(function(line) { line = line.trim(); if (!line) return; var i = line.indexOf(':'); if (i < 1) return; var name = line.slice(0, i).trim().replace(/[^a-zA-Z0-9_]/g, '_'); var desc = line.slice(i+1).trim(); tools.push({ name: name, description: desc }); }); // Generate JSON Schema var toolDefs = tools.map(function(t) { var props = { query: { type: 'string', description: 'Search or filter parameter' } }; if (/id/i.test(t.name)) props.id = { type: 'string', description: 'The identifier' }; if (/email/i.test(t.name)) props.email = { type: 'string', description: 'Customer email address' }; if (/track|carrier/i.test(t.name)) { props.carrier = { type: 'string', description: 'Shipping carrier (ups, fedex, dhl)' }; props.tracking_number = { type: 'string', description: 'Tracking number' }; } if (/order/i.test(t.name)) { props.order_id = { type: 'string', description: 'The order ID' }; } return { type: 'function', function: { name: t.name, description: t.description, parameters: { type: 'object', properties: props, required: Object.keys(props).slice(0, 1) } } }; }); var sysPrompt = "You are a helpful AI agent. Your job: " + desc + "\n\n" + "Use the provided tools when needed. Be concise, accurate, and cite sources. " + "If you are not sure, ask for clarification rather than guessing."; var starterCode = "from openai import OpenAI\nimport json\n\n" + "client = OpenAI(\n api_key='sk-live-PLUGSKY-...',\n base_url='https://api.plugsky.com/v1',\n)\n\n" + "SYSTEM_PROMPT = " + JSON.stringify(sysPrompt) + "\n\n" + "TOOLS = " + JSON.stringify(toolDefs, null, 2) + "\n\n" + "def run_agent(user_msg):\n" + " messages = [{'role': 'system', 'content': SYSTEM_PROMPT}, {'role': 'user', 'content': user_msg}]\n" + " while True:\n" + " r = client.chat.completions.create(model='plugsky-pro', messages=messages, tools=TOOLS)\n" + " msg = r.choices[0].message\n" + " if not msg.tool_calls:\n" + " return msg.content\n" + " messages.append(msg)\n" + " for call in msg.tool_calls:\n" + " args = json.loads(call.function.arguments)\n" + " # TODO: call your function here\n" + " result = your_function(call.function.name, args)\n" + " messages.append({'role': 'tool', 'tool_call_id': call.id, 'content': json.dumps(result)})"; document.getElementById('sysPrompt').textContent = sysPrompt; document.getElementById('toolDefs').textContent = JSON.stringify(toolDefs, null, 2); document.getElementById('starterCode').textContent = starterCode; document.getElementById('result').style.display = 'block'; }; document.getElementById('genBtn').click(); })();