Skip to content
SurogateDocs

Copilot (⌘+/)

The Copilot is an AI agent that drives the platform itself. Press ⌘+/ (Mac) or Ctrl+/ (Windows/Linux) anywhere in ops.surogate.ai.

A drawer opens with a chat composer. Ask in natural language; the Copilot calls the platform’s tools and reports back.

The Surogate Copilot panel, opened over the workspace

Look things up:

  • “What agents do I have running?”
  • “Find my agent Customer Helper.” It finds things by the name Studio shows, not only the internal name.
  • “Which agent had the most sessions this week?”
  • “Find conversations where people got stuck on pricing.”
  • “Show me the latest training run for sql-writer.”
  • “Show me what’s in the support-chats dataset.”
  • “How’s the loss going on my last run?”
  • “Which GPUs can my project train on, and what did compute cost across my projects in the last 30 days?”
  • “What skills does my customer-support-bot have attached?”
  • “What failed this week?”

Build and change things:

  • “Create a skill called weekly-summary that produces 5-bullet summaries.”
  • “Attach the acme-product KB to my customer-support-bot as reference material.” It attaches a knowledge base as Grounding (answer from it and cite it), Grounding, no quotes (the same, without citations) or Reference (consulted when useful).
  • “Connect this MCP server to my agent.”
  • “Switch customer-support-bot to the qwen-support model.”
  • “Start a training run with the conversations dataset.”

The Copilot calls the platform’s own tools on your behalf. You see the same effects as if you had clicked through the UI. For the list of tools by area, see Develop mode → Copilot.

Building an agent, skill or knowledge base

Section titled “Building an agent, skill or knowledge base”

When you ask it to make something, it does not just start. It interviews you one question at a time (purpose, audience, tone, sources, tools, boundaries), looks at what you already have so it does not duplicate it, and shows a plan for your approval. Only then does it build, one piece at a time, reads each piece back to check it, and ends with links to everything and a few first messages to test with.

It follows a written build guide for each kind of thing: agents, skills, knowledge bases, sub-agents, MCP server connections, Programs, testing and improving an agent with Simulate, datasets, RL environments, training runs, evaluations and model deployments.

Datasets, training, evaluations and models

Section titled “Datasets, training, evaluations and models”
  • “Turn this file into a dataset.” It uploads one JSONL, JSON, CSV or Parquet file you attach in chat (up to 50 MB), reshaping it first when the change is mechanical. Building a dataset from your agents’ chats, generating a synthetic one, importing a Hugging Face repository and scrubbing PII are done on the Datasets page; it sends you there.
  • “Fine-tune a model on these support conversations.” It interviews you, plans the run and, after your yes, starts an SFT, DPO or distillation run. It follows the run’s loss and can cancel it, reporting the run’s status as Studio sets it; a run that has already ended can’t be cancelled. A Hugging Face dataset can be trained on directly, without a copy in the project.
  • “Move my saved run to the RTX PRO 6000 and start it.” A refused run stays saved; it can edit that run (settings, a GPU on the run’s own compute, Hugging Face subset; for a GRPO run, its learning rate, group size, steps, checkpoint interval and precision), start it, or delete runs you no longer need, each after your yes to the exact change.
  • “Build me an RL environment that rewards correct arithmetic answers.” It starts from a template or a ready-made environment in the catalogue, writes the code, and runs Validate until it passes. Before publishing it shows you the reward code and real sample questions, and it publishes a version only after your yes. A passed check means the environment runs, not that its reward is right, so read the reward it shows you.
  • “Train with GRPO on it.” It plans a GRPO run on a published version of the environment, or, for a dataset you already have, a run scored by a judge model (RULER). It asks your yes on the whole plan before starting. With an outside judge it saves the run without starting it: you paste the judge’s key on the run’s Config tab, never in the chat, and it starts the run when you say the key is in.
  • “Did my fine-tune help? Evaluate it against the base model.” It finds the trained run’s adapter (a full fine-tune is added to the Models page first), picks benchmarks with you and runs them against a base model that is serving, after your yes. Each score comes with the number of samples behind it, so a result on a handful of samples isn’t presented as more than it is. It can also re-run, stop and delete evaluations, and create, archive and restore custom benchmarks. Keys a benchmark or judge needs are pasted on the run’s Config tab, not in the chat.
  • “Serve my fine-tuned model.” It starts serving a model that is already on the Models page, checks that it serves, stops it, and switches an agent onto it. A finished run is not on Models until you add it (see Local Hub); it tells you how. It waits for Studio’s own answer: a refusal (too few credits, or Compute or Engine not set) comes back with Studio’s reason, and a launch that fails points you to the model page, where View job shows the logs. If Studio hasn’t answered after about two minutes, it says the start isn’t confirmed yet and offers to check again, without starting the model a second time. Proxy models (OpenRouter, OpenAI-compatible) and Surogate’s own models are always available and need no deploying.

