Connect

Agents

An agent role is one job written down for an AI assistant: what it does, what it must not do, and where a person takes over. Vinc keeps the role in your graph, and the assistant reads it from there each time it starts work.

Where a role lives

A role is stored in your graph as a concept node. Its id starts with concept:agent- and its topic is agent. What the role has to follow goes in the node's properties. The demo below opens the Code Reviewer role the Vinc team uses.

  1. mission What this role does, in one sentence.
  2. tier The seat it takes: orchestrate, execute, verify, deliver or knowledge. This one is verify, so it reviews and never edits.
  3. rung How capable a model it needs, as a level instead of a model name.
  4. never What this role must not do.

Five properties are required: the four above plus person_only, the steps a person takes. Writing a role walks through each one.

This differs from keeping a prompt in a file in three ways. Other nodes can point at the role, a change to it can carry the decision behind it, and what the role did is linked to it as episodes. An assistant reads the role from the graph each time it starts, so a rule you change today applies from the next run. There are no copies to keep in step.

The four default roles

An account space comes with four roles from the Default Agents pack: a personal space gets them at your first sign-in, a team space when the team is created. All four sit in the agent topic (in spaces made earlier, vinc/agent).

RolePrompt nameWhat it does
Graph stewardagent-stewardKeeps the graph in order: conventions, duplicates and topics. Proposes merges and topic changes with evidence, and never applies them.
Research analystagent-researcherResearches and leaves a document, its concepts and an episode. Gathers what a decision needs, and never makes the decision.
Document curatoragent-curatorTakes documents in: stores the source, previews the concepts, links mentions and proposes one topic per document.
Claim revieweragent-reviewerChecks every claim against the graph and labels it cited, assumed or unsourced. Never edits.

The desktop app's local mode has no default roles. Import the Default Agents pack, or make your own with + above the list in Agent (0.9.6 and later, Writing a role).

Putting a role to work

Roles for each host are on By host, and several roles working as a team on Roles and teams. Connect the host first with Connect over MCP.

Checking an answer against its role

Before an answer goes out or moves to the next role, check it with vinc_role_check. It reads the role fresh from the graph, runs the role's gates, never checks and person_only list over the complete answer without calling a model, and returns a verdict: pass, block (do not deliver) or interrupt (a person decides first). The failed checks and the sentences that tripped them come with it.

A claim that something already ran, such as tests passing, a merge or a deploy, is blocked here, because the check cannot see the host's evidence. A role written only as prose blocks too. A pass lets the answer go out and gives no other permission.

The same check runs in the terminal as vinc role check, which exits with 1 on block or interrupt (CLI commands), and over HTTP as POST /v1/roles/{id}/check (REST API).