|
35 | 35 | from ..events import Event, EventType |
36 | 36 | from ..loader import delete_agent_dir, save_agent |
37 | 37 | from ..providers.base import ToolDefinition |
| 38 | +from ..runtime.provider_manager import get_model_tier, get_tier_label |
38 | 39 |
|
39 | 40 | if TYPE_CHECKING: |
40 | 41 | from ..runtime import Runtime |
@@ -919,12 +920,24 @@ async def _create_agent(runtime: Runtime, input: dict[str, Any]) -> dict[str, An |
919 | 920 | if not system_prompt and prompt and parent_id: |
920 | 921 | system_prompt = build_delegate_prompt(agent_type, agent_id, parent_id) |
921 | 922 |
|
| 923 | + effective_model = model or runtime._config.orchestrator.model or "sonnet" |
| 924 | + model_tier = get_model_tier(effective_model) |
| 925 | + |
| 926 | + # Warn if model tier seems low for agent_type |
| 927 | + tier_warning = None |
| 928 | + if agent_type in ("general",) and model_tier < 3: |
| 929 | + tier_warning = ( |
| 930 | + f"Model '{effective_model}' is tier {model_tier} ({get_tier_label(model_tier)}). " |
| 931 | + f"Agent type '{agent_type}' works best with tier 3+ (autonomous) models." |
| 932 | + ) |
| 933 | + log.warning("Low capability tier for agent: %s", tier_warning) |
| 934 | + |
922 | 935 | defn = AgentDefinition( |
923 | 936 | id=agent_id, |
924 | 937 | name=input.get("name", "") or input.get("id", agent_id), |
925 | 938 | mode=AgentMode.COGNITIVE, |
926 | | - provider=model or runtime._config.orchestrator.model or "sonnet", |
927 | | - cognitive_model=model or runtime._config.orchestrator.model or "sonnet", |
| 939 | + provider=effective_model, |
| 940 | + cognitive_model=effective_model, |
928 | 941 | system_prompt=system_prompt, |
929 | 942 | task_prompt=prompt, |
930 | 943 | agent_type=agent_type, |
@@ -984,9 +997,17 @@ async def _create_agent(runtime: Runtime, input: dict[str, Any]) -> dict[str, An |
984 | 997 | data=node.to_dict(), |
985 | 998 | )) |
986 | 999 |
|
987 | | - return {"agent_id": aid, "status": "running", "execution_id": eid} |
988 | | - |
989 | | - return {"agent_id": aid, "status": "registered"} |
| 1000 | + result = {"agent_id": aid, "status": "running", "execution_id": eid, |
| 1001 | + "capability_tier": model_tier, "tier_label": get_tier_label(model_tier)} |
| 1002 | + if tier_warning: |
| 1003 | + result["tier_warning"] = tier_warning |
| 1004 | + return result |
| 1005 | + |
| 1006 | + result = {"agent_id": aid, "status": "registered", |
| 1007 | + "capability_tier": model_tier, "tier_label": get_tier_label(model_tier)} |
| 1008 | + if tier_warning: |
| 1009 | + result["tier_warning"] = tier_warning |
| 1010 | + return result |
990 | 1011 | except Exception as exc: |
991 | 1012 | return {"error": str(exc)} |
992 | 1013 |
|
|
0 commit comments