You can ask it how the platform works: “What does the Compute page do?” It looks the answer up in the product documentation instead of answering from memory. When you ask from a page, it knows which page you have open and, for pages that have one, which doc covers it.

  • “What’s the phone line of my support agent?” It reads the agent’s number, how it answers and its recent calls, and what a line can be set to.
  • “Give my support agent a phone number.” It shows the free numbers and takes one only after your yes to that number.
  • “Change its greeting to ‘Salut!’.” It changes only what you name and keeps the rest.
  • “Disconnect its phone line.” The number goes back to the pool and the settings are kept.

Every change to a line, even a small settings edit, needs your yes to that exact change first. It can’t switch a line to another speech provider, which needs your provider key, so for that it sends you to the Voice screen. Surogate’s own speech is Romanian only.

  • “What plan is this project on, and how many credits are left?” It reads the plan and its limits, the credit balances and the workspace storage. Paying, changing the plan and buying credits stay in Settings → Billing; it sends you there.
  • “What did compute cost this month?” It reads the project’s platform-credit spend per workload and your own token usage across your projects, for up to the last 90 days. Runs billed to your own cloud or Modal account are not in that number; it reads those from the compute costs instead.
  • “Who is in this project?” It lists the members and their roles.
  • “Add [email protected] as an editor.” If you are an owner, it adds someone who already has an account, by their exact username or email, changes a member’s role or removes a member, each after your yes. It sends no invitation or email. Making someone a viewer, or removing them, pauses their running work, and the question tells you so. See Members.
  • “Make me a new project for the pilot.” It creates a project you own, after your yes. In an enterprise deployment only administrators can create projects.
  • “What is my research agent working on?” It lists an agent’s missions and reads one with its agents and last evaluation. It can pause, resume or cancel one after your yes. Pausing leaves running agents to finish; cancelling can’t be undone and refunds nothing.
  • “Which of my loops failed last night?” It lists an agent’s scheduled work with its status, schedule and last error, and after your yes runs one now, pauses, resumes or cancels it, or changes its name, prompt or schedule. Running one now is a real run: whatever its prompt does, messaging people included, happens.
  • It sees only the missions you started yourself from Work chat, and every schedule of the agent, with who made it.
  • “Focus Ana’s report on billing questions and refresh it.” It sets what a user’s next report should focus on, starts a fresh activity report for one of the agent’s users, and reads or, after your yes, rebuilds the overview across up to 200 users. Reports use the platform’s own model and spend no credits.

