Tutorials & Example Apps
The Tavora Go SDK ships with self-contained example apps. Each is its
own Go module — cd examples/<name> && go run . — and demonstrates a
concrete integration pattern you can copy into your own backend.
Walkthroughs
Section titled “Walkthroughs”The two walkthroughs below build on each other. Read them in order if it’s your first Tavora integration; treat them as standalone references once you’re past the basics.
- Build the tasklist agent — the canonical code-first + MCP integration template, end-to-end. Start here if it’s your first integration.
- Extend the agent with a module skill —
add a
require()-able JS module that wraps an MCP call + an LLM sub-call in one sandbox step. The “skills vs MCP” decision worked out concretely.
Reference examples
Section titled “Reference examples”| Example | What it shows |
|---|---|
chat | Multi-turn agentic REPL — one AgentSession reused across turns. |
support-bot | RAG-augmented chat over a documents folder using Conversation + SendMessage. |
research-assistant | Single-turn agent with search + list_indexes tools. |
knowledge-base | Document upload, index management, semantic search. |
tasklist | End-to-end app template — local SQLite app exposes its domain to a Tavora agent via MCP. See the walkthrough. |
The TS SDK ships parallel examples under
tavora-sdk-ts
(ts-chat, ts-chat-browser).
The integrator template: tasklist
Section titled “The integrator template: tasklist”If you’re wiring Tavora into a Go app for the first time, start with
tasklist. It’s the smallest end-to-end demonstration of the
code-first integration pattern Tavora is built around:
- Your app hosts an MCP server at
/mcpexposing your domain tools (in the example: SQLite-backed task lists). - You author the agent under
tavora/agents/tasklist/— theagent.jsonc → mcpblock declares your/mcpendpoint + the bearer secret name.tavora deployships it. - The agent writes
require('tasklist-example').add_task({...})inside athinkstep. Tavora’s MCP client POSTs JSON-RPCtools/callto your/mcpendpoint; your handler dispatches it and returns the result. - The result flows back into the sandbox trace, streams over SSE, and renders in your UI.
One think step can fire many MCP calls — the agent doesn’t spend one
LLM turn per tool call.
Hosted tools
Section titled “Hosted tools”For deployable CLI tools (interactive chat surface, CI gates, RAG eval
suites), see
tavora-tools:
tavora deploy --dry-run— CI validate gate for the localtavora/folder.tavora rag-eval formats --gate— verify the RAG pipeline accepts every supported document format.tavora rag-eval judge --gate— LLM-as-judge RAG eval against structured ground truth.tavora-tui— interactive Bubble-Tea chat surface against a configured agent.
What’s next
Section titled “What’s next”- Quickstart — first code-first agent.
- MCP servers — the integration mechanism the
tasklisttemplate uses. - Skills —
require()-able JS modules and prompt skills.