Where each instruction goes
A run has three places for instructions. Putting the right thing in the right place is most of the work.
Keep
input short. Long run prompts push the agent’s budget into reading instructions instead of the web: runs with prompts over about 1,200 characters returned partial output roughly twice as often in a recent month. Move anything that applies to every run into skill.
Skill is a playbook, not a feature list
A skill that reads “expert in B2B data, accurate, thorough, cites sources” gives the agent nothing to do. A skill that says what to achieve, how to approach it, and in what order, does.- Weak
- Strong
Goals are checkable requirements, not caveats
The agent checks each goal against its output before finishing. A goal it cannot check is noise.
Three to six goals. More than that and they start to contradict each other.
Anatomy of a good input
From vague to production-ready
The same task at three quality levels. Only the third reliably returns what was meant.- Vague
- Better
- Production-ready
Rules that hold across use cases
- One entity, or one homogeneous set, per run. Twelve unrelated products in one prompt returned five rows covering two of them, with the run marked completed. Split by entity or by category.
- Known rows go in
input_data, never in the prompt. Pasting a list intoinputwastes budget and loses the per-rowpre_existingtracking. See Enrichment. - Say what to do when a value is not public. Without an absence rule the agent fills cells with prose like “Not stated publicly” or, worse, a plausible guess. “Return null” is the rule; a nullable field in the schema is the mechanism.
- Give a row cap and a stop rule. Truncation is silent: a run that found 5 of 40 completes normally. Ask for a number and count what comes back.
- Avoid “all”, “every” and “comprehensive” on the open web. They set an unreachable bar and the agent stops when its budget runs out, not when the task is done. Scope the ask, or run it per region or category. On a single named site at
x-high, exhaustive is fine. - Name sources in the prompt. “Search funding news, investor portfolios and company sites” moved one user’s row-target adherence from 47% under target to on target.
- Pass prior results as an exclusion list. Put them in
input_dataand say “exclude these domains”. Do not paste 300 names into the prompt.
The intern test
Before running, read the task as if handing it to a sharp intern who has never seen your domain:- Would they know where to look first?
- Would they know when to stop?
- Would they know what to write when a value is missing?
- Would they know the exact output format?
Next Steps
Output Schema
The schema is the contract
Controlling Sources
Allow, block, prioritize, avoid
Common Mistakes
Wrong and right, side by side