# Agents API Reference This page documents the API for DeepCritical agents. ## KnowledgeGapAgent **Module**: `src.agents.knowledge_gap` **Purpose**: Evaluates research state and identifies knowledge gaps. ### Methods #### `evaluate` [KnowledgeGapAgent.evaluate](../src/agents/knowledge_gap.py) start_line:66 end_line:74 Evaluates research completeness and identifies outstanding knowledge gaps. **Parameters**: - `query`: Research query string - `background_context`: Background context for the query (default: "") - `conversation_history`: History of actions, findings, and thoughts as string (default: "") - `iteration`: Current iteration number (default: 0) - `time_elapsed_minutes`: Elapsed time in minutes (default: 0.0) - `max_time_minutes`: Maximum time limit in minutes (default: 10) **Returns**: `KnowledgeGapOutput` with: - `research_complete`: Boolean indicating if research is complete - `outstanding_gaps`: List of remaining knowledge gaps ## ToolSelectorAgent **Module**: `src.agents.tool_selector` **Purpose**: Selects appropriate tools for addressing knowledge gaps. ### Methods #### `select_tools` [ToolSelectorAgent.select_tools](../src/agents/tool_selector.py) start_line:78 end_line:84 Selects tools for addressing a knowledge gap. **Parameters**: - `gap`: The knowledge gap to address - `query`: Research query string - `background_context`: Optional background context (default: "") - `conversation_history`: History of actions, findings, and thoughts as string (default: "") **Returns**: `AgentSelectionPlan` with list of `AgentTask` objects. ## WriterAgent **Module**: `src.agents.writer` **Purpose**: Generates final reports from research findings. ### Methods #### `write_report` [WriterAgent.write_report](../src/agents/writer.py) start_line:67 end_line:73 Generates a markdown report from research findings. **Parameters**: - `query`: Research query string - `findings`: Research findings to include in report - `output_length`: Optional description of desired output length (default: "") - `output_instructions`: Optional additional instructions for report generation (default: "") **Returns**: Markdown string with numbered citations. ## LongWriterAgent **Module**: `src.agents.long_writer` **Purpose**: Long-form report generation with section-by-section writing. ### Methods #### `write_next_section` [LongWriterAgent.write_next_section](../src/agents/long_writer.py) start_line:94 end_line:100 Writes the next section of a long-form report. **Parameters**: - `original_query`: The original research query - `report_draft`: Current report draft as string (all sections written so far) - `next_section_title`: Title of the section to write - `next_section_draft`: Draft content for the next section **Returns**: `LongWriterOutput` with formatted section and references. #### `write_report` [LongWriterAgent.write_report](../src/agents/long_writer.py) start_line:263 end_line:268 Generates final report from draft. **Parameters**: - `query`: Research query string - `report_title`: Title of the report - `report_draft`: Complete report draft **Returns**: Final markdown report string. ## ProofreaderAgent **Module**: `src.agents.proofreader` **Purpose**: Proofreads and polishes report drafts. ### Methods #### `proofread` [ProofreaderAgent.proofread](../src/agents/proofreader.py) start_line:72 end_line:76 Proofreads and polishes a report draft. **Parameters**: - `query`: Research query string - `report_title`: Title of the report - `report_draft`: Report draft to proofread **Returns**: Polished markdown string. ## ThinkingAgent **Module**: `src.agents.thinking` **Purpose**: Generates observations from conversation history. ### Methods #### `generate_observations` [ThinkingAgent.generate_observations](../src/agents/thinking.py) start_line:70 end_line:76 Generates observations from conversation history. **Parameters**: - `query`: Research query string - `background_context`: Optional background context (default: "") - `conversation_history`: History of actions, findings, and thoughts as string (default: "") - `iteration`: Current iteration number (default: 1) **Returns**: Observation string. ## InputParserAgent **Module**: `src.agents.input_parser` **Purpose**: Parses and improves user queries, detects research mode. ### Methods #### `parse` [InputParserAgent.parse](../src/agents/input_parser.py) start_line:82 end_line:82 Parses and improves a user query. **Parameters**: - `query`: Original query string **Returns**: `ParsedQuery` with: - `original_query`: Original query string - `improved_query`: Refined query string - `research_mode`: "iterative" or "deep" - `key_entities`: List of key entities - `research_questions`: List of research questions ## Factory Functions All agents have factory functions in `src.agent_factory.agents`: [Factory Functions](../src/agent_factory/agents.py) start_line:30 end_line:50 **Parameters**: - `model`: Optional Pydantic AI model. If None, uses `get_model()` from settings. - `oauth_token`: Optional OAuth token from HuggingFace login (takes priority over env vars) **Returns**: Agent instance. ## See Also - [Architecture - Agents](../architecture/agents.md) - Architecture overview - [Models API](models.md) - Data models used by agents