Skip to content
Sign in

Concept

Ask Copilot

Updated

On this page

Copilot answers questions about using Zof from these help pages, and questions about your own services and pull requests from your company's System Graph. Open it with the Copilot button in the top bar, or press Ctrl+J (Cmd+J on a Mac). Questions about using Zof don't need GitHub; questions about your services and pull requests need GitHub connected.

Where Copilot sits

Copilot opens beside the page you're on, on every page of the console, so you can read a run or click through a page while the chat stays open. Moving to another page keeps the conversation, what you've typed in the box, and where you'd scrolled. Open run on a card shows the run next to the chat. Escape closes Copilot only when you're in the chat, and X closes it. Drag its left edge to make it wider or narrower.

The page always keeps a readable width. When the screen is narrower, Agent actions moves under the chat first, then the left menu shrinks to its icons, without changing your own setting. The right panel steps aside while Copilot is open. On a small tablet Copilot covers the page, and on a phone it fills the screen. There, a link in the chat shows the page, and Back to chat at the bottom right brings back the same chat.

With a keyboard, Tab moves from the page into the chat. Skip to Copilot, at the top of the page, jumps to the chat, and Skip to page, at the top of the chat, jumps back.

Where do the answers come from?

From these places only:

  • These help pages. Copilot finds the sections that match your question and answers from them. Each fact carries a small number that links to the exact section it came from, and the pages it cited are listed under the answer as Sources. They open in a new tab.
  • Your company's System Graph, for questions about your services, repositories, dependencies, or what a pull request changed and could affect. Copilot reads it for the company you're signed in to, and only if your role includes Read topology. While it reads the graph, the step shows in the chat. If the graph can't be read, Copilot says so instead of guessing, and something the graph doesn't know stays unknown.
  • This conversation, for questions about the chat itself, such as "what did we talk about?", "repeat that" or "explain that more simply". Copilot answers from the conversation so far, and when there's nothing yet it says you haven't talked about anything yet. Until Copilot's new engine is on for your company, that is the last 20 messages. With the new engine, once a conversation gets long, Copilot keeps your recent messages word for word, and your first question and its answer too while they're short, and summarizes the ones in between, keeping the names, numbers and decisions you gave. Older details may then be only in that summary, so if Copilot seems to have lost one, say it again.

Copilot follows your role's Read access (see Who can do what). If your role leaves an area out, Copilot doesn't read it: it has no System Graph tools without Read topology, doesn't look up runs or schedules without Read runs, and gives no pull request details without Read releases. Asked about such an area, it answers, for example, "Your role doesn't include runs and schedules. Ask an admin if you need it." The command palette search follows the same reads, and says which sources it left out.

Copilot doesn't use outside knowledge about Zof, and it doesn't guess. Text from a help page or the graph is treated as information, never as an instruction to Copilot.

What if the help pages don't cover it?

Copilot says so in its own words, names the topic, and suggests something related. It doesn't guess. Small talk gets a short friendly reply, and a request that isn't about Zof gets a one-line refusal. The AI model writes these replies, following Copilot's rules.

When no help page matches and Copilot has no System Graph to ask (your role leaves out Read topology), it answers "That isn't covered in the help docs." without asking the AI model, and lists the Closest pages, or Help when none is close. An empty answer from the model shows the same sentence.

What can Copilot do?

It answers, and it can propose one action at a time for you to confirm: a code review, a test run or a schedule. It can't approve changes, edit policies or change anything else, and it never runs an action on its own. For anything else you ask it to do, it tells you which page does it.

Planned. Copilot proposes actions once its new engine is switched on for your company. Zof turns it on company by company. Until then it only answers, and tells you which page starts a review, a run or a schedule.

Ask, for example, "review PR 12 in shop/checkout". Copilot finds that open PR in your company and shows a card with the repository, the PR, the branch it merges into and its commit. Nothing happens until you press Confirm. Confirm does what the Code review page does, from your browser and with your own permissions, so you need to be allowed to start reviews. A review is included in your plan.

