dt-loom
dt-loom · приватный контурprivate perimeter

dt-loom — это рабочее место с ИИ, которое стоит у вас, а не в чужом облаке.dt-loom is an AI workspace that runs on your hardware, not in someone else's cloud.

Внутри не просто чат: голос, звонки, почта, документы, поиск. И всё это помнит ваши дела, ваших клиентов и ваши файлы — потому что ничего не уходит наружу.It's more than a chatbot: voice, calls, email, documents, and search. All of it remembers your work, your clients, and your files, because nothing ever leaves your perimeter.

Доступ с любого устройства: на компьютере — в браузере, на телефоне — своё приложение для Android, которое обновляется из вашего же контура, без магазина приложений.You get in from any device: a browser on the desktop, our own Android app on the phone, updated from your own perimeter, with no app store in the loop.

Модели работают на вашем железе, у вас в периметре. Никакой внешний сервис в вашей работе не участвует и не видит её.The models run on your hardware, inside your perimeter. No outside service takes part in your work or gets to see it.

А когда система всё-таки идёт в интернет — за справкой, за реестром, за проверкой контрагента — она идёт туда обезличенно. Ни сайт, ни провайдер не видят, что приходила ваша компания.And when the system does need the internet, to look up a regulation, check a registry, or vet a counterparty, it goes there anonymously. Neither the website nor the provider can tell the request came from your company.

Чем это отличается от ChatGPT, Claude или DeepSeek в браузере? Не умом модели — здесь примерно то же самое. Отличается тем, что сюда можно занести то, что в браузер вы не понесёте: договор, переписку, карту клиента, запись разговора. Там у сервиса остаётся запись, кто и что спросил. Здесь такой записи не существует ни у кого.How is this different from ChatGPT, Claude, or DeepSeek in a browser? Not in how smart the model is; that's about the same here. The difference is what you can bring to it, things you'd never paste into a browser, like a contract, an email thread, a client record, or a recorded conversation. A cloud service keeps a log of who asked what. Here, nobody keeps that log, us included.

Облачный ИИ знает всё, кроме вашего бизнеса. dt-loom знает ваш бизнес и никому о нём не рассказывает.Cloud AI knows everything except your business. dt-loom knows your business and tells no one about it.

Перейти в приложение →Go to app → Скачать APKDownload APK вход по паролюpassword required
контур лабораторииlab perimeter12.10.2026
шифрованных трубencrypted tunnels20 / 20
эпизодов обрыва связи за 16 сутокconnectivity drops in 16 days221
автоматических переподключенийautomatic reconnects1 248
медиана возврата связиmedian time to reconnect16 с16 s
потребовали человекаneeded human intervention0
падений за 5 месяцев работыcrashes in 5 months of operation0
возврат связи после перезагрузки узла, 08.10reconnect time after a node reboot, Oct 82 мин 21 с2 min 21 s
внешняя пробаexternal probeкаждые 5 минevery 5 min
01 / принципыprinciples

ПринципыPrinciples

Суверенность важнее скорости.Sovereignty over speed.

Это первый принцип, из него выводится всё остальное. Где есть выбор между «быстрее» и «внутри своего контура» — выбирается контур. Чужое облако отдаёт отклик быстрее и дешевле ровно потому, что работает на чужом железе и по чужим правилам; за это платят тем, что работа компании становится записью в чужой базе. Здесь так не делают: модели, данные, расшифровки, индекс и память тем живут на узлах, которыми распоряжается владелец.This is the first principle, and everything else follows from it. Whenever there's a trade-off between "faster" and "inside your own perimeter," the perimeter wins. Someone else's cloud responds faster and costs less precisely because it runs on someone else's hardware under someone else's rules. The price is that your company's work ends up as a record in a stranger's database. We don't work that way: models, data, transcripts, the index, and topic memory all live on nodes you control.

