Files
wehub-resource-sync 6c9c7fe7f3
CI / integration tests (3.13) (push) Failing after 1s
Commit lint / pull request title (push) Has been skipped
Docs / links (push) Failing after 1s
CI / unit tests (3.13) (push) Failing after 1s
CI / lint (push) Failing after 1s
CI / integration tests (push) Failing after 1s
CI / package build (push) Failing after 1s
Commit lint / commit messages (push) Failing after 1s
CI / unit tests (push) Failing after 1s
chore: import upstream snapshot with attribution
2026-07-13 12:24:24 +08:00

231 lines
7.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Configuration
EverOS uses a two-file TOML configuration system with environment variable
overrides for container deployments.
## Quick Start
```bash
# 1. Generate config files in the default root (~/.everos/)
everos init
# 2. Edit the config — fill in API keys
$EDITOR ~/.everos/everos.toml
# 3. Start the server
everos server start
```
## Configuration Files
### `everos.toml` — Application Settings
Located at `<root>/everos.toml`. Controls all application behavior: API
bind address, LLM/embedding/rerank provider credentials, SQLite pragmas,
search strategy, memorize mode, and clustering tunables.
Generated by `everos init` from the shipped `config/default.toml`
template. Changes require a server restart.
### `ome.toml` — Strategy Configuration
Located at `<root>/ome.toml`. Controls the Offline Memory Engine (OME)
strategy scheduling: which strategies are enabled, cron expressions,
gate thresholds, and retry limits.
Generated by `everos init` from the shipped `config/default_ome.toml`
template. Changes are **hot-reloaded** within ~2 seconds — no server
restart needed.
### Source Priority
Settings are resolved in this order (later wins):
1. `config/default.toml` — shipped defaults (lowest priority)
2. `<root>/everos.toml` — user configuration (optional)
3. `EVEROS_*` environment variables — container/CI overrides
4. Programmatic init args (highest priority; internal use)
## Memory Root Resolution
The memory root directory is resolved from three sources (first wins):
| Source | Example |
|---|---|
| `--root` CLI flag | `everos server start --root /data/everos` |
| `EVEROS_ROOT` env var | `export EVEROS_ROOT=/data/everos` |
| Default | `~/.everos` |
All CLI commands that interact with storage accept `--root`:
```bash
everos server start --root /data/everos
everos cascade status --root /data/everos
everos config show --root /data/everos
everos init --root /data/everos
```
## Configuration Reference
### `[memory]`
| Field | Type | Default | Description |
|---|---|---|---|
| `timezone` | string | `"UTC"` | Effective timezone for date buckets and timestamps. Validated against `zoneinfo.ZoneInfo`. |
### `[api]`
| Field | Type | Default | Description |
|---|---|---|---|
| `host` | string | `"127.0.0.1"` | HTTP server bind address. |
| `port` | int | `8000` | HTTP server bind port (165535). |
### `[sqlite]`
| Field | Type | Default | Description |
|---|---|---|---|
| `journal_mode` | string | `"WAL"` | PRAGMA journal_mode. Options: WAL, DELETE, MEMORY, OFF, TRUNCATE, PERSIST. |
| `synchronous` | string | `"NORMAL"` | PRAGMA synchronous. Options: FULL, NORMAL, OFF, EXTRA. |
| `foreign_keys` | bool | `true` | PRAGMA foreign_keys. |
| `temp_store` | string | `"MEMORY"` | PRAGMA temp_store. Options: DEFAULT, FILE, MEMORY. |
| `busy_timeout_ms` | int | `5000` | PRAGMA busy_timeout in milliseconds. |
| `journal_size_limit_bytes` | int | `67108864` | PRAGMA journal_size_limit (~64 MB). |
| `cache_size_kb` | int | `2048` | PRAGMA cache_size in KB (per connection). |
### `[lancedb]`
| Field | Type | Default | Description |
|---|---|---|---|
| `read_consistency_seconds` | float \| null | `null` | Read consistency interval. `null` = no check, `0` = strict, `>0` = eventual. |
| `index_cache_size_bytes` | int | `16777216` | Upper bound on LanceDB index cache (16 MB default). |
### `[llm]`
| Field | Type | Default | Required | Description |
|---|---|---|---|---|
| `model` | string | `"gpt-4.1-mini"` | No | LLM model identifier. |
| `api_key` | string | — | **Yes** | API key for the LLM provider. |
| `base_url` | string | — | No | Custom endpoint URL (OpenAI-compatible). |
### `[multimodal]`
| Field | Type | Default | Required | Description |
|---|---|---|---|---|
| `model` | string | `"google/gemini-3-flash-preview"` | No | Multimodal parsing model. |
| `api_key` | string | — | **Yes** | API key. |
| `base_url` | string | — | No | Custom endpoint URL. |
| `max_concurrency` | int | `4` | No | Max parallel parsing requests. |
| `file_uri_allow_dirs` | list[string] | `[]` | No | Allowlisted base dirs for `file://` URIs. Empty = allow any readable file. |
| `file_uri_max_bytes` | int | `52428800` | No | Max size (bytes) of a `file://` asset; larger files are rejected. |
### `[embedding]`
| Field | Type | Default | Required | Description |
|---|---|---|---|---|
| `model` | string | — | **Yes** | Embedding model identifier. |
| `api_key` | string | — | **Yes** | API key. |
| `base_url` | string | — | **Yes** | Embedding endpoint URL. |
| `timeout_seconds` | float | `30.0` | No | Request timeout. |
| `max_retries` | int | `3` | No | Retry count on failure. |
| `batch_size` | int | `10` | No | Texts per batch request. |
| `max_concurrent` | int | `5` | No | Max parallel batch requests. |
### `[rerank]`
| Field | Type | Default | Required | Description |
|---|---|---|---|---|
| `provider` | string | `"deepinfra"` | No | Rerank provider: `deepinfra` or `vllm`. |
| `model` | string | — | **Yes** | Reranker model identifier. |
| `api_key` | string | — | **Yes** | API key. |
| `base_url` | string | — | **Yes** | Rerank endpoint URL. |
| `timeout_seconds` | float | `30.0` | No | Request timeout. |
| `max_retries` | int | `3` | No | Retry count on failure. |
| `batch_size` | int | `10` | No | Documents per batch. |
| `max_concurrent` | int | `5` | No | Max parallel batch requests. |
### `[boundary_detection]`
| Field | Type | Default | Description |
|---|---|---|---|
| `hard_token_limit` | int | `65536` | Max tokens before forced boundary. |
| `hard_msg_limit` | int | `500` | Max messages before forced boundary. |
### `[memorize]`
| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `"agent"` | Conversation mode: `chat` (user-memory only) or `agent` (user + agent memory). Requires restart. |
| `session_lock_timeout_seconds` | float | `360.0` | Max wall-clock per memorize() invocation. |
### `[clustering]`
| Field | Type | Default | Description |
|---|---|---|---|
| `threshold` | float | `0.65` | Cosine similarity threshold for clustering (01). |
| `time_window_days` | float | `7.0` | Max age gap between cluster members. |
### `[knowledge]`
| Field | Type | Default | Description |
|---|---|---|---|
| `max_upload_bytes` | int | `52428800` | Max bytes for an uploaded knowledge document (50 MiB). Oversized uploads are rejected with HTTP 422 before parsing. |
### `[knowledge.search]`
| Field | Type | Default | Description |
|---|---|---|---|
| `recall_n` | int | `200` | Initial recall pool size. |
| `rerank_n` | int | `50` | Candidates sent to reranker. |
| `mass_top_m` | int | `50` | Top-M for mass scoring. |
| `lambda` | float | `0.1` | Interpolation weight. |
| `top_k_cap` | int | `100` | Hard cap on returned results. |
## Troubleshooting
Use `everos config show` to inspect the effective configuration:
```bash
everos config show
everos config show --root /data/everos
```
This prints:
- The resolved root directory
- Which config files were found
- All settings sections with their effective values
- API keys are masked in output
## Advanced: Container Deployment
In containerized environments, skip `everos init` and use environment
variables directly:
```dockerfile
ENV EVEROS_ROOT=/data/everos
ENV EVEROS_LLM__API_KEY=sk-...
ENV EVEROS_LLM__MODEL=gpt-4o
ENV EVEROS_EMBEDDING__MODEL=text-embedding-3-large
ENV EVEROS_EMBEDDING__API_KEY=sk-...
ENV EVEROS_EMBEDDING__BASE_URL=https://api.openai.com/v1
ENV EVEROS_API__HOST=0.0.0.0
ENV EVEROS_API__PORT=8000
```
Environment variable naming convention:
```
EVEROS_<SECTION>__<KEY>
```
- Section and key are uppercased
- Double underscore (`__`) separates section from key
- Nested sections use additional `__` separators
Examples:
| TOML | Environment Variable |
|---|---|
| `[llm] api_key = "sk-..."` | `EVEROS_LLM__API_KEY=sk-...` |
| `[sqlite] busy_timeout_ms = 10000` | `EVEROS_SQLITE__BUSY_TIMEOUT_MS=10000` |
| `[memory] timezone = "Asia/Tokyo"` | `EVEROS_MEMORY__TIMEZONE=Asia/Tokyo` |