SUZENT / 文档
SUZENT 使用手册

Configuration files

Where Suzent keeps your data and settings, the settings you can edit by hand, and the environment variables it reads.

此页面目前提供英文内容,中文翻译尚未完成。

Almost everything can be changed in Settings, and that is the easiest way. This page is for the settings that have no screen yet, and for knowing where your files are. Your memory, skills, and settings are plain files you can read, edit, and back up.

The data folder

Suzent keeps your data in a .suzent folder in your home folder: ~/.suzent on macOS and Linux, C:\Users\<you>\.suzent on Windows. To keep it somewhere else, set the SUZENT_DATA_DIR environment variable before starting Suzent.

PathWhat it holds
config/Your settings files (see below).
chats.dbYour conversations.
sandbox/projects/<project>/Each project's workspace.
sandbox/shared/The folder shared by all projects. Your memory's Markdown files are in sandbox/shared/memory/.
notebook/The notebook vault.
memory/The memory search index, rebuilt from the Markdown files.
skills/Skills you added. See Skills.
transcripts/A transcript of each conversation.
runtime/Logs. server.log is the background service's log.
github-sync/The local copy used by GitHub Sync.
browser_profile/The agent's own browser profile, when it remembers logins.

API keys are not kept in these files. Suzent stores them in your system's keychain, or in an encrypted secrets.db in this folder when no keychain is available.

The Suzent folder

A few files live in the folder Suzent is installed in (~/suzent if you installed with the terminal script), not in the data folder:

FileWhat it holdsIn the app
.envEnvironment variables read when the server starts, such as SEARXNG_BASE_URL.
config/social.jsonChat app connections and allowed users. config/social.example.json shows every option.Settings → Social Channels

Settings files

These are in ~/.suzent/config/:

FileWhat it holds
default.yamlYour own settings, for anything without a screen in the app. Synced by GitHub Sync.
local.yamlSettings that only make sense on this computer, such as folder paths. Never synced.
config.yamlPreferences the app saves for you. Let the app manage it.
permissions.yamlYour "always allow" rules and the default permission mode. See Permissions & approvals.
permission-audit.jsonlA log of every permission decision.
skills.jsonWhich skills are switched on or off.

Suzent reads its settings in this order, and a later file wins:

  1. config/default.example.yaml in the Suzent folder, which ships the defaults.
  2. config/default.yaml in the Suzent folder, if you made one.
  3. ~/.suzent/config/default.yaml.
  4. ~/.suzent/config/local.yaml.

Keep your changes in ~/.suzent/config/ so updates never touch them. Setting names are not case-sensitive. Restart Suzent after editing a file.

A list set in a later file replaces the whole list from an earlier one. This matters for sandbox_volumes: choosing a notebook folder in Settings → Memory System writes sandbox_volumes to local.yaml, and from then on any sandbox_volumes in default.yaml is ignored. Keep all your mounted folders in local.yaml.

Common settings

Workspace and sandbox

See Workspace & sandbox.

SettingDefaultWhat it doesIn the app
sandbox_enabledfalseRun commands in a Docker sandbox for every conversation.Settings → Security
sandbox_imagepython:3.11-slimThe Docker image the sandbox uses.
sandbox_networkbridgebridge lets the sandbox use the internet, none blocks it.
sandbox_idle_timeout_minutes30Stop a sandbox after this many idle minutes.
sandbox_setup_command""A command run once when a sandbox is created, such as installing packages.
sandbox_env{}Extra environment variables inside the sandbox.
sandbox_volumesFolders from your computer to mount in every conversation, as "host folder:path the agent sees". Put this in local.yaml.Settings → Memory System sets the notebook mount
sandbox_data_path~/.suzent/sandboxWhere project workspaces and the shared folder are kept. Put this in local.yaml.
shell_denied_env_patterns[]Environment variables hidden from commands the agent runs in host mode, such as OPENAI_*.

Memory

See Memory. More tuning is on Advanced memory settings.

SettingDefaultWhat it doesIn the app
memory_enabledtrueTurn long-term memory on or off.Settings → Memory System
markdown_memory_enabledtrueWrite remembered facts to Markdown files.
embedding_modelThe model used for memory search.Settings → Model Roles
extraction_modelThe model that picks out facts to remember.Settings → Model Roles
notebook_dir~/.suzent/notebookWhere the notebook vault is kept.
memory_consolidation_enabledtrueLet Suzent tidy memory into the notebook in the background.
memory_lint_enabledtrueLet Suzent audit the notebook for contradictions and broken links.
lancedb_uri~/.suzent/memoryWhere the memory search index is kept. Put this in local.yaml.

Conversations

SettingDefaultWhat it does
max_context_tokens0Cap the context budget. 0 uses whatever the model supports.
context_compaction_trigger0.80How full the context gets before older messages are summarized.
goals_max_turns20How many turns goal mode runs before pausing.
jsonl_transcripts_enabledtrueKeep a transcript of each conversation.
transcript_indexing_enabledfalseMake past conversations searchable, at the cost of extra embedding calls.
session_daily_reset_hour0UTC hour at which conversations reset each day. 0 turns it off.
session_idle_timeout_minutes0Reset a conversation after this many idle minutes. 0 turns it off.

Devices and other agents

See Devices & other agents. The app saves these in local.yaml.

SettingDefaultWhat it doesIn the app
node_lan_bindfalseLet other devices on your network reach this computer. Takes effect after a restart.Settings → Mesh → Network access
node_discovery_enabledtrueAnnounce this computer on your network so other devices can find it.
a2a_enabledfalsePublish a card so other A2A agents can find this device.Settings → Mesh
a2a_agent_name""The name on that card. Blank uses the computer's name.Settings → Mesh

Permissions

default_permission_mode in permissions.yaml sets the mode new conversations start in: default (Ask), auto (Smart), or full_access (Full Access). Choosing a mode in a new chat, before its first message, saves it here.

Changing settings from the terminal

suzent config show prints the settings the running server reports, and suzent config set <key> <value> changes a saved preference such as sandbox_enabled or memory_enabled. See Command line.

Environment variables

Set these in your environment before starting Suzent. SEARXNG_BASE_URL can also go in the .env file in the Suzent folder.

VariableWhat it does
SUZENT_DATA_DIRUse a different data folder instead of ~/.suzent.
SUZENT_PORTThe port Suzent's server uses. Default 25314.
SEARXNG_BASE_URLUse your own SearXNG instance for web search instead of DuckDuckGo.
SKILLS_DIRExtra folders to load skills from. Separate several with : (macOS, Linux) or ; (Windows).
SUZENT_SECRET_BACKENDSet to encrypted_sqlite to keep API keys in the encrypted secrets.db instead of your system's keychain.
SUZENT_BROWSER_*Browser options when running without the desktop app. See Browser.

Provider API keys, such as OPENAI_API_KEY, can also be set as environment variables. Each provider's page lists its variable; see Models & Providers.

在 GitHub 上编辑此页 ↗

本页内容