210 lines
4.1 KiB
Markdown
210 lines
4.1 KiB
Markdown
# 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 по неподтвержденным ОС
|
|
не добавлялись.
|