| ###################### OpenHands Configuration Example ###################### | |
| # | |
| # All settings have default values, so you only need to uncomment and | |
| # modify what you want to change | |
| # The fields within each section are sorted in alphabetical order. | |
| # | |
| ############################################################################## | |
| #################################### Core #################################### | |
| # General core configurations | |
| ############################################################################## | |
| [core] | |
| # API key for E2B | |
| #e2b_api_key = "" | |
| # API key for Modal | |
| #modal_api_token_id = "" | |
| #modal_api_token_secret = "" | |
| # Base path for the workspace | |
| workspace_base = "./workspace" | |
| # Cache directory path | |
| #cache_dir = "/tmp/cache" | |
| # Reasoning effort for o1 models (low, medium, high, or not set) | |
| #reasoning_effort = "medium" | |
| # Debugging enabled | |
| #debug = false | |
| # Disable color in terminal output | |
| #disable_color = false | |
| # Enable saving and restoring the session when run from CLI | |
| #enable_cli_session = false | |
| # Path to store trajectories, can be a folder or a file | |
| # If it's a folder, the session id will be used as the file name | |
| #save_trajectory_path="./trajectories" | |
| # Path to replay a trajectory, must be a file path | |
| # If provided, trajectory will be loaded and replayed before the | |
| # agent responds to any user instruction | |
| #replay_trajectory_path = "" | |
| # File store path | |
| #file_store_path = "/tmp/file_store" | |
| # File store type | |
| #file_store = "memory" | |
| # List of allowed file extensions for uploads | |
| #file_uploads_allowed_extensions = [".*"] | |
| # Maximum file size for uploads, in megabytes | |
| #file_uploads_max_file_size_mb = 0 | |
| # Maximum budget per task, 0.0 means no limit | |
| #max_budget_per_task = 0.0 | |
| # Maximum number of iterations | |
| #max_iterations = 100 | |
| # Path to mount the workspace in the sandbox | |
| #workspace_mount_path_in_sandbox = "/workspace" | |
| # Path to mount the workspace | |
| #workspace_mount_path = "" | |
| # Path to rewrite the workspace mount path to | |
| #workspace_mount_rewrite = "" | |
| # Run as openhands | |
| #run_as_openhands = true | |
| # Runtime environment | |
| #runtime = "eventstream" | |
| # Name of the default agent | |
| #default_agent = "CodeActAgent" | |
| # JWT secret for authentication | |
| #jwt_secret = "" | |
| # Restrict file types for file uploads | |
| #file_uploads_restrict_file_types = false | |
| # List of allowed file extensions for uploads | |
| #file_uploads_allowed_extensions = [".*"] | |
| #################################### LLM ##################################### | |
| # Configuration for LLM models (group name starts with 'llm') | |
| # use 'llm' for the default LLM config | |
| ############################################################################## | |
| [llm] | |
| # AWS access key ID | |
| #aws_access_key_id = "" | |
| # AWS region name | |
| #aws_region_name = "" | |
| # AWS secret access key | |
| #aws_secret_access_key = "" | |
| # API key to use (For Headless / CLI only - In Web this is overridden by Session Init) | |
| api_key = "your-api-key" | |
| # API base URL (For Headless / CLI only - In Web this is overridden by Session Init) | |
| #base_url = "" | |
| # API version | |
| #api_version = "" | |
| # Cost per input token | |
| #input_cost_per_token = 0.0 | |
| # Cost per output token | |
| #output_cost_per_token = 0.0 | |
| # Custom LLM provider | |
| #custom_llm_provider = "" | |
| # Embedding API base URL | |
| #embedding_base_url = "" | |
| # Embedding deployment name | |
| #embedding_deployment_name = "" | |
| # Embedding model to use | |
| embedding_model = "local" | |
| # Maximum number of characters in an observation's content | |
| #max_message_chars = 10000 | |
| # Maximum number of input tokens | |
| #max_input_tokens = 0 | |
| # Maximum number of output tokens | |
| #max_output_tokens = 0 | |
| # Model to use. (For Headless / CLI only - In Web this is overridden by Session Init) | |
| model = "gpt-4o" | |
| # Number of retries to attempt when an operation fails with the LLM. | |
| # Increase this value to allow more attempts before giving up | |
| #num_retries = 8 | |
| # Maximum wait time (in seconds) between retry attempts | |
| # This caps the exponential backoff to prevent excessively long | |
| #retry_max_wait = 120 | |
| # Minimum wait time (in seconds) between retry attempts | |
| # This sets the initial delay before the first retry | |
| #retry_min_wait = 15 | |
| # Multiplier for exponential backoff calculation | |
| # The wait time increases by this factor after each failed attempt | |
| # A value of 2.0 means each retry waits twice as long as the previous one | |
| #retry_multiplier = 2.0 | |
| # Drop any unmapped (unsupported) params without causing an exception | |
| #drop_params = false | |
| # Modify params for litellm to do transformations like adding a default message, when a message is empty. | |
| # Note: this setting is global, unlike drop_params, it cannot be overridden in each call to litellm. | |
| #modify_params = true | |
| # Using the prompt caching feature if provided by the LLM and supported | |
| #caching_prompt = true | |
| # Base URL for the OLLAMA API | |
| #ollama_base_url = "" | |
| # Temperature for the API | |
| #temperature = 0.0 | |
| # Timeout for the API | |
| #timeout = 0 | |
| # Top p for the API | |
| #top_p = 1.0 | |
| # If model is vision capable, this option allows to disable image processing (useful for cost reduction). | |
| #disable_vision = true | |
| # Custom tokenizer to use for token counting | |
| # https://docs.litellm.ai/docs/completion/token_usage | |
| #custom_tokenizer = "" | |
| # Whether to use native tool calling if supported by the model. Can be true, false, or None by default, which chooses the model's default behavior based on the evaluation. | |
| # ATTENTION: Based on evaluation, enabling native function calling may lead to worse results | |
| # in some scenarios. Use with caution and consider testing with your specific use case. | |
| # https://github.com/All-Hands-AI/OpenHands/pull/4711 | |
| #native_tool_calling = None | |
| [llm.gpt4o-mini] | |
| api_key = "your-api-key" | |
| model = "gpt-4o" | |
| #################################### Agent ################################### | |
| # Configuration for agents (group name starts with 'agent') | |
| # Use 'agent' for the default agent config | |
| # otherwise, group name must be `agent.<agent_name>` (case-sensitive), e.g. | |
| # agent.CodeActAgent | |
| ############################################################################## | |
| [agent] | |
| # whether the browsing tool is enabled | |
| codeact_enable_browsing = true | |
| # whether the LLM draft editor is enabled | |
| codeact_enable_llm_editor = false | |
| # whether the IPython tool is enabled | |
| codeact_enable_jupyter = true | |
| # Name of the micro agent to use for this agent | |
| #micro_agent_name = "" | |
| # Memory enabled | |
| #memory_enabled = false | |
| # Memory maximum threads | |
| #memory_max_threads = 3 | |
| # LLM config group to use | |
| #llm_config = 'your-llm-config-group' | |
| # Whether to use prompt extension (e.g., microagent, repo/runtime info) at all | |
| #enable_prompt_extensions = true | |
| # List of microagents to disable | |
| #disabled_microagents = [] | |
| [agent.RepoExplorerAgent] | |
| # Example: use a cheaper model for RepoExplorerAgent to reduce cost, especially | |
| # useful when an agent doesn't demand high quality but uses a lot of tokens | |
| llm_config = 'gpt3' | |
| #################################### Sandbox ################################### | |
| # Configuration for the sandbox | |
| ############################################################################## | |
| [sandbox] | |
| # Sandbox timeout in seconds | |
| #timeout = 120 | |
| # Sandbox user ID | |
| #user_id = 1000 | |
| # Container image to use for the sandbox | |
| #base_container_image = "nikolaik/python-nodejs:python3.12-nodejs22" | |
| # Use host network | |
| #use_host_network = false | |
| # runtime extra build args | |
| #runtime_extra_build_args = ["--network=host", "--add-host=host.docker.internal:host-gateway"] | |
| # Enable auto linting after editing | |
| #enable_auto_lint = false | |
| # Whether to initialize plugins | |
| #initialize_plugins = true | |
| # Extra dependencies to install in the runtime image | |
| #runtime_extra_deps = "" | |
| # Environment variables to set at the launch of the runtime | |
| #runtime_startup_env_vars = {} | |
| # BrowserGym environment to use for evaluation | |
| #browsergym_eval_env = "" | |
| #################################### Security ################################### | |
| # Configuration for security features | |
| ############################################################################## | |
| [security] | |
| # Enable confirmation mode (For Headless / CLI only - In Web this is overridden by Session Init) | |
| #confirmation_mode = false | |
| # The security analyzer to use (For Headless / CLI only - In Web this is overridden by Session Init) | |
| #security_analyzer = "" | |
| #################################### Eval #################################### | |
| # Configuration for the evaluation, please refer to the specific evaluation | |
| # plugin for the available options | |
| ############################################################################## | |