Эксперт должен отвечать как специалист, а не как чат.The Expert should answer like a specialist, not a chatbot.

Разница не в размере модели, а в том, что вокруг неё: дисциплина источников, метки уверенности у каждого вывода, дата у каждого «сейчас» — и десятки инструментов под рукой, от правовой базы и архива документов до зрения и расшифровки. Это ближе к работе человека с научной школой и лабораторией, чем к разговору с языковой моделью: он не пересказывает по памяти, а идёт и проверяет.The difference isn't the size of the model but what's built around it: source discipline, a confidence label on every conclusion, a date on every "now", and dozens of tools at hand, from a legal database and a document archive to vision and transcription. It's closer to working with someone who has academic training and a lab of their own than to chatting with a language model. The Expert doesn't paraphrase from memory; it goes and checks.

Всё, что выходит наружу, выходит обезличенно.Anything that goes out goes out anonymously.

Справка, реестр, проверка контрагента — наружу уходит запрос, а не тот, кто его задал, и не разговор, в котором он возник.A regulation, a registry, a counterparty check: what goes out is the query, not the person who asked it or the conversation it came from.

Инструмент вместо пересказа.A tool, not a paraphrase.

Факт приносит инструмент с проверяемым результатом; там, где инструмента нет, ответ помечается как экспертная оценка, а не выдаётся за справку.Facts come from a tool whose result can be checked. Where there's no tool for the job, the answer is labeled expert judgment instead of being passed off as established fact.

Утверждение без замера не считается.Unmeasured claims don't count.

Скорость, качество и надёжность названы цифрами, с указанием, чем они мерены. Чего не мерили — так и называется.Speed, quality, and reliability are given as numbers, along with how they were measured. Anything we haven't measured is labeled as unmeasured.

02 / харнесharness

Харнес: почему ответ получается рабочимHarness: why answers hold up

Размер модели задаёт потолок. Рабочим ответ делает конструкция вокруг неё.Model size sets the ceiling. What makes an answer usable is everything built around the model.

01

Сначала источник, потом утверждение. Проверяемый факт — норма, цена, дата, версия — либо сверяется в том же ответе, либо прямо помечается как «по памяти, не сверено». Каждый вывод несёт метку: подтверждено, экспертная оценка, требует проверки.Source first, claim second. A checkable fact (a rule, a price, a date, a version) is either verified in the same answer or explicitly marked "from memory, unverified." Every conclusion carries a label: confirmed, expert judgment, or needs checking.

02

Дата у каждого «сейчас». Для меняющихся данных называется момент, к которому относится значение. Расхождение источников читается как признак устаревшего материала, а не как «вилка».A date on every "now." For data that changes, we state the point in time the value refers to. When sources disagree, we read that as a sign of stale material, not as a range.

03

Право сказать «не знаю» — часть конструкции. Остановка при нехватке данных разрешена явно. Это не вежливость, а тормоз выдумок.The right to say "I don't know" is part of the design. The model is explicitly allowed to stop when it runs out of data. That isn't politeness; it's a brake on making things up.

04

Меньше лишнего в контексте — меньше выдумок. Контекст подаётся по необходимости, а не «на всякий случай»: лишний справочный материал рядом с задачей даёт модели правдоподобные имена для ошибок.Leaner context means fewer fabrications. We supply context when it's needed, not just in case. Extra reference material sitting next to a task gives the model plausible names to pin its mistakes on.

05

Память темы растёт из правок человека. Уточнённые в работе правила предметной области становятся доменной надстройкой и не теряются между разговорами.Topic memory grows from your corrections. Rules for your field that you refine as you work are added to a domain layer and carry over from one conversation to the next.

06

Каждая задача — своим инструментом. Документы разбираются инструментами, а не пересказом по памяти. Долгая работа идёт в фоне с видимым прогрессом.Every task gets the right tool. Documents are parsed with tools, not paraphrased from memory. Long jobs run in the background with visible progress.

07

Ответ заканчивается делом. Без «хотите, я ещё…», без воды и эмодзи. Что делать дальше, решает человек.Answers end on substance. No "would you like me to…," no filler, no emoji. What happens next is up to you.

03 / голосvoice

Голос: расшифровка, разговоры, синтезVoice: transcription, calls, and speech synthesis

5 301
размер корпуса замеров голосового контураsize of the voice-pipeline measurement corpus
0,29 · 0,95
доля длительности: слова · кто говоритof recording length: words · speaker ID
34,6 %
ошибка разметки у лучшей моделиspeaker-labeling error, best model
5,2×
быстрее мультимодальная, но 44,8 % ошибокfaster with a multimodal model, but a 44.8 % error rate

Голос не покидает контур. Голосовые, записи звонков и разметка участников обрабатываются открытыми моделями на узлах контура. Ни один звуковой фрагмент не уходит во внешний сервис распознавания.Voice stays inside the perimeter. Voice messages, call recordings, and speaker labeling are handled by open models on nodes inside the perimeter. Not a single audio fragment is sent to an external speech recognition service.

Два тракта, потому что у задач разная цена. Короткое голосовое идёт в быстрый тракт без разметки участников. Длинные записи, диктофон и звонки — в тяжёлый тракт с разметкой. Тракт выбирается по измеренной длительности звука, а не по типу файла.Two pipelines, because the jobs differ in cost. A short voice message goes through the fast pipeline, without speaker labeling. Long recordings, voice-recorder files, and calls go through the heavy pipeline, with labeling. We choose the pipeline by the measured length of the audio, not by file type.

Разметка участников дороже самой расшифровки: распознавание слов занимает 0,29 длительности записи, определение «кто говорит» — 0,95. Поэтому разметка включается там, где её результат читают.Speaker labeling costs more than the transcription itself: word recognition takes 0.29 of the recording's running time; identifying who is speaking takes 0.95. That's why we turn labeling on only where someone actually reads the result.

Расшифровки доступны Эксперту и Секретарю целиком. Текст каждого голосового и каждой записи ложится в рабочий слой темы, а не остаётся вложением: Эксперт ищет по всем расшифровкам, сводит несколько разговоров в одну картину и цитирует нужное место, Секретарь вынимает из них поручения, сроки и договорённости. Надиктованное голосом работает так же, как написанное руками.The Expert and the Secretary have full access to transcripts. The text of every voice message and recording goes into the topic's working layer instead of sitting as an attachment. The Expert searches across all transcripts, builds one picture from several conversations and quotes the exact passage; the Secretary pulls out tasks, deadlines, and agreements. Anything dictated works just like anything typed.

Звонки идут через собственный медиасервер, каждый участник записывается отдельной дорожкой. После разговора дорожки расшифровываются, реплики раскладываются по времени, и в беседу приходит протокол вида [MM:SS] участник: текст.Calls run through our own media server, with each participant recorded on a separate track. After the call, the tracks are transcribed, the turns are put in time order, and a transcript in the form [MM:SS] participant: text is posted to the conversation.

Исходное аудио хранится, пока транскрипт не готов — сорванную расшифровку можно повторить.Source audio is kept until the transcript is ready, so a failed transcription can be rerun.

Распознавание детерминированно: одна и та же запись внутри одного процесса даёт побитово одинаковый результат (замер снят на прежнем поколении узлов).Recognition is deterministic: within a single process, the same recording produces a bit-identical result (measured on the previous generation of nodes).

Синтез речи локальный, одним фиксированным голосом с закреплённым зерном генерации.Speech synthesis runs locally, in one fixed voice with a pinned generation seed.