Or ask "run smoke tests on main in shop/checkout, on staging". Copilot finds the latest commit of that branch or open PR in your company, and the card shows the test, the agent that runs it, its settings, the commit and the cost: about 1.5 credits, with "less on your own key" when your company's runs use its own AI key. Confirm does what the Runs page does, so you need to be allowed to run tests. Every test is set up on the card: the address to test (your saved one, filled in) and what the test needs, such as pages or the users for a load test. A test that checks pages lists them as the Runs page does: type a path and choose Add page, or choose Find pages to read the address on the card (your saved one, or one Zof saw this repository deployed to) and add the pages it suggests, ticked for you to change. For a smoke test, the text Find pages read on each page goes with it. Once the card is confirmed, it still names the address and the pages it tests. Load, stress, scalability, endurance, SQL injection and payment tests send heavy traffic. Address proof is turned off for now, so the card asks for no proof and no tick: check the address before you Confirm. Every test on an address also asks you to tick "This address serves commit" and the commit's first 7 characters, next to the address, as the Runs page does. It starts unticked and Zof never ticks it for you: tick it only if that address runs that commit, since the run is refused without it. Confirm stays off until you do, and changing the address clears the tick. When Zof turns address proof back on, the card first checks the address is proven to be yours, as the Runs page does, shows how to prove it, and asks you to tick "I'm authorized to test this address" before you Confirm. Only DAST and API fuzzing aren't started from the chat yet: Copilot gives you a link to the page where they start, already filled in. If a run is refused, the card says why in plain words. Copilot can also list your recent runs and read one, with how many checks passed and failed; ask "how did that run go?". Ask "what tests can I perform?" and it lists the tests your company can run now, from the same live list the Runs page uses, and marks the ones that no agent can run now, and, while address proof is on, the ones that need a proven address (the card checks it). See What Zof can test.

Copilot can also read your company's pull requests and commits, through the same GitHub connection the New Run page uses. Ask "list my open pull requests", "what's PR 12 in shop/checkout?" or "what are the latest commits on main?". It shows each pull request's number, title, author, the branch it merges into, its head commit, whether it's open, merged or closed, and when it was last updated. "My" means the GitHub account linked to your Zof profile. When none of your company's connected repositories has a pull request by that account, Copilot says so and names the account, so you can tell whether the right one is linked. For commits it shows the branch's latest commit, read from GitHub, and the head commits of pull requests into that branch; it doesn't read file contents or the full history. It only reads repositories your company has connected, and says so plainly when GitHub isn't connected, a repository isn't one of yours, GitHub is limiting reads, or nothing matches. It never makes up a pull request or a commit.

So you can ask "test my last PR": Copilot finds your newest pull request and proposes a test run on its head commit, even once it's merged. A commit it tests is always one Zof read: the latest commit of a branch, or the head commit of one of your company's pull requests, never a commit you type.

Or ask "run smoke tests on main in shop/checkout every weekday at 9, London time". You choose how often from a fixed set: every hour, every day, every weekday, or one day a week, at a time you give. Copilot never writes the timing itself. It uses the time zone you name, or the one saved in Settings, and the card asks for one when there's neither. The card says when it runs in words, for example "Weekdays at 09:00 (Europe/London)", with the first run and the cost: about 1.5 credits per run, again with "less on your own key" on your own AI key. Copilot checks your existing schedules first so it doesn't propose one twice. Tests the Schedules page can't schedule, such as load, unit and visual tests, can't be scheduled here either.

When more than one agent can run the test, the card picks the recommended one and shows it as "Agent: name" with Change to pick another. If a setting is missing or not valid, the card asks for it: fill in the highlighted settings, and Confirm turns on once Zof has checked them. The repository, branch, commit, test and timing can't be changed on the card; to change those, press Cancel and ask again. If the console refuses a setting when you confirm, the card stays open so you can fix it. Once you press Confirm the card can't be changed, so one card never starts two runs. The card expires after 15 minutes. If Copilot can't tell whether the action started, the card says so; look for it in Code review, Runs or Schedules. Once it starts, the card and the timeline link to the review, run or schedule. A run's card shows its status while it runs. If it has no result it can state, Copilot says nothing rather than guess.

