Skip to main content

Teams

VelaClaw uses “team” for two related systems:
  • Agent Team: a temporary, per-request group of read-only helper agents coordinated by one leader agent.
  • Organization Teams: persistent workspaces with members, invitations, member runtimes, shared assets, model gateway access, audit logs, quotas, backup, restore, and evolution.
Agent Team improves one answer by splitting work. Organization Teams preserve useful work by turning reusable knowledge into reviewed shared assets that can be distributed to member runtimes.

Agent Team

Agent Team is session-local. It does not create members or a persistent workspace. The router decides whether the current user turn should stay solo, use one or two helpers, or run a fuller team.

Researcher

Collects facts, sources, project context, and relevant evidence.

Analyst

Compares options, reasons through tradeoffs, and structures conclusions.

Verifier

Checks stale facts, missing tests, contradictions, gaps, and unsupported claims.

Leader

Synthesizes the final answer and owns every write or high-risk action.
The default explicit triggers include phrases such as agent team, multi-agent, parallel agents, 开多 agent, and 并行分析. Helpers are read-only: they can gather evidence and produce findings, but they should not write files, edit code, send messages, delete data, commit, push, deploy, purchase, install, or change external state. The leader treats helper output as untrusted context and still owns the final answer.

Organization Teams Architecture

Organization Teams are implemented as a control plane plus one isolated member runtime per accepted member. The workspace is created with velaclaw init <dir>. It scaffolds the control-plane root, member template, team state, audit log, evolution state, shared asset directories, and artifacts directory. velaclaw start starts the control plane, which listens on http://127.0.0.1:4318 by default and writes a persisted control-plane state file so member runtimes know how to call back.
Admin routes are loopback-only unless VELACLAW_ADMIN_TOKEN is set. Member runtimes do not use the admin token; they receive scoped runtime, model gateway, panel, and asset server tokens generated from team state.

Control Plane State

The canonical team state lives under state/team.json. Each TeamState contains: The control plane mutates this state through a serialized mutation queue, so team updates write back to state/team.json in order.

Roles And Permissions

Default asset permissions are role-based: Member management is narrower: only owner, manager, and operator can remove other members through the member-runtime panel route. Members cannot remove themselves. Default quotas are also role-aware: velaclaw team members quota can change role, daily/monthly message quotas, and active/paused status. The member runtime receives the updated policy and applies it through the member-quota-guard plugin.

Team Lifecycle

1

Initialize a workspace

The workspace contains members/member-template, state, state/audit, state/evolution, teams, team-assets, and artifacts.
2

Start the control plane

The local UI is available at http://127.0.0.1:4318. For Docker members, the callback URL defaults to http://host.docker.internal:4318 unless VELACLAW_TEAM_CONTROL_BASE_URL is set.
3

Create a team

4

Invite and accept a member

Accepting an invitation provisions the member runtime, writes its team policy, syncs managed local plugins, and marks the invitation as accepted.

Member Runtime Provisioning

When an invitation is accepted, VelaClaw copies members/member-template into members/<team>/<member>, then generates the runtime files. The generated Compose service uses the velaclaw-member-runtime:local image, exposes the member Gateway on 127.0.0.1:<member-port>:18789, and starts ports from 18800. The container is intentionally restricted:
  • cap_drop: ALL
  • security_opt: no-new-privileges:true
  • read_only: true
  • tmpfs-backed /tmp
  • pids_limit: 256
  • mem_limit: 2g
  • cpus: 1.5
  • isolated bridge network
  • read-only mount of published team assets
Each member also gets private mounted buckets: private-memory, private-skills, private-tools, and private-docs. Published team assets mount read-only into both /srv/team-shared and the workspace team-shared directory.

Member Runtime Configuration

The generated member config is intentionally conservative:
  • Gateway mode is local, with token auth and the Responses HTTP endpoint enabled.
  • The default agent is main and uses the team model gateway provider.
  • Tools start with the minimal profile, add read, keep tools.fs.workspaceOnly: true, and disable elevated tools.
  • exec is configured with gateway host execution, allowlist security, and ask: "always".
  • Cron, sessions_spawn, subagents, and lobster are denied in the generated baseline.
  • The shared-asset-injector, member-quota-guard, team-panel, and member-runtime-upgrader plugins are enabled.