Цифры: показатели голосового контура сняты на корпусе из 5 301 расшифрованного сообщения; в контрольном окне журнала — 0 обрывов на стороне сервиса из 2 442 заявок; ошибка разметки участников у лучшей из проверенных моделей — 34,6 % речи приписано не тому голосу. Мультимодальная модель быстрее в 5,2 раза, но ошибается чаще (44,8 %), поэтому она размечает структуру разговора, а атрибуцию реплик оставляет специализированной модели.Figures: voice pipeline metrics were measured on a corpus of 5,301 transcribed messages. Control window of the job log: 0 service-side failures out of 2,442 jobs. Speaker attribution error for the best model tested: 34.6 % of speech assigned to the wrong voice. A multimodal model is 5.2× faster but makes more errors (44.8 %), so it maps the structure of the conversation, while attributing turns to speakers is left to the specialized model.
04 / встречиmeetings

Встречи: конференции и гости по ссылкеMeetings: video conferences with guest links

до 8up to 8

Видеоконференция на своём медиасервере, до 8 участников. Отдельный сервис внутри рабочего места: встреча создаётся из беседы, участники подключаются с компьютера или телефона.Video conferencing on our own media server, up to 8 participants. It’s a separate service inside the workspace: you start a meeting from a conversation, and participants join from a computer or a phone.

0 установок0 installs

Гость входит по внешней ссылке, без установки и без аккаунта. Ссылка — приглашение на конкретную встречу, а не доступ к контуру: гость видит только эту конференцию и ничего больше.Guests join via an external link, with nothing to install and no account required. The link is an invitation to one specific meeting, not access to the perimeter: a guest sees that conference and nothing else.

[MM:SS]

Разговор остаётся документом, а не воспоминанием. Встреча пишется и расшифровывается тем же трактом, что звонки: отдельная дорожка на участника, протокол с метками времени, текст уходит в рабочий слой темы — и дальше с ним работают Эксперт и Секретарь.The conversation is kept as a document, not left to memory. Meetings are recorded and transcribed by the same pipeline as calls, with a separate track for each participant and a timestamped transcript. The text then goes into the topic's working layer, where the Expert and the Secretary pick it up.

свой серверself-hosted

Медиа не выходит за контур: сигналинг, ключи доступа и запись держит свой сервер, сторонних конференц-сервисов в тракте нет.Media stays inside the perimeter: signaling, access tokens, and recordings are all held on our self-hosted, and there’s no third-party conferencing service anywhere in the pipeline.

05 / документыdocuments

Документы и кодDocuments and code

77 + 128
инструментов Эксперта и сервисныхexpert and service tools
253
вызовов правовой базы за неделюlegal database calls in one week
173 / 0
сборок Word / ошибок мостаWord builds / bridge errors
≥ 60 %
порог полноты документаdocument completeness threshold

Документы собираются и разбираются на своей машине. Сборка Word, PDF, презентаций и Markdown из текста ответа; чтение Word, PDF, Excel и сканов. Всё это делают открытые инструменты внутри контура.Documents are built and parsed on our own machine. We generate Word, PDF, presentation, and Markdown files from the text of an answer, and we read Word, PDF, and Excel files as well as scans. Open-source tools inside the perimeter do all of it.

Документ правится точечно, а не переписывается заново. Каждая правка привязана к уникальному фрагменту исходника. Если фрагмент встречается дважды, правка не применяется молча, а попадает в отчёт. Готовый файл сверяется с исходником по объёму: порог полноты — не меньше 60 % символов, иначе громкая ошибка вместо тихо усечённого документа.Documents are edited in place, not rewritten from scratch. Every edit is anchored to a unique fragment of the source. If that fragment appears twice, the edit isn't applied; it goes into a report instead of being silently dropped. The finished file is then checked against the source by length: it has to keep at least 60 % of the characters, or you get a loud error rather than a quietly truncated document.

