Per-model service tier default (codex: gpt-6.1-sol -> fast), tier:<x> / tier:none labels

executors.<x>.tier_defaults maps a model to the tier used when no label sets one;
a tier:<name> label sets it explicitly and tier:none drops the tier argument.
This commit is contained in:
jj.wang
2026-10-21 08:08:01 +00:00
parent 34b2ba1cc7
commit f2f7e4308a
6 changed files with 38 additions and 1 deletions
+6
View File
@@ -491,6 +491,8 @@ class Agentd:
r["model"] = label[6:]
elif label.startswith("effort:"):
r["effort"] = label[7:]
elif label.startswith("tier:"):
r["tier"] = label[5:]
elif label.startswith("cap:"):
caps.append(label[4:])
elif parse_budget(label) is not None:
@@ -503,6 +505,10 @@ class Agentd:
ecfg = self.cfg.executors[r["executor"]]
r["model"] = r["model"] or (ecfg.get("models") or [None])[0]
r["effort"] = r["effort"] or ecfg.get("default_effort")
if r["tier"] is None: # per-model default unless a label set one; `tier:none` = no tier argument
r["tier"] = (ecfg.get("tier_defaults") or {}).get(r["model"])
if r["tier"] in ("none", ""):
r["tier"] = None
return r
def protocol(self, pcfg):