dragon-ai-agent
The original OBO curation bot. It is being retired in favour of
ai4c-agent, and @dragon-ai-agent now means different things
in different repositories.
Kind: Machine account
Byline: dragon-ai-agent, with no [bot] suffix
Still live in: Mondo
Retired in: GO,
DisMech
What it was
A machine account that ran DRAGON-AI
against OBO repositories. A curator wrote @dragon-ai-agent please ... on an
issue, a workflow picked it up, and the agent produced a pull request.
Because it is an ordinary user account, it can be @-mentioned like a person, it
shows no [bot] suffix, it uses a seat, and it authenticates with a personal
access token stored in repository secrets.
Where it stands now
In Mondo, the account is live. .github/workflows/ai-agent.yml runs
dragon-ai-agent/run-goose-obo and authenticates with a personal access token
held as PAT_FOR_PR. The agent is Goose. The account does the work.
In DisMech, the account is retired. The workflow says so:
Trigger is a
@dragon-ai-agent please …mention from an authorized controller (a text keyword — the dragon-ai-agent machine account is retired).
The phrase survives as a trigger keyword. The work is done by ai4c-agent.
In GO, the keyword is deprecated but still honoured. The workflow lists it
as a legacy handle, to be dropped once curators have moved to @ai4c-agent.
Why this matters when reading old threads
A @dragon-ai-agent mention tells you a workflow ran. It does not tell you
which identity did the work, and the answer differs by repository and by date.
Check the byline on the resulting pull request. If it ends in [bot], an App
did the work.
Migrating away from it
The move is from a machine account with a long-lived token to a GitHub App with a token minted per run. Steps:
- Install ai4c-agent, or your own App, and add its app id and private key as secrets.
- Change the workflow to mint an installation token with
actions/create-github-app-token. - Set the commit identity to the bot account, using its numeric user id.
- Keep the old keyword as a legacy trigger while curators adjust. GO does this
with a separate
AGENT_MENTION_LEGACYvariable. - Once nobody uses the old keyword, drop it and remove the account's token.
You gain shorter-lived credentials, per-repository permissions, and a freed seat.