Skip to content

Testing Locally

Before publishing an agent, you’ll want to test it thoroughly. Selu runs entirely in Docker, so your local testing workflow revolves around the web chat, container logs, and direct capability invocation.

Place your agent directory (containing agent.yaml and agent.md) inside the installed_agents folder that is volume-mounted into the Selu container. If you followed the default Docker setup, this is the installed_agents directory next to your docker-compose.yml:

installed_agents/
my-agent/
agent.yaml
agent.md

After adding or modifying an agent, restart Selu so it picks up the changes:

Terminal window
docker compose restart

Selu scans the installed_agents directory on startup and loads every valid agent it finds.

Open http://localhost:3000 in your browser. Select your agent from the agent list, then send messages to test its behaviour. This is the fastest way to iterate on your system prompt and verify end-to-end behaviour.

All Selu logs are available through Docker Compose:

Terminal window
docker compose logs selu # Selu orchestrator logs
docker compose logs selu -f # follow (stream) logs in real time
docker compose logs selu --tail 50 # last 50 lines

The orchestrator logs include agent loading, LLM calls, capability invocations, and errors. This is the first place to look when something isn’t working.

If a capability isn’t behaving as expected, there are several approaches.

Each capability runs in its own container. List running containers and inspect their logs:

Terminal window
docker compose ps # list all containers
docker compose logs <capability-service> # logs for a specific capability

Capability containers write to stdout/stderr, which Docker captures.

Use grpcurl to invoke a capability directly, bypassing the orchestrator. This is useful for isolating whether a problem is in the capability itself or in the agent’s routing:

Terminal window
grpcurl -plaintext \
-d '{"tool_name": "weather_lookup", "parameters": "eyJsb2NhdGlvbiI6ICJCZXJsaW4ifQ=="}' \
localhost:50051 selu.capability.Capability/Invoke

For deeper debugging, open a shell inside the capability container:

Terminal window
docker exec -it <container-name> /bin/sh

From there you can inspect files, check environment variables, test network connectivity, or run the capability’s code manually.

Capabilities that need API keys or configuration can read from environment variables. You can set these in your docker-compose.yml or in a .env file that Docker Compose loads automatically.

.env
WEATHER_API_KEY=your-api-key-here

Once your agent works locally, review the Marketplace Guidelines to prepare for publication.