Локальный второй мозг: Obsidian + Codex + Markdown - пошаговый гайд | AiManual
AiManual Logo Ai / Manual.
31 Май 2026 Гайд

Как собрать локальный второй мозг на Codex, Markdown и Obsidian: от GTD к AI-агенту

Как собрать AI-агента на Codex и Obsidian для GTD. Пошаговая настройка с примерами, ошибками и советами. Актуально на 2026 год.

Почему ваш GTD — это кладбище заметок?

Вы пишете задачи. Потом не смотрите на них месяц. Потом находите список «купить стиральный порошок» — и он уже не актуален. Знакомо? Классический GTD умирает ровно в тот момент, когда вы перестаёте пересматривать списки. Исследования (даже не буду ссылаться — сами знаете) говорят: 80% заметок никогда не возвращаются. Системы рушатся, потому что требуют ручного труда — ревью, обновления, переприоритизации.

А что, если заметки сами напомнят о себе? Если AI-агент будет рыться в вашей базе знаний, находить забытые идеи и предлагать действия? Это уже не фантастика. На май 2026 года у нас есть Obsidian, Codex (OpenAI API через локальный агент) и влажный носок — нет, просто Markdown. Из этого хлама можно собрать живой, дышащий второй мозг.

Ключевая мысль: второй мозг — не просто хранилище. Это система, которая сама теребит вас: «Эй, ты хотел написать пост про Kubernetes, вот наброски, нужно только собрать».

Что такое второй мозг с AI-агентом? (спойлер: не то, что вы думаете)

Многие путают «второй мозг» с органайзером идей. Но когда внутрь запускается AI-агент, он превращает заметки из пассивных объектов в активных агентов. Я уже писал об этом в статье «Второй мозг для человека или для агента?» — разница фундаментальна. Человеку нужна понятная структура, агенту — доступ к данным и команды.

В нашем стеке: Obsidian (удерживает заметки в Markdown), Codex (через локальный Python-скрипт вызывает GPT-4.1 или новее — на 2026 год это самая быстрая модель для задач GTD), и Markdown как универсальный язык. Никаких проприетарных форматов — ваши заметки остаются вашими.

Выбор инструментов: почему не Notion, не Roam?

Obsidian — потому что он локальный, плагины пишутся на TS, а главное — Markdown. Вы можете открыть заметки любым редактором. Никакого vendor lock-in (в отличие от Notion, где без API вы — заложник). Для агента Markdown — это просто текст, он не требует парсинга бинарных форматов.

Codex — здесь подразумевается OpenAI Codex, который на самом деле часть GPT-4.1 API. Я использую модель gpt-4.1 (или gpt-4.1-mini для быстрых ответов). Локально разворачиваю агента на Python с библиотекой openai. Все запросы идут через localhost — никакого облака, кроме самого вызова модели. Если хотите полную приватность — замените на локальную LLM (об этом есть отдельный гайд «Obsidian + локальная LLM: замена Gemini CLI»).

Пошаговая настройка: от GTD к AI-агенту

Разобранная инструкция, как превратить ваше болото заметок в работающую систему. Код и команды — только то, что реально нужно.

1 Структура Obsidian, которая не развалится

Забудьте про хаос из 500 заметок в одной папке. Я использую парадигму PARA (Projects, Areas, Resources, Archives), адаптированную под Markdown. Папки:

  • Projects/ — текущие проекты. Каждый — отдельная папка с заметками и задачами.
  • Areas/ — области ответственности (здоровье, финансы, Devops).
  • Resources/ — вечные заметки: шпаргалки, ссылки, цитаты.
  • Archives/ — завершённые проекты.
  • _Daily/ — ежедневные заметки. Там же будут задачи, созданные агентом.

Важно: каждая заметка начинается с YAML front matter (теги, статус, дата). Это нужно агенту, чтобы понимать контекст. Пример:

---
tags: [project, writing]
status: active
created: 2026-05-31
---

2 Локальный AI-агент на Codex: поднимаем Python-скрипт

Агент будет жить в отдельном процессе и общаться с Obsidian через Local REST API плагин (установите его в Obsidian — Community Plugin). Плагин поднимает HTTP-сервер на localhost:27123. Агент читает и пишет заметки через этот API.

Создайте файл agent.py:

import os
from openai import OpenAI
import requests

OBSIDIAN_TOKEN = "your-token-here"  # из плагина
OBSIDIAN_URL = "http://localhost:27123"

client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])

def get_daily_note():
    # Получает сегодняшнюю заметку через Obsidian API
    resp = requests.get(f"{OBSIDIAN_URL}/vault/_Daily/2026-05-31.md",
                       headers={"Authorization": f"Bearer {OBSIDIAN_TOKEN}"})
    return resp.text if resp.ok else ""

