Skip to content

Configuration reference

This is the lookup layer for the Strands harness factory (create_harness in Python, createHarness in TypeScript). Every argument is optional. The two libraries expose the same surface, each spelled for its language (snake_case in Python, camelCase in TypeScript). For how each option is used in practice, follow the links into the configure and tools guides.

PythonTypeScriptDefaultPurpose
modelmodelbedrock/global.anthropic.claude-opus-4-8A provider/name string, a bare Amazon Bedrock id, or a Model instance. See choose a model.
efforteffort"auto"Reasoning effort: "auto", "low", "medium", "high", or off. Ignored for a Model instance.
instructionsinstructionsnoneA domain block appended after the harness contract. Ignored when a full system prompt is passed.
toolstoolsnoneConsumer tools, added alongside the built-ins. See add tools.
pluginspluginsnoneConsumer Strands Harness SDK plugins, added alongside the built-in plugins.
mcp_serversmcpServersnoneMCP servers to connect: a JSON file path or a mapping. See MCP servers.
builtin_toolsbuiltinToolsshell, read, write, edit, web_fetch, web_search, programmatic_tool_caller, subagentBuilt-in tools to enable, or [] for none.
builtin_tools={"web_fetch": {"model": ...}}builtinTools: { web_fetch: { model } }provider defaultThe summarizer model web_fetch runs on. See web access.
cachingcaching"auto" (on)Prompt caching where the provider supports it; off disables what Strands harness configures.
context_managercontextManager"auto""auto", "agentic", or off. Enables context management and offloading.
session={"id": ...}session: { id }nonePersist and resume this conversation by id.
session={"dir": ...}session: { dir }./.agent/sessionsWhere session state and offloaded artifacts live.
skillsskills./.agent/skillsDirectory (or list) scanned for Agent Skills; off to disable.
builtin_pluginsbuiltinPlugins["todos", "environment"]Built-in feature plugins to enable, or [] for none.
memorymemoryonFile-based long-term memory; off to disable.
memory={"dir": ...}memory: { dir }./.agent/memoryWhere the default memory store’s files live.
memory={"stores": [...]}memory: { stores }noneSwap the memory backend while keeping Strands harness’s policy.
interventionsinterventionsnoneGate tool calls behind approval or a policy. See interventions.
background_tasksbackgroundTasks{ agentic: ['*'] }Background-tasks policy. See background tasks.
  • effort accepts "auto" (provider recommended), "low"/"medium"/"high" (explicit; some providers accept finer levels), and "off". A level the resolved provider rejects fails at construction.
  • caching accepts "auto"/True (on), False/None (off). Off has no effect where caching is automatic (OpenAI, Google, bedrock-mantle). Enabling it explicitly on a Model instance is ignored with a warning.
  • context_manager accepts "auto", "agentic", and False/None. Off also disables context offloading.
  • memory accepts True (on) and False/None (off). Ignored when a memory_manager is passed through.
  • builtin_tools, builtin_plugins each take a list of names; an unknown name fails at construction with the valid names.

Any keyword the factory does not name is forwarded to the underlying Agent constructor. An explicit passthrough value takes precedence over the default it corresponds to (for example, passing system_prompt overrides the prompt Strands harness would build from instructions, and passing memory_manager overrides memory). In TypeScript, HarnessAgentOptions extends the Strands Harness SDK’s AgentConfig (minus the fields Strands harness manages), so any other AgentConfig field, such as retryStrategy, passes through verbatim. See compose with the Strands Harness SDK.

Beyond the factory, Strands harness exports the pieces it composes: HARNESS_CONTRACT, build_system_prompt / buildSystemPrompt, resolve_memory, and resolve_interventions (Python only). These are documented in compose with the Strands Harness SDK.