[S2] inspector_id, inspector_targets and max_inspectors are dead Agent fields: accepted, persisted, and never applied · Issue #1116 · aixplain/aiXplain · GitHub
You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[S2] inspector_id, inspector_targets and max_inspectors are dead Agent fields: accepted, persisted, and never applied #1116
Source: external black-box user audit of PyPI aixplain 0.2.48 (finding #8). Verified offline against development @ e9f7061; the aixplain/ package there is byte-identical to main/0.2.48, so this is present on all branches.
Problem
Baseline that works: inspectors=[aix.Inspector.get(<preset>)] blocks an injection query (governance.status = BLOCKED_BY_INSPECTOR).
call
observed
expected
inspector_id="<preset id>"
serialised as inspectorId; run ALLOWED, full answer
blocked
inspectors=[preset], max_inspectors=0
serialised as maxInspectors: 0; still BLOCKED
0 inspectors, or rejected
inspectors=[preset], inspector_targets=["output"]
serialised; still blocked at input
check moves to output
inspector_id is the dangerous one: it reads as the obvious way to attach a guardrail and attaches nothing. A user who writes it believes they have runtime governance and has none.
Evidence
aixplain/v2/agent.py:647, 686-687: plain dataclass fields serialised only on save as inspectorId/inspectorTargets/maxInspectors; no SDK logic consumes them and they are not in the run payload. inspector_targets/max_inspectors are v1 team-agent-era fields. None of the three appears in README/MIGRATION/docs.
Suggested fix
Remove inspector_id or make it sugar for inspectors=[Inspector.get(id)]; drop inspector_targets/max_inspectors (or confirm with the backend that they are honoured and test it). Deprecation warning in the interim.
Activity