The four properties of a good agent task
After deploying hundreds of AI agents across dozens of companies, a pattern emerges. The tasks that succeed have four properties. The tasks that fail are missing at least one.
1. Clear inputs
The agent knows exactly what data it's working with. A URL list. A CSV file. A PR number. A vendor portal login. If the agent has to guess what to work on, it will guess wrong. "Analyze our competitor landscape" is a bad task description. "Visit these 30 URLs, extract pricing and features, save as JSON" is a good one.
2. Verifiable outputs
You can tell whether the agent succeeded by looking at the output. The test suite passed or failed. The report has 30 company entries or it doesn't. The invoice amounts match the PO or they don't. If success requires subjective judgment ("is this report good enough?"), the task needs a human checkpoint, not full autonomy.
3. Bounded scope
The task has a clear end. "Process these 20 invoices" ends when the 20th invoice is done. "Improve the codebase" never ends. Unbounded tasks cause agents to loop, pursue tangents, or optimize for the wrong thing. Every agent task should have a definition of done that both you and the agent agree on.
4. Safe to fail
If the agent gets it wrong, the damage is containable. A bad code review comment is ignored. A missed invoice is caught in the manual reconciliation. A wrong data extraction is flagged by the downstream validation. If a single agent failure causes a production outage, a financial loss, or a compliance violation, the task needs a human approval gate before the agent's output is acted on.
Bad agent tasks
- "Make our product better" — no clear input, no verifiable output
- "Monitor everything" — no bounded scope
- "Deploy to production" — not safe to fail
- "Figure out what's wrong" — ambiguous input and output
- "Handle customer escalations" — requires human judgment
Good agent tasks
- "Run the test suite on this PR and report pass/fail" — all four
- "Visit these 30 URLs and extract pricing data" — all four
- "Process these 20 invoices against POs" — all four
- "Generate a monthly revenue chart from this CSV" — all four
- "Check these 5 user flows and screenshot each step" — all four
The automation spectrum: five levels
Not every task is fully autonomous or fully manual. There's a spectrum, and placing each task at the right level is the key management skill for AI employees.
| Level | Human role | Agent role | Example |
|---|---|---|---|
| 1. Full autonomy | Reviews output occasionally | Runs, delivers, no human in loop | Daily competitive intel sweep, QA on deploy |
| 2. Autonomy + alerts | Alerted on failures only | Runs autonomously, escalates exceptions | AP vendor portals (alert on PO mismatch) |
| 3. Draft + review | Reviews every output before action | Produces draft, waits for approval | PR code review (human reads before merging) |
| 4. Assist | Directs the work interactively | Executes steps as human instructs | Claude Code pair programming session |
| 5. Human only | Does the work | Not involved | Strategic decisions, relationship management |
Most tasks start at Level 3 or 4 (human reviews everything) and graduate to Level 1 or 2 as trust builds. The competitive intel agent started with daily human review (Level 3). After two weeks of perfect output, it moved to Level 2 (alerts on changes only). After a month, it's Level 1 (fully autonomous, human reads the weekly summary).
Every new agent starts at Level 3 (draft + review). After 10–20 successful runs, you promote it to Level 2 (autonomy + alerts). After 50+ runs with <2% failure rate, it reaches Level 1 (full autonomy). This matches how you'd manage a new human employee: shadow, then supervised, then independent.
The three work assignment patterns
A good AI employee combines all three, just like a good human employee.
1. Prompt-driven (ad-hoc)
A human types a task description. "Research these 10 companies." "Process this spreadsheet." "Review this PR." This is the simplest pattern and the one most people start with. The limitation: it only runs when someone remembers to type the prompt.
Best for: one-off analysis, exploratory work, tasks that change every time.
2. Event-driven (reactive)
A webhook, queue message, or API call triggers the task automatically. PR opened → review agent runs. Deploy completes → QA agent runs. Payment fails → investigation agent runs. The human never types a prompt. The agent reacts to the world.
Best for: tasks that should run every time an event occurs. Guide #12 covers this in depth.
3. Calendar-driven (scheduled)
A cron schedule or calendar trigger runs the task on a rhythm. Every morning at 6am. Every Monday at 7am. Every 28th of the month. The agent has recurring responsibilities, like a human employee with a calendar.
Best for: recurring tasks with fixed schedules. Competitive intel, AP runs, monthly reports, weekly summaries.
The best AI employees combine all three: they have a calendar of recurring work, react to events as they arrive, and accept ad-hoc assignments from their human manager.
Writing good task descriptions
The task description is the agent's job description. A vague description produces vague work. A precise description produces precise work.
The template
- Context: what you're working with and why. "You have a CSV of 10,000 customer reviews from Q1."
- Task: what to do, step by step. "Clean duplicates, run sentiment analysis, find the 20 most negative reviews."
- Output: what to deliver, in what format, where. "Save enriched CSV to /workspace/output/reviews_enriched.csv, save the 20 worst as negative_reviews.json, create a sentiment distribution chart as sentiment_chart.png."
- Constraints: what NOT to do. "Don't modify the original CSV. Don't call any external APIs. Don't send data outside the sandbox."
- Success criteria: how to know you're done. "The enriched CSV has a sentiment column for every row. The chart shows positive/negative/neutral distribution."
A vague task description causes the agent to explore, backtrack, and retry. Each reasoning step costs model tokens. "Process this data" might take 50 API calls as the agent figures out what "process" means. "Sort column C descending, add a SUM in the last row, export as PDF" takes 5 API calls. 10x cheaper. Specificity isn't just about quality — it's about cost.
What to assign: department by department
| Department | Good agent tasks | Keep human |
|---|---|---|
| Engineering | PR review (first pass), test execution, visual regression, dependency audits, code formatting, doc generation | Architecture decisions, design reviews, mentoring, sprint planning |
| Finance | Invoice processing, PO matching, monthly reports, data reconciliation, spreadsheet reformatting | Vendor negotiations, budget decisions, audit responses, exception handling |
| Product / Strategy | Competitive monitoring, pricing tracking, market research, data analysis, user feedback categorization | Product roadmap, strategic positioning, customer interviews, prioritization |
| Operations | ERP data entry, form filling, desktop GUI automation, document conversion, compliance filing | Process exceptions, system administration, vendor relationship management |
| Sales / Marketing | Lead research, competitor page monitoring, report generation, data enrichment, CRM data cleaning | Prospect conversations, deal negotiation, creative campaigns, brand strategy |
Five assignment anti-patterns
1. "Improve things"
Open-ended improvement goals don't work. "Improve the codebase" becomes an infinite refactoring loop. "Improve the report" never converges. Be specific: "Fix the 3 failing tests." "Add a chart showing monthly trend." "Reduce the report from 20 pages to 5."
2. "Use your judgment"
In 2026, AI judgment is good for pattern matching and bad for novel situations. Don't assign tasks where the agent needs to make a judgment call you'd want to make yourself. "Decide whether to approve this $50K purchase order" is a human task. "Check whether this PO matches the invoice within 2% tolerance" is an agent task.
3. "Do what I would do"
The agent doesn't know your preferences, your relationships, or your context unless you tell it. "Handle this the way I would" is meaningless. "Follow this procedure document" is actionable. Write the procedure once, assign it forever.
4. "Just keep going until it's perfect"
Agents will loop indefinitely if there's no stopping criterion. "Keep refactoring until the code is clean" never terminates. "Refactor the authentication module. Stop when all tests pass and you've committed no more than 10 changes" has a clear end.
5. Assigning tasks that require real-time human interaction
If the task requires back-and-forth conversation with a person mid-execution ("ask the customer what they prefer"), the agent will either guess (bad) or block waiting for a response (wasteful). Split the task: the agent prepares options, the human decides, the agent executes the decision.
Iterating on task descriptions
Task descriptions are code. They need iteration, testing, and version control.
- Start with a draft. Write the task description based on how you'd explain it to a new hire.
- Run it once and review. Did the agent produce the right output? Where did it go wrong?
- Refine the description. Add specificity where the agent went off track. Remove ambiguity. Add constraints.
- Run 5 more times. Is the output consistent? Are there edge cases?
- Commit to version control. The task description is now a production artifact. Changes go through review.
- Graduate to automation. Wire the task to an event trigger or cron schedule.
A task description that took 3 iterations to get right on Day 1 will run perfectly for months. The investment is front-loaded; the return is ongoing.
What's next
Assign work that works
Clear inputs. Verifiable outputs. Bounded scope. Safe to fail. The four properties of every successful agent task.
Get Started Free