Every field of sdk.ClientConfig, grouped by theme, with its type, its default and what it does.
sdk.ClientConfig is the configuration of a Go client. Start from sdk.DefaultClientConfig() and change what you need: see Go SDK for a first example and Integrating in your product for a server.
In the Default column, a dash means the zero value: nothing is set, or the feature is off. “From DefaultClientConfig()” means the value is set by that function and not by ClientConfig itself. Fields marked Go only cannot be written in a JSON file (they are functions, interfaces or pointers).
Model and provider
Field
Type
Default
Effect
APIKey
string
none
The provider key. A CredentialResolver wins over it
Model
ModelIdentifier
Anthropic claude-sonnet-5-5, from DefaultClientConfig()
The model of the session: {Provider, Model}
TitleModel
ModelIdentifier
none
A model for the automatic session titles. Both Provider and Model must be set
PermissionModeOnRequest, from DefaultClientConfig()
Who approves the actions of the agent. See Runtime modes
PromptFn
PromptFn
none
Called when the agent asks you a question or needs an approval. Without it, an action that needs approval is not approved. Go only
EnablePromptReaderFallback
bool
false
When there is no PromptFn, lets the question tool read the answer from the standard input
TrustProjectInstructions
func(path string, content []byte) bool
none
Decides whether SESHAT.md, AGENTS.md and .seshat/instructions.md of WorkingDir may reach the model. Left empty, none is read. Go only. See Prompt
ManagedPolicy
*ManagedPolicy
none
What an organization imposes on every agent: a text to follow and tools never to use. Set it from an administrator’s configuration, not from the end user’s. Go only
Sessions and storage
Field
Type
Default
Effect
PersistSessions
bool
true, from DefaultClientConfig()
Save conversations
SessionStorageDir
string
the runtime folder, from DefaultClientConfig()
Where session files are kept
SessionSQLitePath
string
none
The SQLite file where tasks and goals are stored
SessionBackend, SessionStore
interfaces
none
Your own storage for sessions, to keep them in your database. Go only
UserID
string
none
Who the caller is, passed to PlanStore so that plans are saved against the right user. Never sent anywhere else. Go only
StorageConfig
*StorageConfig
none
Where files made by the agent are kept: local folder or S3. Go only
ArtifactStore
ArtifactStore
none
Your own store for those files. Go only
StorageGCEnabled
bool
true, from DefaultClientConfig()
Clean up expired artifacts
StorageGCInterval
time.Duration
one hour, from DefaultClientConfig()
How often the cleanup runs
StorageGCLimit
int
512, from DefaultClientConfig()
How many items one cleanup handles
StorageGCNamespaces
[]string
empty, from DefaultClientConfig()
Which artifact namespaces the cleanup covers
Memory and compaction
Field
Type
Default
Effect
AutoCompact
bool
true, from DefaultClientConfig()
Compact the context when it gets full
EnableMemory
bool
true, from DefaultClientConfig()
Long-term notes across sessions
MemoryFailFast
bool
false
If the memory service cannot start, fail instead of going on without memory (a line is logged)
LongTermMemory
LongTermMemory
none
Your own long-term memory. Go only
PlanStore
PlanStore
none
Where submit_plan saves plans. Without it, submit_plan is not available. Go only
Working folder, browser and sandbox
Field
Type
Default
Effect
WorkingDir
string
the current folder
The folder the agent works in
BrowserRemoteControlURL
string
none
Attach the browser tools to a browser that is already running
BrowserExecutablePath
string
none
Which browser program to start
BrowserSessionTargetResolver
func(ctx, SessionID) (string, bool)
none
Lets a desktop app attach a session’s browser calls to a tab it already shows to the user. Go only
RequireSandbox
bool
false
The bash tool refuses to run when no OS-level sandbox is available
When not empty, limits the tools the main agent sees to exactly these names (a host’s general-purpose agent with a short, curated list). Sub-agents started through the agent tools are not limited by it. Empty offers every enabled tool
EnableToolSearch
bool
false
Keep deferred tools (MCP tools, for example) out of the first tool list: the model finds them with tool_search. The environment variable ENABLE_TOOL_SEARCH can also turn it on
RAGService
*RAGService
none
The knowledge service behind the RAG tools. Go only
DocumentReaderURL
string
none
The address of a document-reader service, used to build the default converter
DocumentConverter
documentreader.Converter
built from DocumentReaderURL
Your own converter behind the document tools. Wins over DocumentReaderURL. Go only
DocumentPageRenderer
pdfsmart.PageRenderer
none
Backs render_document_page, so the agent can look at a page with a multimodal model. Go only
AutomationServiceURL
string
none
The address of the automation daemon. The scheduling tools work only with it
AutomationAPIKey
string
none
Its key. Go only
WebSearchKeys
map[string]string
none
Keys of the web search providers (tavily, exa, jina, langsearch) for this client only. They replace the environment, so a shared server does not leak keys between sessions. Go only
ResearchKeys
map[string]string
none
The same for the research tools: reddit_client_id, reddit_client_secret, youtube_api_key, google_places_api_key, trustpilot_api_key. A research tool without its keys is not offered to the model. Go only
ImageGeneration, TextToSpeech, SpeechToText
config pointers
none
The providers behind the multimodal tools. Without one, the tool is not offered
Prompt and behaviour
Field
Type
Default
Effect
SystemPromptTemplate
string
none
A text that fully replaces the default system prompt
PromptConfig
*PromptConfig
none
Replace or extend the prompt, set the stage, add tool hints. See Prompt. Go only