openjiuwen_deepsearch.framework.openjiuwen.agent.agent_factory
AgentFactory
class openjiuwen_deepsearch.framework.openjiuwen.agent.agent_factory.AgentFactory()
AgentFactory builds Agent instances from search_mode and execution_method in config.
Module side effect: importing sets env var
WORKFLOW_EXECUTE_TIMEOUTfromConfig().service_config.workflow_execution_timeout.
__init__
__init__()
Builds the execution-method → Agent class map:
"parallel"→DeepresearchAgentdependency_driving→DeepresearchDependencyAgentsearch→DeepSearchAgent(seedeepsearch_agent)
Example:
>>> from openjiuwen_deepsearch.framework.openjiuwen.agent.agent_factory import AgentFactory
>>> factory = AgentFactory()
>>> print(factory.agent_map)
{...}
create_agent
create_agent(agent_config: dict)
Validates config and returns the matching Agent instance.
Parameters:
- agent_config (dict): Passed through
validate_agent_required_fieldandAgentConfig.model_validate.
Returns:
DeepresearchAgentwhensearch_modeis"research"andexecution_methodis"parallel"(default).DeepresearchDependencyAgentwhensearch_modeis"research"andexecution_methodisdependency_driving.DeepSearchAgentwhensearch_modeis"search".SimpleReactSearchAgentwhensearch_modeis"react".
Raises:
CustomValueExceptionon validation failure or unknown execution method.
Example:
>>> from openjiuwen_deepsearch.framework.openjiuwen.agent.agent_factory import AgentFactory
>>> factory = AgentFactory()
>>> # Example 1: parallel
>>> agent_config = {
... "llm_config": {"model_name": "gpt-4", "model_type": "openai"},
... "search_mode": "research",
... "execution_method": "parallel",
... }
>>> agent = factory.create_agent(agent_config)
>>> print(type(agent).__name__)
DeepresearchAgent
>>> # Example 2: dependency-driven
>>> agent_config = {
... "llm_config": {"model_name": "gpt-4", "model_type": "openai"},
... "search_mode": "research",
... "execution_method": "dependency_driving",
... }
>>> agent = factory.create_agent(agent_config)
>>> print(type(agent).__name__)
DeepresearchDependencyAgent
>>> # Example 3: search (DeepSearchAgent)
>>> agent_config = {
... "llm_config": {"model_name": "gpt-4", "model_type": "openai"},
... "search_mode": "search",
... }
>>> agent = factory.create_agent(agent_config)
>>> print(type(agent).__name__)
DeepSearchAgent