Files
liqiang b119135836
Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s
ai-agent-book 精选快照(<2MB 代码与文档,来自 github.com/bojieli/ai-agent-book)
2026-08-20 13:12:50 +00:00

197 lines
28 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Глубокое понимание AI Agent: принципы проектирования и инженерная практика
[![PDF](https://img.shields.io/badge/PDF-%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C-success.svg)](#-электронная-книга) [![Читать онлайн](https://img.shields.io/badge/🌐_Читать_онлайн-bojieli.github.io-success?style=flat-square)](https://bojieli.github.io/ai-agent-book/) [![Stars](https://img.shields.io/github/stars/bojieli/ai-agent-book?style=social)](https://github.com/bojieli/ai-agent-book) [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](../../LICENSE) [![Languages](https://img.shields.io/badge/переводов-14%20языков-informational.svg)](#-электронная-книга)
[![Trending GitHub Project of the Day](https://img.shields.io/badge/GitHub%20Trending-Project%20of%20the%20Day-orange?logo=github)](https://github.com/trending)
**[中文](../../README.md) · [English](../en/README.md) · [Español](../es/README.md) · [Bahasa Indonesia](../id/README.md) · [العربية](../ar/README.md) · [繁體中文(台灣)](../zh-TW/README.md) · Русский ← текущий · [Tiếng Việt](../vi/README.md) · [தமிழ்](../ta/README.md) · [日本語](../ja/README.md) · [Türkçe](../tr/README.md) · [한국어](../ko/README.md) · [Magyar](../hu/README.md) · [עברית](../../README.he.md)**
> 📥 **[Скачать PDF / EPUB](#-электронная-книга)** (рекомендуется) — рекомендуем читать книгу в PDF / EPUB, там лучшая вёрстка; также доступно [чтение онлайн](https://bojieli.github.io/ai-agent-book/) (переключатель языков, сворачиваемое оглавление, полнотекстовый поиск; сайт автоматически перестраивается при каждом пуше в main).
**Агент = LLM + Контекст + Инструменты** — книга строится вокруг этой базовой формулы и за 10 глав ведёт AI Agent от принципов к инженерной практике. Весь текст, иллюстрации и **93 сопутствующих эксперимента** открыты. Приглашаем прогнать эксперименты своими руками.
> 📢 **Что изменилось в версии 2.0 по сравнению с 1.4:** Версия 2.0 объединяет раздел «асинхронное взаимодействие» из прежней главы 4 с материалом о «мультимодальных агентах» из прежней главы 9 и перестраивает их в новую главу 6 «Взаимодействие: расширение пространства наблюдений и пространства действий». Прежние главы 6 «Оценка агентов», 7 «Постобучение модели» и 8 «Непрерывная эволюция агентов» сдвинулись на одну позицию и теперь являются главами 7, 8 и 9 соответственно.
>
> Если вы читаете старую версию PDF, рекомендуем [скачать последнюю версию PDF](https://github.com/bojieli/ai-agent-book/releases/download/latest/AI-Agents-in-Depth-ru.pdf). В новом издании также много исправлений и содержательных изменений; пожалуйста, используйте актуальную версию.
| 📚 **10 глав** текста, от основ к продакшену | 📂 **93** сопутствующих проектов (70+ автономных) | 🌐 **14 языков**: CN / EN / ES / ID / AR / zh-TW / **RU** / TA / VI / JA / TR / KO / HU / HE |
| :---: | :---: | :---: |
## 📖 Электронная книга
> 📥 **Скачать** (рекомендуется; полный текст, бесплатно и открыто). Ссылки всегда указывают на свежую сборку ветки `main`; фиксированные издания — на странице [Releases](https://github.com/bojieli/ai-agent-book/releases):
> - **Китайский (оригинал)**: [PDF](https://github.com/bojieli/ai-agent-book/releases/download/latest/AI-Agents-in-Depth-zh-CN.pdf) · [EPUB](https://github.com/bojieli/ai-agent-book/releases/download/latest/AI-Agents-in-Depth-zh-CN.epub)
> - **Английский** (перевод сообщества, [@nsdevaraj](https://github.com/nsdevaraj), [@whanyu1212](https://github.com/whanyu1212)): [PDF](https://github.com/bojieli/ai-agent-book/releases/download/latest/AI-Agents-in-Depth-en.pdf) · [EPUB](https://github.com/bojieli/ai-agent-book/releases/download/latest/AI-Agents-in-Depth-en.epub)
> - **Испанский** (перевод сообщества, [@santhreal](https://github.com/santhreal)): [PDF](https://github.com/bojieli/ai-agent-book/releases/download/latest/AI-Agents-in-Depth-es.pdf) · [EPUB](https://github.com/bojieli/ai-agent-book/releases/download/latest/AI-Agents-in-Depth-es.epub)
> - **Арабский** (перевод сообщества, [@TheSyBuilder](https://github.com/TheSyBuilder)): [PDF](https://github.com/bojieli/ai-agent-book/releases/download/latest/AI-Agents-in-Depth-ar.pdf) · [EPUB](https://github.com/bojieli/ai-agent-book/releases/download/latest/AI-Agents-in-Depth-ar.epub)
> - **Китайский традиционный (Тайвань)** (перевод сообщества, [@tigercosmos](https://github.com/tigercosmos)): [PDF](https://github.com/bojieli/ai-agent-book/releases/download/latest/AI-Agents-in-Depth-zh-TW.pdf) · [EPUB](https://github.com/bojieli/ai-agent-book/releases/download/latest/AI-Agents-in-Depth-zh-TW.epub)
> - **Русский** (перевод сообщества, [@ui99ru](https://github.com/ui99ru)): [PDF](https://github.com/bojieli/ai-agent-book/releases/download/latest/AI-Agents-in-Depth-ru.pdf) · [EPUB](https://github.com/bojieli/ai-agent-book/releases/download/latest/AI-Agents-in-Depth-ru.epub)
> - **Тамильский** (перевод сообщества, [@nsdevaraj](https://github.com/nsdevaraj)): [PDF](https://github.com/bojieli/ai-agent-book/releases/download/latest/AI-Agents-in-Depth-ta.pdf) · [EPUB](https://github.com/bojieli/ai-agent-book/releases/download/latest/AI-Agents-in-Depth-ta.epub)
> - **Вьетнамский** (перевод сообщества, [@toanalien](https://github.com/toanalien)): [PDF](https://github.com/bojieli/ai-agent-book/releases/download/latest/AI-Agents-in-Depth-vi.pdf) · [EPUB](https://github.com/bojieli/ai-agent-book/releases/download/latest/AI-Agents-in-Depth-vi.epub)
> - **Японский** (перевод сообщества, [@eltociear](https://github.com/eltociear)): [PDF](https://github.com/bojieli/ai-agent-book/releases/download/latest/AI-Agents-in-Depth-ja.pdf) · [EPUB](https://github.com/bojieli/ai-agent-book/releases/download/latest/AI-Agents-in-Depth-ja.epub)
> - **Турецкий** (перевод сообщества, [@memisemre](https://github.com/memisemre)): [PDF](https://github.com/bojieli/ai-agent-book/releases/download/latest/AI-Agents-in-Depth-tr.pdf) · [EPUB](https://github.com/bojieli/ai-agent-book/releases/download/latest/AI-Agents-in-Depth-tr.epub)
> - **Корейский** (перевод сообщества, [@JeongJaeSoon](https://github.com/JeongJaeSoon)): [PDF](https://github.com/bojieli/ai-agent-book/releases/download/latest/AI-Agents-in-Depth-ko.pdf) · [EPUB](https://github.com/bojieli/ai-agent-book/releases/download/latest/AI-Agents-in-Depth-ko.epub)
>
> 🌐 Также доступно [чтение онлайн](https://bojieli.github.io/ai-agent-book/) — переключатель языков, сворачиваемое оглавление, полнотекстовый поиск и прямые ссылки на сопутствующие эксперименты. Сайт автоматически перестраивается при каждом пуше в main.
Исходник китайского текста — в [`book/`](../../book/); версии на английском/испанском/арабском/традиционном китайском (Тайвань)/русском/тамильском/вьетнамском/японском/турецком/корейском — вклад сообщества (могут отставать от китайского оригинала), расположены в [`book-en/`](../../book-en/), [`book-es/`](../../book-es/), [`book-ar/`](../../book-ar/), [`book-zhtw/`](../../book-zhtw/), [`book-ru/`](../../book-ru/), [`book-ta/`](../../book-ta/), [`book-vi/`](../../book-vi/), [`book-ja/`](../../book-ja/), [`book-tr/`](../../book-tr/), [`book-ko/`](../../book-ko/) соответственно.
<details>
<summary><b>🔧 Собрать PDF / EPUB самому?</b> (для PDF нужны pandoc / xelatex / ElegantBook)</summary>
- **EPUB**: используйте общий сборщик; см. [инструкцию по сборке EPUB](../../EPUB.md)
- **Арабский PDF**: можно собрать командой `cd book-ar && bash build_pdf.sh`
- **Исходник текста**: `book-ru/introduction.md` (введение), `book-ru/chapter1.md` ~ `book-ru/chapter10.md` (главы 110), `book-ru/afterword.md` (послесловие)
- **Сборка**: установите pandoc, xelatex, класс документа ElegantBook и нужные шрифты, затем выполните
```bash
cd book-ru && bash build_pdf.sh
```
Иллюстрации лежат в `book-ru/images/`; детали типографики — в `book-ru/preamble.tex` и `book-ru/*.lua`.
</details>
## 📑 Обзор содержания (главы 1–10)
Книга строится вокруг базовой формулы **Агент = LLM + Контекст + Инструменты**, и десять глав раскрывают её постепенно:
| Гл | Тема | Кратко | Текст | Код |
| :--: | --- | --- | :--: | :--: |
| 1 | 🚀 **Основы агентов** | Парадигма «модель как агент» + **Агент = LLM + Контекст + Инструменты**; harness-инженерия — вот настоящее преимущество | [Читать](../../book-ru/chapter1.md) | [4](../../chapter1/README.ru.md) |
| 2 | 🎯 **Инженерия контекста** | Контекст ограничивает возможности агента: KV Cache, инженерия промптов, Agent Skills, сжатие контекста | [Читать](../../book-ru/chapter2.md) | [9](../../chapter2/README.ru.md) |
| 3 | 📚 **Память пользователя и базы знаний** | Кросс-сессионная память + внешние знания: пользовательская память, RAG, структурированные индексы, графы знаний | [Читать](../../book-ru/chapter3.md) | [12](../../chapter3/README.ru.md) |
| 4 | 🛠️ **Инструменты** | Инструменты — руки агента: протокол MCP, инструменты восприятия/исполнения/сотрудничества, событийные асинхронные агенты, активное обнаружение инструментов | [Читать](../../book-ru/chapter4.md) | [8](../../chapter4/README.ru.md) |
| 5 | 💻 **Кодинг-агент и генерация кода** | Код — «инструмент, создающий новые инструменты»; промышленный кодинг-агент целиком | [Читать](../../book-ru/chapter5.md) | [13](../../chapter5/README.ru.md) |
| 6 | 🎙️ **Взаимодействие: расширение пространства наблюдений и пространства действий** | Расширяем пространства наблюдений и действий по модальности и времени: асинхронные и событийные системы, голос, Computer Use и робототехника | [Читать](../../book-ru/chapter6.md) | [13](../../chapter6/README.ru.md) |
| 7 | 🎯 **Оценка агентов** | Превращаем качество в сравнимые сигналы: среды, метрики, статистическая значимость и выбор на основе оценки | [Читать](../../book-ru/chapter7.md) | [13](../../chapter7/README.ru.md) |
| 8 | 🧠 **Постобучение модели** | Три стадии—предобучение, SFT и RL: когда выбирать SFT или RL, внедрение вызова инструментов и эффективность выборки | [Читать](../../book-ru/chapter8.md) | [19](../../chapter8/README.ru.md) |
| 9 | 🔄 **Непрерывная эволюция агентов** | Получаем сигналы обучения из траекторий выполнения и обновляем знания, инструкции, программы и параметры | [Читать](../../book-ru/chapter9.md) | [9](../../chapter9/README.ru.md) |
| 10 | 🤝 **Многоагентное взаимодействие** | Коллективный интеллект > индивидуального: фреймворки сотрудничества, разделение/изоляция контекста, эмерджентное «общество агентов» | [Читать](../../book-ru/chapter10.md) | [7](../../chapter10/README.ru.md) |
> 💡 **Читать** = читать текст главы на GitHub (markdown); **N** = число сопутствующих проектов, кликните для кода. Типы проектов (✅ автономный / 📖 воспроизведение / 🚧 проектный) поясняются в README каждой главы.
>
> 📚 Как читать книгу эффективно? См. **[Советы по обучению](LEARNING.md)** (ключевые идеи, путь обучения, уровни сложности, советы по практике).
## 💻 Запуск сопутствующих экспериментов
Общий поддерживаемый диапазон — **Python 3.113.13**. Устанавливайте зависимости по главам из корня репозитория; для другой главы замените `ch1` на `ch2` — `ch10`:
```bash
# Рекомендуется: воспроизводимое окружение главы из сохранённого uv.lock
uv sync --locked --extra ch1
# Без uv: заново разрешить зависимости из pyproject.toml через pip
python -m pip install -e ".[ch1]"
```
Перед запуском эксперимента, который обращается к модели, настройте ключи по README этого эксперимента. Эксперименты с поддержкой корневой конфигурации могут использовать `.env.example`, скопированный в `.env`, с хотя бы одним ключом провайдера; некоторым экспериментам нужен соседний `.env` или экспорт переменных окружения. Используйте локальный Ollama с `--provider ollama` только если это явно указано в README или CLI конкретного эксперимента.
После установки запускайте эксперимент из корня репозитория, например:
```bash
uv run python chapter1/context/main.py
# После установки через pip: python chapter1/context/main.py
```
- Установку `uv` описывает [официальное руководство](https://docs.astral.sh/uv/getting-started/installation/). `pip` по-прежнему поддерживается, но не использует lock-файл.
- Файлы `requirements.txt` отдельных экспериментов остаются рабочими на время миграции, особенно для изолированных проектов и особых ограничений версий.
- `all` — широкий CPU-дружественный набор, а не буквально все эксперименты. `uv sync` каждый раз точно синхронизирует текущий выбор, поэтому специальные extra нужно объединять в одной команде, например `uv sync --locked --extra ch2 --extra vllm` или `uv sync --locked --extra ch7 --extra unsloth`; для pip это `python -m pip install -e ".[ch2,vllm]"`.
- Системные зависимости — браузеры, CUDA, FFmpeg, Ollama, браузеры Playwright и внешние репозитории — устанавливайте по README конкретного эксперимента. Некоторым встроенным сторонним компонентам главы 8 нужен Python 3.12+.
## 🔑 API-ключи
Для удобства обучения рекомендуется получить API-ключи на нескольких платформах. По выбору модели см. [этот гайд](https://01.me/2025/07/llm-api-setup/).
| Платформа | Ссылка | Примечания | Точки доступа |
| --- | --- | --- | --- |
| **Kimi** (Moonshot) | <https://platform.moonshot.cn/> | Серия Kimi, сильна в длинном контексте и возможностях агента | Материковый Китай |
| **Zhipu GLM** | <https://open.bigmodel.cn/> | GLM-4.6 и др., сильный китайский, выгодная цена | Материковый Китай |
| **Siliconflow** | <https://siliconflow.cn/> | Разные открытые модели (DeepSeek, Qwen и др.), быстрый доступ из материкового Китая | Материковый Китай |
| **DeepSeek** | <https://platform.deepseek.com/> | Официальный API DeepSeek | Весь мир + материковый Китай |
| **Krill AI** | [www.krill-ai.net](https://www.krill-ai.net/register?invite=Q8D3L35725) | Единый доступ к основным мировым и китайским моделям (OpenAI, Claude, Gemini, Grok, Kimi, GLM, DeepSeek, Qwen, Minimax) | Весь мир + материковый Китай |
| **OpenRouter** | <https://openrouter.ai/> | Единый доступ к основным мировым и китайским моделям (GPT, Claude, Gemini, Kimi, GLM, DeepSeek, Qwen и др.) | Весь мир |
## 💎 Спонсоры
Благодарим **Krill AI** за спонсорство проекта! Krill предоставляет официальный, стабильный и сверхбыстрый API-шлюз для GPT / Claude / Gemini и множества китайских моделей, с корпоративной настройкой, счетами для возмещения расходов, выделенной технической поддержкой 7×16 ч, а также эксклюзивным подключением по WebSocket для молниеносного времени до первого токена.
Krill предлагает читателям книги специальную скидку: зарегистрируйтесь по [этой ссылке](https://www.krill-ai.net/register?invite=Q8D3L35725) и укажите промокод «ai-agent-book» при пополнении счёта, чтобы получить скидку 23% на первую покупку пакета Codex!
> 🧪 Статус выполнения экспериментов, доказательства и невыполненные критерии приёмки отслеживаются отдельно в [`EXPERIMENT_STATUS.md`](../EXPERIMENT_STATUS.md); клонирование или установка исходного кода сами по себе не подтверждают завершение эксперимента.
## 📦 Приложение · Получение внешних репозиториев
23 внешних репозитория для бенчмарков, обучающих фреймворков и робо-платформ из глав 6, 7, 9, 10 **не включены** (из-за размера и лицензий) и должны быть склонированы в соответствующие каталоги.
### Скрипт клонирования одной командой
<details>
<summary><b>🔧 Развернуть команды клонирования</b> (23 внешних репозитория)</summary>
```bash
# Глава 6 · Бенчмарки оценки
git clone https://github.com/google-research/android_world.git chapter6/android_world
git clone https://huggingface.co/datasets/gaia-benchmark/GAIA chapter6/GAIA
git clone https://github.com/xlang-ai/OSWorld.git chapter6/OSWorld
git clone https://github.com/SWE-bench/SWE-bench.git chapter6/SWE-bench
git clone https://github.com/sierra-research/tau2-bench.git chapter6/tau2-bench
git clone https://github.com/laude-institute/terminal-bench.git chapter6/terminal-bench
# Глава 7 · Обучающие фреймворки (bojieli/* — адаптированные под книгу форки)
git clone https://github.com/bojieli/minimind.git chapter7/MiniMind-pretrain/minimind # Эксп. 7-3: обучение LLM с нуля
git clone https://github.com/bojieli/minimind-v.git chapter7/MiniMind-pretrain/minimind-v # Эксп. 7-4: обучение VLM с нуля (проекционный слой)
git clone https://github.com/bojieli/AdaptThink.git chapter7/AdaptThink-original
git clone https://github.com/bojieli/AWorld.git chapter7/AWorld
git clone https://github.com/bojieli/SFTvsRL.git chapter7/SFTvsRL
git clone https://github.com/bojieli/verl.git chapter7/verl
git clone https://github.com/bojieli/SandboxFusion.git chapter7/SandboxFusion && git -C chapter7/SandboxFusion fetch origin 4a0d573ebd64c98234c190a9d1d49e4276199a0c && git -C chapter7/SandboxFusion checkout --detach 4a0d573ebd64c98234c190a9d1d49e4276199a0c && test "$(git -C chapter7/SandboxFusion rev-parse HEAD)" = "4a0d573ebd64c98234c190a9d1d49e4276199a0c" # Exp 7-15 code sandbox
git clone https://github.com/thinking-machines-lab/tinker-cookbook.git chapter7/tinker-cookbook
git clone https://github.com/19PINE-AI/rlvp.git chapter7/RLVP/rlvp # Эксп. 7-14: код статьи RLVP
git clone https://github.com/PRIME-RL/SimpleVLA-RL.git chapter7/SimpleVLA-RL/SimpleVLA-RL # Эксп. 7-13: RL «зрение-язык-действие»
# Глава 9 · Автоматизация браузера и примеры Claude
git clone https://github.com/browser-use/browser-use.git chapter9/browser-use
git clone https://github.com/anthropics/claude-quickstarts.git chapter9/claude-quickstarts
git clone https://github.com/Vector-Wangel/XLeRobot.git chapter9/XLeRobot && git -C chapter9/XLeRobot fetch origin 3d14695e40c9c68229c0aacffca6053c75cd3eb6 && git -C chapter9/XLeRobot checkout --detach 3d14695e40c9c68229c0aacffca6053c75cd3eb6 && test "$(git -C chapter9/XLeRobot rev-parse HEAD)" = "3d14695e40c9c68229c0aacffca6053c75cd3eb6" # Exp 9-7/9-9 shared
git clone https://github.com/Grigorij-Dudnik/RoboCrew.git chapter9/RoboCrew && git -C chapter9/RoboCrew fetch origin c749148f29bd14e61347f9fc3530c343fff0d994 && git -C chapter9/RoboCrew checkout --detach c749148f29bd14e61347f9fc3530c343fff0d994 && test "$(git -C chapter9/RoboCrew rev-parse HEAD)" = "c749148f29bd14e61347f9fc3530c343fff0d994" # Exp 9-8/9-9; RoboCrew v0.3.1
git clone https://github.com/StoneT2000/lerobot-sim2real.git chapter9/lerobot-sim2real && git -C chapter9/lerobot-sim2real fetch origin 87d6c1d969f6e0ca4dc5697940804e231118a63a && git -C chapter9/lerobot-sim2real checkout --detach 87d6c1d969f6e0ca4dc5697940804e231118a63a && test "$(git -C chapter9/lerobot-sim2real rev-parse HEAD)" = "87d6c1d969f6e0ca4dc5697940804e231118a63a" # Exp 9-11
# Глава 10 · Архитектура двух агентов (теперь отдельный проект TalkAct) + Stanford AI Town
git clone https://github.com/19PINE-AI/TalkAct.git chapter10/use-computer-while-calling
git clone https://github.com/joonspk-research/generative_agents.git chapter10/generative_agents # Эксп. 10-5: Stanford AI Town
```
> Если README проекта указывает конкретный коммит, сделайте `git checkout` на эту версию для воспроизводимости. `use-computer-while-calling` из главы 10 вырос в самостоятельно поддерживаемый [19PINE-AI/TalkAct](https://github.com/19PINE-AI/TalkAct); этот каталог в репозиторий не входит — получите его командой клонирования выше.
</details>
## 🤝 Как внести вклад
Книга и сопровождающий код полностью открыты. Pull Request'ы очень приветствуются:
| Тип | Примечания |
| --- | --- |
| 📝 **Содержание книги** | Опечатки, дополнения, более ясные формулировки или новые разработки (текст в `book/chapter*.md`) |
| 🐛 **Улучшения кода и багфиксы** | Сделать сопутствующие проекты надёжнее, удобнее и ближе к продакшену |
| 🧪 **Новые практические проекты** | Добавить/заменить лучшими реализациями эксперименты или предложить новые примеры |
| 🎨 **Дизайн иллюстраций** | Напрямую улучшать сохранённые в репозитории SVG-схемы из `book/images/` |
| 🌐 **Новые переводы** | Переводы на другие языки приветствуются; за образец возьмите английский (`book-en/`), арабский (`book-ar/`), традиционный китайский/Тайвань (`book-zhtw/`), русский (`book-ru/`), тамильский (`book-ta/`), вьетнамский (`book-vi/`), японский (`book-ja/`), турецкий (`book-tr/`) и корейский (`book-ko/`) |
Перед отправкой прогоните соответствующие эксперименты для подтверждения воспроизводимости; идеи можно предварительно обсудить в issue.
## 📄 Лицензия
Проект распространяется под [Apache License 2.0](../../LICENSE). Подробности — в файле [`LICENSE`](../../LICENSE). Некоторые подпроекты могут включать собственную лицензию; уточняйте в подпроекте.
## ⭐ История звёзд
<a href="https://star-history.com/#bojieli/ai-agent-book&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../../assets/star-history-dark.png" />
<source media="(prefers-color-scheme: light)" srcset="../../assets/star-history-light.png" />
<img alt="Star History Chart" src="../../assets/star-history-light.png" width="100%" />
</picture>
</a>
<sub>Сгенерировано [`scripts/gen_star_history.py`](../../scripts/gen_star_history.py), ежедневно обновляется [GitHub Actions](../../.github/workflows/star-history.yml) · Кликните по картинке для актуальных данных</sub>