The Copilot works across these areas:

  • Programs: run an agent’s Programs. List and build journeys and their steps, review a journey and dry-run it, send a test, activate or pause it, read its stats, and register WhatsApp templates.
  • People: find and add people, rename them, make a Telegram start link, enrol people, change their follow-up, link their contacts, read their timeline and message them. After your yes it changes whether someone may be messaged first on a channel, binds their Slack member or WhatsApp number (replacing the one they had; one already bound to someone else is refused), or removes them from the agent. Removing keeps their account and history, unless they are bound to no agent at all, not even this one, which deletes the account for good; the question says which.
  • WhatsApp forms: build a WhatsApp form for a journey. After your yes it creates the form as a draft; it fixes the problems Meta finds, and after another yes publishes it and lets the agent send it. A published form can’t be edited, and forms can be retired but not deleted, so it asks before each of those steps.
  • Team: set up the team (what each member gets told about, can do and handles, and a Slack channel picked from the workspace as its shared alert place), change the wording and channels on Settings, and claim or resolve escalations.
  • Also: read your Inbox and mark items handled, read an agent’s Insights, manage the plans on Monetize, and build the agent’s landing page, including formatted text and image framing. Publishing or taking the page offline needs your yes. On a page that is already live, its edits are public at once: they don’t wait for Publish changes as edits in Studio do.

It knows what you are looking at: on the Programs page it is told which tab, journey and person you have open, so “why didn’t this step go out?” needs no further context.

/build-program is a playbook for setting a program up end to end. The Copilot interviews you one question at a time (who is followed and why, the date day 0 counts from, the rhythm, what each answer means and which is urgent, the channels, the team, the language of every message), inspects what the agent already has, and writes a plan for you to approve. Only then does it build: the step skills, any missing WhatsApp forms and templates, the journey as a draft, the team and the wording. It reviews and dry-runs the journey and summarises what is live and what is still a draft, with a test script.

Activating a journey, sending a test, enrolling, messaging a person, changing the team, and changing a person’s contact permission, binding or removing a person need an explicit confirmation step, which the Copilot is instructed to take only after you say yes to that exact action. Called without it, the tool refuses and changes nothing.

/improve-agent runs an agent through Simulate. The Copilot drafts a plan of people with a test each, or builds one from the people you describe (“an angry customer who wants a refund”), runs it, and gives you the link so you can watch or take over. When the run is over, it reads you the result: how many tests passed, then each failure, with why.

For each failure you want fixed, it drafts the change to the identity, a skill or a knowledge base and shows you the diff. Say how you want it worded and it drafts it again from your note. Making a change and undoing one each need your yes on that exact change. It never loosens a safety rule to make a customer happier. To check a fix, it checks again only the people who failed and tells you which changes held.

It asks with a question in the chat and waits for your answer before it:

  • spends GPU time or model usage (training, an evaluation, deploying a model, compiling a knowledge base), deletes anything, starts an agent that is in an error state, or changes an agent’s environment variables, policy or browser setting;
  • overwrites a skill or sub-agent that already has that name, or connects an MCP server that runs a command on the runtime.

Building a new thing inside a plan you approved does not ask again. The plan was the yes.

Anything that reaches real people, real money or who can do what is stricter: activating a journey, sending a test, enrolling or messaging a person, changing the team, changing plans on Monetize, giving an agent a phone number, changing its line or disconnecting it, changing a person’s contact permission, binding or removing a person, creating, publishing or retiring a WhatsApp form, letting the agent send one or taking that back, creating a project, adding, changing or removing a member, publishing or unpublishing the landing page, pausing, resuming or cancelling a mission, running, pausing, resuming, editing or cancelling scheduled work, rebuilding the users overview report, publishing, forking or deleting an RL environment, and starting or deleting an evaluation. The tool itself refuses to run until the Copilot calls it again with the confirmation code the tool gave it, which its instructions allow only after you say yes to that exact action. The yes covers only what you were asked about: anything different needs a new yes. A yes to the plan does not cover it. A viewer asking for one of these on an agent is refused before any question is asked.

Answer an open question in its question card, or just type your reply in the chat box. Text that exactly matches one of the card’s choices (case doesn’t matter) picks that choice, and anything else is taken as your own answer. A message with images or attachments is never taken as the answer. A question that closes unanswered (see Inbox) is neither a yes nor a no: the Copilot doesn’t act, says it is waiting, and asks again when you write.

