# TASK 005: Rust Agent Baseline

Рекомендуемые параметры

Mode: xhigh
Reasoning: maximum
Task type: agent architecture
Quality bar: production-ready
Breaking changes: forbidden
Architecture changes: minimal
Simplifications: forbidden

Цель

Подготовить промышленную основу будущего Rust Agent без внедрения реального мониторинга пользователя.

Задача не про сбор данных.

Задача про создание правильного каркаса агента.

Контекст

Текущий курс проекта:

Backend/API:
Rust

Portal:
HTML + HTMX

Future Enterprise UI:
React + TypeScript

Agent:
Rust

PowerShell не является целевой архитектурой.

Что реализовать

Создать отдельный agent crate.

Пример:

adk-rust/crates/awatch-agent/

Добавить:

- config loader;
- local spool;
- retry queue;
- telemetry envelope;
- heartbeat contract;
- health endpoint;
- graceful shutdown;
- structured logging;
- metrics.

Telemetry Envelope

Создать единый контракт:

{
  "agent_id": "uuid",
  "host_id": "uuid",
  "platform": "windows",
  "timestamp": "...",
  "records": []
}

Без реального сбора активности.

Только каркас.

Local Spool

Реализовать:

spool/

Возможности:

- enqueue;
- dequeue;
- retry;
- corruption detection.

Retry Logic

Добавить:

- exponential backoff;
- max retry count;
- dead letter state.

Heartbeat

Добавить:

{
  "agent_version": "...",
  "platform": "...",
  "status": "online"
}

Без реального inventory.

Health

Добавить локальный:

GET /healthz

Для самого агента.

Logging

Structured JSON logging.

Минимальные поля:

- timestamp;
- level;
- agent_id;
- component;
- message.

Metrics

Prometheus metrics для агента:

- queued_records;
- retry_count;
- heartbeat_sent;
- spool_size.

Documentation

Добавить:

docs/RUST_AGENT_BASELINE_RU.md

Описать:

- архитектуру агента;
- spool;
- retry;
- heartbeat;
- telemetry envelope.

Запрещено

Не делать:

- keylogger;
- screenshot capture;
- clipboard capture;
- packet interception;
- process injection;
- kernel drivers;
- EDR functionality;
- DLP functionality;
- ML;
- LLM.

Критерии приемки

- новый crate создан;
- сборка проходит;
- тесты проходят;
- spool работает;
- retry работает;
- heartbeat работает;
- документация добавлена.

Финальный отчет Codex

1. Список файлов.
2. Архитектура агента.
3. Контракт telemetry envelope.
4. Реализация spool.
5. Реализация retry.
6. Реализация heartbeat.
7. Результаты проверок.
8. Известные ограничения.

## Выполнение

Статус: done.

Файлы:

- `adk-rust/crates/awatch-agent/` - новый baseline crate без мониторинга
  пользователя;
- `docs/RUST_AGENT_BASELINE_RU.md` - архитектура, envelope, spool, retry,
  heartbeat, health, logging и metrics;
- `README.md` - ссылка на Rust Agent baseline;
- `adk-rust/crates/awatch-agent-rs/` - совместимое усиление текущего
  проверенного runtime: отдельные поля telemetry/worktime backlog и flush;
- `docs/roadmap/TASK_005_RUST_AGENT_BASELINE.md` - зафиксирован статус.

Границы:

- `awatch-agent` не собирает активность пользователя, процессы, clipboard,
  screenshots, пакеты сети или документы;
- `awatch-agent-rs` остается текущим проверенным Windows worktime/session
  runtime;
- новые collectors, EDR/DLP/ML/LLM и production claims по неподтвержденным ОС
  не добавлялись.
