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:

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.

SettingWhat it doesDefaultWhere 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_MODE
Choices: 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.

SettingWhat it doesDefaultWhere you change it
LOG_CONSOLE_LEVEL
Choices: DEBUG · INFO · WARNING · ERROR · CRITICAL
How much detail is written to the console. INFO environment, then restart
LOG_FILE_LEVEL
Choices: 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.

SettingWhat it doesDefaultWhere 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.