dragon.ai.agent.config.agent_config.AgentConfig

class AgentConfig[source]

Bases: object

Immutable configuration for a single Dragon agent.

Parameters

agent_id:

Unique identifier for this agent within the pipeline.

name:

Human-readable display name for the agent.

role:

System-prompt role description sent to the LLM.

input_queue:

Dragon Queue populated after the agent starts via reply_queue. Users should not set this directly.

inference_queue:

Dragon Queue feeding the inference pipeline backend. When set, the agent auto-creates a DragonQueueLLMProxy internally — no pre-built proxy needs to be passed. Different agents can point to different inference pipelines.

max_concurrent_requests:

Maximum number of concurrent in-flight LLM requests this agent can have at once. None (default) uses the proxy’s built-in default (32).

summarizer_inference_queue:

Optional inference queue for a separate summarizer pipeline. When set, a summarizer proxy is auto-created and wired into the agent’s context manager.

node_affinity:

Optional node placement hint (e.g. hostname or node index).

approval_filter:

HITL gating predicate. When set, tool calls matching the filter are paused for human approval before execution. None (default) = no gating.

max_tool_call_iterations:

Maximum number of tool-call iterations in the agentic loop. Each iteration = one LLM call that may produce a tool request or final answer. Increase for agents that need many tool calls or multiple HITL feedback rounds. Defaults to 20.

memory:

Memory management — controls how conversation history is managed during the tool-call loop. None (default) keeps everything. Pass a MemoryConfig(...) for explicit strategy and tuning parameters.

__init__(agent_id: str , name: str , role: str , input_queue: Queue = None, inference_queue: Any = None, max_concurrent_requests: int | None = None, summarizer_inference_queue: Any = None, node_affinity: str = '', approval_filter: Callable [[str , dict ], bool ] | None = None, max_tool_call_iterations: int = 20, memory: MemoryConfig | None = None) None

Methods

__init__(agent_id, name, role[, ...])

Attributes

approval_filter

inference_queue

input_queue

max_concurrent_requests

max_tool_call_iterations

memory

node_affinity

summarizer_inference_queue

agent_id

name

role

agent_id: str
name: str
role: str
input_queue: Queue = None
inference_queue: Any = None
max_concurrent_requests: int | None = None
summarizer_inference_queue: Any = None
node_affinity: str = ''
approval_filter: Callable [[str , dict ], bool ] | None = None
max_tool_call_iterations: int = 20
memory: MemoryConfig | None = None
__init__(agent_id: str , name: str , role: str , input_queue: Queue = None, inference_queue: Any = None, max_concurrent_requests: int | None = None, summarizer_inference_queue: Any = None, node_affinity: str = '', approval_filter: Callable [[str , dict ], bool ] | None = None, max_tool_call_iterations: int = 20, memory: MemoryConfig | None = None) None