Версия документа не может уйти назад. Номер редакции в имени файла только растёт; перед каждой правкой прежняя редакция сохраняется сама, без отдельной команды. Если рядом остался устаревший PDF или Word того же номера, сервис предупреждает об этом, а не отдаёт молча старый файл.A document version can’t go backwards. The revision number in the file name only ever increases, and the previous revision is saved automatically before each edit, with no extra command. If an outdated PDF or Word file with the same number is still sitting next to it, the service warns you rather than quietly serving the old file.

Сборка документа не может подтянуть чужой файл или выйти в сеть. Картинки и ресурсы берутся только из текущего разговора. Это закрыто после замера: без запрета рендер вкладывал в PDF посторонний файл — 189 629 байт против 2 256 байт у чистого документа.Document assembly can’t pull in an outside file or reach the network. Images and other resources come only from the current conversation. We closed this off after measuring it: without the restriction, the renderer embedded an unrelated file in a PDF, producing 189,629 bytes compared with 2,256 for a clean document.

Код и файлы обрабатываются в песочнице. Агент пишет только в каталог своего разговора, чужие каталоги и ключи ему не видны даже на чтение. Отказ при попытке записи наружу — штатная изоляция, а не сбой.Code and files are processed in a sandbox. The agent can write only to its own conversation’s directory; other directories and keys are hidden from it, even for reading. If a write outside that directory is refused, that’s the isolation working as intended, not a malfunction.

На правовой вопрос отвечает первоисточник, а не память модели. Сначала проверяется, существует ли документ и какая редакция действует, затем модель получает текст нормы и ссылается на него.Legal questions are answered from the primary source, not from the model’s memory. The system first checks that the document exists and which revision is currently in force. Only then does the model get the text of the provision, and it cites that text.

Узкие инструменты вместо универсального пересказа. Помимо общего набора у сервисов свои инструменты: почта, архив документов, медицинские снимки, рынок, лесное хозяйство, музыка. Инструмент даёт проверяемый результат, модель не рассказывает своими словами.Specialized tools instead of general-purpose paraphrase. On top of the shared toolset, each service has its own: mail, a document archive, medical imaging, market data, forestry, and music. A tool returns a result you can check, rather than the model retelling things in its own words.

Цифры: 77 инструментов в реестре Эксперта и 128 сервисных — цифра снята загрузкой боевого реестра, а не взята из описания (12.10.2026). Так же получена каждая цифра на этой странице: прибором, в названном окне наблюдения, с указанием того, что именно мерили.Figures: 77 tools in the expert registry and 128 service tools. The count was taken by loading the live registry, not from its documentation (2026-10-12). Every figure on this page was obtained the same way: with an instrument, over a stated observation window, with a record of exactly what was measured.
06 / ролиroles

Эксперт отвечает. Работу вокруг делают другиеThe expert answers. Everything around the answer is someone else’s job

60 с
проверка напоминанийreminder check
90 с
обход простаивающих темidle-topic sweep
5 мин
проход наблюдателя по сервисуservice sweep by the observer
04:00
ночной разбор прошедшего дняnightly review of the day

Человек разговаривает с одним собеседником — но обслуживает этот разговор не он. Эксперт занят только ответом; всё, что вокруг, снято с него и роздано узким фоновым ролям. Это не экономия, а условие качества: модель, которая одновременно отвечает и обслуживает себя, отвечает хуже.You talk to a single counterpart, but that counterpart isn't the one keeping the conversation running. The expert focuses on the answer alone; everything around it has been taken off its plate and handed to narrow background roles. This isn't about cutting costs. It's a precondition for quality: a model that has to answer and do its own housekeeping at the same time gives worse answers.

Библиотекарь разбирает загруженные документы и ведёт по ним индекс — отдельной службой, а не внутри хода разговора. К моменту вопроса материал уже разобран.The librarian parses uploaded documents and keeps an index of them. It runs as a separate service, outside the conversation’s turns, so by the time a question comes in, the material has already been parsed.