def ask_agent(context: str) -> str:
    response = client.chat.completions.create(
        model="gpt-4.1",  # актуально на май 2026
        messages=[
            {"role": "system", "content": "Ты — AI-помощник для GTD. Анализируй заметки и предлагай действия."},
            {"role": "user", "content": context}
        ]
    )
    return response.choices[0].message.content

def update_daily(action: str):
    # Добавляет строку в ежедневную заметку
    line = f"- [ ] {action} (сгенерировано агентом)\n"
    resp = requests.post(f"{OBSIDIAN_URL}/vault/_Daily/2026-05-31.md?append=true",
                         headers={"Authorization": f"Bearer {OBSIDIAN_TOKEN}"},
                         data=line)
    return resp.ok

if __name__ == "__main__":
    daily = get_daily_note()
    tasks = ask_agent(daily)
    update_daily(tasks)
    print("Агент обновил заметку.")

Ошибка: многие ставят API-ключ прямо в код. Не делайте так. Используйте переменные окружения или секреты ОС.

3 Интеграция: агент читает, предлагает, пишет

Теперь скрипт можно запускать по расписанию (cron, Планировщик Windows или триггер из Obsidian через плагин CustomJS). Каждый день агент:

  1. Читает сегодняшнюю заметку (там вчерашние задачи, контекст).
  2. Анализирует её и предлагает 3–5 задач, которые имеют смысл сейчас.
  3. Добавляет их в ту же заметку в виде чеклиста.
  4. По желанию проверяет просроченные дела из других заметок (для этого агент сканирует папку Projects/).

В теории это работает так: вы утром открываете Obsidian, а там уже список дел, сгенерированный AI на основе ваших заметок. На практике — нужно настраивать промпты и фильтры, чтобы агент не плодил мусор. Я потратил неделю, пока перестал получать «не забудь купить молоко» каждое утро (потому что заметка с молоком была в архиве).

4 Расширение: агент-исполнитель команд

Просто читать и писать заметки — скучно. Подключите к агенту инструменты: создание заметок, поиск в базе знаний, запуск скриптов. Для этого используйте Function Calling от OpenAI. Объявите функции в API запросе:

tools = [
    {
        "type": "function",
        "function": {
            "name": "search_notes",
            "description": "Поиск заметок по запросу",
            "parameters": {
                "type": "object",
                "properties": {
                    "query": {"type": "string"}
                },
                "required": ["query"]
            }
        }
    },
    {
        "type": "function",
        "function": {
            "name": "create_note",
            "description": "Создать новую заметку в папке Projects",
            "parameters": { ... }
        }
    }
]

Теперь агент может сам найти ветку про Docker, если вы пишете задачу по контейнеризации. Или создаст новую заметку с планом проекта. Это превращает GTD из пассивного списка в живую систему. Подробнее про архитектуру таких агентов я писал в статье «Архитектура локальных агентов».

Типичные ошибки и как их избежать

  • Слишком широкий промпт. Агент начинает придумывать задачи из воздуха. Ограничьте контекст: давайте ему только активные проекты (папка Projects/).
  • Игнорирование истории. Одноразовый вызов модели не помнит, что было вчера. Используйте механизм памяти: сохраняйте предыдущие ответы агента в отдельную заметку _AI_Context.md. Или подключите систему вроде TeamMind для персистентной памяти.
  • Безопасность API. OpenAI ключ может утечь. Храните его в переменной окружения, никогда не коммитьте в Git.
  • Затраты. Если гонять модель каждые 5 минут, счёт за API взлетит. Оптимизация: использовать быстрые модели (gpt-4.1-mini) для рутинных задач, и только для сложных решений — полную модель.
💡
Совет: ведите статистику вызовов в логе. Если агент генерирует более 10 задач в день — вы что-то делаете не так. Качество важнее количества.

От GTD к автономному агенту: что дальше?

Следующий шаг — дать агенту больше свободы. Пусть он не только предлагает задачи, но и сам выполняет их: отправляет письма, создаёт события в календаре, пилит задачи в трекере. Obsidian становится командным центром, а агент — исполнителем. Недавно я экспериментировал с мультиагентной связкой: один агент анализирует заметки, другой — интегрируется с внешними сервисами. Об этом — статья «Три мозга вместо одного».

Проблема, которая остаётся — фрагментация памяти между разными агентами. Если используете несколько ассистентов (Claude Code, Codex, Cursor), они не делят контекст. Решение — унифицированная память через Neo4j и хуки. Тех, кто дочитал до этого места, я отправляю к гайду «Унифицированная память для AI-агентов». Там разобрано, как сделать так, чтобы агенты не забывали друг друга.

Начинать же советую с малого. Поставьте скрипт, который раз в день пишет вам список дел. Через неделю вы поймёте, какие промпты работают, и сможете расширять. Ваш второй мозг — не Obsidian, не Codex, не Markdown. Это процесс. Агент лишь ускоряет его.

Подписаться на канал