Governance approvals in the Inbox are never the Copilot’s to decide. It sends you to the Inbox page. For the exact tools and how each check works, see Develop mode → Copilot.

The Copilot changes things only in the project open in Studio. Ask it to change an agent, skill, knowledge base, MCP server, journey, plan, person, model, training run, RL environment, evaluation or dataset that belongs to another of your projects and it refuses without changing anything, names the project it is in, and asks you to switch to it first. A change that needs a confirmation code is checked before you are asked, so you are not asked to confirm something it would refuse; for some deletes the Copilot asks first and the delete is then refused. Looking things up can still reach your other projects.

An item in a project you are not a member of reads as “not found”, the same as an id that doesn’t exist.

A viewer can use the Copilot to look things up, from the side panel or from the Work page, where its sessions are listed too. Ask it to change something and it tells you straight away that a viewer can only read. It can’t change your role: a project owner does that in Settings, Members.

The Copilot drawer keeps a history menu in its header (the clock/history icon). Open it to switch between past Copilot conversations, rename them, or start a new chat. Each conversation is its own session and resumes where you left off.

When you ask for one of these, the Copilot says it can’t and tells you the page and the button. For the exact places, see Develop mode → Copilot.

Anything that needs a secret or moves money. The Copilot explains the steps and links the page:

  • connecting channels (WhatsApp, Slack, Telegram, Discord, Microsoft Teams), the WhatsApp number and its Meta webhook, and the Teams app package;
  • an agent’s API keys and the OpenAI-compatible API, and webhook secrets;
  • connecting apps through Composio, git, SSH and coding-agent access, browser profiles, and saved keys in the Vault;
  • Stripe Connect onboarding, and paying, changing the plan or buying credits. It can read the plan, credits and usage;
  • inviting someone new. It can add people who already have an account.

It can still change an agent’s environment variables, where channel keys live; its instructions have it ask you first and never repeat secret values back.

  • Agents and channels: which channels are live, an agent user’s password and memory, the agent-wide report prompts (it can set one person’s report focus), and turning Programs on or off.
  • Selling: the usage limit and Free trial card for people who haven’t bought (it can set a paid plan’s trial days).
  • Programs and the Inbox: answering a question an agent asked, the Programs API and webhook, and sending a held outreach message now.
  • Phone lines: adding numbers to the pool, or switching a line to another speech provider.
  • Knowledge bases, templates and skills: a knowledge base’s settings, removing a source or file, stopping or rebuilding a compile; creating an agent from a template (it can build a similar one with you, without the template’s skills); publishing skill versions, the skill canvas, skill tests and optimization.
  • Models, data and training: anything on a model beyond starting, stopping and redeploying it, the Data Hub, PPO runs, a coded reward over a dataset in your project (it offers a judge-scored run instead), the GRPO settings beyond the new-run form’s, and importing or exporting evaluation results.
  • Reading a whole past conversation. It links the conversation’s Thread tab.
  • Telling you whether Stripe is connected and who bought. It links the Stripe Connect and Subscribers cards on Monetize.
  • Browsing the web, and making images or videos. Use a regular agent with browser or media tools.
  • Your password and account settings. Those go through Settings.
  • Scaling agents. Agents run on the shared runtime with no replicas, CPU or memory to set; it can start and stop them.
  • Starting a mission or scheduled work. Start those from Work chat with /goal, /mission or /loop.

If the Copilot returns 401 (“Invalid base LLM token”), it’s an admin-side config issue. Contact whoever runs your tenant.

If a tool returns an error, it tells you what went wrong instead of retrying blindly. Read the error, fix the cause, and ask again.

  • ⌘+/ (or Ctrl+/) — open the drawer
  • Esc — close the drawer
  • Enter — submit the current message
  • Shift+Enter — newline in the composer

Other tools: Goals (/goal), Inbox, Programs.