Приёмщик расшифровок ждёт готовую расшифровку голосового и сам возвращает ход Эксперту. Человеку не нужно переспрашивать «ну что там» — ответ приходит, когда звук превратился в текст.The transcript handler waits for a voice message transcript to be ready and hands the turn back to the expert on its own. Nobody has to chase it with “any news?”: the answer arrives as soon as the audio has become text.

Секретарь проверяет напоминания раз в минуту и доставляет их в чат. Наблюдатель каждые пять минут проходит по сервису и ищет сбои, на которые никто не пожаловался. Простаивающие темы раз в полторы минуты получают сводку.The secretary checks reminders once a minute and delivers them to the chat. The observer sweeps the service every five minutes, looking for failures nobody has reported yet. Idle topics get a summary every ninety seconds.

Долгая работа — сборка, рисование, расчёт — уходит в фоновую очередь с видимым прогрессом, а не держит разговор. После каждого ответа отдельным шагом обновляются заметки памяти и проверяются цитаты.Long-running jobs, such as builds, image generation, and calculations, go to a background queue with visible progress instead of holding up the conversation. After each answer, a separate step updates memory notes and checks citations.

Ночной слой: разбор того, чего в разговоре не было. Пока никто не работает, отдельная коллегия ролей перечитывает прошедший день — и смотрит не на ответы, а на пропущенное: незаданные вопросы, противоречия между темами, нерассмотренные альтернативы, связи между разговорами, которые по отдельности не видны. Утром разбор ждёт отдельной темой, с датой.The night layer: a review of what the conversation missed. While nobody’s working, a separate council of roles rereads the day that just ended. It isn’t looking at the answers but at what got left out: questions nobody asked, contradictions between topics, alternatives nobody considered, links between conversations that you can’t see when you look at each one alone. In the morning, the review is waiting as a separate, dated topic.

Это лечит естественный дефект диалога: внутри разговора человек и модель идут по одной линии и оба не замечают, что линия выбрана. Взгляд со стороны, да ещё на весь день сразу, ловит то, что внутри хода не ловится. Тем же проходом обновляется память о человеке — чем он занят, что для него важно, какие у него ограничения.This addresses a natural flaw of dialogue: inside a conversation, the person and the model follow a single line, and neither notices that a line was ever chosen. An outside view, taken across a whole day at once, catches what you can’t catch from inside a single turn. The same pass updates what the system knows about the person: what they’re working on, what matters to them, what constraints they have.

08 / выход в сетьoutbound access

Выход в интернет: обезличенно и в закрытой комнатеInternet access: anonymized, from a locked room

Поиск идёт от имени системы, а не человека. Поиск идёт через анонимизирующую сеть — сайту не виден ни человек, ни сам контур. При прямом открытии страницы по ссылке сайт видит выход контура, но не того, кто за ним.Searches go out under the system's name, not the person's. They're routed through an anonymizing network, so the site sees neither the person nor the perimeter. If a page is opened directly from a link, the site sees the perimeter's exit point, but not who's behind it.

У ИИ есть руки, но в закрытой комнате. Песочница видит только каталоги своего разговора. В сеть она выходит через один шлюз, ключей внешних сервисов у неё нет — их подставляет шлюз.The AI has hands, but it works in a locked room. The sandbox can only see its own conversation's directories. It reaches the network through a single gateway and holds no provider keys; the gateway adds them on the way out.

Ход ограничен потолками, а не доверием. У каждого хода свои пределы памяти, процессора, числа процессов, токенов и прироста файлов; превышение обрывает ход сразу. Для песочницы это 2 ГБ памяти, одно ядро, 256 процессов и не больше 1 ГБ новых файлов за ход.Each turn is bounded by ceilings, not by trust. Every turn has its own limits on memory, CPU, process count, tokens, and file growth, and hitting any one of them ends the turn immediately. In the sandbox, that means 2 GB of memory, one core, 256 processes, and no more than 1 GB of new files per turn.

2 ГБ · 1 ядро · 256 процессов · ≤ 1 ГБ файлов2 GB · 1 core · 256 processes · ≤ 1 GB of files