The AGENTS.md template tells member runtimes to check active shared assets before inventing policy, keep private notes separate from team assets, and promote reusable decisions only through review.

Managed Member Plugins

These plugins are copied from the managed member template into each member runtime during provisioning and quota/config sync.

Team Model Gateway

Member runtimes do not need direct upstream model keys. They talk to the control plane through:
The control plane exposes OpenAI-compatible models, chat/completions, and responses endpoints. It validates the team model gateway token, rejects models outside allowedModelIds, maps the requested model when needed, then forwards to the configured upstream provider. This lets the manager keep upstream credentials on the control-plane side while members only receive the team gateway token and allowed model list.

Shared Assets

Shared assets are the durable knowledge layer for Organization Teams. Built-in asset categories are: Assets move through this lifecycle: The proposal command accepts inline content or a file:
Review commands:
Published assets are written into a canonical item store and legacy projections under teams/<slug>/assets. Member runtimes consume the published view through the Asset Server, not by mutating team state directly.

Asset Server

The Asset Server is token-authenticated and mounted into each member runtime through shared-asset-injector. Resolution can use a dynamic LLM router or lexical fallback. It can also include ClawHub shared skills when VELACLAW_TEAM_CLAWHUB_SKILLS_ENABLED=1; the control plane resolves and downloads ClawHub assets while member runtimes only receive materialized files.

Heartbeats And Runtime Actions

Member runtimes can post heartbeat payloads to:
The control plane stores heartbeat state in memory and treats heartbeats older than about two minutes as stale. Runtime control is available per member or in batch:
The underlying implementation shells out to docker compose or passwordless sudo -n docker compose using the member’s generated compose file.

Evolution Engine

The evolution engine turns repeated member-session patterns into shared asset proposals. Default config:
When it runs, it scans member session metadata and transcripts from each member’s main agent, skips sessions seen before the last evolution run, builds anonymized topics and summaries, and asks the team model gateway to synthesize reusable [MEMORY] or [SKILL] blocks. Generated assets are submitted by system-evolution as shared-memory or shared-skills. Manual trigger:
The team panel can also trigger evolution through its panel API. Scheduled runs respect enabled, intervalMs, and minSessionsToTrigger.

Backup And Restore

Backups are tar archives created under artifacts unless an output path is provided.
Each backup includes:
  • manifest.json
  • team-state.json
  • members/
  • teams/<slug>/ assets
  • audit.jsonl when present
Restore validates the backup schema, refuses to overwrite an existing team unless --force is used, restores members and assets, then backfills the canonical asset item store and rebuilds projections.

CLI Surface

Common commands:
Maintenance commands also exist for asset migrations:

UI And API Surface

The built-in control-plane UI exposes:
  • /team - team list and create form
  • /team/:slug - members, invitations, assets, audit entries, and evolution status
The JSON API mirrors the CLI and adds runtime/panel/asset/model endpoints:
  • /api/teams
  • /api/teams/:slug
  • /api/teams/:slug/invitations
  • /api/team/invitations/:code/accept
  • /api/teams/:slug/assets/*
  • /api/teams/:slug/members/*
  • /api/teams/:slug/audit
  • /api/teams/:slug/evolution/*
  • /api/teams/:slug/backup
  • /api/teams/:slug/restore
  • /api/teams/:slug/model-gateway/v1/*
  • /api/teams/:slug/asset-server/*
  • /api/teams/:slug/panel/*

How Agent Team And Organization Teams Combine

A member can use Agent Team inside their own runtime to handle a hard request. If the result produces a reusable checklist, skill, memory, workflow, or runbook, that output can become a shared asset proposal. A manager, owner, operator, or publisher then moves it through the governed asset lifecycle. The important boundary is that private member context is not automatically team policy. Members can propose reusable assets, but published team knowledge is created through an explicit control-plane flow.

Next Steps

Getting Started

Install VelaClaw and run your first assistant session.

Personal assistant setup

Configure an assistant workspace, channel, sessions, media, and safety defaults.

Configuration

Tune model providers, gateway auth, channels, tools, and runtime behavior.

Microsoft Teams channel

Set up the Microsoft Teams channel integration. This is separate from VelaClaw team mode.