Skip to content

Commit c7bf9b3

Browse files
committed
docs: add FAQ page and links
- add a new FAQ doc that answers common adoption and runtime questions - surface the FAQ in the docs navigation metadata and README links - keep the change scoped to documentation discovery and onboarding
1 parent 571e705 commit c7bf9b3

3 files changed

Lines changed: 106 additions & 1 deletion

File tree

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,7 @@ That lets you keep the orchestration layer inside Rust instead of scattering run
382382
- [Core concepts: streaming](docs/content/docs/core-concepts/streaming.mdx)
383383
- [Core concepts: sessions](docs/content/docs/core-concepts/sessions.mdx)
384384
- [Core concepts: providers](docs/content/docs/core-concepts/providers.mdx)
385+
- [FAQ](docs/content/docs/faq.mdx)
385386

386387
### Working examples
387388

@@ -399,6 +400,10 @@ That lets you keep the orchestration layer inside Rust instead of scattering run
399400

400401
- [docs.rs/appam](https://docs.rs/appam)
401402

403+
### FAQ
404+
405+
- [How does Appam differ with Rig? and other common questions](docs/content/docs/faq.mdx)
406+
402407
## Development
403408

404409
```bash

docs/content/docs/faq.mdx

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
---
2+
title: FAQ
3+
description: Common questions about Appam, including how it compares with Rig, how configuration works, and when to use sessions, traces, and Python tools.
4+
---
5+
6+
This page answers the questions that usually come up once you move past a single prompt and start building real agents with Appam.
7+
8+
## How does Appam differ with Rig?
9+
10+
Appam and Rig are both Rust libraries for LLM-powered systems, but they optimize for different workloads.
11+
12+
- **Rig** is the broader SDK. It has a larger provider surface, first-class embeddings and vector stores, more multimodal capabilities, and a larger companion-crate ecosystem.
13+
- **Appam** is more opinionated about the runtime loop. It focuses on long-horizon, tool-using agents with streaming, continuation handling, durable session history, JSONL traces, and provider portability behind one orchestration surface.
14+
- If your workload is mostly "connect to models, embeddings, and retrieval systems from Rust," Rig is usually the broader fit.
15+
- If your workload is "run inspectable agents over many turns, resume them later, and understand exactly what happened," Appam is usually the better fit.
16+
17+
In practice, Appam spends more of its design budget on agent operations, while Rig spends more of its design budget on general Rust GenAI application building.
18+
19+
## Which construction style should I use?
20+
21+
Use the smallest surface that still matches the job:
22+
23+
- [`Agent::quick()`](/docs/getting-started/quickstart) for scripts, smoke tests, and fast prototypes.
24+
- [`Agent::new(name, model)`](/docs/core-concepts/agents) when you want builder ergonomics with provider auto-detection from the model string.
25+
- [`AgentBuilder`](/docs/core-concepts/agents) when you need explicit runtime control such as retries, thinking, caching, rate limiting, traces, history, or Azure and Bedrock configuration.
26+
- [`TomlAgent::from_file(...)`](/docs/guides/toml-configuration) when prompts and tool declarations should live on disk instead of in Rust source.
27+
28+
If you are unsure, start with `Agent::new(...)` and move to `AgentBuilder` once you need operational controls.
29+
30+
## Does Appam automatically load `appam.toml`?
31+
32+
No. The default runtime path starts from environment-backed config and then applies agent-level overrides.
33+
34+
If you want to use a global `appam.toml`, load it explicitly with [`load_global_config(...)`](/docs/core-concepts/configuration). If you want file-backed agent definitions, use [`TomlAgent::from_file(...)`](/docs/guides/toml-configuration).
35+
36+
That distinction matters:
37+
38+
- `appam.toml` is for global application config that your code chooses to load.
39+
- agent TOML files are for `TomlAgent` definitions.
40+
41+
## When should I enable session history?
42+
43+
Enable session history when the conversation needs to survive the current process.
44+
45+
Typical cases:
46+
47+
- you want to resume a session later with `continue_session(...)`
48+
- you need to inspect prior runs after a restart
49+
- you want listing, retention, or operational tooling over stored sessions
50+
51+
If every run is disposable and you do not need to continue or inspect it later, you can leave history off. See [Session Persistence](/docs/guides/session-persistence) and [Sessions](/docs/core-concepts/sessions).
52+
53+
## What is the difference between logs and traces?
54+
55+
They are related, but they are not the same thing.
56+
57+
- **Logs** are Appam's own runtime logging output. They tell you what the framework was doing.
58+
- **Traces** are per-session artifacts. They capture structured agent events such as streamed content, reasoning, tool calls, tool results, and completion state.
59+
60+
If you need to debug the framework or infrastructure behavior, look at logs. If you need to understand one specific agent run, look at traces. Appam keeps those concerns separate on purpose.
61+
62+
## Can Appam resume a session after restart?
63+
64+
Yes, if history is enabled and the session was saved.
65+
66+
The standard pattern is:
67+
68+
1. enable session history
69+
2. run the first session
70+
3. call `continue_session(...)` later with the saved session ID
71+
72+
That is one of Appam's core strengths for long-running or interruptible workflows. See [Session Persistence](/docs/guides/session-persistence).
73+
74+
## Should I write tools in Rust or Python?
75+
76+
Prefer Rust unless you have a clear reason not to.
77+
78+
Rust tools integrate best with:
79+
80+
- typed schemas
81+
- managed app and session state
82+
- compile-time checks
83+
- the main Appam runtime model
84+
85+
Python tools are useful when you already have trusted scripts on disk or want TOML-defined tools without rebuilding the binary. They are still powerful, but they run with the same process privileges, so only load Python tools you trust.
86+
87+
## Do I need to use provider clients directly?
88+
89+
Usually no.
90+
91+
Most Appam applications should build an agent and let the runtime own provider selection, streaming, tool execution, and continuation mechanics. The common entry points are:
92+
93+
- `Agent::quick(...)`
94+
- `Agent::new(...)`
95+
- `AgentBuilder`
96+
- `TomlAgent::from_file(...)`
97+
98+
Provider-specific modules matter when you need provider-specific tuning, auth behavior, or configuration details, not for the normal happy path.

docs/content/docs/meta.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
"---API Reference---",
1111
"api-reference",
1212
"---Examples---",
13-
"examples"
13+
"examples",
14+
"---FAQ---",
15+
"faq"
1416
]
1517
}

0 commit comments

Comments
 (0)