Update TASK_005_RUST_AGENT_BASELINE.md
This commit is contained in:
@@ -1,24 +1,186 @@
|
|||||||
# TASK 005: Rust Agent Baseline
|
.docs/roadmap/TASK_005_RUST_AGENT_BASELINE.md
|
||||||
|
|
||||||
## Цель
|
Рекомендуемые параметры
|
||||||
|
|
||||||
Закрепить Rust Agent как основной агентный baseline для регулярного сбора
|
Mode: xhigh
|
||||||
данных AWatch-rus.
|
Reasoning: maximum
|
||||||
|
Task type: agent architecture
|
||||||
|
Quality bar: production-ready
|
||||||
|
Breaking changes: forbidden
|
||||||
|
Architecture changes: minimal
|
||||||
|
Simplifications: forbidden
|
||||||
|
|
||||||
## Объем
|
Цель
|
||||||
|
|
||||||
- Проверка стабильности Windows runtime.
|
Подготовить промышленную основу будущего Rust Agent без внедрения реального мониторинга пользователя.
|
||||||
- Проверка публикации worktime/session telemetry.
|
|
||||||
- Проверка spool/retry поведения.
|
|
||||||
- Документирование rollback-пути на случай отказа.
|
|
||||||
|
|
||||||
## Ограничения
|
Задача не про сбор данных.
|
||||||
|
|
||||||
- Не переписывать стабильные вспомогательные компоненты только ради языка.
|
Задача про создание правильного каркаса агента.
|
||||||
- Не ломать существующие Windows deployment-пакеты.
|
|
||||||
- Не добавлять неподтвержденные платформенные claims.
|
|
||||||
|
|
||||||
## Результат
|
Контекст
|
||||||
|
|
||||||
|
Текущий курс проекта:
|
||||||
|
|
||||||
|
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. Известные ограничения.
|
||||||
|
|
||||||
Rust Agent используется как основной агентный слой там, где он уже проверен, а
|
|
||||||
границы поддержки описаны честно.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user