WispOS

Build a shared team agent

The repo layout and card.json reference for a WispOS shared team agent: name, team, owner, the topics that route questions to it, who may ask it, and which model it runs on.

Updated

A shared team agent is a git repository with three things in it: a card that says what it is, instructions, and the knowledge it answers from. There’s no SDK, no server and no build step. If you can write Markdown and use git, you can build one.

The repo

my-team-agent/
  card.json        required: the card (below)
  PROMPT.md        required: the agent's own instructions
  knowledge/       the files it answers from
  README.md        optional, for people

knowledge/ can hold any text files, at any depth: Markdown, plain text, CSV, JSON, and documents: PDF, Word (.docx), PowerPoint (.pptx) and Excel (.xlsx), which WispOS reads as text and the agent cites by page, slide or sheet (a scanned PDF with no text in it can’t be read). The agent can read the whole repo and nothing outside it. Starting from a folder of documents? Ask Wisper to make the agent.

card.json

{
  "card": 1,
  "name": "education",
  "title": "Education team agent",
  "team": "Education",
  "owner": "Dana Ruiz <[email protected]>",
  "description": "Grading, late-work, attendance and student-device policy, 2026-27 school year.",
  "knows": ["grading", "late work", "attendance", "absences", "student devices", "phones in class"],
  "askers": ["*"],
  "model": "sonnet"
}
Field Required What it does
card yes The format version. Must be 1.
name yes A short slug: lowercase letters, digits and hyphens, up to 40 characters. It’s the handle people use (ask education ..., @education).
title no The display name. Defaults to “team team agent”.
team yes The team that owns it. Named in every answer.
owner yes The person responsible for it. Named in every answer.
description no One line, shown in Settings when someone installs it.
knows yes The topics that send a question here. See Routing.
askers yes Who may ask it: "*" for anyone, an email address, or "@yourcompany.com" for a whole domain. Matched against the asker’s git email (git config --global user.email).
model no haiku, sonnet (the default) or opus.
prompt no Path of the instructions file. Default PROMPT.md.
knowledge no Path of the knowledge folder. Default knowledge.

Paths are relative to the repo, with no .. and no hidden folders. A card with any other card version is refused.

PROMPT.md

Plain instructions for your agent, in your own words. WispOS puts a short frame before them: which team publishes the agent and who owns it, to answer only from the repo’s files (knowledge/ first), to say so plainly and not guess when the files don’t answer, to keep it short, and to end with a sources line. So you only need to cover your subject:

You answer questions about Maple Ridge Unified's classroom policies for
teachers and staff. Answer from the files in knowledge/ only. Quote the
policy's own wording for anything a teacher might be held to, and say
which section it's from. If the files don't cover it, say so and suggest
asking the Education office.

Routing

Before Wisper answers a message, WispOS checks it against every installed agent:

  • Addressed by name wins outright: ask education ..., education agent, education team, or @education.
  • Otherwise, topics. Each phrase in knows that appears in the message scores 1 if it’s one word, 2 if it’s two or more. A total of 2 or more sends the question to that agent.
  • The highest score wins. A tie between two agents sends it to neither.

So "late work" alone routes a question, while "grading" needs a second topic to go with it. Put the phrases people actually use in knows, including the informal ones (“phones in class”, “chromebooks”).

Sources

WispOS asks the agent to end every answer with one line listing the files it used:

Sources: knowledge/grading.md, knowledge/late-work.md

WispOS strips that line, keeps only the files that really exist in your repo, and shows them with the answer. If it’s missing, the files the agent opened are used instead.

Updating it

Edit knowledge/, commit and push. Every WispOS that installed your agent pulls before each question, so the next answer anyone gets is from your new version. There’s nothing to release.

Trying it before you share it

Install it from a folder on your own computer: paste the folder’s path into Settings → Phone & sharing → Shared team agents → Add. Ask it a few questions, edit, commit, ask again.

When you’re happy, push it somewhere your people can reach and send them the address. Or skip the hand-building: share a project or agent you already have straight from WispOS.

See also: Best practices for shared team agents.