项目文件夹

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

231 行
7.9 KiB
Markdown

# 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 (1–65535). |
### `[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 (0–1). |
| `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` |