Overview
TheGeneralCoder agent is an AI-powered coding assistant that can generate, execute, and debug Python code based on natural language task descriptions. It uses a multi-agent system with a coder agent and an executor agent.
Class Definition
Parameters
LLM configuration dictionary containing model settings.Required fields:
model: Model name (e.g., “gpt-4”, “claude-3”)api_key: API key for the LLM servicebase_url: API endpoint URL
temperature: Generation temperature (0-1)max_tokens: Maximum tokens per responsetimeout: Request timeout in seconds
Configuration for code execution environment.Required fields:
work_dir: Working directory for code executionuse_docker: Whether to use Docker (bool)
Connection identifier for tracking purposes
Callback function to send messages during execution
Previous agent conversation history for context
Methods
create_code_tool
Detailed description of the task to accomplish. Should describe what needs to be done, not provide code.Example:
Additional context or background information for the task.Can include:
- User’s original question
- Necessary data paths
- Previous results or findings
- Constraints or requirements
List of Python libraries that might be needed.Example:
Execution result. Returns:
- String: Simple execution result
- Dictionary: Contains
execution_resultandfile_summaryif files were created
initiate_agents
__init__.
Creates:
general_coder: Assistant agent for code generationcoder_excute: User proxy agent for code execution
update_system_message
- Adds file path handling instructions
- Includes available local files from
Task_description.json - Adds code quality requirements
- Updates modular programming guidelines
create_code_tool execution.
register_toolkits
Code Quality Guidelines
TheGeneralCoder enforces several best practices:
Modular Programming
- Break complex tasks into separate files
- Create dedicated files for data acquisition, processing, analysis, and visualization
- Execute files sequentially or in parallel as appropriate
File Descriptions
Always add descriptions to created files:Path Handling
- Use relative filenames, not full paths
- Files are automatically saved in the configured
work_dir - Example: Use
data.csvinstead ofcoding/workspace/data.csv
Conversation Settings
The agent uses these settings for code generation:- Max turns: 50 conversation rounds
- Summary method:
reflection_with_llm - Termination: Triggered by “TERMINATE” keyword
File Summarization
After task completion, the agent automatically:- Analyzes the conversation history
- Identifies all created files
- Categorizes them as code, data, or images
- Generates descriptions for each file
- Filters out failed execution sessions
Advanced Usage
With Context from Previous Steps
Accessing Created Files
Error Handling
The agent includes automatic error handling:- Failed code execution sessions are filtered from history
- Errors are reported in the execution result
- Only successful file operations are included in summaries
Notes
- The agent expects tasks in natural language, not code snippets
- Code is generated based on the task description and context
- All file paths are relative to the configured
work_dir - The agent can handle multiple files and complex workflows
- Failed executions are automatically retried with fixes