AI Hero Club

AI Agent Engineering · Lesson 7

Marked Complete by You0 / 8

Saved in this browser only. Marking a lesson complete does not mean the project has passed verification.

Lesson Outline 9 subsections
Course Contents 8 lessons
Full course plan.
AI Agent Engineering / Learning Plan ↗

LESSON 07 / 8Suggested study 120 minutes

Fixed Tasks, Fault Injection and Offline Evaluation

After a successful demonstration, how can fixed tasks and fault injection expose empty answers, unauthorized actions and false completion?

3 Questions for This Lesson
  • Automatically produce evaluation results from the actual mission chain rather than handwritten results
  • Joint check status, effects, references and replay by task type
  • Use negative contrasts and failure to retain capacity limit conclusions
Course Project ZIP ↓

Freeze the Question Before Running the Evaluation

The first six chapters already have complete paths from information to tools, durability, recovery and validation of results, which allow the same portal to run on a fixed task set. data/tasks.jsonl defines the original task, the expected termination status, the expected operational effects, and the number of optional malfunctions or local policy. The expected labels are test norms, the actual state, inventory, references and calls are generated by the application. They cannot be confused: a hand-written listing does not amount to success; only when implemented, independent observations are compared with norms. Project run.py demo creates an article-by-article independent database to avoid the impact of the previous mission inventory on the next entry.

The fixed set contains 17 tasks: normal data queries, normal presets, stockouts, no writing privileges, missed hits, ambiguity, malicious notes, reading of temporary failures, submission of a response, post-submission interruptions, zero budgets, short budgets, zero re-tests, local rejection strategies, unknown tool strategy, post-submission failures, zero re-trying, and four moves. Each entry is taken by the same importer and Runner, not by writing directly back to status for testing. Local-abstain and invalid-tool use real JSON strategy adapters, other mission default rules; HTTP adaptors are also integrated by real home server tests.

The Success Predicate Must Match the Requirement

Task I definition by instruction PiP_i The actual state is required to be equal to the expected state, the reference check passed, the actual ledger effect is in accordance with the norm and the inventory deductions are in line with the write-up. Each item also performs a replay and reconciliation of snapshots. This task is not “If the system fails, it's a success.”, but is at the receiving and inspection fault line: it must reveal the unacknowledged state and the facts have been submitted, and cannot misrepresent the zero effect.

Pi=Istatus,i∧Ieffect,i∧Istock,i∧Isupport,i∧Ireplay,iP_i=I_{status,i}\land I_{effect,i}\land I_{stock,i}\land I_{support,i}\land I_{replay,i}
Each is the Boolean proposition; joint adoption is not another failure to set off one or the other better.

The overall task compliance rate is a sign of consistency of behaviour under this freeze test by dividing the number by total. It is not a linguistic intelligence score, nor does it estimate the probability of success for an unknown Internet request. The task is constructed according to the mechanism we choose. It is not an independent sample from the actual user distribution, and 17 out of 17 cannot be extrapolated to “Anything you need can be done.”. The official report is also grouped by status and mechanism, with each call, number of effects, inventory, support and replaying results, so that readers can see what has been accomplished.

Worked Example 1: Identical Termination, Different Business Outcomes

Compare retry-zero and list-reply-no-retry. Both end with retry-exhausted, but the former had a temporary breakdown before the execution of the search, with calls being zero and stocks three; the latter have succeeded in reading the first three reading tools, reserve has failed after submission, and the customer has not yet observed. This calculation allows the unknown confirmed boundary in chapter IV to enter the full task set, rather than just to discuss it in text.

The zero budget does not even call the Seearch, the cats are zero; the two budget presets have been observed and stopped. Both have budget_exhausted and do not write the inventory, but the information saved is different from the value of the check. All non-reserved state collectively conceals this difference; all expected terminations are described as “Business completion”. The name of the report was used as “Compliance with fixed test specifications”, and it was clear that normal denials and fault boundaries were also included.

Worked Example 2: An Overall Pass Can Hide a Safety Failure

Seventeen missions, 16 of which are correct and one overwritten, are returned to Denied. Seventeen out of 17 may be granted by the status test alone; only 17 out of sixteen will be added to the ledger examination, and the security threshold must fail instead of being delivered because 94% is still good. If the security task is reduced, the overall score can still be raised, but that does not eliminate the ultra vires fact. So the final ruling first examines the key non-variant without failure, then looks at functional coverage and transfer costs; security constraints are not a preferred option for even split compensation.

Standalone ProgramIndependent statistics contrast: A good-looking state compliance rate does not cover ultra vires effects.
rows=[{'status_ok':True,'effect_ok':True} for _ in range(17)]
rows[-1]['effect_ok']=False
status_rate=sum(r['status_ok'] for r in rows)/len(rows)
joint_rate=sum(r['status_ok'] and r['effect_ok'] for r in rows)/len(rows)
assert status_rate==1 and joint_rate==16/17
assert not all(r['effect_ok'] for r in rows)
print(status_rate,joint_rate,'safety gate FAIL')

Distinguishing Fault Injection from Test Doubles

The failure injection is to create an anomaly at a specified location in the real path. Search_transient drops a temporary error before reading; lost_reply drops an anomaly after inventory and ledger has submitted; crash_after_committee allows process-driven interruptions to save the feeding. They use the database forms to ensure that “Trigger only once.” cross-recovery is still established. If only one false error is returned on the outermost level, there is no real submission or recovery, there will be no testing of dangerous empty windows. An impact check of the project would capture a false simulation that inventory and bookbooks must match the failure location.

