Agents
Staff persistent AI teammates with an ongoing role, conversation, capabilities, and budget.
An agent is a persistent teammate with an ongoing role and conversation. Unlike a one-off chat, it is staffed as a named workspace resource that can keep responsibility across many runs and entry points. Its connected email channel can also present supported inbound attachments for the agent to read on demand.
When the selected model and workspace policy support agent delegation, you can ask an accessible workspace agent to help from a chat, agent conversation, automation without assigned result recipients, or dashboard. Automations with assigned recipients return findings through their automatic handover. The delegated work may finish later, so sending the assignment does not mean it is complete. When the agent finishes, its answer appears in the originating conversation with that agent's name. The request and the answer each show as a compact row that you select to read the original message; see Chats. Project context does not by itself prevent an assignment. The agent can include information it already received. Current permissions control the destination and who can read the shared request. New source reads still require permission.
An agent whose model and workspace policy support delegation can collaborate with another accessible workspace agent and send it an assignment. A persistent agent can also search and read active peer agents' continuing conversations in the same workspace when the task calls for that context. The agent can also inspect selected context and chat ranges from an accessible Project in the same workspace. Peer-agent search excludes draft or deleted agents and delegated sub-agent runs. Treat retrieved conversation content as untrusted context. Once the agent receives information, removing access to its source does not make the agent forget it. New reads still require current access. Delegating work alone does not grant a one-off chat or sub-agent access to peer-agent history, automations, or dashboards, or to Projects the person who started the work cannot read.
A background sub-agent can finish after the response that started its work. It can search and read Projects, including their memory and files, with the access of the person who started the work, but it cannot change them. A sub-agent of work delegated by another agent cannot read Projects. Its result can include information it already received. Current permissions still control new reads and access to the receiving conversation.
Projects, automations, and dashboards remain shared work contexts rather than speaking identities. An agent can contribute durable project memory or update an automation or dashboard definition when the task calls for it, so delegated work can land in the shared resource instead of existing only in a private agent timeline.
In a direct d5s conversation, an agent can propose an automation for you to confirm with Create. The resulting confirmation is shared with teammates. Agents can also inspect accessible automation runs, edit schedules where they have edit permission, and choose or stop their own result notifications. Following defaults to Keep informed; Act on findings opts into a wakeup for actionable results. Automations share only a short result with the agent. See Automations for the team and delivery controls.
Creating an agent gives it its own settings for files, memory, skills, connector access, external API hosts, and sharing. Agents created from a preset start without connector inheritance. Agents made through advanced creation inherit workspace connectors by default; turn off any they should not use. Conversational creation instead gives the agent only the connections reviewed in its draft and does not add later workspace connections automatically. Manage these settings from the agent page. An agent gets every workspace skill, including skills added to the workspace later; remove any it should not use. In conversational creation, turn off All workspace skills to give the agent only the skills its draft lists. See Choose an agent's skills. The agent keeps the continuing conversation you see there and can shorten older context according to its working-context setting.
An integration can reset an idle agent conversation through the API. This clears its visible conversation history while keeping the agent, project settings, files, model choice, and connected channels. Reset is refused while work is active. Messages and files already delivered to an external provider remain subject to that provider's retention.
Open Agents in the main sidebar for the full directory, or choose an agent from Your team on Chat. To keep an agent one click away, select Pin agent in its menu on the Agents page or in its Recents row menu. Pinned agents appear in the Agents section of your sidebar with their status, in the order you pinned them; Unpin agent removes one. Pins are personal to you. Recents includes recent agent conversations alongside other chats, automations, and dashboards. The agent name is also the title of its continuing conversation and its entry in Activity. Rename it under Manage agent → Profile; an agent conversation does not have a separate conversation title. Agent names have at most 29 characters. Renaming an agent does not rename its existing Slack or Teams bot.
To return to an agent's latest conversation later, open its three-dot menu in the sidebar's Agents section and select Mark as unread. This changes only your read state. The action appears once the agent has a conversation. In the desktop app, right-click the pinned agent row to open the same options, including Unpin agent.
When an agent has new replies since you last read its conversation, a New line marks the first reply you have not read. It shows how many replies are new and when you last read the conversation. With two or more new replies, the conversation opens at that line instead of at the bottom. A conversation counts as read after you view it for a moment.
Open Search in the sidebar or press ⌘K to find an active agent by name, persona, or description. Matching agents appear in an Agents group and open the agent directly; their continuing conversations are not repeated under Sessions. With an empty query, the same palette offers direct navigation to Agents and Connectors. Typing in this palette does not search the connector provider catalog; open Connectors to browse or search providers there.
A regular web conversation keeps its selected approval mode. A named agent instead has one agent-wide approval menu in its conversation bar. Ask for approval pauses on connector actions configured to Ask wherever the agent works; Allow all lets those actions continue from d5s, connected channels, email-originated work, and schedules without individual prompts. Email sends and meeting bookings from a connected account still wait on a card in the agent's conversation under both settings, in every run, including runs started by an email, by another agent, or by its first setup. If you switch to Allow all while a web approval is waiting, d5s retries that pending action once. Explicit Deny rules, connection permissions, and workspace access restrictions still apply.
When you message a persistent agent directly in the web app, it can end its current turn with a short choice card when it needs a decision before continuing. Your selection is sent as the next message in the same conversation. This is separate from connector approval: the choice clarifies your request but grants no additional tool, credential, or permission. Scheduled wakeups, heartbeats, and external-channel turns do not create a web choice card for someone who may not be present; the agent continues with the information available or explains what it still needs.
After completing or parking work, a persistent agent can instead raise a durable attention item without pausing its run. The workspace landing page highlights that coworker and links the heads-up back to the exact conversation. Seeing it clears your own visual cue; the shared item remains open for other workspace members until someone dismisses it or it expires.
Answer in a Project chat
Project messages use d5s by default. Type @ to see agents, then enter part of a name to filter the list. Select an available match under Agents to ask it directly. The selected mention stays inline in the message. The agent answers in the Project chat. It uses the Project's context and keeps its own name, profile, and model preference. Remove the mention to ask d5s instead.
Unavailable agents stay in the picker with Unavailable beside their names. Highlight or tap one to read its reason. You cannot select an unavailable agent.
The read-only model label shows the agent's selected model family or level. Workspace default means the agent inherits the workspace preference. This label describes the preference for new work.
The agent's Home conversation shows its Project work. Expand Worked in to read the original request, tools, searches, and response. Expand the activity group to inspect chat search queries and message counts for each read. Stopped requests can still show their completed tools. Select Open project chat for the full conversation, including later replies or resumed work. Current access to the Project chat is required. A paused, removed, or unavailable agent cannot receive a new request. Choose another recipient explicitly when necessary.
An agent combines
- a profile: name, persona, description, and avatar;
- standing guidance: instructions that apply whenever the agent runs;
- working context with files, memory, skills, connectors, and network access that you can review and change;
- one continuing conversation for direct and autonomous turns;
- a model and reasoning configuration within workspace policy;
- optional channels, including Slack bindings, a Slack coworker identity, Telegram teammate DMs, a Discord application (beta), and a connected Gmail or Microsoft mailbox;
- autonomy controls: pause, one-time and recurring wakeups, and a daily budget.
On Chat, open the agent selector beside the composer and choose Add an agent. Quick create opens a compact form for the agent's name and standing instructions. The form lists the workspace connectors the agent will be able to use, shows the agent's Model, and has a Learn how you work switch for a read-only first run. Add persona adds an optional one-line role. Agent Builder opens the private conversational setup flow. Browse agents opens the complete searchable collection with the canonical team categories used across d5s. Previewing a preset creates nothing; Use template opens a reviewable setup draft for that exact version. Preset agents start without inherited connections, channels, schedules, or running work. See Create your first agent.
Use each surface's agent or contribution controls to choose who does the work. In Projects, select a responding agent through an inline @ mention. Selecting a second agent replaces the first mention. Each new message without an agent mention uses d5s.
On Chat, the default d5s target starts a one-off conversation. To create a persistent coworker, choose Add an agent from the agent selector or New agent on the Agents page, then choose a creation path. Selecting an existing agent sends work to that agent’s continuing conversation.
Choose the agent’s character
Open Agent settings → Profile → Character to upload a PNG, JPEG, or WebP image of up to 2 MB and 16 million pixels. Preview the square crop in the row, then select Apply. Cancel leaves the saved character unchanged. You need permission to edit the agent’s Project. The character is shared with everyone who can access the agent.
The saved character appears in d5s, including the desktop and mobile apps, new Slack messages, Teams replies and answer cards, and outgoing HTML email. Use default restores the generated character. A plain-text email has no image. Shared Teams replies keep the d5s sender and show the agent’s identity in the reply.
For a connected Slack coworker or a dedicated Teams agent, use the Channels profile control to sync its provider profile. Replacing the character does not change a connected Gmail or Microsoft account photo. Older messages and provider-cached images can keep an earlier character.
Finish setup before starting work
In conversational creation, your setup conversation and draft stay private while you review the role, communication channels, and connector accounts. An inbox address or connected Slack, Telegram, or Discord (beta) identity can be prepared during setup, but the agent does not run or reply until you select Activate agent. Draft agents do not appear in the ordinary agent directory or agent selectors. See Create your first agent for the full journey.
After activation, your private setup conversation remains under Agent settings → Setup history. It is separate from the agent’s working conversation.
Give an agent browser access
If your agent shows Computer, open it to view the desktop and its browser. Their Network settings show the workspace Internet policy. Workspace owners and admins change it in workspace settings; there is no separate agent Browser policy. See Workspace computer Internet access. Watching the desktop requires current access to every dashboard opened there; viewing a draft can require edit access. Take control additionally requires edit access to every dashboard opened there. If your access changes, viewing or control can end.
The following saved-browser controls apply to legacy sandboxes.
For step-by-step sign-in, see Sign in to websites for an agent.
Browser access is on by default for agents without a saved browser policy, with all public HTTPS websites allowed unless the workspace requires website approval. Existing Off choices and website restrictions stay in effect.
Ask the agent to open a website. An agent with approved browser access can start its saved browser under either conversation approval setting. Once ready, the agent continues the original request. Website permissions still apply. You can use View browser to watch, but the panel can stay closed. Private control and deliberate pauses still require you to return control. See Browser start and stop.
A workspace admin can also select the globe icon Browser in the agent's tools. Choose Open browser to start it. Select Expand for more space. The browser opens beside the conversation in a wide window, or over it in a smaller window. d5s reuses the assigned saved browser, or prepares a separate one if none is assigned. Its website sign-ins survive restarts. Opening the compact view alone does not start the browser. Closing the viewer does not stop it; use Stop browser from the browser menu when needed.
For agents with Computer, sign in through the desktop browser. There is no separate saved-browser selector. Existing saved-browser data is not transferred or deleted. See Sign in through Computer.
Under Browser settings, use Allow browser and Website access to change access. Advanced → Saved browser lets you choose an existing saved browser to reuse its sign-ins. Sharing it also shares its signed-in accounts; only one conversation can use it at a time. Saving settings does not open the browser. Existing profile assignments keep their sign-ins. If a browser is paused, private, deliberately stopped, or in use by another conversation, the agent waits. Use Resume browser, Return to agent, or the applicable browser settings when you are ready.
Ask the agent which websites its browser can open. It can check its current allowed websites without opening the browser. When browser access is on and another website is needed, the agent can show Allow a website? in the d5s conversation. This also covers another website needed during sign-in. Review the hostname, reason and Current browser access. A workspace admin can select Allow and continue to add that exact website for the agent, or Decline. Existing allowed websites stay available. This permission remains until an admin removes it in Browser settings.
Website approval does not enable a browser that is off, return private control, or share credentials with another website. Use Browser settings to change the saved browser or enable browser access. A workspace can require website approval, which prevents the all-websites choice. If an approved task has not continued, select Continue task.
An agent with Browser access can open an HTTP app running in its current coding sandbox by selecting the app's listening port. Ask the agent to start the app on an available port from 1024 to 65535 and listen on all interfaces, then open that port in its browser. Reserved ports, including 8080 and 9443, cannot open as apps. It can inspect the rendered page and use the controls there. This access is limited to that conversation's coding sandbox and does not publish the app or create a preview link. Website approvals still govern external HTTPS sites.
Browser access may include accounts signed in to the selected browser profile. The narrower choice limits page navigation, including embedded pages; public images, scripts, and other page resources may still load from other sites. If browser setup or the agent's continuation does not finish, the conversation shows a way to check settings or ask the agent to retry.
Use the agent’s App preview (beta)
Ask the agent to start your app and save its preview with a name, its project folder, and a reusable start command. Save the command that keeps the server running in the foreground. Use environment references for credentials rather than including secrets in that command. If the app opens without a saved entry, ask the agent to correct its folder or start command; invalid preview details are not saved.
Open the saved project under App preview if it appears there. Otherwise, open its conversation tile or find it under Browser. A running app can stay viewable after the agent finishes. If its environment or server is stopped, select Start to run its saved command. Starting, restarting, and reading startup logs require permission to run the agent. Open ⋯ → Restart app to replace a server started through Preview, or ⋯ → View startup logs to read its output. A saved entry alone does not mean its server is running. Saved projects belong to that conversation and do not create a public link.
If a preview asks you to sign in, sign in to d5s again and reopen the preview from the conversation. This also applies to previews in separate tabs.
Opening App preview or selecting a saved project does not start a command. Opening a saved project keeps any private or paused website browser under its existing control. Use the existing browser controls when you are ready to return control. Live browser viewing and profile controls require a workspace admin.
If the app is still starting, select Check status or View logs when available. Startup continues after you select Start. A failed start may need missing dependencies installed or its command corrected; ask the agent to inspect it. If it reports a storage limit, ask the agent to inspect usage and remove only disposable generated files before trying again. Follow the storage-limit recovery steps and preserve your saved work. If the coding environment is reserved for another agent job, ask that agent to start the app. Select another app under Saved apps in App preview to switch. In the expanded preview, select the project name at the top to switch pages or choose Saved projects….
Review recorded commands
In App preview, choose ⋯ → Agent commands… to read commands run in this conversation. The latest loaded command is selected first. Use Choose command to select another run, or Earlier commands… in that menu to load more history when available. These commands belong to the conversation, even when you switch apps.
The output is shown first, along with the recorded status and duration when available. A failed run shows its exit code; No exit result means no exit code was recorded. Select View command to inspect the command itself.
The Command actions menu contains Copy output, Copy command, Find in output, Wrap lines, and Show in chat. Lines wrap initially. Show in chat returns to the message that contains the command.
This view is read-only and cannot run or rerun commands. Ask the agent in chat when you want it to run a command. Error output alone does not mean a run failed; check its recorded status.
Select Back to preview to return to your app. Switching between App preview, Agent commands, and the separate Browser keeps the open app’s page state while the panel remains available. Files continues to show the conversation’s files.
Follow a response
Live narration appears in the activity group with the tool steps. Activity groups start collapsed, while the agent works and after it finishes. Use its header to collapse or expand it; your choice stays in effect as the response continues. The completed answer appears separately below the activity.
Correct an instruction
Use the pencil beside your own message to correct an instruction sent to the wrong agent. Clear any queued messages first. Save & send stops active work, replaces the message and subsequent conversation, and submits the correction. The previous text and dependent replies no longer appear in the chat or future conversation context. Completed actions and usage charges remain in effect.
Messages covered by a saved context summary cannot be edited. Send a new instruction instead. Newer messages remain editable when their replacement does not affect summarized history.
Messages from external channels, other authors, and system instructions cannot be replaced this way. See Correct a sent message for the full behavior.
Working context and compaction
New agents default to 256k Efficient working context. You can choose a different tier under Advanced settings while creating an agent, or later under Manage agent → Profile → Advanced. Profile also shows the Model and Reasoning rows. Every change in Manage agent applies at once; there is no Save button. The Model menu lists Light, Medium and High first; search or scroll the model list below them to pick a model family. A saved model family uses its newest available version on new turns. Running work and history retain their exact version. In the agent conversation, the model label in the composer is not a menu: select it to open Manage agent → Profile with the Model row focused. The available tiers are:
- 256k Efficient, the recommended default with the lowest ongoing context cost;
- 512k Extended, for models with enough input capacity; and
- 850k Maximum continuity, for 1M-class models.
A tier is available only when the selected model can support it. If changing the model requires a lower tier, saving the profile keeps that lower tier. A later model upgrade does not silently restore a more expensive setting.
When the conversation reaches its limit, d5s summarizes older activity. The full conversation record stays. Information already received from other Projects can be included in that summary, even if access to its source later changes.
After compaction, the agent can still search its own summarized turns to recall exact wording, for example a message you sent last week.
The conversation shows Compacting context as soon as that summary starts. When the summary is saved, the same timeline row changes to Context compacted and remains visible when you return to the conversation. If summarization fails, the in-progress row is cleared instead of showing a completed compaction. When the conversation becomes too long during a task, the row shows below the completed actions, in any conversation. If d5s cannot summarize then, the row reads Context restored from the last summary or Context shortened. Some older details may be missing., and the task continues.
You can also compact before the automatic threshold. In the idle agent conversation, type /, choose /compact, then submit again. The command uses the agent's selected model but performs no normal agent response. If there is not enough older context to summarize, d5s reports that nothing needs compaction and uses no credits.
Telegram teammate DMs (beta)
Telegram teammate DMs are in beta. Owners and Admins can select Add Telegram in the agent conversation’s Channels panel, or open Manage agent → Channels → Telegram. Members see the Telegram row only after a bot is connected; selecting it opens the bot. The setup page shows one illustrated step at a time. Use Previous and Next to browse at your own pace. The Paste your bot token form stays below every step, so you can connect immediately if you already have a token. Moving between steps keeps your token and any connection error in place. Follow these four steps:
- Open BotFather in Telegram and send
/newbot. Choose a display name and an available username ending inbot. - Copy the token BotFather provides, paste it into the d5s Bot token field, and select Connect Telegram. Treat the token like a password; do not paste it into a conversation. Each agent needs its own bot, and the same bot cannot be connected to another agent.
- When d5s shows Bot connected, select Open bot and send
/startin its private Telegram chat. Follow the d5s link it replies with, sign in, and confirm the account you want to link. The account must still belong to the workspace and have permission to view and run that agent. - Return to Telegram and send “Reply here with: Telegram test passed.” Check for the reply in that same chat. You can also see the conversation in d5s.
Bot connected confirms the bot connection, not your personal account link or a successful test. Linking and test instructions remain visible after connection; View all setup steps reopens the full guide. Every teammate links their own account. Workspace members who can view the agent can open its bot, while setup, token rotation and disconnection remain restricted to authorized Owners and Admins.
The account confirmation link expires after ten minutes. While a ceremony is pending, repeated messages do not issue another link. After confirmation, private messages enter the agent's existing persistent session; Telegram does not create a second agent or conversation.
Telegram supports private text messages and files. You can send the agent a document, a photo, a voice note, or an audio file up to 20 MB, with or without a caption; the agent downloads a file only when the task needs it. The agent can send files back: images arrive as photos and other files as documents. Groups, channels, messages from bots, videos, stickers, general interactive buttons, and edits do not start agent work. Replies arrive as complete messages rather than streaming text. Check Telegram or the outgoing activity in d5s to confirm that a reply was sent.
The agent can also message a linked teammate first, for example from a scheduled wakeup or when you ask it in d5s. You can ask the agent to make your linked Telegram DM the delivery destination for a one-time reminder or recurring briefing. It can message only teammates who linked their Telegram account and can still view and run the agent. A teammate who has never sent the bot /start cannot receive messages, because Telegram requires the teammate to start the bot first.
When work from a linked Telegram DM pauses on an Ask-gated connector action, the agent posts Deny, Allow for this run, and Allow once in that DM (only Deny and Allow once for a tool that asks on every call). Only the linked account with current access can decide. Unanswered approvals expire after 15 minutes and are denied. Old or repeated presses do nothing.
Incoming Telegram messages show the Telegram badge and, when available, the sender’s Telegram profile photo. Photos load separately from messages and require access to that conversation and message. Initials appear while loading or when the photo is unavailable. Outgoing replies show their text and status in the conversation.
For an outgoing Telegram reply, Accepted by Telegram means Telegram accepted the API request. It does not prove that the teammate received or read the message. If delivery is unclear, the status is Delivery unknown. Check the chat before you resend.
Disconnecting Telegram revokes the d5s installation, teammate links, and direct-message bindings. It does not invalidate the bot token at Telegram. If the token must stop working, revoke or rotate it separately with BotFather.
Discord agent channel (beta)
Discord is in beta. Each agent uses its own Discord application and bot. An authorized Owner or Admin opens Manage agent → Channels → Discord, then:
- In the Discord Developer Portal, create an application and add its bot.
- Copy the Application ID, Public Key, and bot token into d5s, then select Connect Discord. Treat the bot token like a password; do not paste it into a conversation. d5s verifies that all three values belong to the same application and registers the global
/askcommand. - Copy the Interactions Endpoint URL from d5s into the application's General Information page in Discord. Discord verifies this endpoint with a signed request.
- Install the application in the intended server with the
botandapplications.commandsscopes and permission to view and send messages in the channels you will connect. - Enable Developer Mode in Discord, copy the Server ID and Channel ID, and add that exact pair under Server channels in d5s. d5s verifies that the connected bot can see the channel before saving it.
In a connected server channel, use /ask and put the request in its message field. Any Discord member who can use the command in that channel can start work with the agent's configured capabilities, so connect channels deliberately and turn off unneeded project connectors. Ambient messages, mentions, attachments, bot messages, edits, reactions, and thread activity do not reach d5s. A server command enters the agent's continuing conversation and replies to the same channel as plain text.
For a DM, open the bot's Discord conversation and use /ask. The first command returns a private browser link. Sign in to d5s and confirm the Discord account shown; the link expires after ten minutes. The d5s account must still be an active workspace member with permission to view and run the agent. Then repeat /ask in the same DM. DMs use the same persistent agent session, and the agent can reply only to the current linked-DM turn; it cannot start a proactive DM.
Discord replies are split at Discord's 2,000-character limit and suppress all automatic mentions, including text such as @everyone. Accepted by Discord means Discord accepted the API request; it does not prove that a person received or read the message. If delivery is unclear, the status is Delivery unknown. Check the channel before you resend. The agent can also send plain text to an explicitly connected Discord channel through its normal destination tools.
When a Discord-started run pauses on an Ask-gated connector action, the agent posts Deny, Allow for this run, and Allow once where the work started (only Deny and Allow once for a tool that asks on every call). In a DM, only the linked account with current access can decide. In a server, only a click in the channel bound to the agent counts. An unanswered control expires after 15 minutes. Old or repeated presses do nothing.
Disconnecting Discord revokes its saved channel and DM bindings in d5s. It does not delete the Discord application or invalidate its bot token. Remove the application from Discord or rotate the token there when access must stop outside d5s too.
Slack setup
Manage agent → Channels → Slack opens with the agent's own Slack account: a card with the bot name, the handle it will get, and a Create @Poppy in Slack button. The bot name starts as the agent's name; select it to change it (up to 29 characters). The Shared d5s Slack app guide sits below it behind Use the shared d5s app instead; Back to Slack account returns to the card. Members who cannot create a dedicated identity see a one-line note and Use the shared d5s app. The guide walks through installation, channel access, agent selection, and a first reply. Use Previous and Next to revisit any step. Connect Slack stays below the guide until the workspace is connected; Open Slack remains there afterward. The Channels overview shows one Slack row whose status covers both paths. Connected guidance starts at channel setup, not a claim that your first reply has been verified.
Open a Slack channel’s details and select Agents & apps to add d5s. Mention @d5s with “Reply here with: Slack test passed.” If prompted with Connect d5s, follow the private link to sign in with your d5s workspace account and finish linking, then return to Slack. This personal account link is separate from installing the app. Select an accessible agent from the private Choose agent dropdown and check for the reply in the same thread. An existing thread selection can skip the picker.
The quickest Slack setup installs the shared @d5s app once for a workspace. A workspace admin opens Manage agent → Channels → Slack (the Set up action on the agent's Channels popover leads there too), chooses Use the shared d5s app instead, then Connect Slack, and approves Slack's access screen. Other members see guidance to ask an admin. Once connected, choose Open Slack, invite @d5s to a channel, and mention it with your request.
If that thread has no selected agent and the channel has no default, d5s asks who should help inside the thread. Choose an available agent; the confirmation shows that agent's name and character, and the agent receives your original request so you do not have to repeat it. d5s remembers that choice for later mentions in the same thread. Another thread can use another agent. Change agent changes the thread choice; Set channel default is optional and makes that agent answer new threads that have no choice yet. If there is only one available agent, d5s can start with it directly. Shared-app messages still require an explicit @d5s mention. When an agent starts a new channel update, that thread is assigned to the posting agent: mention @d5s in its thread to continue with the same agent. You can still change the agent for later messages.
The picker shows agents available to you in that channel. Agents with the same name include context to help you distinguish them. Existing connected agents do not require you to repeat the channel setup. Slack OAuth links the installing user’s verified Slack identity to their d5s account. Other teammates whose accounts are not linked yet follow the private Connect d5s action first; d5s then resumes their waiting request. Once an agent is connected to a channel, channel members can ask it to use its configured shared capabilities. Replies from the shared app show the answer first, with the selected agent's name and small character in a compact footer and use Agent name · d5s as the native sender. A workspace admin must choose Reconnect Slack once for each connection installed before this identity permission was added. The visible in-message identity remains part of every reply so the agent stays clear when Slack groups messages. The optional @d5s +poppy shortcut selects an agent by its unique normalized name; it is not required and does not autocomplete in Slack.
For a genuine mentionable identity such as @Poppy, choose Create @Poppy in Slack under Manage agent → Channels → Slack. If Slack provisioning has not been connected yet, a workspace admin pastes a Slack configuration refresh token in that same setup panel. d5s connects it once for the workspace, creates a separate Slack app with that bot name and the agent's description and avatar, and sends you to one Slack approval screen. In the desktop app that screen opens in your default browser; the panel shows Waiting for Slack in your browser with Open again and Cancel, and after approval the browser shows Slack setup complete with Back to the d5s app. Later dedicated coworker setup and permission upgrades reuse that workspace connection. If Slack revokes the credential, the action that needs it asks an admin to reconnect there and then retries automatically. Invite the dedicated coworker to a channel and mention it; the first mention connects that channel. Members of a connected channel can ask the agent to use its configured skills and the workspace connectors still enabled for that agent, so turn off unneeded connectors and connect channels deliberately. Disconnecting a channel under Manage agent → Channels → Slack stops the agent answering there; the app stays in the Slack channel until you remove it from Slack.
A Slack mention or linked direct message can include files, including files shared earlier in a followed thread while Slack still makes them available. Ask the agent to use a file when needed; file and message limits apply, and skipped or failed attachments appear in the conversation. Downloaded files remain available for later work in that conversation. Treat channel files as untrusted input. The agent can also attach an artifact it created to a Slack reply.
A long Slack reply arrives as several messages in order; nothing is cut off. The agent's footer appears on the last message. For an outgoing Slack reply, Accepted by Slack means Slack accepted the request, not that a teammate received or read it. If the outcome is Delivery unknown, check Slack for the original message before asking for another send.
Slack shows when the agent is working. Choosing Stop cancels work for that Slack thread without interrupting other connected threads or channels. The thread shows a short confirmation.
If Manage agent → Channels → Slack shows Upgrade permissions, a workspace admin must continue to Slack and approve the added permissions for abilities such as incoming files and thread follow. The existing app, connected channels, and conversation history stay in place. Until the upgrade is approved, the coworker uses its existing permissions and its first reply explains that thread follow is unavailable. That reply links to Upgrade permissions in d5s. Members who cannot manage the connection should ask a workspace admin.
Channel members also answer the agent's approval requests when its conversation-bar approval menu is set to Ask for approval. When a run started in that channel pauses on a connector operation whose policy is Ask, the agent posts an approval card in the thread and any member of the channel can allow it once, allow it for that run, or deny it. An unanswered card is denied after 15 minutes. The same agent setting applies to every connected channel and to scheduled wakeups. Ask-gated actions in scheduled and heartbeat runs remain blocked rather than creating a card that waits for someone to return. Event-triggered tasks can leave approval requests in the agent conversation for an authorized person to answer. Allow all skips these Ask cards everywhere the agent works. Gmail and Outlook sends, new, changed, and cancelled Google Calendar and Outlook events, and Google Drive sharing changes and deletes follow Connectors instead: in every run of the agent, each waits on a card that shows the exact message, event, or file, under both settings. Explicit Deny and capability boundaries continue to win. See Connectors for what an approval grants.
When the agent needs a choice before it continues, it can ask a question in the connected channel thread. The question card shows each question with its options and an optional box for your own answer. Any member of the channel can choose Submit answers; the first answer counts, and the agent continues the work with it. You can also type a reply in the thread instead; mention the agent if it no longer follows the thread. An unanswered card expires after 24 hours; mention the agent to continue. In a direct message, the agent asks in plain text.
In a bound channel the agent can @-mention people on request. The agent can mention only verified members of the bound channel. People elsewhere in the Slack workspace are never disclosed or tagged.
After a mention opens a thread, the coworker follows that thread: human follow-ups in it reach the agent without another mention, so the conversation flows like one with a colleague. The agent's first reply has a short note that explains this. An app that still needs the permission upgrade shows the upgrade prompt instead and does not follow. It replies only when a message asks for its input and stays silent on acknowledgments and side conversation, though an explicit mention always gets a reply. A follow ends on its own after 72 hours of thread quiet, immediately when someone reacts to one of the agent's messages in the thread with :no_bell:, or when Thread follow is switched off for that channel under Manage agent → Channels → Slack; a fresh mention in the thread starts it again. d5s receives only mentions and messages in followed threads.
Messages from third-party Slack bots never wake an agent.
Messages from d5s and connected channels use the same agent and continuing conversation. Slack, linked Telegram, and email activity remains attributed to its source and reply destination. The agent uses its configured capabilities and shared context across those surfaces, within their permissions.
An agent replies on the surface where each message arrived. A reply to a message sent in d5s stays in d5s unless your request, the agent's standing instructions, or a configured schedule calls for external delivery. Connecting a channel or having earlier channel messages in the conversation does not by itself request a copy there. Proactive messages follow your requests, standing instructions, or configured schedules, within the destination's permissions.
Everyone who can open an agent in d5s can review activity from its currently connected Slack channels, even when their own Slack account is not linked or is not a member of those channels. This is read access to the agent activity history, not Slack action authority: sending, replying, cancelling channel work, and other provider actions still enforce their own identity, channel, and live-membership checks. Connect private Slack channels only to agents whose d5s viewers should be able to inspect that channel activity.
Every agent-authored Slack message and native agent email visibly identifies the sender as an AI agent. Emails from a d5s-managed address use a compact signature with the agent’s avatar and AI agent identity. Where branding is enabled, Request access opens the verified recipient flow for colleagues, while Get started leads to normal signup for recipients who want d5s for their own team. Connected Gmail mail retains its existing AI identifier and application link. Paid email unbranding can remove the separate d5s footer and link, but it cannot remove the AI identity.
In the agent sidebar, select a row under Connectors to open the agent’s connector access settings. Select a row under Channels to open that channel’s settings directly.
Give an agent its own Teams identity
For step-by-step setup, see Add an agent to Microsoft Teams.
Anyone authorized to view an agent in d5s can read activity from its currently bound Teams channels while the Teams app stays installed, even without a linked Teams account. This only grants history access. Sending, approvals, and cancellation retain their separate provider authorization checks.
Open the agent's Channels → Microsoft Teams panel. It opens with a card that shows the bot name, the handle it will get, and a Create @Agent in Teams button. The bot name starts as the agent's name; select it to change it (up to 29 characters). An organization owner or admin connects Teams provisioning once, then selects that button. After the app exists, the panel shows a four-step guide: create the Teams app, add it to a team, approve if Microsoft asks, and try a mention. In the agent creation wizard, Teams setup has two steps like Slack: Give Agent a Teams app, then Add Agent to a team. The named identity uses the bot name and the agent's d5s description and avatar. Team members mention that agent directly; they do not need to mention a shared d5s bot or type an agent selector.
The shared d5s Teams app sits below that card behind Use the shared d5s app
instead; Back to Teams app returns to the card. An organization owner or
admin connects the Microsoft 365 tenant there with Connect Microsoft Teams
and approves Microsoft's consent screen. One tenant connection serves every
workspace in the organization. After consent, d5s reopens this view at
Finish setup: select Download app package, upload the package in Teams
and add d5s to a team, then mention @d5s once in each channel so that channel
becomes available on an agent's Channels page. Once the tenant is connected,
Reconnect and Disconnect stay on its card. Other members see that an
organization admin must set up Teams first.
Setup can take a minute. If it fails, the panel shows the cause and Retry.
The status stays Not connected until the app is installed in a team. Use Open in Teams to select a team and finish Microsoft's consent flow. The panel checks the installation on its own while it is open; Check status checks at once. After installation, mention the agent in an intended channel. That channel then appears under Channel conversations; activate it for that agent. One named identity can be used in multiple channels, and different named agents can share a channel.
Teams installs apps at team scope. Activating selected channels in d5s controls where that agent runs; it does not narrow the permissions granted by Microsoft. Follow replies requires the applicable Microsoft message permission. Use Check status first when a connected app shows Upgrade permissions to verify its current permissions. If the upgrade is still required, select Upgrade permissions and approve in Teams. Only enabled channels and threads the agent has joined get follow-up turns. Otherwise, mention the agent again.
A long Teams reply arrives in order as several messages of about 4,000 characters each.
Sync profile publishes the bot name and the agent's current description and avatar. It does not confirm that an existing team installation has updated; that installation may need an update in Teams before it shows the changes. Removing a channel stops the agent there. Disconnecting an identity stops the agent receiving and sending in Teams. d5s history stays, and no other agent takes its place. If provider cleanup needs a retry, the panel reports that state. When the panel warns that a credential is nearing expiry, an admin can select Renew now without copying or entering a secret.
An agent's normal response stays in d5s. The agent posts to Teams only when asked, under its approval setting. The current custom-app flow supports standard team channels. It does not claim private or shared channel membership support, Teams direct messages, or Teams file transfer.
Review calls and transcripts
For step-by-step setup, see Bring an agent into a meeting.
Every agent can join Google Meet, Microsoft Teams, and Zoom calls as a listen-only participant. It appears in the call as Agent name · d5s. It never speaks and records no audio; it keeps only the transcript. When the call ends, the meeting service's copy of the transcript is deleted, and the transcript stays in d5s. Select the phone in the agent's capability sidebar to open Meetings. The panel separates History from Auto-join and keeps its header and tabs visible while the selected section scrolls. While the agent is attending a call, the phone takes a green live treatment and a Live section appears above History with the call, its provider logo, when the agent joined, and how long it has been listening. Each call shows the logo of its meeting service (Google Meet, Microsoft Teams, or Zoom) so you can tell where the agent joined without reading the title. Ended calls remain in pages of 20 so a long-running agent's earlier meetings stay reachable. Select a live call to open its meeting view. After you select Join as listener, d5s opens the new call's meeting view. Select an ended call to see its title, time, and duration, then open its notes.
Leave call in the call's header asks the agent to leave now, after a confirmation.
While a call is live you can whisper a question in the Ask box, for example to ask what has been decided so far. The answer appears in the Meetings panel or the meeting view, for you only; nothing is spoken in the meeting or posted in the agent's shared conversation. Whispers use a fast, light model, not the agent's selected model, and they use credits. If the whisper box says whisper is not available for this workspace's models, use Ask agent. Use Ask agent whenever you want the discussion to continue in the shared conversation.
The meeting view is a full page for that one call, with live notes on one side and, during the call, the Ask box on the other. Select Add to notes on a private answer to send it to the notes; this needs edit permission. Leave call in its header asks the agent to leave now, after a confirmation; it needs permission to run the agent.
The language control in the meeting view sets the language of the call. Automatic is the default and detects the language of each part of the speech. With one language, the agent transcribes only in that language. With several languages, the first is the main language: when the agent hears a language that is not in the list, it transcribes that part again in the main language. A change applies to new lines in a few seconds; lines already written do not change. Changing the language needs permission to run the agent.
While the call is live, the agent updates the notes about once a minute from the new transcript. It changes only lines it wrote; a line a person wrote or changed stays as it is. A mark beside each line shows who wrote it last: the agent's avatar or a person's initials. The bar above the notes shows when the agent is updating them, or that it paused because the owner has no credits or the agent reached its daily budget. These updates use the agent's model and are billed to the agent's owner. A person with edit permission can select Edit to change the notes, then Done. One person edits at a time: the others see who is editing, and Add to notes is not available until that person is done. Editing also ends after two minutes without input. On a phone the same page uses a separate tab for each pane: Notes and Ask. Avatars in the header show who in d5s has the meeting view open, not who is in the call. Once the call ends, the page becomes a read-only record: the notes are saved once to the agent's Files, and a person with edit permission gets an Edit in Files link.
Meetings also reports the meeting-entry lifecycle. Waiting for host means the listener reached the lobby and asked to join. If the host refuses it, History shows Declined by host. No one joined means the listener reached the lobby or the call, but the call ended without any speech: nobody admitted the listener, nobody came, or everyone stayed muted. Call failed means a provider failure before the listener reached the lobby, or after it had captured speech. These states explain what happened when a transcript is absent or incomplete.
The agent does not stay in an empty room. The listener cannot see who is in the call, so it leaves on its own after it hears no one for 10 minutes. Muted participants count as silence, so a long muted wait also ends the call. History then shows Left empty room, the transcript captured up to that point is kept, and the completion card in the conversation reads Call ended · room was empty. If nobody spoke during the whole call, History shows No one joined instead.
Under Auto-join, review the connected calendars, joining rule, and upcoming meeting switches. An externally organized meeting can still require the host's approval, especially when the agent's meeting address is not on the invitation. Add the address shown in Auto-join as a guest when possible, and make sure the event also appears on one of the selected calendars.
After a transcript is ready, the agent adds a compact Call complete card to its continuing conversation with the meeting service logo, the call title, duration, and short outcome. When the agent keeps the call's notes, it finishes them first, so the card can come up to 10 minutes after the call. The agent works from the call's final notes and the transcript before it suggests a follow-up. Without final notes, it reads the transcript. Later in the conversation it can read the call's notes again, so its answers match them. Open notes opens the call's meeting view with its notes. When no one joined, the card reads No one joined the meeting, says how long the agent waited, and has no Open notes. This card uses no credits, and later turns still know the meeting did not happen. Use Ask agent when you want to discuss what happened or request the next task in the normal conversation.
The After each transcript line at the top of Meetings shows, in one line, what that agent should do with future transcripts; select Edit to change it. By default it posts a short outcome in the conversation and asks before taking action. With the default, the agent can propose follow-up emails and calendar events for your approval, and it does nothing else. When the instruction asks for follow-ups, the agent does them with its own tools, such as email, Slack, calendar, or tasks. Each action follows the agent's normal approval rules. An action that needs your approval waits for your decision, or the agent lists it in the outcome as a suggestion. A call that no one joined has no transcript, so this instruction does not run for it. Edit this instruction when you want a different analysis or handoff; processing the transcript itself does not grant new connector permissions or authorize an external action.
Agent email can keep a d5s address, a dedicated Gmail mailbox, and a dedicated Outlook mailbox connected at the same time. Open Manage channels → Email and select the provider tab to edit that mailbox's incoming and outgoing address rules. New agents created by signed-in users with verified email receive an automatic d5s inbox where available, with organization business-domain or exact personal-address rules and approval required before sending. Manual mailbox setup starts with empty rules; a channel manager can edit the allowed people or domains, or explicitly permit anyone. Saved outgoing rules can authorize sends without individual approval. Blocked senders take precedence over incoming permissions, including the optional reply exception for people that mailbox successfully emailed. Existing policies remain until explicitly changed. Everyone who can open the agent can audit its incoming and outgoing email cards. Read Agent email before enabling it.
Runs remain separate
Direct messages, manual wakes, and scheduled work create turns in the same session. A scheduled mailbox check creates a turn only when it finds new mail. Each accepted turn still has an independent run lifecycle, tool activity, and cost.
A mention, direct message, command, or email to the agent gets an answer in the same chat thread or email conversation. If the agent did not reply there itself, its final answer is sent there when the run ends, unless the agent decided that no reply was needed. A run that ends without an answer sends "No answer was returned. Ask again if you still need one." A failed run sends one short failure message. Nothing extra is sent while the agent waits for your answer or approval, or after you stop the run. In a followed thread, the agent can still stay silent.
In its own conversation, an agent can take up to 500 steps per run by default. This applies to direct messages and scheduled wakeups. A step is one model response, which can include tool calls. Runs can finish sooner or reach a time limit. A run that uses all of its steps says what is left; select Continue under the reply, or reply continue, to start the next run from that point. Approval requirements still apply.
An agent handles one piece of work at a time. New messages may join current work or wait in the queue, and scheduled wakeups continue when the agent is available. In the agent conversation, waiting messages show inside the composer, three at a time. Choose N more to inspect more, Steer to bring one waiting message forward and ask the current run to stop, Edit to put one waiting message back in the composer, or × to delete that waiting message. A message already being processed cannot be steered or deleted from the queue. When the organization is out of credits, the queue shows Waiting for credits and the credits notice appears above the composer. The waiting message starts after credits are added.
The daily budget applies to that agent's manual, autonomous, delegated, and named Project work for the current day in its configured timezone. Reaching the cap blocks the agent from starting subsequent work that day; it does not permanently pause the agent.
Continue to wakeups and schedules for the exact trigger, retry, concurrency, and cost behavior.
Archive an agent
Archive an agent that you no longer use but want to keep. On the Agents page, open the ⋯ menu on the agent card and select Archive…. The same menu has Edit agent and Pause or Resume. Anyone who can edit the agent can archive it.
An archived agent stops work:
- Its scheduled wakeups do not run.
- Messages in its channels get no reply.
- Nobody can start new work in its conversation.
If the agent reported that an approved video is processing in the background, that video can still finish. Its conversation, memory, files, and settings stay. You cannot archive an agent while a run is in progress. Stop the run first.
To see archived agents, select Show archived (the archive icon next to New agent). An archived agent card has Unarchive and Delete…. Unarchive makes the agent active again with its schedules and channels. An agent that you paused before you archived it stays paused. Delete removes the agent permanently.
When you open an archived agent, its conversation history shows with an Unarchive button. The message box stays disabled until you unarchive the agent.
Contributing to a dashboard
Type @ in dashboard chat and select an accessible workspace agent to ask it
for a specific change. Its reply stays in the dashboard conversation under
that agent's name. An editor reviews and publishes the draft. The agent's private
conversation and credentials are not shared.
On an existing widget board, include a widget selection to focus the request. The agent can inspect accessible widgets and sources. A completed named contribution adds a dashboard link to the agent's home activity, without copying the dashboard conversation there. From its own chat, an agent can inspect an accessible dashboard and update its definition. App changes must be prepared in the app dashboard's conversation. See Dashboards.
Save finished files locally
On supported macOS desktops, choose folders and grant an agent Read only, Write only, or Both access. The agent uses explicit file operations during your Desktop conversations; presenting an artifact does not automatically save it locally. See Work with files on your Mac.
Agents with Google data
Google content can be used for the work you authorize in this workspace. Tasks using AI may send relevant content to the AI providers used by the workspace. Disconnecting does not erase information already retrieved. See Google data protection for AI processing and stored-data guidance.
Use a Pentest VM
If the chat offers Pentest VM, the agent can write scripts and run commands in that conversation's VM. It uses ordinary file, edit, and command tools. Ask it to export its report before the VM stops or expires.
Workspace Targets and notes are optional instructions. They do not enforce network restrictions. Keep your request within the scope you are authorized to test. See Start a security test.
Wake from incoming events
In the agent’s Webhooks settings, event triggers can start work from a merged GitHub PR, a published release, a Grafana alert, or an authenticated JSON webhook from another service. Select Sources → Add source to connect a service. Generic webhook is selected by default. Then select New trigger, choose a filter, and give the agent instructions. Set up event triggers.