Next steps¶
You finished the Quickstart and have a streaming agent running locally. Here is where to go from here.
Learn the primitives in depth¶
- Tutorial — the three-step killer demo arc. A
guided build of a non-trivial agent that exercises
@Agent+@Tool+@Stream+@Eval+@Workflow+@MCPend to end. Read it in order: - Reference — per-primitive documentation. One page per primitive with the full signature, every option, the default-magical form, and the escape-hatch subclass pattern.
Read real projects¶
examples/support-agentis the runnable companion to the 3-step killer demo tutorial. Fork it, setANTHROPIC_API_KEY, and runuv sync && ajolopy devto see every primitive in action against a real provider.examples/web-researchis the canonical "wire an external HTTP API as a@Tool" reference (AJ-65). AResearcheragent that calls the Tavily search API through one@Tooland folds the results into a Markdown-cited answer through a second pure-Python@Tool. Ships with an@Evalregression suite plus pre-builtDockerfile.prod+fly.toml.examples/oncall-agentis the focused@MCPdemo (AJ-63). Wires the canonical GitHub MCP server into a small on-call agent so the model can search issues / PRs / commits while triaging incidents. Boots cleanly without aGITHUB_TOKEN— the agent's local@Toolkeeps answering when the MCP server is unhealthy.examples/local-ollamais the no-API-key runnable example (AJ-66). It runs@Agent+@Tool+@Streamagainst a local Ollama server through Ajolopy's universal OpenAI-compatible provider — install Ollama,ollama pull llama3.3,uv sync && ajolopy dev, and the streaming code reviewer answersPOST /chatentirely on your laptop.examples/memory-assistantis the persistent-assistant reference for@Agent(memory="redis://..."). ASessionScopedMemorywrapper plus a requestContextVarpartition chat history persession_id, so two users hitting the same/chatendpoint see independent transcripts in Redis. Ships with adocker-compose.yml, aDockerfile.prod, and a 5-row eval suite whosememory_isolationmetric catches cross-session leaks.dogfood/docsbotis Ajolopy's own docs bot — the first dogfood app (AJ-54). Answers questions about the framework using an in-memoryRetrieversubclass over the project's owndocs/tree, exercises@Agent+@Tool+@Stream+@Evalend-to-end, and ships pre-generatedDockerfile.prod+fly.toml.examples/contextual-ragis the RAG flagship example (AJ-67). Contextual chunking (every chunk ships the parent section's summary), hybrid retrieval (0.4 keyword + 0.6 semantic-hash), and citation-enforcing evals (addresses_queryLLM-judge plus two deterministic checks for the[path#section]citation block and the right cited section). Documents the upgrade path toQdrantRetriever/PgvectorRetrieverfor real embeddings.- Dogfood apps roadmap. A small set of end-to-end Ajolopy projects
maintained alongside the framework — the same way NestJS ships
nest-cliexamples. Tracked asAJ-54andAJ-55.
Put it in production¶
- Observability recipes. Five
cookbooks plugged in via the
otelextra: Langfuse · Sentry · Grafana stack · Honeycomb · Datadog. Same pipeline, different exporter — pick one and you have traces + cost dashboards in under 10 minutes. - Deploy templates. Fly.io, Railway, Render, Vercel, and a
universal Dockerfile — all generated by
ajolopy newwhen you opt in.
Contribute¶
Ajolopy is built in the open and tracks every piece of work on a PM-style board in the repo.
board.jsonis the single source of truth for what isready,in_progress,blocked,in_review, ordone.AGENTS.mddocuments the claim / branch / transition protocol for both human and AI contributors.specs/holds the prose spec for every board item — the design contract you build against.
uv run python tools/board.py list # see what is open
uv run python tools/board.py next # see what to pick up next
File issues or open discussions at github.com/jcocano/Ajolopy.
Help and feedback¶
- Issues & feature requests: github.com/jcocano/Ajolopy/issues
- Security disclosures: see
SECURITY.md.