В песочнице прочитанное в интернете не может записать себя в память. Песочница с выходом в веб не пишет в долговременную память: инструкция, найденная на сайте, не попадает в будущие разговоры. Это защита от того, чтобы страница управляла ассистентом.In the sandbox, nothing read on the web can write itself into memory. The web-enabled sandbox doesn't write to long-term memory, so an instruction found on a page never reaches future conversations. That's what stops a web page from steering the assistant.

Осинт-инструмент собирает по сети, а не пересказывает. Сбор идёт фоновой заявкой через тот же обезличенный выход, с жёсткими лимитами на число источников, глубину переходов и объём забранного. В журнал не пишутся ни цель заявки, ни содержимое; отказ выдаётся кодом из закрытого словаря. В контекст модели попадают только поля из белого списка — страница не может передать ассистенту ничего, кроме данных, которые инструмент разрешил внести.The OSINT tool gathers from the network; it doesn't paraphrase from memory. Collection runs as a background job through the same anonymized exit, with hard limits on the number of sources, link depth, and the volume of data retrieved. Neither the purpose of the job nor its content is logged, and refusals come back as codes from a fixed list. Only allowlisted fields make it into the model's context, so a page can't pass the assistant anything beyond what the tool lets through.

Каждое пространство — отдельная база и отдельный каталог. Чьё пространство, сервер определяет по входу пользователя, а не по телу запроса; выход за пределы каталога проверяется до любого чтения или записи.Each workspace has its own database and its own directory. The server determines whose workspace it is from the user's login, not from the request body, and any attempt to step outside the directory is caught before a single read or write.

09 / контурperimeter

Приватный контурPrivate perimeter

Контур — не одна машина, а сеть узлов, связанных постоянными шифрованными трубами. На каждый сервис — своя труба: речь, синтез, поиск, почта, генерация. Упавшая труба уносит одну функцию, а не весь контур.The perimeter isn't a single machine. It's a network of nodes joined by persistent encrypted tunnels. Each service gets its own tunnel: speech, synthesis, search, mail, and generation. If one tunnel goes down, it takes one function with it, not the whole perimeter.

Замеры контура на 12.10.2026 — прибор, окно, результатPerimeter measurements as of 2026-10-12: instrument, window, result
20
постоянных шифрованных труб с основного узла, все активны;persistent encrypted tunnels from the main node, all active;
221 / 16 сут221 / 16 days
эпизодов обрыва связи за 16 суток наблюдения: 1 248 автоматических переподключений, медиана возврата 16 с, 92 % эпизодов короче минуты — ни один не потребовал человека;connectivity drops over 16 days of observation: 1,248 automatic reconnects, median time to reconnect 16 s, 92% of episodes shorter than one minute—not one required human intervention;
0
аварийных выходов основного сервиса за 5 месяцев работы: все остановки за этот срок — наши собственные выкладки, их 606;crashes of the main service over 5 months of operation: every stop in that period was one of our own deployments, 606 in total;
2 мин 21 с2 min 21 s
самоподъём после перезагрузки узла, 27 автоматических повторов;self-recovery after a node reboot, with 27 automatic retries;
5 мин5 min
внешняя проба страницы — каждые 5 минут, с проверкой содержимого, а не кода ответа.external page probe every 5 minutes, checking content rather than the status code.
Это стенд, а не витрина достижений: контур намеренно держат небольшим, чтобы каждое число можно было снять прибором и повторить. Решения принимаются по таким замерам — какая модель размечает разговор, где включать разбор по голосам, платить ли за поисковый API, что считать отказом. Контур клиента масштабируется железом; метод от размера не зависит.This is a testbed, not a showcase. We keep the perimeter small on purpose, so that every number can be measured with an instrument and reproduced. Those measurements drive our decisions: which model annotates a conversation, where to turn on speaker diarization, whether a search API is worth paying for, and what counts as a failure. A client perimeter scales with hardware; the method doesn't depend on size.

