Our companies
How do you tell which AI agent made a change?
Give every agent its own credential, tag its work with a run id, and use tools that record who made each change. Then the question "which agent did this, and why?" has an answer in a log instead of a guess. If several agents share one key, nothing downstream can tell them apart.
Updated November 5, 2026
Why does it matter which agent made a change?
When many agents work in parallel, something will eventually go wrong, and you need to know which one did it, in which run, and what else that run touched. With that, you can undo one run's work and leave the rest alone. Without it, you are left turning everything off. Read running many coding agents in parallel for how the studio keeps parallel agents apart.
Step 1: Give each agent its own credential
One key per agent, or per repository or pipeline, is the foundation. Each product makes this easy:
- Flagger.gg: an agent token per agent, scoped to one project, chosen environments and actions.
- Sandboxer: a scoped API key per agent.
GET /api-keys/{id}/usagelists the sandboxes a key created, and stays readable after the key is revoked. In an organization, each sandbox also records which member created it. - Transformer: one key or connection acts for exactly one workspace, and Transformer recommends a separate key per agent or environment.
See how long an AI agent's API keys should last for scoping and expiry.
Step 2: Tag the agent's work with a run
A credential says which agent; a run id says which job. Flagger.gg lets an agent attach a run to every write: set FLAGGER_RUN or pass --run on the CLI, use the tool's run input over MCP, or send the X-Flagger-Run header to the hosted server. Agents must also give a note on every write, so each change carries a reason.
export FLAGGER_RUN="run_8812 https://ci.example.com/runs/8812"
flagger set search_v3 percent --percent 10 --note "roll out PR #912 to 10%" --jsonStep 3: Read the trail
- Flagger.gg records every change by a person, agent token, admin token, SDK registration or import, with the run, the state before and after, and the note. The console's audit log filters by run, agent, flag and actor. See its guide to an audit trail for agent flag changes.
- Sandboxer's
sbx historylists every command sent through the exec API with its exit code and output. Its guide on seeing what an agent did in its sandbox adds checks inside the VM, such as a git diff against a base commit, and turning on auditd before the agent runs. The guide notes that an agent with root in the sandbox can alter records kept inside it. - Transformer ties each offer, tracked link and reported sale to the workspace that made it.
How does North Bay Ventures do it?
Every change to the studio's code and this website goes through a pull request, so each one has an author, a description and a record of the checks it passed. Workers report what changed, the pull request and proof it is live. Read how we build companies and how the studio uses agents.
Frequently asked questions
Can I tell agents apart if they share one API key?
Not reliably. Give each agent its own key or token so every log can name it.
What is a run id?
A label for one job an agent did, such as a CI run. Attaching it to every change lets you find, and undo, everything that run touched.
Does Flagger.gg record which agent changed a flag?
Yes. Its audit log records the actor, the run, the state before and after, and the agent's note for every change.
Are logs inside a sandbox trustworthy?
Treat them with care. An agent with root inside the VM can change them, so keep important records outside it, such as Sandboxer's exec history.