# Agent Research Radar

> >

- **Type:** Skill
- **Install:** `agentstack add skill-maddness-agent-research-radar-agent-research-radar`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [maddness](https://agentstack.voostack.com/s/maddness)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [maddness](https://github.com/maddness)
- **Source:** https://github.com/maddness/agent-research-radar

## Install

```sh
agentstack add skill-maddness-agent-research-radar-agent-research-radar
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Agent Research Radar

Радар публикаций про **автономных AI-агентов** в блогах лабораторий и продуктовых
команд. Задача скилла — не «принести все новости», а **отфильтровать шум фич** и
оставить фундаментальные тексты: как устроена память агента, как держать
long-running цикл, как замыкать верификацию, как оркестрировать пачку агентов и
сколько это стоит, как эвалить агентное поведение, что ломается на длинных
горизонтах.

Ядро сбора — `scripts/radar.py` (stdlib-only, ходит только GET).
Каталог источников — `scripts/sources.json`.

Pre-flight перед первым прогоном сессии: `python3 scripts/radar.py sources`
должен мгновенно напечатать каталог. Если `python3` отсутствует или команда
падает (битый sources.json, нет прав) — остановись и скажи об этом, не
пересобирай сбор вручную через WebFetch: ручной обход 15 индексов съест
сессию и всё равно потеряет даты.

## Рабочий цикл

### 1. Определи окно

По умолчанию — **неделя с понедельника по последнее наступившее
воскресенье**. В воскресенье это текущая неделя, в остальные дни —
предыдущая. Окно никогда не захватывает будущие даты.

Выбор окна по формулировке запроса — не изобретай своё:

| Просят | Окно |
|---|---|
| «за прошлую неделю», дайджест без уточнений | дефолт (пн–вс), флаги не нужны |
| «что нового», «самое свежее», «сегодня» | дефолт **плюс хвост**: `--since  --until ` |
| явный период («за две недели», «с 1 июля») | `--since` / `--until` по словам пользователя |

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

### 2. Собери кандидатов

```bash
python3 scripts/radar.py collect --json /tmp/radar-$(date +%F).json
```

- без флага (= все тиры) — **дефолт для недельного дайджеста.** Прогон 26.07.2026 показал, почему: tier 3 дал три попадания из восьми, и именно агрегатор Simon Willison вывел на первоисточник инцидента OpenAI ↔ Hugging Face, который tier 1–2 не поймал (пост лежит на `openai.com/index/*`).
- `--tier 1` — только ядро (Anthropic, Claude, Cursor, OpenAI Devs, LangChain, Amp): быстро, когда нужен только сильный сигнал.
- `--tier 2` — плюс Cognition, Factory, OpenAI News, DeepMind.
- `--source claude-blog,cursor-blog` — точечно по одному-двум блогам.
- `--all` — без фильтра по датам; добирает метаданны всего индекса и может
  работать заметно дольше обычного прогона.

Скрипт отдаёт JSON: `items[]` с `date`, `url`, `title`, `source`, `tier`,
`blurb`, а также `sources_failed` — если источник отвалился,
**скажи об этом в дайджесте**, не молчи: молчание читается как «там ничего не было».

**Прогон не помнит прошлые прогоны.** Никакого seen-состояния нет: два запуска
по одному окну дают один и тот же набор кандидатов и один и тот же дайджест —
это свойство, а не баг. Сильный пост попадает в топ каждый раз, когда попадает
в окно, независимо от того, показывали его раньше или нет. Единственный дедуп —
внутри прогона: один и тот же URL из двух лент схлопывается в одну запись
(fragment, tracking-параметры и хвостовой `/` не создают дублей).

Если пользователь сам говорит, что уже видел конкретный пост или просит «без
повторов», — сначала скажи прямо: seen-состояния у радара нет, повторы
отсекаются решением этой сессии. Потом отсекай названное, но не выдумывай
файл состояния: следующий прогон снова покажет всё. Проговорить это обязательно —
иначе пользователь решит, что дедуп постоянный, и удивится повторам через неделю.

Health-check источников (когда что-то подозрительно пусто):

```bash
python3 scripts/radar.py check
```

### 3. Триаж по заголовкам

Прогони кандидатов через рубрику из `references/relevance.md`. Цель —
шортлист **5–10 постов**, остальное в отбраковку с указанием количества.

Быстрое правило: продуктовый анонс, релиз модели, кейс заказчика, наём,
сертификация, партнёрство, безопасность корпоративного контура — **мимо**,
даже если это блог первого уровня. Оставляем то, где автор объясняет
**как и почему устроен агент**.

### 4. Прочитай шортлист

`WebFetch` по каждому URL из шортлиста с промптом на суть и технические
утверждения. Три уровня отказоустойчивости:

1. `WebFetch` — рабочая лошадь.
2. HTTP 403 / пустая страница → `curl` + вырезание тегов (см. `references/sources.md`).
3. Стена JS/Cloudflare (это `openai.com/index/*`) → браузерная панель:
   `preview_start` с URL, `computer{action:"wait",duration:5}`, `get_page_text`.

**Никогда не пересказывай пост по одному заголовку.** Заголовок «Multiplayer»
может оказаться и фичей чата, и архитектурой разделяемого состояния между
агентами — разница принципиальная, а по названию она не видна.

### 5. Собери дайджест

Формат и требования — `references/digest-format.md`. Кратко: топ-3 «читать
обязательно» с разбором, дальше «стоит глянуть» одной строкой, в конце —
что отбраковано и какие источники молчали.

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

### 6. Артефакт и доставка

**Канонический артефакт — один Markdown-файл** `reports/radar-.md`
(например `reports/radar-2026-07-26.md`), пишется через `Write`. Папка
`reports/` живёт в рабочей директории сессии, **не внутри папки скилла**:
скилл — read-only дистрибутив, артефакты в нём потеряются при обновлении.
Один файл на прогон, накапливаются в `reports/` — так видно историю и можно
грепать по темам.
Тот же текст выдаётся в чат целиком: файл нужен, чтобы отчёт жил после сессии,
а не вместо ответа.

Доставка, если попросили, — отдельным скиллом-транспортом (Telegram, почта,
PDF). Радар готовит текст, транспорт его отправляет.

Проверено на живой отправке 26.07.2026, три грабли Telegram:

1. **Разметка — HTML, не markdown.** Решётки заголовков не рендерятся: ``,
   ``, ``. Ставь `disable_web_page_preview: true`, иначе
   дайджест из десяти ссылок распухает превьюшками.
2. **Лимит 4096 символов — режь сам по границе раздела.** Авто-сплит может
   порвать `` посередине, и Telegram отвергнет всё сообщение целиком.
   Полный дайджест недели в HTML — это 4–5 тысяч символов: два сообщения
   (топ отдельно, «стоит глянуть» + хвост отдельно) плюс `SendDocument` с
   самим `.md`-файлом.
3. **`api.telegram.org` таймаутит через раз.** Это норма, не поломка: повторяй
   вызов до `status: sent`, две-три попытки хватает. Если бот общий, `getUpdates`
   может отдать `409 Conflict` из-за активного вебхука — **вебхук не удалять**,
   иначе сломается чужая интеграция; `chat_id` взять из конфигурации или
   спросить у пользователя.

Регулярный запуск — `anthropic-skills:schedule` или `CronCreate`, разумная
частота — утро понедельника (окно как раз закрывается воскресеньем).

## Что считается фундаментальным

Полная рубрика со скорингом — `references/relevance.md`. Ядро тем:

| Тема | Примеры формулировок |
|---|---|
| Память и контекст | context engineering, compaction, progressive disclosure, auto-memory, retrieval для агента |
| Long-running / автономность | harness design, многодневные сессии, durable state, wake-on-event, планировщики |
| Self-improvement и петли | верификационные петли, incident-derived evals, самокоррекция, обучение на своих трассах |
| Оркестрация | мульти-агент, swarm, planner/worker, слияние результатов, конфликтующие ветки |
| Оптимизация и экономика | роутинг моделей, hybrid frontier+cheap, стоимость прогона, длина трассы |
| Достижение целей | goal-directed поведение, reward hacking, дрейф намерения на длинном горизонте |
| Эвалы агентов | контейнерные бенчмарки, нестабильность прогонов, шум инфраструктуры, eval awareness |
| Риски длинных горизонтов | trajectory-level monitoring, обход песочницы, приостановка сессии |

Полезный контекст для оценки новизны — `references/canon.md`: карта уже
вышедших опорных постов. Если новый пост повторяет канон — так и скажи,
это экономит время читателя сильнее, чем ещё один абзац пересказа.

## Ссылки

- `references/relevance.md` — рубрика релевантности и скоринг
- `references/sources.md` — каталог источников, зачем каждый и где грабли
- `references/digest-format.md` — шаблон дайджеста
- `references/canon.md` — карта опорных публикаций (база для оценки новизны)
- `references/example-digest.md` — эталонный прогон за 20–26 июля 2026

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [maddness](https://github.com/maddness)
- **Source:** [maddness/agent-research-radar](https://github.com/maddness/agent-research-radar)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** yes
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-maddness-agent-research-radar-agent-research-radar
- Seller: https://agentstack.voostack.com/s/maddness
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