Трубы открываются только изнутри наружу. Узлы с данными и моделями не принимают входящих соединений из интернета: снаружи к ним ведут только трубы, открытые изнутри. Порта, открытого в интернет, у них нет.Tunnels only ever open from the inside out. Nodes that hold data and models accept no inbound connections from the internet; the only way in is through a tunnel opened from within. None of them has a port exposed to the internet.

Вход наружу один, и он стоит там, где данных нет — внешний ретранслятор только принимает шифрованный трафик и пересылает его по трубе внутрь. Своих баз, файлов и моделей у него нет.There's a single entrance, and it sits where the data isn't: an external relay that only accepts encrypted traffic and forwards it inward through a tunnel. It has no databases, files, or models of its own.

Уведомления тоже свои. Пуш о событии приходит через собственный сервис уведомлений контура — без Google и Apple, без сторонних SDK в приложении. Устройство получает сигнал от вашего контура, а не от облачной платформы, и маршрут уведомления ничем не отличается от остального трафика: та же труба, тот же один вход. Что попадает в текст уведомления — выбор установки: либо тема и начало ответа, либо только факт события без содержания.Notifications are self-hosted too. Push notifications arrive through the perimeter's own notification service: no Google, no Apple, no third-party SDKs in the app. The device gets the signal from your perimeter, not from a cloud platform, and notifications take the same route as all other traffic—the same tunnel, the same single entrance. What goes into the notification text is set per installation: either the topic and the start of the reply, or just the fact that something happened, with no content.

Обрыв трубы — штатное событие. Каждая труба под присмотром, который сам её перезапускает.A dropped tunnel is routine, not an incident. Each tunnel is watched by a supervisor that restarts it automatically.

Код 200 не считается доказательством жизни. Пустая страница, подменённая страница и откат на старую версию тоже отвечают 200. Поэтому проба ходит снаружи, по публичному имени, тем же путём, что и человек, и проверяет содержимое — контрольную строку и размер ответа. Для самого рабочего места такой пробы пока нет: это следующая работа.HTTP 200 isn't proof of life. An empty page, a swapped page, and a rollback to an older build all return 200. So the probe runs from outside, via the public hostname, along the same path a person would take, and checks the content: a control string and the response size. There's no such probe for the workplace itself yet. That's the next piece of work.

Контур не привязан к железу: узел — это роль, а не модель карты. Железо меняется, схема «изнутри наружу, по трубе на сервис, один вход без данных» остаётся.The perimeter isn't tied to specific hardware: a node is a role, not a particular GPU. Hardware gets replaced, but the design stays the same. Tunnels open from the inside only, each service gets its own tunnel, and the single entrance holds no data.

10 / инструментыtools

Инструменты-консультантыTools as consultants

Рабочее место собрано не вокруг одной модели, а вокруг набора узких инструментов, каждый из которых отвечает за свой предмет и возвращает проверяемый результат: архив документов и поиск по нему, почта, календарь и напоминания, медицинские снимки, рыночные данные, отраслевые справочники, генерация и правка изображений, музыка.The workplace isn't built around a single model. It's built around a set of narrow tools, each covering its own subject and returning a result you can check: a searchable document archive, mail, calendar and reminders, medical imaging, market data, industry references, image generation and editing, and music.

Смысл простой: модель решает, какой инструмент позвать, а факты приносит инструмент. Там, где инструмента нет, ответ помечается как экспертная оценка, а не выдаётся за справку.The principle is simple: the model decides which tool to call, and the tool brings the facts. Where there's no tool for the job, the answer is labeled as expert judgment rather than passed off as established fact.

11 / контактcontact

Обсудить ваш контурDiscuss your perimeter

Написать →Get in touch → ← Лаборатория← Lab contact@dtwin.ninja