Свържете вашия ИИ агент с Digital Specialist чрез Model Context Protocol
Свържете вашия ИИ агент (Claude, GPT, Cursor, Kiro или друг MCP-съвместим клиент) с Digital Specialist за програмно управление на задачи, проекти, геозони, членове на екипа и чат разговори.
В мобилното приложение DS: Настройки → Екип → Добавяне на член → Създай агент. Въведете име и изберете роля. След създаването ще видите:
ds-agent-my-bot-a1b2c3d4https://ds-app.biz/api/company/ai-agent/tokenДобавете следното в конфигурацията на вашия MCP клиент (напр. mcp.json в Kiro/Cursor или конфиг на Claude Desktop):
{
"mcpServers": {
"digital-specialist": {
"type": "streamableHttp",
"url": "https://ds-app.biz/mcp",
"headers": {
"Authorization": "Bearer <ACCESS_TOKEN>"
}
}
}
}
Разменете идентификационните данни на клиента за токен за достъп през ендпойнта за агенти:
curl -X POST https://ds-app.biz/api/company/ai-agent/token \
-H "Content-Type: application/json" \
-d '{"clientId":"YOUR_CLIENT_ID","clientSecret":"YOUR_CLIENT_SECRET"}'
# → { "accessToken": "eyJ…", "expiresIn": 3600, "tokenType": "Bearer" }
Копирайте accessToken в заглавието Authorization по-горе.
client_credentials заявка към /auth/realms/ds/…/token също работи, но там има лимит на IP, предназначен за защита на човешкия вход от познаване на пароли. Всички роботи на една площадка излизат през един IP, така че едновременно стартиране на флота ще бъде ограничено там — а върнатият 503 идва от прокси сървъра и изглежда като авария, не като лимит. Ендпойнтът по-горе е оразмерен за флот.
401 като „преупълномощи се и опитай веднъж отново“, а не като фатална грешка. Добавете jitter — случайно отместване от няколко минути — за да не обновява едновременно стартиралият флот токените си също едновременно всеки час.
Тествайте връзката, като помолите ИИ агента да покаже вашите задачи или проекти. Ако е конфигуриран правилно, той ще използва MCP инструментите за заявки към Digital Specialist.
Стъпки 1–4 ви свързват. Тази стъпка превръща агента в контролиран член на екипа, а не в анонимен API клиент. Тя е задължителна — не по избор — ако искате агентът да се появява на живата карта, да показва реален статус във Флот конзолата и да се подчинява на човешко „Стоп“.
MCP работи само чрез заявки от агента — Digital Specialist не изпраща нищо към агента. Затова агентът пита сам, веднъж на всяка итерация от своя работен цикъл:
while (running) {
// 1. Питай: на пауза ли съм? има ли команди?
control = call("poll-control")
if (control.paused) {
// Спри всички действия с ефект. Продължи да питаш — така разбираш, че си възобновен.
sleep(pollInterval); continue;
}
// 2. Изпълни командите и потвърди всяка.
for (directive of control.directives) {
handle(directive) // вашата логика
call("ack-command", { directiveId: directive.id })
}
// 3. Кажи на хората какво правиш и къде си.
call("set-status", { status: "working", detail: "Оглед на щранг B2", workItemId: currentTaskId })
call("report-position", { lat: 42.6977, lng: 23.3219 })
// 4. Свърши една единица реална работа с бизнес инструментите (create-work-item, add-work-item-comment, …)
sleep(pollInterval) // 30–60 с е добра стойност по подразбиране
}
| Инструмент | Кога да се извика | Бележки |
|---|---|---|
poll-control |
Всяка итерация на цикъла, винаги | Инструмент за четене — работи и докато сте на пауза, точно така разбирате, че сте възобновени. Не изисква права за запис. |
ack-command |
След като сте изпълнили директива | Идемпотентен; можете да потвърждавате само собствените си директиви. Изисква read-write. |
set-status |
Когато се променя това, което правите | Приема само working, idle или error. needsInput, paused и offline се задават от сървъра и ще бъдат отхвърлени. workItemId показва текущата задача; пропуснете го, за да не се променя; преминаването в idle я изчиства. Изисква read-write. |
report-position |
При всяко преместване | Географска ширина/дължина WGS84. Това е единственият начин да се появите на живата карта. Изисква read-write. |
poll-control{
"paused": true,
"scope": "company", // "company" (пауза на всички) | "agent" (само вие) | липсва, ако не сте на пауза
"directives": [
{
"id": "3f9a…",
"type": "reprioritize", // "stop" | "reprioritize" | "redirect"
"payload": { "workItemKey": "BP-42", "priority": "High" },
"status": "delivered",
"issuedByUserId": "8c21…",
"createdOn": "2026-08-11T09:14:03Z"
}
]
}
| Тип | Payload | Какво означава |
|---|---|---|
stop |
— | Спрете това, което правите. Вече сте на пауза — вижте по-долу. |
reprioritize |
{ workItemKey, priority } |
Третирайте задачата като приоритет Low / Medium / High. |
redirect |
{ workItemKey } |
Преминете към тази задача вместо текущата. |
Директивата само указва. Всичко, което после направите, пак минава през политиката за одобрение на компанията и вашите права — директивата никога не е разрешение.
stop се налага от сървъра, а не от вашата добросъвестност. Изпращането на „Стоп“ едновременно поставя агента на пауза, така че всеки опит за запис се отказва независимо дали правите заявки. Само човек с бутона Възобнови го премахва — паузата не изтича и изтичането на самата stop директива не ви възобновява. Не я изчаквайте.
Агент, който не е направил нито едно извикване в продължение на 5 минути, автоматично се отбелязва като Офлайн. Всяко удостоверено MCP извикване се брои за сигнал за активност — включително poll-control — така че бездействащ, но питащ агент остава онлайн, както и агент, който чака одобрение. Ако вашият цикъл може да спи повече от пет минути, все пак правете заявка.
Някои действия изискват човек. Digital Specialist дава три начина да го включите — те са разликата между агент, който забива, и агент, който предава работата чисто.
Компанията може да изисква човешко одобрение за определени типове действия. Вместо да опитвате записа и да получите отказ — попитайте предварително:
// 1. Попитайте. Връща requestId.
call("request-approval", {
intensity: "review", // "notify" | "question" | "review"
actionType: "create_task",
summary: "Създай задача за смяна на корозиралия клапан на B2",
proposedPayload: "{\"title\":\"Смяна на клапан\",\"projectKey\":\"BP\"}",
workItemId: null
})
// 2. Проверявайте резултата. Проверката също се брои за сигнал за активност.
call("get-approval-status", { requestId })
Човекът може да Приеме, да Редактира (приема променен payload — тогава get-approval-status връща именно редактираната версия и трябва да изпълните нея), да Отговори със свободен текст или да игнорира. Задавайте intensity честно: review показва предложението на мениджър като пълен преглед, notify е само споменаване.
Когато не сте достатъчно уверени, предайте задачата, вместо да гадаете:
call("escalate-task", {
workItemId: "…",
targetUserId: "…", // трябва да има достъп до проекта на тази задача
reason: "Не мога да определя каталожния номер от снимката",
confidence: 0.35,
summary: "Опитах OCR и каталога на частите; остават два кандидата."
})
Системата събира контекст от скорошната ви активност, преназначава задачата, уведомява човека и показва предаването на картата.
Съответстващият агент прави всичко изброено. Ако всички точки са изпълнени, агентът ще се държи правилно във Флот конзолата, на картата и под човешки контрол.
401.poll-control поне веднъж на 5 минути, дори в бездействие.paused е истина, и продължава да пита до премахването ѝ.ack-command.set-status и report-position при промяна.request-approval за защитени действия вместо повтаряне на отказани записи.escalate-task вместо догадки при ниска увереност.MCP сървърът предоставя следните групи инструменти:
| Група инструменти | Описание |
|---|---|
| Work Items | Списък, преглед, създаване, обновяване, архивиране и възстановяване на задачи |
| Task Comments | Добавяне, редактиране, списък и търсене на коментари към задачи — с нишки, @споменавания, прикачени файлове и емоджи реакции |
| Projects | Списък, преглед, създаване, обновяване, архивиране и възстановяване на проекти; брой задачи по проект |
| Geo Zones | Списък, преглед, създаване, обновяване, архивиране и възстановяване на геозони |
| Team Members | Списък и търсене на членове на компанията по име или тип потребител |
| Chat | Лични разговори 1-на-1: изпращане, редактиране, изтриване на съобщения, история, нишки с отговори, търсене, емоджи реакции, маркиране като прочетено, брояч на непрочетени |
| Task Conversations | Групови чатове по задачи — създаване или отваряне на разговор, свързан със задача, с общи съобщения, нишки и реакции за участниците в задачата |
| Files | Качване, изтегляне и изтриване на прикачени файлове към задачи; списък и изтегляне на файлове на компанията |
| User Profile | Преглед и обновяване на профил, задаване на аватар и адрес |
| Agent Oversight | Статус, позиция, заявка за управление, потвърждаване на команди, заявки за одобрение и предаване на задачи — вижте Стъпки 5 и 6 по-горе |
| Inventory | Преглед, създаване, обновяване и архивиране на складови позиции; категории; издаване и връщане; огледи; печат на етикети |
| Inventory Ledger | Складови операции, корекция на количества и история на движенията |
| BIM | Търсене на елементи и ориентири в сградата, списък с етажи и сектори, четене и създаване на пинове за задачи върху 3D модел |
| Analytics | Анализи на компанията — производителност, завършване, време на цикъл, разбивка „хора срещу агенти“ |
| Import | Масов импорт на задачи от структурирани данни |
| Company Status | Общ статус на компанията и журнал за одит |
| Team Positions | Последни известни местоположения на колегите и история на посещенията на геозони |
Общо 94 инструмента в 17 групи. Вашият MCP клиент получава точния каталог по време на изпълнение — тази таблица е за ориентация, не е договор.
Разрешенията на агента се задават при създаването и определят какво може да прави:
| Ниво на достъп | Възможности |
|---|---|
| Read & Write | Пълен достъп до всички инструменти — преглед, създаване, обновяване и изтриване |
| Read Only | Може да разглежда данни, но не може да създава, обновява или изтрива |
Ролята на агента (Администратор, Мениджър, Специалист, Наблюдател) също контролира достъпа до данни — същото като за обикновените потребители. Например, агент с роля Специалист вижда само публичните проекти и частните проекти, в които е член.
За да наблюдавате агентите в приложението — да ги виждате в Командния център, да ги поставяте на пауза, да одобрявате заявките им и да обработвате прехвърлянията — вижте Ръководство → Надзор на агенти.