Agents
An agent is a database document plus runtime config — not a compiled Rust type. You create one in the UI by filling in fields; Nexus Core stores it and makes it available for scheduling.
Creating an agent (UI shape)
name: Backend Implementer
slug: backend-implementer
description: Implements backend features in Rust, TypeScript, or C#.
model:
provider: openai
model: gpt-5.5-thinking
temperature: 0.2
runtime:
image: nexus-agent-runner:latest
cpu: "2"
memory: "4Gi"
timeout_minutes: 60
skills:
- rust-backend-development
- mongodb-schema-design
- api-test-writing
- git-branch-workflow
# Repositories are NOT defined on the agent. They live on the board (project) a
# task belongs to — agents are a shared, repo-agnostic pool. See Boards.
memory_scopes:
- global
- project
- agent_private
tools:
- git
- shell
- cargo
- npm
- kubectl-readonly
- board-comment
permissions:
can_create_branch: true
can_commit: true
can_open_pr: true
can_merge: false
can_delete_files: false
requires_human_approval_for:
- production_deploy
- dependency_upgrade
- database_migration
No Rust code changes to add this agent — it's a document.
Repositories live on the board, not the agent
Agents are a shared, repo-agnostic pool. An agent does not carry its own repositories — the GitHub repos a run clones come from the board (project) the task belongs to. The same agent therefore builds many different projects in parallel; which repos it sees is decided entirely by the board its task is on.
See Boards for how a board declares its repositories (and its
Taiga mapping). At run time the worker resolves the task's board, and the runner
clones each of the board's repos side-by-side into /workspace/<name>, injecting
a "Repositories" section into the system prompt.
An agent may still carry a legacy repositories list; it is used only as a
fallback when the board declares none. Prefer moving repos onto the board.
Private https repos are authenticated with a token the runner reads from the
agent secret (GIT_TOKEN, falling back to GITHUB_TOKEN / GITLAB_TOKEN); SSH
URLs use the mounted SSH key. See Security for how to provide
these. Edit the repository list any time from the agent editor in the Admin UI.
MCP servers (external tools)
Beyond Nexus's built-in and platform tools, an agent can pull in external
MCP servers. Each agent carries an
mcp_servers list; at run time their tools are merged into the agent's toolset
(namespaced <server>.<tool>) for both API and CLI backends.
| Field | Meaning |
|---|---|
name | Logical name; namespaces the server's tools. |
command | Executable to launch (must exist in the agent image / on PATH). |
args | Command arguments. |
env | Extra environment variables for the server process. |
tools | Optional allow-list of tool names to expose; empty = all. |
disabled | Keep the definition but skip starting it. |
Only stdio servers (launched as subprocesses) are supported — confined pods have no general egress. See Tools → External MCP servers for how discovery and merging work per backend. Edit the list from the agent editor in the Admin UI.
Stored document
{
"_id": "agent_backend_implementer",
"name": "Backend Implementer",
"slug": "backend-implementer",
"status": "enabled",
"description": "Implements backend tasks.",
"model": {
"provider": "openai",
"model": "gpt-5.5-thinking",
"temperature": 0.2
},
"runtime": {
"type": "kubernetes_job",
"image": "nexus-agent-runner:latest",
"cpu": "2",
"memory": "4Gi",
"timeout_minutes": 60
},
"skills": ["rust-backend-development", "mongodb-schema-design"],
"repositories": [
{ "url": "https://github.com/acme/backend.git", "name": "backend", "branch": "main" },
{ "url": "https://github.com/acme/docs.git", "name": "docs", "read_only": true }
],
"memory_policy": {
"read_scopes": ["global", "project", "agent_private"],
"write_scopes": ["project", "agent_private"],
"auto_save": true
},
"tools": ["git", "shell", "cargo", "board-comment"],
"permissions": {
"can_commit": true,
"can_open_pr": true,
"can_merge": false
},
"created_at": "2026-05-30T00:00:00Z",
"updated_at": "2026-05-30T00:00:00Z"
}
Agents page (UI)
Features:
- Create agent · Clone agent · Enable / disable agent
- Assign skills · Choose model · Choose tools · Choose memory scopes
- Set Kubernetes resources · Set approval rules · View agent performance
Suggested table columns:
Name | Type | Status | Model | Skills | Active Runs | Success Rate | Last Run
How an agent becomes a run
At dispatch time, Nexus Core:
- Loads the agent definition from MongoDB.
- Loads the attached skills.
- Searches memory (per the read scopes) for relevant context.
- Builds the runtime prompt/config, including the agent's repository list.
- Creates a Kubernetes Job using the agent's runtime image and resources. The runner clones every configured repository into the workspace before the agent starts.
The pod doesn't branch on agent type — it receives the config payload. See Agent run.