Skip to content
Aabha AI Academy

All courses · Course overview · Lesson sequence

Skip to lesson text

Answers and explanations · Add a bounded planner

Under the default policy, the always-lookup double makes three synthetic reads. Successful attempts produce revisions 1–3, 4–6 and 7–9. The next plan saves STOPPED/tool_budget_exhausted at revision 10. steps=10, tool_calls=3, draft=None. It obeyed operation scope but failed to prepare a useful comparison. A limit prevents unbounded waste; it does not make a poor planner competent.

For immediate drafting, use ScriptedPlanner(Proposal("draft")) on a fresh run. Expect STOPPED/draft_without_evidence and zero synthetic calls. A failing double can be:

class FailingPlanner:
    def propose(self, view):
        raise RuntimeError("synthetic planner failure")

The expected reason is planner_failure. Avoid testing with the same run after it has already stopped; terminal runs cannot re-enter ACTIVE. Use new request IDs and fresh stores or independent engines for comparisons.

With three steps, the baseline records its fact but cannot draft: STOPPED/step_budget_exhausted, one tool call, fact present, draft absent. With four steps it reaches REVIEW with the same fact and one call. Approval would require another charged transition, and finalization another. The default sixteen-step policy allows those later operations; the four-step experiment is intentionally too small for the whole simulated journey.

A model adapter might interpret which permitted evidence source is relevant to a staff question. Its input should contain only necessary task data and a versioned tool schema. Its output should identify one permitted action and validated arguments. Reject an unknown tool name, missing required target, extra executable command, malformed structured data or a draft proposal without evidence. The controller still verifies scope, counters and authority after parsing.

“Never look up twice” would block legitimate retries after a known temporary read failure and would not distinguish valid evidence refreshes from waste. A more precise policy might allow another lookup only for an explicit reason, but it would need its own tests and source-version rules. Demonstrate a measurable limitation of the fixed baseline before buying complexity with a model planner.

Self-review: a good result table distinguishes reserved attempts, actual synthetic calls and work steps. It says exactly which planner ran. If your report calls the double an autonomous LLM agent, correct the evidence label.

Return to this lesson