> ## Documentation Index
> Fetch the complete documentation index at: https://praison.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Feature Configs • AI Agent SDK

> Feature Configuration Classes for PraisonAI Agents.

# feature\_configs

<Badge color="blue">AI Agent</Badge>

Feature Configuration Classes for PraisonAI Agents.

Provides dataclasses for consolidated feature configuration:

* MemoryConfig: Memory and session management
* KnowledgeConfig: RAG and knowledge retrieval
* PlanningConfig: Planning mode settings
* ReflectionConfig: Self-reflection settings
* GuardrailConfig: Safety and validation
* WebConfig: Web search and fetch
* ToolSearchConfig: Progressive tool disclosure

All configs follow the agent-centric pattern:

* False: Feature disabled (zero overhead)
* True: Feature enabled with safe defaults
* Config: Custom configuration
* Instance: Pre-configured manager/engine

Usage:

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import Agent, MemoryConfig, KnowledgeConfig, ToolSearchConfig

# Simple enable
agent = Agent(instructions="...", memory=True, tool_search=True)

# With config
agent = Agent(
    instructions="...",
    memory=MemoryConfig(backend="sqlite", user_id="user123"),
    knowledge=KnowledgeConfig(sources=["docs/"], rerank=True),
    tool_search=ToolSearchConfig(enabled="auto", threshold_pct=15),
)
```

## Import

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents.config import feature_configs
```

## Classes

<CardGroup cols={2}>
  <Card title="MemoryBackend" icon="brackets-curly" href="../classes/MemoryBackend">
    Memory storage backends.
  </Card>

  <Card title="LearnScope" icon="brackets-curly" href="../classes/LearnScope">
    Scope for learning data visibility.
  </Card>

  <Card title="LearnMode" icon="brackets-curly" href="../classes/LearnMode">
    Learning mode for automatic learning extraction.
  </Card>

  <Card title="LearnBackend" icon="brackets-curly" href="../classes/LearnBackend">
    Storage backend for learning data.
  </Card>

  <Card title="LearnConfig" icon="brackets-curly" href="../classes/LearnConfig">
    Configuration for continuous learning within memory system.
  </Card>

  <Card title="MemoryConfig" icon="brackets-curly" href="../classes/MemoryConfig">
    Configuration for agent memory and session management.
  </Card>

  <Card title="ChunkingStrategy" icon="brackets-curly" href="../classes/ChunkingStrategy">
    Knowledge chunking strategies.
  </Card>

  <Card title="KnowledgeConfig" icon="brackets-curly" href="../classes/KnowledgeConfig">
    Configuration for RAG and knowledge retrieval.
  </Card>

  <Card title="PlanningConfig" icon="brackets-curly" href="../classes/PlanningConfig">
    Configuration for planning mode.
  </Card>

  <Card title="ReflectionConfig" icon="brackets-curly" href="../classes/ReflectionConfig">
    Configuration for self-reflection.
  </Card>

  <Card title="RulesConfig" icon="brackets-curly" href="../classes/RulesConfig">
    Configuration for auto-applying per-project rules/instructions.
  </Card>

  <Card title="GuardrailAction" icon="brackets-curly" href="../classes/GuardrailAction">
    Action to take when guardrail fails.
  </Card>

  <Card title="GuardrailConfig" icon="brackets-curly" href="../classes/GuardrailConfig">
    Configuration for guardrails and safety validation.
  </Card>

  <Card title="WebSearchProvider" icon="brackets-curly" href="../classes/WebSearchProvider">
    Web search providers.
  </Card>

  <Card title="WebConfig" icon="brackets-curly" href="../classes/WebConfig">
    Configuration for web search and fetch capabilities.
  </Card>

  <Card title="OutputPreset" icon="brackets-curly" href="../classes/OutputPreset">
    Output style presets.
  </Card>

  <Card title="OutputConfig" icon="brackets-curly" href="../classes/OutputConfig">
    Configuration for agent output behavior.
  </Card>

  <Card title="ExecutionPreset" icon="brackets-curly" href="../classes/ExecutionPreset">
    Execution mode presets.
  </Card>

  <Card title="PreCompactionMemoryFlushConfig" icon="brackets-curly" href="../classes/PreCompactionMemoryFlushConfig">
    Bounded policy for extracting durable memories before compaction.
  </Card>

  <Card title="ExecutionConfig" icon="brackets-curly" href="../classes/ExecutionConfig">
    Configuration for agent execution limits.
  </Card>

  <Card title="LLMConfig" icon="brackets-curly" href="../classes/LLMConfig">
    Configuration for LLM model settings.
  </Card>

  <Card title="ToolConfig" icon="brackets-curly" href="../classes/ToolConfig">
    Configuration for tool execution behavior.
  </Card>

  <Card title="TemplateConfig" icon="brackets-curly" href="../classes/TemplateConfig">
    Configuration for prompt templates.
  </Card>

  <Card title="CachingConfig" icon="brackets-curly" href="../classes/CachingConfig">
    Configuration for caching behavior.
  </Card>

  <Card title="HooksConfig" icon="brackets-curly" href="../classes/HooksConfig">
    Configuration for agent hooks/callbacks.
  </Card>

  <Card title="SkillsConfig" icon="brackets-curly" href="../classes/SkillsConfig">
    Configuration for agent skills.
  </Card>

  <Card title="MultiAgentHooksConfig" icon="brackets-curly" href="../classes/MultiAgentHooksConfig">
    Configuration for multi-agent orchestration hooks/callbacks.
  </Card>

  <Card title="MultiAgentOutputConfig" icon="brackets-curly" href="../classes/MultiAgentOutputConfig">
    Configuration for multi-agent output behavior.
  </Card>

  <Card title="MultiAgentExecutionConfig" icon="brackets-curly" href="../classes/MultiAgentExecutionConfig">
    Configuration for multi-agent execution limits.
  </Card>

  <Card title="MultiAgentPlanningConfig" icon="brackets-curly" href="../classes/MultiAgentPlanningConfig">
    Configuration for multi-agent planning mode.
  </Card>

  <Card title="MultiAgentMemoryConfig" icon="brackets-curly" href="../classes/MultiAgentMemoryConfig">
    Configuration for multi-agent shared memory.
  </Card>

  <Card title="AutonomyLevel" icon="brackets-curly" href="../classes/AutonomyLevel">
    Autonomy levels for agent behavior.
  </Card>

  <Card title="RuntimeConfig" icon="brackets-curly" href="../classes/RuntimeConfig">
    Configuration for agent runtime capabilities and requirements.
  </Card>
