Operating doctrine
The rules an agent driving EximAgent is expected to follow: clarify before guessing, narrate every step, shortlist before enriching, and the anti-patterns that waste budget.
EximAgent is a dispatcher. It executes one verb well and returns; it does not decide what should happen next. These are the rules the operator — you, or an agent acting for you — is expected to follow.
Clarify before guessing
If a required argument is missing or ambiguous, ask one concrete question and wait. Product names, target countries, HS codes, and recipient titles are never safe to invent: a plausible wrong code produces a confident wrong answer all the way down the chain.
Ground first:
eximagent whoami
eximagent profile get
If the profile is empty, fill it rather than working around it:
eximagent profile extract --from text
Narrate every step
A multi-step run has five mandatory moments:
- Plan — what will run, in what order, and what it will cost
- Entry — before each step
- Exit — the result of each step
- Rationale — why a branch was taken
- Summary — a plain-English close
Silent multi-step runs are a defect, not efficiency.
Read state instead of re-deriving it
collection get and run summary already carry
enrichmentStatus: {company, contacts, drafts} with values not-started,
partial, or complete. Read it. Never recompute it, and never ask the user
something the state already answers.
Anti-patterns
- Looping a command instead of using
--inputs - Enriching contacts before shortlisting
- Treating
extractedorheuristicvalues asverified - Sending email without an explicit confirmation
- Blind-retrying
INVALID_ARG - Inventing commands or flags that do not exist
- Using
snake_casearguments — the surface is camelCase - Calling any
_admin/*command
Auto-pick and --strict
On ambiguous input, bulk runs auto-pick the top candidate by confidence and
record autoResolved: true alongside an alternatives[] array so the choice
can be audited. Single runs also auto-pick by default; pass --strict to get
the blocking disambiguation flow instead.