Runs you started from the chat

Tests you confirmed in Copilot in the last 24 hours show in a small tray above the message box, and as a chip at the bottom right while Copilot is closed, on every page. Each row has the test and repository, its state in words (Queued, Running, Checking the result, then the run's result), how long it has run, how many checks are done when the run reports them, and Open run. Several runs fold into one line, such as "2 tests running"; select it to see them. If you can run tests, Cancel stops a queued or running test after you confirm. A finished row can be dismissed.

When a run finishes, Copilot adds one short note to the conversation you started it from, such as "Your smoke test on shop/checkout finished: Passed, 5 of 5 checks passed", with a link to the run. The note is built from the run's own result, never written by the AI model, and is added once. If the run's result can't be read yet, no note is added; Copilot mentions it the next time you ask something in that conversation instead. Ask "how is that run going?" and Copilot reads the run's live state.

Streaming, Stop and Retry

Enter sends; Shift+Enter adds a line; + adds a starting phrase.

While Copilot works, each step shows in the chat, such as "Searching help docs". When the answer starts, they fold into "Used 2 tools"; select it to see them.

The answer appears word by word as it's written. Code blocks have a Copy button. Press Stop, or Escape in the message box, to end it early. What was already written stays, marked Stopped.

If the connection drops while an answer is streaming, Copilot reconnects. Usually it carries on from where it was. Sometimes it can only show the finished answer, or it asks you to retry, which starts the answer again. When Copilot is busy you also see a short message and Retry. Retry sends the same question again. If a question can't be sent at all, it stays in the chat marked Couldn't send, with the reason and Retry. While your browser is offline, Copilot says so and sends nothing.

Voice

When your console has voice set up, the message box has a microphone button. Press it, or Tab to it and press Enter, and allow the microphone when your browser asks. What you say appears in the box as you speak. Copilot never sends it: read it, change it if you like, and press Send. Press the button again, or Escape, to stop. If the microphone is blocked, a line under the box says how to allow it.

Each answer has a Read aloud button. It is off until you press it, reads one answer at a time, and stops when you press it again. It reads the answer's words only: never code blocks, links, or anything that looks like a key or a password.

Speech is turned into text, and answers into speech, by Zof's own Azure AI Speech service; your browser never holds Zof's key. Each company has a daily voice allowance. Once it is used up, Copilot says so and you can still type.

Limits

  • A message can be up to 8,000 characters.
  • Until the new engine is on for your company, Copilot uses the last 20 messages of the conversation. With the new engine it uses your first question and its answer (while they're short), a summary of older messages, and as many recent messages as fit.
  • With the new engine, once a conversation is about half way to that point, a small circle in the message box shows how close it is to having its older messages summarized. Point at it, tap it or move to it with Tab to see how far it is. When it happens, the chat shows "Earlier messages were summarized" above that answer, or "Earlier messages were shortened" if a summary couldn't be made and only the oldest of them were left out.
  • Each person can ask about 20 questions every 5 minutes, and fewer in a quick burst. After that, Copilot asks you to wait a minute.
  • Each person can have at most 2 answers being written at once.
  • An answer that takes longer than 45 seconds stops, and you can retry it.

What is kept

Your question and Copilot's answer are saved in your conversation once there is an answer, with the links it cited. A question that failed isn't saved, so Retry doesn't repeat it. Conversations belong to your account in your company. Copilot doesn't write your questions or its answers to Zof's logs.

Past conversations

Chat history in Copilot's header lists them by day, with a search by title. Open in workspace shows the same list beside the chat. Each conversation opens on its last 20 messages; Load earlier messages adds 20.

Next steps