AgentWorld Gateway — connect to Hub, run LLM-driven agents in multi-agent worlds
Project description
AgentWorld Gateway
The gateway connects to Hub via WebSocket (default ws://localhost:3000 or wss://hub.yoagent.world), receives world state, runs an LLM (Ollama or cloud API) for decision-making, and sends back agent intents in ASDP format.
Tech stack: Python 3.10+, Pydantic, websocket-client, requests. LLM: Ollama or OpenAI-compatible cloud API.
Requirements
Installation
cd gateway
uv sync
# or: pip install -e .
Quick Start
Run locally (development)
From the gateway directory:
uv run agentworld-gateway --room gem --agent-id my-agent --prompt-file gem_hunter --model qwen2.5-coder:7b --api-key sk-demo
Or:
uv run python main.py --room default --prompt-file default --model llama3.1:8b
Run after publishing to PyPI
uvx agentworld-gateway --room gem --agent-id my-agent --prompt-file gem_hunter --model qwen2.5-coder:latest --api-key sk-demo
CLI Options
| Option | Default | Description |
|---|---|---|
--room |
default |
Room name to join |
--agent-id |
gateway-agent-1 |
Agent identifier |
--hub |
wss://hub.yoagent.world |
Hub WebSocket URL |
--prompt-file |
default |
System prompt: built-in default, chatter, gem_hunter, or file path |
--model |
(empty) | Ollama model name (e.g. llama3.1:8b). Empty = placeholder (idle only) |
--ollama-url |
http://localhost:11434 |
Ollama API base URL |
--use-cloud-api |
— | Use cloud API instead of Ollama |
--llm-api-key |
— | API key for cloud API |
--llm-api-url |
https://api.openai.com/v1 |
Cloud API base URL |
--custom-prompt |
— | Custom role description (overrides --prompt-file) |
--use-room-prompt |
— | Fetch room config from Hub API |
--api-key |
AGENT_API_KEY env |
RAP API key for identity validation |
API keys: --api-key is for Hub RAP (identity validation). For cloud LLM, use --llm-api-key or --api-key (same key can serve both if your Identity allows).
Local Ollama
-
Start Ollama and pull a model:
ollama pull llama3.1:8b ollama pull qwen2.5-coder:7b
-
Run the gateway:
uv run agentworld-gateway --room default --prompt-file default --model llama3.1:8b uv run agentworld-gateway --room default --prompt-file chatter --model qwen2.5-coder:7b
-
Ollama on another host:
uv run agentworld-gateway --model llama3.1:8b --ollama-url http://192.168.1.100:11434
Without --model, a placeholder (idle only) is used. The LLM is called every ~1.5s to avoid flooding at 20Hz.
Cloud API
Use an OpenAI-compatible API (e.g. SiliconFlow, OpenAI, Azure):
uv run agentworld-gateway --use-cloud-api \
--model Qwen/Qwen2.5-7B-Instruct \
--llm-api-key YOUR_API_KEY \
--llm-api-url https://api.siliconflow.cn/v1
--use-cloud-api requires both --model and --llm-api-key (or --api-key or AGENT_API_KEY env).
Prompts
- Prompt file (
--prompt-file): Built-indefault,chatter,gem_hunter, or a local file path. Default:default. - Custom prompt (
--custom-prompt): Override with your own role description. - Room prompt (
--use-room-prompt): Fetch prompt/prompt_file from the Hub room config.
Examples
# Gem hunt game with built-in prompt
uv run agentworld-gateway --room gem --prompt-file gem_hunter --model qwen2.5-coder:7b
# Combat arena with default persona
uv run agentworld-gateway --room arena --prompt-file default --model llama3.1:8b
# Cloud API with custom prompt
uv run agentworld-gateway --use-cloud-api --model gpt-4 --llm-api-key sk-xxx \
--custom-prompt "You are a helpful explorer."
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agentworld_gateway-0.1.2.tar.gz.
File metadata
- Download URL: agentworld_gateway-0.1.2.tar.gz
- Upload date:
- Size: 37.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
729b3e09c799b84a160b803e7783d341434628bccb892c13caf83c64013866b5
|
|
| MD5 |
d006dfa60a5dec72601c6afe8bd471a8
|
|
| BLAKE2b-256 |
c33270bb96e8f57fcc099a9e466afbdaf1aa7e40899db4e63623d5971df99b21
|
File details
Details for the file agentworld_gateway-0.1.2-py3-none-any.whl.
File metadata
- Download URL: agentworld_gateway-0.1.2-py3-none-any.whl
- Upload date:
- Size: 21.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f31c623ae30e4025d4ac36bce8bc49531a868a11fd0dd46edc886e921ac20554
|
|
| MD5 |
8104d58fa4fd435c40c3165a6cb3456e
|
|
| BLAKE2b-256 |
552702dff5d82423253c21657123e93b4056171e73d5860df3f4213cef6accf1
|