The default tool and strategy are certain, so the same initial database, task and trouble configuration should have the same semantic results. The event summary is also generated by a standard sequenced process that does not introduce current time or random call numbers to create irrelevant differences. The actual HTTP contract test uses a dynamic port, but the port is not an operational state. The CPU takes time only to test the process record and is not a mission capability score. There is no remote LLM sampling, cost or delayed assessment in this course, which, if replaced by random tactics, requires additional seeds, duplication, misdistribution and requests for budgets, rather than using certainty as a probabilities guarantee.

Recovery Tests Must Compare the Whole Object

The module tests partial tasks at multiple stoppoints, restoring them and comparing them to the complete state of continuous operation; after submission, the crash cases also check the pending, cumulative five calls, ledger one and inventory two. Only a comparison of the final status will miss out on double deductions, and only a comparison of the inventory will miss the wrong references or the wrong task identity. Re-checking from another path check the event chain is consistent with the snapshot. The goal of restoration is not that the number of attempts is the same as the non- troubleless operation, but that the operational results are consistent with the legal boundary and that additional attempts are accurately recorded; The additional call after a failure is a cost that should be retained.

The supporting test uses the actual generated claims, without manually filling a set of consistent references. Text or SHA mutations must fail, and normal extracts should be adopted. Neither empty, missing and repeated statements can be verified by the originals as a collection of required_claims. The current range is an accurate extractor that does not combine relevance, open semantic support or real values into one indicator.

Keep Development Failures and Untested Cases

When you first run your own HTTP contract, the environment is forbidden to tie back the portal to PermissionError. This is a disruption of the operating environment, not the HTTP agreement has been passed, or the remote service has failed. Real HTTP tasks are completed after you have obtained permission to test it; development-failures.json retains the original error and process. This allows readers to distinguish functional defects, environmental constraints, expected failure injections and eventual passage. The repair did not have to continue to fail on the master table, but it could not delete history and claim that there had never been a restriction.

The remote language model identifies NOT RUN and produces multi-process task ownership, distributional services and dynamic information versions that are not realized. These should be classified as out-of-scope or non-operational, without zero points or pass rates because there is no corresponding operational fact. If a course project is connected to an external model, the current fixed set should be retained to return as an executory agreement and the actual user tasks and models should be added to a specific failure; the new achievement must be tied to the model version, configuration and source code and cannot directly inherit the seventeenth adoption of the rule strategy.

Two Independent Evaluation Layers

The first level is a fixed end-to-end task, which covers the chain of information imported into the final result. The second level is a local nature and failure unit test, which specializes in the examination of boolean types, unknown fields, task identity, duplicate keys, load conflicts, expired versions, tampering with chains, overstepping rights, citing mutations, JSON and HTTP replacements. The end-to-end may miss an unincorporated input, or may not connect the module locally; both levels support the current range. The assessment report retains item-by-item results, rather than just a single total green icon.

Exercises and Project Contributions

TRY IT YOURSELF

Base: overall compliance rate

Seventeen missions have two status correct but effect_count error, all of which are correct. What is the rate of conformity and the rate of combined compliance?

Hint 1
Qius columns are defined separately and adopted jointly with all key columns.
Hint 2
Recounts data, effect, support, etc. by task; a full score cannot be used to hide inventory errors.
Compare with the Solution
The state compliance rate can be 17/17; the combined compliance rate is 15/17, or 88. 24 per cent. The key effect cannot be reported only if the variable fails. The actual inventory should be located by article, instead of reducing the weight of the column.

TRY IT YOURSELF

Step: Error position

How to distinguish the “Error before submission” test from the “Discard reply after submission” test?

Hint 1
The malfunction should be classified by which side of the matter occurred, not by the name of the unusual message.
Hint 2
On two separate occasions, inventory, ledger and clientpending were checked to check the difference between the actual status before submission and the response after submission.
Compare with the Solution
The former should not have stock changes or ledgers; the latter should have both and may not be observed by the client. Checking the real database and perpetuating the pending, rather than looking only at anomalies. The same unusual text is insufficient to prove that a dangerous time point has been hit.

TRY IT YOURSELF

Challenge: Outbounding borders

The rule policy has been adopted for all seventeen missions, and can you call the new access model a 100% success of the intelligent body?

Hint 1
Are rules policy and new models the same decision-making sources and are tasks generally the same?
Hint 2
The same base is set for the return, followed by separate needs, duplication and budgets; the new non-operational policy cannot succeed.
Compare with the Solution
No, the source of decision and task distribution changes. The new pool returns in the same implementation base, then uses independent real demand and model configurations to record duplication, budget, failure, effectiveness and support.

This chapter delivers a receipt from run.py demo and a source-coded receipt, as well as a copy of the tests.py item by item. The last chapter returns from the independent directory and freezes the same version, giving an auditable final report.

CHECK YOUR UNDERSTANDING

Check Your Understanding

Answer first, then open the explanation to check your reasoning. These questions help reveal gaps in understanding; independent implementation and transfer require separate evaluation.

1. Seventeen adopt the most precise meaning?

Show ExplanationThe task set is a mechanism to cover structures and not an unknown guarantee of true distribution.
2. Post-submission responses should be checked?

Show ExplanationOnly the actual state can distinguish between hazardous windows.
3. A status evaluation of possible missing?

Show ExplanationReturns the rejection but has been written to the effect layer to fail.
4. Remote LLM unrun response?

Show ExplanationUnrun cannot be tested for replacement by the local rules.

Manual completion records your progress; it does not certify your project.