</CardGroup>

## Functions

<CardGroup cols={2}>
  <Card title="available_memory_backends()" icon="function" href="../functions/available_memory_backends">
    Backends `MemoryConfig(backend=...)` accepts, read from the registry.
  </Card>

  <Card title="validate_memory_backend()" icon="function" href="../functions/validate_memory_backend">
    Normalise a backend name; raise rather than substitute a different store.
  </Card>

  <Card title="resolve_memory()" icon="function" href="../functions/resolve_memory">
    Resolve memory= parameter following precedence ladder.
  </Card>

  <Card title="resolve_knowledge()" icon="function" href="../functions/resolve_knowledge">
    Resolve knowledge= parameter following precedence ladder.
  </Card>

  <Card title="resolve_planning()" icon="function" href="../functions/resolve_planning">
    Resolve planning= parameter following precedence ladder.
  </Card>

  <Card title="resolve_reflection()" icon="function" href="../functions/resolve_reflection">
    Resolve reflection= parameter following precedence ladder.
  </Card>

  <Card title="resolve_guardrails()" icon="function" href="../functions/resolve_guardrails">
    Resolve guardrails= parameter following precedence ladder.
  </Card>

  <Card title="resolve_web()" icon="function" href="../functions/resolve_web">
    Resolve web= parameter following precedence ladder.
  </Card>

  <Card title="resolve_caching()" icon="function" href="../functions/resolve_caching">
    Resolve caching= parameter following precedence ladder.
  </Card>

  <Card title="resolve_autonomy()" icon="function" href="../functions/resolve_autonomy">
    Resolve autonomy= parameter following precedence ladder.
  </Card>

  <Card title="resolve_tool_search()" icon="function" href="../functions/resolve_tool_search">
    Resolve tool\_search= parameter following precedence ladder.
  </Card>

  <Card title="resolve_tools()" icon="function" href="../functions/resolve_tools">
    Resolve tools= parameter following precedence ladder.
  </Card>

  <Card title="canonical_runtime_name()" icon="function" href="../functions/canonical_runtime_name">
    Normalise a runtime name; reject typos but allow genuine plugin names.
  </Card>

  <Card title="resolve_runtime()" icon="function" href="../functions/resolve_runtime">
    Resolve runtime= parameter following precedence ladder.
  </Card>
</CardGroup>

### Constants

| Name                            | Value                                           |
| ------------------------------- | ----------------------------------------------- |
| `DEFAULT_TOOL_OUTPUT_LIMIT`     | `16000`                                         |
| `UNIMPLEMENTED_MEMORY_BACKENDS` | `('redis', 'valkey', 'postgres', 'postgresql')` |
| `_TOOL_SEARCH_CONFIG_CACHE`     | `None`                                          |

***

## Related Documentation

<CardGroup cols={2}>
  <Card title="Configuration Overview" icon="gear" href="/docs/docs/configuration/index" />

  <Card title="Agent Config" icon="robot" href="/docs/docs/configuration/agent-config" />
</CardGroup>
