Before giving a task to an agent, what should you define first?
Why D is the answer
Inputs, outputs and success criteria for the task
Inputs, outputs and success criteria define the task. Without them, nobody can judge whether the agent succeeded.
In detail
- An agent needs to know what goes in, what comes out, and what success means.
- Write criteria that a test or review can confirm.
Use case
An illustrative scenario, not a real incident.
A team gives an agent "improve the API". Results vary. Defining inputs, outputs and success criteria turns it into a task that can be checked.
See it in different ways
flowchart LR
A["Task"] --> B["Agent writes a structured plan"]
B --> C{"Plan approved?"}
C -->|No| B
C -->|Yes| D["Agent acts"]
D --> E["Inspectable artifacts"]sequenceDiagram
participant A as Agent
participant V as Validation
participant R as Repository
A->>V: Structured plan
alt Plan passes
V->>A: Go ahead
A->>R: Makes changes in a branch
else Plan fails
V-->>A: Fix the plan first
endmindmap
root(("Agent task"))
n1["Inputs"]
n2["What it receives"]
n3["Outputs"]
n4["What it produces"]
n5["Success criteria"]
n6["How it is checked"]Key point: Define what done means first.
Why the other options are wrong
- A. How many tokens the task might use on an average day
- Token use is an estimate, not a definition of the work.
- B. The model for each step of the pull request review
- A model choice comes after the task is defined.
- C. Which model has the highest benchmark score this month
- A benchmark score does not define the task.

