User Guide
This guide covers the core concepts and features of Archi. Each topic has its own dedicated page for detailed reference.
Overview
Archi is a retrieval-based assistant framework with four core parts:
- Data sources: Where knowledge comes from (links, git repos, JIRA/Redmine, uploaded files)
- Vector store + retrievers: Where ingested content is indexed and searched semantically/lexically
- Agents + tools: The reasoning layer that decides what to do and can call tools (search, fetch, MCP, etc.)
- Services: The apps users interact with (
chatbot,data_manager, integrations, dashboards)
Why both a vector store and tools?
- The vector store is best for relevance-based retrieval across the indexed knowledge base.
- Tools let the agent do targeted operations (metadata lookup, full-document fetch, external system calls) that pure embedding search cannot do reliably.
Services are enabled at deployment via flags to archi create:
archi create [...] --services chatbot
Pipelines (agent classes) define runtime behavior. Agent specs define prompt + enabled tool subset. Models, embeddings, and retriever settings are configured in YAML.
Data Sources
Data sources define what gets ingested into Archi's knowledge base for retrieval. Archi supports several data ingestion methods:
- Web link lists (including SSO-protected pages)
- Git scraping for MkDocs-based repositories
- JIRA and Redmine ticketing systems
- Manual document upload via the Uploader service or direct file copy
- Local documents
Sources are configured under data_manager.sources in your config file.
Services
Archi provides these deployable services:
| Service | Description | Default Port |
|---|---|---|
chatbot |
Web-based chat interface | 7861 |
data_manager |
Data ingestion and vectorstore management | 7871 |
piazza |
Piazza forum integration with Slack | — |
redmine-mailer |
Redmine ticket responses via email | — |
mattermost |
Mattermost channel integration | — |
grafana |
Monitoring dashboard | 3000 |
grader |
Automated grading service | 7862 |
Agents & Tools
Agents are defined by agent specs — Markdown files with YAML frontmatter specifying name, tools, and system prompt. The agent specs directory is configured via services.chat_app.agents_dir.
Models & Providers
Archi supports five LLM provider types:
| Provider | Models |
|---|---|
| OpenAI | GPT-4o, GPT-4, etc. |
| Anthropic | Claude 4, Claude 3.5 Sonnet, etc. |
| Google Gemini | Gemini 2.0 Flash, Gemini 1.5 Pro, etc. |
| OpenRouter | Access to 100+ models via a unified API |
| Local (Ollama/vLLM) | Any open-source model |
Users can also provide their own API keys at runtime via Bring Your Own Key (BYOK).
Configuration Management
Archi uses a three-tier configuration system:
- Static Configuration (deploy-time, immutable): deployment name, embedding model, available pipelines
- Dynamic Configuration (admin-controlled, runtime-modifiable): default model, temperature, retrieval parameters
- User Preferences (per-user overrides): preferred model, temperature, prompt selections
Settings are resolved as: User Preference → Dynamic Config → Static Default.
See the Configuration Reference for the full YAML schema and the API Reference for the configuration API.
Secrets
Secrets are stored in a .env file passed via --env-file. Required secrets depend on your deployment:
| Secret | Required For |
|---|---|
PG_PASSWORD |
All deployments |
OPENAI_API_KEY |
OpenAI provider |
ANTHROPIC_API_KEY |
Anthropic provider |
GOOGLE_API_KEY |
Google Gemini provider |
OPENROUTER_API_KEY |
OpenRouter provider |
HUGGINGFACEHUB_API_TOKEN |
Private HuggingFace models |
GIT_USERNAME / GIT_TOKEN |
Git source |
JIRA_PAT |
JIRA source |
REDMINE_USER / REDMINE_PW |
Redmine source |
See Data Sources and Services for service-specific secrets.
Benchmarking
Archi has benchmarking functionality via the archi evaluate CLI command:
- SOURCES mode: Checks if retrieved documents contain the correct sources
- RAGAS mode: Uses the Ragas evaluator for answer relevancy, faithfulness, context precision, and context relevancy
Admin Guide
Becoming an Admin
Set admin status in PostgreSQL:
UPDATE users SET is_admin = true WHERE email = 'admin@example.com';
Admin Capabilities
- Set deployment-wide defaults via the dynamic configuration API
- Manage prompts (add, edit, reload via API)
- View the configuration audit log
- Grant admin privileges to other users
Audit Logging
All admin configuration changes are logged and queryable:
GET /api/config/audit?limit=50
See the API Reference for full endpoint documentation.