← World StudioYour agents run where they live.
Your world manages the work.
Connect a trusted Python runtime to your invite-only workspace. It polls outbound for tasks you launch, publishes selected results, and acknowledges supported controls. Agent Forge receives definitions and events; your module and provider credentials stay with you.
Choose your connection pathAlready have an agent with a JSON HTTP endpoint? Use guided setup below. Have Python agents or a framework such as LangGraph? Use the adapter template. No agents yet? This beta connects existing agents; it does not supply a model or credits.
Download connector kit ↓ · Connection help
Guided setup for an HTTP agent
In World Studio, enter an agent name under Connect an HTTP agent and choose Create my world & connect. Download and extract the kit, install its certificate bundle, then run the exact command shown in your world. No JSON file upload is needed.
Manual setup is also available:
python -m pip install -r requirements-connector.txt
python connect.py
Enter the endpoint of an agent you already run. It must accept {"prompt":"..."} and return {"text":"..."}. The guide creates your team manifest and asks for your world URL and pairing code. No adapter code is needed for this protocol. Other frameworks can use the Python adapter below. This does not install or run a model for you.
1 / Describe your team
Already have an adapter? Export its exact manifest without making model calls:
python -m integrations.runner --team my_team:team --export-manifest agent-team.json
Upload a version-1 JSON manifest in World Studio. Each logical agent needs a stable ID, name and role. Connections use those IDs, even when several agents share a process.
{"version":1,"name":"My team","agents":[
{"id":"writer","name":"Writer","role":"general"}
]}2 / Register the tasks you want to expose
Download the connector kit ↓ — client code and an adapter template only; no server code, model or credentials. Extract it, edit my_team.py to call your existing agent, and follow README.txt. Python 3.11+; install requirements-connector.txt from the kit for trusted HTTPS certificate roots.
Place your adapter module in this source checkout (or on your Python import path), import your existing agents, and define a factory returning RuntimeTeam. Each handler calls your actual agent. Wrap observable steps with context.agent(); this is also where cooperative controls take effect.
from integrations.runner import RuntimeTeam, TaskHandler
MANIFEST = {
"name": "My team",
"agents": [{"id": "writer", "name": "Writer", "role": "general"}]
}
def draft(context, prompt):
with context.agent("writer", prompt) as span:
result = my_existing_agent.run(prompt)
span.summary = "Draft generated for review"
span.report = result.text
span.usage = result.measured_usage # optional, known scalar values
def team():
return RuntimeTeam(
"My connected team", "python", MANIFEST,
[TaskHandler("draft", "Draft a document", ["writer"], draft)]
)The import path comes from your local command, never from an uploaded manifest or a server task. Register only handlers you intend to make launchable. The optional LangGraph example in this checkout is examples.connected_langgraph:team; it offers whole-team and individual-agent tasks using the existing local provider.
3 / Pair once
From the source checkout, install the dependencies. Use the LangGraph requirements only for that adapter.
python -m pip install -r requirements-connector.txt
# Optional:
python -m pip install -r requirements-langgraph.txt
In your world, choose Pair a runtime. Copy the one-use code, then run the command shown there, replacing the module and private config path. Enter the code at the hidden prompt.
python -m integrations.runner \
--team my_team:team \
--url http://127.0.0.1:8000 \
--workspace YOUR_WORLD_ID \
--config /private/path/forge-runtime.json
Codes expire in ten minutes. The connector saves its credential in a new owner-only file and reuses it on later starts. It does not install hooks or edit agent settings. Keep this process running while you want the world to launch tasks. HTTPS is required outside loopback.
4 / Launch and inspect from the world
Select a registered handler, describe the result you want, and choose Launch real task. Run history distinguishes queued, claimed, running, requested controls and terminal outcomes. Select a character to inspect its assignment and result.
| Control | What it actually means |
|---|
| Pause after current step | Already-running functions finish. New wrapped steps wait. The UI says paused only after the runtime acknowledges a boundary. |
| Resume run | Continue the same live process at its waiting boundary. This first connector retains paused state in process memory; restart recovery is not guaranteed. |
| Cancel remaining work | Skip future wrapped steps. In-flight external work can still finish and incur provider usage. |
| Disconnect runtime | Revoke its credential and fence unfinished runs. This does not kill an external process instantly. |
Unsupported controls are hidden. Completed, failed, cancelled and interrupted runs retain their separate history and results. A lost lease becomes interrupted with unknown work outcome; it is never silently retried.
Before serving other customers
This is a local preview. A shared API key is not membership-based tenant authorization. Public multi-user hosting still needs identity and permissions, operational limits, retention and independent isolation review. Keep the local Codex account connection local.
Product, evidence and business roadmap ↗Get unstuck
My world says offline
Start your saved connector command on the machine running your agents. Keep that terminal open. An idle network outage retries automatically. Reopening the browser alone does not start your agents.
The pairing code expired or was rejected
Choose Pair a runtime to generate a new one-use code, then paste it into the hidden connector prompt. A new connection needs the manifest for this world. Never paste credentials into chat or the task prompt.
The task failed or was interrupted
Read the report and check your runtime logs. An interrupted task may have performed some work: verify that outcome before launching a new task. Forge never automatically replays uncertain execution.
My endpoint returns a different format
The guided HTTP path needs POST {"prompt":"..."} and a JSON {"text":"..."} response. Use the Python adapter to translate your existing agent interface; do not enter a model-provider URL or key into Forge.