|
38 | 38 | from typing import Any, Dict, List, Optional |
39 | 39 |
|
40 | 40 | from lagent.utils import get_logger |
41 | | - |
42 | 41 | from .base import AsyncExternalAgent |
43 | 42 |
|
44 | 43 | logger = get_logger(__name__, 'info') |
@@ -68,8 +67,7 @@ class OpenHandsAdapter(AsyncExternalAgent): |
68 | 67 | plays nicely inside an async event loop (and alongside the proxy server). |
69 | 68 |
|
70 | 69 | Args: |
71 | | - model: LiteLLM model string (``provider/model``). Default: |
72 | | - ``$LLM_MODEL`` or ``"anthropic/claude-sonnet-4-5-20250929"``. |
| 70 | + model: LiteLLM model string (``provider/model``). Default: ``$LLM_MODEL``. |
73 | 71 | api_key: LLM API key. Default: ``$LLM_API_KEY``. Ignored when a |
74 | 72 | ``proxy`` is attached (the session key is injected instead). |
75 | 73 | base_url: Custom LLM base URL. Default: ``$LLM_BASE_URL``. Ignored |
@@ -125,7 +123,10 @@ def __init__( |
125 | 123 | kwargs.setdefault('description', 'OpenHands software agent') |
126 | 124 | super().__init__(**kwargs) |
127 | 125 |
|
128 | | - self.model = model or os.getenv('LLM_MODEL', 'anthropic/claude-sonnet-4-5-20250929') |
| 126 | + self.model = model or os.getenv('LLM_MODEL') |
| 127 | + if isinstance(self.model, str) and not self.model.startswith(('openai/', 'anthropic/')): |
| 128 | + logger.info(f"Model {self.model!r} missing provider prefix, assuming OpenAI") |
| 129 | + self.model = f"openai/{self.model}" |
129 | 130 | self.api_key = api_key or os.getenv('LLM_API_KEY') |
130 | 131 | self.base_url = base_url or os.getenv('LLM_BASE_URL') |
131 | 132 | self.tools = _DEFAULT_TOOLS if tools is None else tools |
|
0 commit comments