Skip to content

Commit 1cc7812

Browse files
authored
docs: marketing-grade home + Quickstart polish (#35)
Home (introduction.mdx): - New hero: 'Build LLM agents in Rust without the duct tape.' Three lines of pitch with concrete numbers (six providers, six vector stores, one umbrella crate) instead of a 47-word run-on. - Shields.io badges row across the top: GitHub stars, crates.io version, docs.rs, Rust 1.75+, MIT, CI status. Same set the README ships, just surfaced where first-time visitors land. - New 'Real apps you can ship today' strip with three Pattern cards (research assistant, code Q&A over a repo, streaming UI). Patterns was buried in 'Where to next'; now it's the second thing visitors scroll to. - 'What you can build' cards re-tightened. Stateful graphs in particular went from a 7-feature run-on to a value-led one-liner. - 'How Cognis is organized' (workspace map) removed from the home — it's internal architecture and lives in /reference/api/cognis. - New 'What's not here yet' section, honest about LangSmith / OTel gaps, missing managed runtime, the smaller provider matrix. Builds trust faster than 'we have everything.' - New 'Like what you see? Star the repo.' card at the bottom — explicit CTA where visitors finish reading. Quickstart: - Description: 'Build a tool-calling agent in five minutes' → 'From zero to a running agent in five minutes.' (also updates the Quickstart card on the home.) - New 'What you just built' section between the run command and 'How it works'. Closes the loop — visitor finishes the tutorial feeling they understood it, not just typed it.
1 parent e9175f4 commit 1cc7812

2 files changed

Lines changed: 57 additions & 25 deletions

File tree

docs/mintlify/get-started/quickstart.mdx

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: "Quickstart"
3-
description: "Build a tool-calling agent in five minutes."
3+
description: "From zero to a running agent in five minutes."
44
sidebarTitle: "Quickstart"
55
---
66

@@ -110,6 +110,17 @@ cargo run
110110

111111
You should see something like `23 * 17 + 4 = 395`.
112112

113+
## What you just built
114+
115+
In about 11 lines, you ran an agent that:
116+
117+
- **Decided when to call a tool** (the calculator) and when to answer directly.
118+
- **Handled the round-trip** from prompt → model → tool call → tool result → final reply.
119+
- **Works against any of six providers** with the same code — flip `COGNIS_PROVIDER` and rerun.
120+
- **Compiled to one binary** with everything you imported. No runtime, no Python, no shim.
121+
122+
That's the whole V2 surface in its smallest form. Every [Pattern](/patterns/research-assistant) on this site builds on this shape — same `AgentBuilder`, same `with_*` chain, just more parts wired in.
123+
113124
## How it works
114125

115126
Behind the scenes, `AgentBuilder` compiled a small `Graph<AgentState>` and `agent.run` walked it:

docs/mintlify/introduction.mdx

Lines changed: 45 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,26 @@
11
---
22
title: "Cognis"
3-
description: "The Rust-native way to build LLM agents, RAG pipelines, and stateful graph workflows."
3+
description: "Build LLM agents in Rust without the duct tape. Typed Runnables, an agent loop, a stateful graph engine, and production-grade RAG — all in one workspace."
44
sidebarTitle: "Overview"
55
---
66

7-
Cognis is the easiest way to build LLM-powered apps in Rust. The shapes are familiar — typed `Runnable`s you compose with `pipe`, an agent loop with tools and memory, a stateful graph engine with checkpoints and interrupts, a RAG pipeline with pluggable splitters and stores — all translated into idiomatic Rust with type safety, ownership, and zero-cost composition.
7+
<div className="flex flex-wrap gap-2 my-6">
8+
<a href="https://github.com/0xvasanth/cognis"><img src="https://img.shields.io/github/stars/0xvasanth/cognis?style=social" alt="GitHub stars" /></a>
9+
<a href="https://crates.io/crates/cognis"><img src="https://img.shields.io/crates/v/cognis?label=cognis&color=D97706" alt="crates.io" /></a>
10+
<a href="https://docs.rs/cognis"><img src="https://img.shields.io/docsrs/cognis" alt="docs.rs" /></a>
11+
<img src="https://img.shields.io/badge/rust-1.75%2B-orange" alt="Rust 1.75+" />
12+
<img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT license" />
13+
<a href="https://github.com/0xvasanth/cognis/actions"><img src="https://img.shields.io/github/actions/workflow/status/0xvasanth/cognis/ci.yml?branch=main" alt="CI" /></a>
14+
</div>
815

9-
It's a rebuild, not a port. The intent is to take the patterns the Python LLM ecosystem proved out and recast them around Rust's strengths.
16+
# Build LLM agents in Rust without the duct tape.
17+
18+
Typed `Runnable<I, O>` flows from your prompt to your parsed struct. Tool schemas are checked at compile time. Memory, retries, fallbacks, rate limits, prompt caching, evals — all in the box. **Six providers behind one client. Six vector stores behind one trait. One umbrella crate.**
1019

1120
```rust
1221
use std::sync::Arc;
1322
use cognis::prelude::*;
14-
use cognis::{AgentBuilder, Calculator};
15-
use cognis_llm::Client;
23+
use cognis::{AgentBuilder, Calculator, Client};
1624

1725
#[tokio::main]
1826
async fn main() -> Result<()> {
@@ -28,7 +36,23 @@ async fn main() -> Result<()> {
2836
}
2937
```
3038

31-
That's a real, working tool-calling agent. Swap `COGNIS_PROVIDER` between `openai`, `anthropic`, `google`, `ollama`, `azure`, or `openrouter` — same code.
39+
A real, working tool-calling agent in 11 lines. Swap `COGNIS_PROVIDER` between `openai`, `anthropic`, `google`, `ollama`, `azure`, or `openrouter` — same code.
40+
41+
## Real apps you can ship today
42+
43+
<CardGroup cols={3}>
44+
<Card title="Research assistant" icon="magnifying-glass" href="/patterns/research-assistant">
45+
Planner → researcher (with web search) → writer. Sequential multi-agent in 80 lines.
46+
</Card>
47+
<Card title="Code Q&A over a repo" icon="code" href="/patterns/code-qa">
48+
Walk a Rust repo, embed code chunks, answer questions with file:line citations.
49+
</Card>
50+
<Card title="Streaming UI backend" icon="signal" href="/patterns/streaming-ui">
51+
`axum` SSE endpoint streaming agent tokens, tool starts, and tool results to the browser.
52+
</Card>
53+
</CardGroup>
54+
55+
Five more in the [Patterns gallery](/patterns/research-assistant) — multi-agent debate, long-context summarization, HITL approval, stateful chat with memory, and a fully local Ollama setup.
3256

3357
## What you can build
3458

@@ -37,16 +61,16 @@ That's a real, working tool-calling agent. Swap `COGNIS_PROVIDER` between `opena
3761
A model with tools, memory, and a loop that knows when to stop. Add middleware for retry, fallback, rate limits, PII redaction, and human approval.
3862
</Card>
3963
<Card title="Multi-agent systems" icon="people-arrows">
40-
Sequential pipelines, supervisor routers, parallel-vote ensembles, round-robin debates. Or wire your own handoff strategy.
64+
Sequential pipelines, supervisor routers, parallel-vote ensembles, round-robin load balancing, hierarchical trees. Or wire your own `HandoffStrategy`.
4165
</Card>
4266
<Card title="RAG pipelines" icon="database">
43-
Documents → splitters → embeddings → vector store → retriever → prompt. Six vector store backends, eight splitters, and an indexing pipeline that only re-embeds what changed.
67+
Documents → splitters → embeddings → vector store → retriever → prompt. Six vector store backends. An indexing pipeline that only re-embeds what changed.
4468
</Card>
4569
<Card title="Stateful graphs" icon="diagram-project">
46-
`Graph<S>` with typed state, reducers, conditional edges, checkpoints, time-travel, interrupts, and seven stream modes. Pregel-style execution; built around Rust's type system.
70+
`Graph<S>` with typed state and per-field reducers. Time-travel through checkpoints, pause for human approval, fan out in parallel — all type-checked at compile time.
4771
</Card>
4872
<Card title="Production observability" icon="chart-line">
49-
LLM-aware tracing into Langfuse out of the box. Token counts, USD cost, prompt versioning, and evaluation scores — opt in with one feature flag.
73+
LLM-aware tracing into Langfuse out of the box. Token counts, USD cost per run, prompt versioning, evaluation scores — one feature flag.
5074
</Card>
5175
<Card title="Local-first apps" icon="laptop">
5276
Run entirely against Ollama with no API keys. Swap to a hosted provider later — the agent code doesn't change.
@@ -58,29 +82,23 @@ That's a real, working tool-calling agent. Swap `COGNIS_PROVIDER` between `opena
5882
- **Compile-time guarantees.** Tool schemas, message types, and graph state transitions are checked before your code runs. No "unknown variant at runtime" surprises.
5983
- **Pay only for what you use.** Every external integration is feature-gated. Your binary doesn't include OpenAI code if you only use Anthropic.
6084
- **Async-native.** Built on `tokio` and `futures::Stream`. Streaming tokens, events, and graph state updates uses one consistent API.
61-
- **One umbrella, full stack.** `cognis` re-exports the foundation, LLM, RAG, and graph layers. Most apps need a single `use cognis::prelude::*;` and a few specific imports.
85+
- **One umbrella, full stack.** `cognis` re-exports the foundation, LLM, RAG, and graph layers. Most apps need a single `use cognis::prelude::*;`.
6286

63-
## How Cognis is organized
87+
## What's not here yet
6488

65-
The workspace is six libraries — one foundation, four sibling capabilities, one umbrella — plus a proc-macro crate.
89+
Honest about the gaps so you can decide whether to wait or contribute:
6690

67-
| Crate | What's in it |
68-
|---|---|
69-
| `cognis-core` | The `Runnable` trait, messages, prompts, output parsers, callbacks, composition primitives. Zero internal dependencies. |
70-
| `cognis-llm` | LLM clients and providers (OpenAI, Anthropic, Google, Ollama, Azure, OpenRouter), tools, streaming. |
71-
| `cognis-rag` | Embeddings, vector stores, retrievers, splitters, document loaders, indexing pipeline. |
72-
| `cognis-graph` | Stateful `Graph<S>`, Pregel engine, channels, checkpointers, visualization. |
73-
| `cognis-trace` | LLM-aware observability — Langfuse first, OTel-compatible. |
74-
| `cognis-macros` | `#[tool]`, `#[derive(GraphState)]`. |
75-
| `cognis` | Umbrella + agent layer. The crate most apps depend on. |
91+
- **LangSmith and OpenTelemetry exporters** — Langfuse is the supported production backend; OTel + others are on the roadmap. The `TraceExporter` trait is one async method, so building your own is fast.
92+
- **A hosted gateway / managed deployment** — bring your own infra. Production patterns are documented; managed runtime isn't shipping today.
93+
- **A wider provider matrix** — six are battle-tested; others (Groq, Together, Bedrock direct, Cohere) are open issues looking for owners.
7694

77-
You don't need to think about crate boundaries while building — `cognis` re-exports the things you reach for daily.
95+
[See the full roadmap →](https://github.com/0xvasanth/cognis/issues)
7896

7997
## Where to next
8098

8199
<CardGroup cols={2}>
82100
<Card title="Quickstart" icon="bolt" href="/get-started/quickstart">
83-
A 5-minute tool-calling agent. The fastest path to "it works on my machine."
101+
From zero to a running agent in five minutes.
84102
</Card>
85103
<Card title="Installation" icon="download" href="/get-started/installation">
86104
Workspace setup, feature flags, secrets handling.
@@ -99,3 +117,6 @@ You don't need to think about crate boundaries while building — `cognis` re-ex
99117
</Card>
100118
</CardGroup>
101119

120+
<Card title="Like what you see? Star the repo." icon="star" href="https://github.com/0xvasanth/cognis">
121+
Cognis is open source under MIT. Stars help other Rust devs find it.
122+
</Card>

0 commit comments

Comments
 (0)