Skip to content

Repository files navigation

agent-os

Операционная система, которой управляют разговором, а не кнопками. Человек говорит машине, что нужно — «что за обновления», «почисти кэш сборки», «где у меня файл про бюджет», «поставь ripgrep» — а система это делает сама: пакеты, службы, сеть, диски, журналы, файлы. Кнопок и меню нет, лицо системы — разговор.

Под разговором — обычный Linux (тот же apt, тот же systemd). Модель по умолчанию локальная (Ollama, qwen3.5:9b) ради независимости от интернета; облако (OpenRouter) подключено с первого дня, переключение — словом. Ставка не на ум модели, а на устройство вокруг неё: безопасность держится на правах, корзине и обратных операциях, а не на подтверждениях; агент дёшево переспрашивает вместо того, чтобы угадывать.

WSL — только площадка для разработки. Цель — самодостаточная система, которая ставится на железо или VM и грузится прямо в разговор.

Что умеет

  • Управление системой: пакеты (apt), службы (systemd), правка /etc, сеть, диски, журналы — через инструменты классов D0–D3.
  • Безопасность и обратимость: rm/dd/mkfs и запуск через оболочку отсутствуют как класс; корзина и обратная операция готовятся ДО действия; снимок /etc + слепок пакетов перед каждым системным действием, «отмена» откатывает и файлы, и пакеты; неизменяемый журнал с цепочкой SHA-256 под отдельным uid; песочница на пустом network namespace + Landlock; «пятно недоверия» — прочитанные недоверенные данные требуют подтверждения на дальнейшие действия.
  • Поиск файлов и памяти по смыслу (RAG на PostgreSQL + pgvector): «найди файл про…», «что ты помнишь обо мне» — по смыслу, а не по имени.
  • Чтение из интернета (net_fetch) через карантин: страница уходит в отдельную сессию без инструментов, инъекции внутри неё бессильны.
  • Память и правила: агент запоминает факты о хозяине и правила «всегда делай X», следует им всегда.
  • MCP-клиент: подключение внешних инструментов из ~/.agent/mcp.toml.
  • Голос: озвучка ответов и распознавание речи (через помощника вне песочницы).
  • Лицо: веб-оболочка (React + Tailwind), на приборе — во весь экран в режиме киоска; в терминале — клиент agentsh.

Устройство

Пять программ на Go, каждая под systemd:

  • agentd — демон: цикл агента, инструменты, политика, память, RAG, веб-оболочка (HTTP + SSE); uid agent, в жёсткой песочнице.
  • agentsh — терминальный клиент; режим --plain работает без модели.
  • agent-opd — привилегированный демон (root) для системных действий D2 со снимком; заменяет sudo (NoNewPrivileges его блокирует).
  • agent-journald — приёмник журнала под uid agentlog, файлы только на дозапись.
  • agent-voiced — голосовой помощник вне песочницы (тяжёлые ffmpeg/vosk не работают под seccomp agentd).
flowchart TB
    subgraph face["Лицо системы"]
        web["веб-оболочка (React+Tailwind), киоск во весь экран"]
        sh["agentsh (терминал)"]
    end
    subgraph core["agent-os"]
        d["agentd — цикл, инструменты, RAG, веб; uid agent, песочница"]
        opd["agent-opd (root) — пакеты/службы/etc + снимок"]
        jd["agent-journald (agentlog) — журнал, SHA-256"]
        vd["agent-voiced — TTS/ASR вне песочницы"]
        pg[("PostgreSQL + pgvector — эмбеддинги файлов и памяти")]
    end
    llm["Ollama qwen3.5:9b (локально) / OpenRouter (облако)"]
    web <-->|HTTP + SSE| d
    sh <-->|unix-сокет| d
    d -->|заявка D2| opd
    d -->|только запись| jd
    d <-->|сокет| vd
    d <-->|поиск по смыслу| pg
    d <-->|чат + эмбеддинги| llm
Loading

Как запустить

Разработка (WSL): дистрибутив wsl --import agent-os …, внутри sudo scripts/install.sh. Модель — Ollama на хосте (адрес шлюза берётся автоматически). Аварийные выходы: AGENT_SKIP=1 wsl -d agent-os, wsl -d agent-os -u root, agentsh --plain.

Прибор (железо/VM): sudo scripts/install.sh --with-model --with-rag --with-kiosk — поставит демоны, автологин в разговор, локальную модель, поиск файлов и графическую оболочку. Машина грузится прямо в разговор.

Раздача: самодостаточный релиз-архив под amd64/arm64 (готовые бинарники + фронт, Go на целевой машине не нужен), cloud-init для облачной VM, автоустановка для железа — см. configs/autoinstall/README.md.

Документы

About

A Linux you operate by conversation instead of buttons: an agent daemon installs packages, manages services, edits configs and finds files by meaning. Safety is structural, not confirmational: undo prepared before every action, /etc snapshots, a tamper-evident journal, a syscall sandbox. Local LLM by default; the machine boots straight into chat.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages