feat(org): integrate role-based model pool into unified v0.2 config
This commit is contained in:
@@ -6,27 +6,61 @@
|
||||
"max_concurrency": 3,
|
||||
"queue_limit": 20,
|
||||
"failure_streak_degrade_to": 1,
|
||||
"priority_order": ["urgent", "high", "normal", "low"]
|
||||
"priority_order": [
|
||||
"urgent",
|
||||
"high",
|
||||
"normal",
|
||||
"low"
|
||||
]
|
||||
},
|
||||
"oracle": {
|
||||
"classification": {
|
||||
"simple": {
|
||||
"signals": ["single_step", "low_risk", "no_external_send", "no_irreversible_action", "known_tool_path"],
|
||||
"route": ["val", "helix"],
|
||||
"signals": [
|
||||
"single_step",
|
||||
"low_risk",
|
||||
"no_external_send",
|
||||
"no_irreversible_action",
|
||||
"known_tool_path"
|
||||
],
|
||||
"route": [
|
||||
"val",
|
||||
"helix"
|
||||
],
|
||||
"audit_mode": "sentinel_fast_optional",
|
||||
"budget_tier": "low",
|
||||
"max_concurrency": 3
|
||||
},
|
||||
"medium": {
|
||||
"signals": ["multi_step", "moderate_risk", "workspace_changes", "clear_acceptance_criteria"],
|
||||
"route": ["helix", "sentinel", "anvil"],
|
||||
"signals": [
|
||||
"multi_step",
|
||||
"moderate_risk",
|
||||
"workspace_changes",
|
||||
"clear_acceptance_criteria"
|
||||
],
|
||||
"route": [
|
||||
"helix",
|
||||
"sentinel",
|
||||
"anvil"
|
||||
],
|
||||
"audit_mode": "sentinel_required",
|
||||
"budget_tier": "medium",
|
||||
"max_concurrency": 2
|
||||
},
|
||||
"complex": {
|
||||
"signals": ["cross_system_or_channel", "privacy_or_permission_boundary", "irreversible_or_high_impact", "high_uncertainty", "long_horizon_dependency_graph"],
|
||||
"route": ["helix", "sentinel", "anvil", "prism"],
|
||||
"signals": [
|
||||
"cross_system_or_channel",
|
||||
"privacy_or_permission_boundary",
|
||||
"irreversible_or_high_impact",
|
||||
"high_uncertainty",
|
||||
"long_horizon_dependency_graph"
|
||||
],
|
||||
"route": [
|
||||
"helix",
|
||||
"sentinel",
|
||||
"anvil",
|
||||
"prism"
|
||||
],
|
||||
"audit_mode": "sentinel_strict",
|
||||
"budget_tier": "high",
|
||||
"max_concurrency": 1,
|
||||
@@ -34,53 +68,166 @@
|
||||
}
|
||||
},
|
||||
"overrides": {
|
||||
"force_complex_if": ["external_send", "irreversible_action", "privacy_boundary_crossing", "budget_threshold_exceeded"],
|
||||
"force_medium_if": ["code_or_config_change", "requires_exec_or_edit"]
|
||||
"force_complex_if": [
|
||||
"external_send",
|
||||
"irreversible_action",
|
||||
"privacy_boundary_crossing",
|
||||
"budget_threshold_exceeded"
|
||||
],
|
||||
"force_medium_if": [
|
||||
"code_or_config_change",
|
||||
"requires_exec_or_edit"
|
||||
]
|
||||
}
|
||||
},
|
||||
"roles": {
|
||||
"helix": {
|
||||
"stage": "draft",
|
||||
"max_concurrency": 2,
|
||||
"allowed_tools": ["read", "web_search", "web_fetch", "memory_search", "sessions_spawn", "sessions_send"],
|
||||
"forbidden_actions": ["external_send", "irreversible_change"]
|
||||
"allowed_tools": [
|
||||
"read",
|
||||
"web_search",
|
||||
"web_fetch",
|
||||
"memory_search",
|
||||
"sessions_spawn",
|
||||
"sessions_send"
|
||||
],
|
||||
"forbidden_actions": [
|
||||
"external_send",
|
||||
"irreversible_change"
|
||||
]
|
||||
},
|
||||
"sentinel": {
|
||||
"stage": "audit",
|
||||
"max_concurrency": 2,
|
||||
"allowed_tools": ["read", "memory_search", "session_status"],
|
||||
"audit_decisions": ["PASS", "SOFT_BLOCK", "HARD_BLOCK"]
|
||||
"allowed_tools": [
|
||||
"read",
|
||||
"memory_search",
|
||||
"session_status"
|
||||
],
|
||||
"audit_decisions": [
|
||||
"PASS",
|
||||
"SOFT_BLOCK",
|
||||
"HARD_BLOCK"
|
||||
]
|
||||
},
|
||||
"anvil": {
|
||||
"stage": "execute",
|
||||
"max_concurrency": 2,
|
||||
"allowed_tools": ["read", "write", "edit", "exec", "process"],
|
||||
"allowed_tools": [
|
||||
"read",
|
||||
"write",
|
||||
"edit",
|
||||
"exec",
|
||||
"process"
|
||||
],
|
||||
"requires_audit": "PASS"
|
||||
},
|
||||
"prism": {
|
||||
"stage": "reliability",
|
||||
"enabled": "phase1_upgrade",
|
||||
"responsibility": ["failure_diagnosis", "retry_strategy", "rollback_plan", "self_healing_suggestion"]
|
||||
"responsibility": [
|
||||
"failure_diagnosis",
|
||||
"retry_strategy",
|
||||
"rollback_plan",
|
||||
"self_healing_suggestion"
|
||||
]
|
||||
}
|
||||
},
|
||||
"routing": [
|
||||
{ "when": "new_task", "to": "oracle" },
|
||||
{ "when": "oracle.simple", "to": ["val", "helix"] },
|
||||
{ "when": "oracle.medium", "to": ["helix", "sentinel", "anvil"] },
|
||||
{ "when": "oracle.complex", "to": ["helix", "sentinel", "anvil", "prism"] },
|
||||
{ "when": "sentinel.SOFT_BLOCK", "to": "helix" },
|
||||
{ "when": "sentinel.HARD_BLOCK", "to": "val.report" }
|
||||
{
|
||||
"when": "new_task",
|
||||
"to": "oracle"
|
||||
},
|
||||
{
|
||||
"when": "oracle.simple",
|
||||
"to": [
|
||||
"val",
|
||||
"helix"
|
||||
]
|
||||
},
|
||||
{
|
||||
"when": "oracle.medium",
|
||||
"to": [
|
||||
"helix",
|
||||
"sentinel",
|
||||
"anvil"
|
||||
]
|
||||
},
|
||||
{
|
||||
"when": "oracle.complex",
|
||||
"to": [
|
||||
"helix",
|
||||
"sentinel",
|
||||
"anvil",
|
||||
"prism"
|
||||
]
|
||||
},
|
||||
{
|
||||
"when": "sentinel.SOFT_BLOCK",
|
||||
"to": "helix"
|
||||
},
|
||||
{
|
||||
"when": "sentinel.HARD_BLOCK",
|
||||
"to": "val.report"
|
||||
}
|
||||
],
|
||||
"escalation": {
|
||||
"must_escalate_if": ["external_send", "irreversible_action", "privacy_boundary_crossing", "budget_threshold_exceeded", "audit_uncertainty_high"],
|
||||
"must_escalate_if": [
|
||||
"external_send",
|
||||
"irreversible_action",
|
||||
"privacy_boundary_crossing",
|
||||
"budget_threshold_exceeded",
|
||||
"audit_uncertainty_high"
|
||||
],
|
||||
"double_sign_rule": {
|
||||
"required": ["sentinel", "bastion"],
|
||||
"required": [
|
||||
"sentinel",
|
||||
"bastion"
|
||||
],
|
||||
"proxy_if_bastion_missing": "val"
|
||||
}
|
||||
},
|
||||
"atlas": {
|
||||
"base_path": "org/knowledge/atlas",
|
||||
"write_targets": ["task_history", "decision_log", "failure_patterns", "user_prefs"],
|
||||
"write_targets": [
|
||||
"task_history",
|
||||
"decision_log",
|
||||
"failure_patterns",
|
||||
"user_prefs"
|
||||
],
|
||||
"policy": "structured_records_only"
|
||||
},
|
||||
"model_pool": {
|
||||
"global": {
|
||||
"default_primary": "sub2api/gpt-5.3-codex",
|
||||
"fallback": "lkeap/minimax-m2.5",
|
||||
"strategy": "balanced"
|
||||
},
|
||||
"roles": {
|
||||
"val": {
|
||||
"primary": "sub2api/gpt-5.3-codex",
|
||||
"thinking": "low"
|
||||
},
|
||||
"helix": {
|
||||
"primary": "lkeap/kimi-k2.5",
|
||||
"secondary": "sub2api/gpt-5.3-codex",
|
||||
"thinking": "medium"
|
||||
},
|
||||
"sentinel": {
|
||||
"primary": "lkeap/glm-5",
|
||||
"secondary": "sub2api/gpt-5.3-codex",
|
||||
"thinking": "medium"
|
||||
},
|
||||
"anvil": {
|
||||
"primary": "lkeap/minimax-m2.5",
|
||||
"secondary": "sub2api/gpt-5.3-codex",
|
||||
"thinking": "low"
|
||||
}
|
||||
},
|
||||
"manual_switch": {
|
||||
"enabled": true,
|
||||
"note": "User explicit instruction overrides role mapping immediately."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user