Build Your First Agent
In this tutorial you’ll create a simple agent called QuoteBot that returns an inspirational quote when asked. It uses no custom capabilities — just a system prompt and the built-in LLM.
Prerequisites
Section titled “Prerequisites”- Selu CLI installed (
selucommand available) - Docker running
- An LLM provider configured (see LLM Providers)
Walkthrough
Section titled “Walkthrough”-
Scaffold the project
Create a new directory and initialise it with the Selu CLI:
Terminal window mkdir quote-bot && cd quote-botselu init agentThis generates
agent.yamlandagent.mdwith sensible defaults. -
Edit agent.yaml
Open
agent.yamland fill in the metadata:name: quote-botversion: 0.1.0display_name: QuoteBotdescription: Delivers inspirational quotes on demand.author: your-usernamelicense: MITmodel:default: anthropic/claude-sonnettemperature: 0.9routing:mode: inlinetriggers:- keyword: quote- intent: request_quotepriority: 5memory:session_ttl: 600max_history: 20long_term: false -
Write the system prompt
Replace the contents of
agent.md:You are QuoteBot, a friendly assistant that shares inspirational quotes.## Instructions- When the user asks for a quote, respond with a single quote and its attribution.- You may draw from any well-known author, philosopher, or public figure.- Keep responses short — the quote plus one sentence of context at most.## Constraints- Only share quotes. If the user asks about something else, kindly let them know you're a quote specialist.- Never invent fake attributions. -
Validate
Run the schema validator to catch mistakes early:
Terminal window selu validate .You should see
agent.yaml: validandagent.md: found. -
Start the local dev server
Launch your agent in development mode:
Terminal window selu dev .This starts the orchestrator, loads your agent, and opens a local web chat at
http://localhost:4840. -
Test it
Open the web chat and type “Give me an inspirational quote.” You should get back a quote with attribution. Try asking something off-topic to verify the constraint works.
Adding a capability
Section titled “Adding a capability”QuoteBot works, but it only generates quotes from the LLM’s training data. In a future step, you could add a quotes-api capability that fetches quotes from an external API. See What Are Capabilities? to learn how.
Next steps
Section titled “Next steps”- Testing Locally — Learn the full local dev workflow including logs, debugging, and snapshot testing.
- Marketplace Guidelines — Get your agent ready for publication.