Gateway-Innovations/connector-worlds is a demo of the whole loop from the customer’s side: an example agent, with the platform doing everything simulation-related for it.
Relay is an ops agent with a chat UI that works across a customer’s Slack, Google Drive, Jira and CRM. The repository takes what Relay’s users actually did, turns each user’s traffic into hosted worlds seeded with that user’s data, and runs Relay against those worlds before a change ships. The repository holds the agent and three small commands. The schemas, the worlds, the sessions and the graders are the platform’s.
Nothing in the repository is a world. There is no
connector.toml, no
schema/, no bundle and no CI that runs worlds. Every world is created on the
platform from a shipped connector template, and every simulation runs in a
hosted session.What it shows
The five-minute path
Everything runs fromrelay/ on Node 22.9 or later.
1
Run Relay offline
No keys: the connectors are in-memory fixtures and a deterministic scripted model drives the agent.
2
Run it traced
Put a project’s keys in
.env (GATEWAY_HOST, GATEWAY_PUBLIC_KEY, GATEWAY_SECRET_KEY, GATEWAY_PROJECT_ID). Every run is then a trace on the platform with the user’s id and a tool span per connector call. Those traces are the production traffic the next step pulls.3
Pull a user's traffic
The user’s sessions, read back from the public API as a session-export JSONL, the shape
gateway worlds session export prints. Without keys the command reads a bundled, invented recording so the rest of the path can be tried first.4
Build the user's worlds
One hosted world per connector the traffic touched, from the platform’s shipped templates, seeded with rows extracted from the traffic through each world’s own contract. Per connector the command runs:A 409 on create means the world exists; the import still lands a new data version.
--dry-run prints the rows per entity without touching the platform.5
Simulate
Relay runs against the user’s worlds: one hosted session per world a scenario touches, Relay’s tools pointed at the sessions’ tools, the platform’s assertion graders on the final state, results and links printed.
Which platform surface does what
Relay keeps its own tools; the worlds serve the template tools (
list_messages, share_file, search_issues, query_records, …). One adapter file maps one onto the other, so the agent and its schemas are exactly what runs in production.
Copy the pattern
- Trace your agent with the user’s id on every run (Metadata & identity).
- Pull a user’s sessions and project the tool calls into rows for the connector templates your agent touches (Put data in a world).
- Create one world per connector per user with
gateway worlds create --from <template>and import the rows (Simulations for your users). - Open hosted sessions in parallel and grade (Run many sessions at once).
- Put the simulate step in your own CI (Run API worlds in CI). The sample repository ships none, so nothing runs against the platform without your keys.
The repository’s README carries the same five steps with the exact commands.