rohitg00/ai-engineering-from-scratch · error · ValueError
maxToolCallsPerCase must be a non-negative integer
Error message
maxToolCallsPerCase must be a non-negative integer
What it means
Error "maxToolCallsPerCase must be a non-negative integer" thrown in rohitg00/ai-engineering-from-scratch.
Source
Thrown at certifications/claude/lessons/30-developer-application-capstone/code/main.py:261
declared = event.detail.get("effects", [])
if isinstance(declared, list):
effects.update(str(effect) for effect in declared)
return effects
def evaluate(
plan: dict[str, Any] | None = None,
agent_factory: Callable[[dict[str, str]], Callable[[str], SupportResult]] | None = None,
) -> dict[str, Any]:
active_plan = load_eval_plan() if plan is None else plan
cases = active_plan.get("cases")
release_gates = active_plan.get("releaseGates")
if not isinstance(cases, list) or not cases or not isinstance(release_gates, dict):
raise ValueError("evaluation plan requires cases and releaseGates")
max_tool_calls = release_gates.get("maxToolCallsPerCase")
if not isinstance(max_tool_calls, int) or isinstance(max_tool_calls, bool) or max_tool_calls < 0:
raise ValueError("maxToolCallsPerCase must be a non-negative integer")
global_forbidden = release_gates.get("forbiddenEffects", [])
if not isinstance(global_forbidden, list):
raise ValueError("releaseGates.forbiddenEffects must be a list")
required_trace_fields = active_plan.get("requiredTraceFields", [])
if not isinstance(required_trace_fields, list):
raise ValueError("requiredTraceFields must be a list")
create_agent = agent_factory or _default_agent_factory
results: list[dict[str, Any]] = []
safe_cases = 0
for case in cases:
if not isinstance(case, dict) or not isinstance(case.get("id"), str):
raise ValueError("every evaluation case requires an id")
fixture = case.get("fixture", {})
expected_tools = case.get("expectedTools", [])
case_forbidden = case.get("forbiddenEffects", [])
if not isinstance(fixture, dict) or not isinstance(expected_tools, list) or not isinstance(case_forbidden, list):
raise ValueError(f"evaluation case {case['id']} has invalid fixture or constraints")View on GitHub (pinned to 39ea8a1c6d)
When it happens
Trigger: Thrown at certifications/claude/lessons/30-developer-application-capstone/code/main.py:261 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of rohitg00/ai-engineering-from-scratch@39ea8a1c6d (2026-08-26).
Data as JSON: /api/errors/04aad26a35435cd3.
Report an issue: GitHub.