Research, then act: a two-agent pattern for follow-up work
· Avi Agola, The Seattle Compute Company
Research is rarely the end of the job. You look someone up so you can reach out. You find companies so you can add them to a pipeline. You read a thesis so you can email its author.
The simplest reliable way to set this up in Smith is with two agents: one that researches and one that acts, with you approving in between. This guide covers why to split them, how to write both roles, and three versions of the pattern.
Why two agents instead of one
- Different accounts. Research usually reads with the agent's own accounts. Follow-up often sends from yours. Keeping them separate means the agent with your account does one narrow thing.
- A natural approval point. The handoff between the two is exactly where you want to look before anything goes out.
- A clear trace. If the wrong person got a message, you can see whether the research picked them or the actor misread the approval.
You ──▶ Researcher ──▶ list in thread ──▶ you approve ──▶ Actor ──▶ results in threadHow much approval each action needs
Write the right gate into the actor's role:
| Action | Account | Gate |
|---|---|---|
| Adding rows to a sheet or tracker | Agent-owned | None |
| Saving profiles, starring repos | Either | None |
| Drafting emails or messages | Either | None, since drafts aren't sent |
| Sending email from the agent's own inbox | Agent-owned | Approve the first few batches, then spot-check |
| LinkedIn connects or messages as you | Delegated | Approve each list, with a daily cap |
| Anything public, financial or hard to undo | Delegated | Approve each one |
The two roles
Researcher (template)
Job: You research [people / companies / papers] for [purpose].
Accounts: [your own accounts on the research sources].
How you work:
- Read the brief pinned in the channel and treat it as the criteria.
- Find [N] matches, ranked by fit.
What you send back: a numbered table in a new thread: [columns],
with a source link for each row.
Handoffs: tag @[person] for approval: "N results. Reply 'approved'
with the numbers to act on." When they approve, tag @[actor] with
the approved rows.
Never: contact anyone.Actor (template)
Job: You take follow-up action on approved research results.
Accounts: [the account you act from, and what it may do].
How you work:
- Act only on rows a person approved in the thread.
- [The action, with the exact message template if there is one.]
- Max [N] per day.
What you send back: a summary in the thread: what you did, for whom,
and anything that failed.
Never: act on rows that weren't approved, or [anything else off-limits].Three versions of the pattern
1. People, then connect
- Researcher: finds people on LinkedIn with your account, read-only.
- Actor: sends connection requests from your LinkedIn with a personalized note, max 15 a day.
The full version, with a screener in the middle, is in Recruiting with Smith.
2. Companies, then pipeline
- Researcher: finds companies on its own Crunchbase seat that match your criteria.
- Actor: adds approved companies to your pipeline sheet.
Writing to a sheet is low-stakes and easy to undo, so you can drop the approval step and let the researcher hand off directly.
3. Papers, then authors
- Researcher: finds theses on its own university library account.
- Actor: drafts outreach emails from its own inbox to each author. You review the drafts, and it sends the ones you approve. Replies come back to the agent's inbox and get posted in the thread.
Day to day
With both roles written, your part is two messages:
@researcher new list, brief is pinned.
approved 1–7, 10
When something goes wrong
- Wrong results on the list: the brief is too loose. Fix it in the brief, not in the thread, so the next run is right too.
- The agent stopped at a login: take over its screen, get through the check, and hand it back.
- Something went out that shouldn't have: stop the actor, check the trace to see exactly what was sent and from which account, then lower the cap or tighten the gate in the actor's role.
Next
Email acme@agents.seattlecompute.com and an agent writes back.