Settings Reference
Every setting ENGRAM exposes, what it does, and where you change it.
1. Which settings you can change, and where
ENGRAM has 38 settings. They divide into two kinds, and the difference is the thing most worth knowing before you go looking for one:
- Admin → Settings — 16 of them are editable from the Administration page and take effect immediately, with no restart.
- environment, then restart — the remaining 22 are read once at start-up. Changing one means editing the environment for the service that owns it and restarting that service.
A setting being read-only in the Administration page is not an oversight: some are read on a hot path where a live lookup would cost more than the setting saves, and some belong to a service that does not consult the live settings store at all. The page shows the running value either way, so you can always see what is in effect.
Most feature flags default to off. New behaviour ships dark and is enabled deliberately, per environment — so a capability you have read about may simply not be switched on yet.
2. Feature Flags
Capabilities that can be turned on and off. Most are off by default — ENGRAM ships new behaviour dark and it is enabled deliberately.
| Setting | What it does | Default | Where you change it |
|---|---|---|---|
BUILD_TIMELINE_ENABLED |
Accept build snapshots derived from a repository's git history — which components exist, what state each has reached, and how they depend on one another. | off | Admin → Settings |
CHAT_AGENTIC_TOOLS_ENABLED |
Let the chat model decide when to search, calling the knowledge-base and web-search tools itself, instead of every answer being preceded by one fixed retrieval. Web search additionally needs a Tavily API key. | off | Admin → Settings |
CHAT_TOOLS_KB_BASELINE |
With agentic chat tools on, still run one knowledge-base retrieval up front and include it, as a grounding safety net. Off, the model is trusted to search when it judges it needs to. | off | Admin → Settings |
CODE_SESSION_INGEST_ENABLED |
Accept coding-session records — from the watcher or the capture skill — into the graph. Off, the ingest endpoints return 404 and nothing is recorded. | off | environment, then restart |
CODE_SESSION_RETRIEVAL_ENABLED |
Allow coding sessions to be retrieved: the include-code option in chat, and the tool that finds sessions related to a question. Off, sessions are still stored but never surface in an answer. | off | environment, then restart |
CONSOLIDATION_ENABLED |
Run the scheduled job that turns working memory into long-term memory. Off, nothing is promoted and working memory simply expires. | on | environment, then restart |
CONSOLIDATION_SUMMARY_ENABLED |
While consolidating, write a distilled summary of each memory rather than keeping the raw text. Summaries are what recall shows you, so this changes how readable your memory is. | on | environment, then restart |
CONTEXT_DEDUP_ENABLED |
Merge retrieved memories into one deduplicated block grouped by decisions, facts and open questions, instead of one block per memory. Off is more verbose but keeps each memory's provenance visible, which helps when you are debugging what was retrieved. | on | environment, then restart |
CONVERSATION_CONSOLIDATION_ENABLED |
Run the scheduled job that moves chat conversations out of the short-lived cache into permanent storage. Off, conversations expire from the cache and are gone. | on | environment, then restart |
ENABLE_TIMING_LOGS |
Record how long each retrieval stage took. Diagnostic, and it makes the logs considerably noisier. | off | environment, then restart |
ENABLE_TOOL_CACHE |
Hold graph query results in memory for a short time. Saves repeated work on identical queries, at the cost of occasionally serving a slightly stale answer. | off | environment, then restart |
FACT_UPDATE_ENABLED |
Master switch for keeping long-term memory current: when a new belief contradicts an older one, the old belief is superseded rather than deleted, and what you believed earlier stays queryable. On its own this does nothing — the rollout mode below must also be set. | off | Admin → Settings |
FACT_UPDATE_MODEChoices: off · flag · hybrid |
How far fact update goes: off; detect contradictions and list them for review without ever acting; or apply the confident ones automatically and send the rest to a judge and then to you. | off | environment, then restart |
FACT_UPDATE_MODEL |
The model used to judge whether two statements genuinely contradict each other. | claude-sonnet-5 | environment, then restart |
FACT_UPDATE_T1_CONFIDENCE |
How certain the detector must be before a correction is applied without asking you. Set it to 0 to review every correction yourself. | 0.7 | environment, then restart |
GAP_FACTCHECK_ENABLED |
Check agent-drafted articles against ENGRAM's own reference before they reach your review queue, so an invented mechanism is caught rather than filed as fact. | off | Admin → Settings |
GAP_PPR_FAILURE_ENABLED |
Record when a search comes back with nothing useful, so that repeated failures can later be surfaced as gaps in what you have written down. | on | environment, then restart |
GAP_SCHEDULER_ENABLED |
Look for gaps in your knowledge base on a schedule, rather than only when you ask. | on | environment, then restart |
GROUNDING_FULL_DOC_ENABLED |
When writing an article from a source in your library, give the model the whole source in its original order rather than the highest-scoring excerpts. More faithful to the source, and more expensive per article. | off | Admin → Settings |
MEMORY_PPR_SPECIFICITY_ENABLED |
Apply that same down-weighting to memory retrieval, which historically did not do it. Affects both chat and agent recall. | off | environment, then restart |
MEMORY_REINFORCEMENT_ENABLED |
Let memory that gets used become more prominent: recalling something raises its standing, and a working note you keep reusing is promoted to long-term memory. | off | Admin → Settings |
NODE_SPECIFICITY_ENABLED |
Give less weight to very common entities when ranking, so the most generic word in a query stops dominating the results. | on | environment, then restart |
PASSAGE_DIVERSITY_CAP_ENABLED |
Cap how many passages any single article may contribute to one answer, so a long document cannot crowd out everything else. Off, one thorough article can fill the whole window and the answer looks confident and narrow. | off | Admin → Settings |
PPR_SCORE_RANKING_ENABLED |
Rank chat results by the retrieval score itself rather than by how many entities overlap. Agent recall always ranks this way, whatever this is set to. | off | Admin → Settings |
PROJECT_AUTHORITY_ENABLED |
Let a project declare which articles are its ground truth, so that retrieval under that project prefers them over whatever else happens to be nearby. An article must be readable by the project's team — public, or project-visible and yours. Inert until a project actually declares a set. | off | Admin → Settings |
PROJECT_MEMBERSHIP_ENABLED |
Rank up the artifacts a project holds when retrieval runs under that project — a weaker preference than ground truth, for the working material rather than the canonical set. Changes ranking only: it never reveals anything a caller could not already read, and it is inert for a project whose library is empty. | off | Admin → Settings |
RECALL_CONVERGENCE_ENABLED |
Route agent recall through the same retrieval pipeline chat uses, so an agent gets the full picture: spreading activation, article and document passages, and the fallback ladder. Off, agent recall takes a simpler and narrower path — and notably does not pick up a project's ground truth. | off | Admin → Settings |
REDUNDANCY_FILTER_ENABLED |
Drop near-duplicate passages before they are sent to the model, so the same fact is not paid for several times over. | off | Admin → Settings |
REDUNDANCY_FILTER_SHADOW |
Measure what the redundancy filter would have removed, without removing anything. For judging the filter before you turn it on. | off | Admin → Settings |
RERANKER_ENABLED |
Add a second, slower ranking pass when matching your words to entities in the graph. Worth it where names are ambiguous — it is the single largest cost in that stage. | off | environment, then restart |
SESSION_CAPTURE_ENABLED |
Let a coding session record itself from the inside: the git state, the files it touched, and a summary the agent writes. | off | Admin → Settings |
SHARING_ENABLED |
Master switch for sharing memory between people and agents: scoped recall, plus explicit grants that can be revoked. Off, everyone sees only what they own. | off | Admin → Settings |
TRACE_PIPELINE |
Emit a detailed trace of every retrieval stage. Diagnostic. | off | environment, then restart |
WEB_INGEST_ENABLED |
Allow a web page to be fetched and saved as a Markdown document in your library. Off, ENGRAM makes no outbound page fetches at all. | off | Admin → Settings |
3. Logging
What gets written down, at what level of detail, and for how long.
| Setting | What it does | Default | Where you change it |
|---|---|---|---|
LOG_CONSOLE_LEVELChoices: DEBUG · INFO · WARNING · ERROR · CRITICAL |
How much detail is written to the console. | INFO | environment, then restart |
LOG_FILE_LEVELChoices: DEBUG · INFO · WARNING · ERROR · CRITICAL |
How much detail is written to the log files. | INFO | environment, then restart |
LOG_REDACT_QUERIES |
Strip the text of what people searched for out of the logs, keeping the surrounding diagnostics. | off | environment, then restart |
LOG_RETENTION_POLICY |
How long log files are kept before they are rotated away. | current + 1 prior day (~2 days) | environment, then restart |
LOG_STORAGE_PATH |
Where log files are written. | /opt/engram/app/logs/ (PROD) · ./logs/ (DEV) | environment, then restart |
4. Projects
Defaults applied to projects.
| Setting | What it does | Default | Where you change it |
|---|---|---|---|
DEFAULT_PROJECT_NAME |
The project new chat conversations belong to when you have not chosen one. | ENGRAM KB | Admin → Settings |
This page is generated from ENGRAM's settings registry, so it lists what the running system actually defines rather than what someone remembered to write down.