Задачи
Вопросы, просьбы и обещания из ваших чатов — задачи, которые агент планирует, связывает с сообщениями и закрывает.
Задача — одно дело, которое ждёт вас: вопрос без ответа, просьба, данное вами обещание. Эта
страница помогает не терять такие дела в чатах. Прочитав её, вы сможете попросить агента показать
план на сегодня, превратить сообщение в задачу, привязать к ней все относящиеся сообщения и закрыть
её, когда дело сделано. Задачи хранятся на вашем компьютере, в локальном хранилище tg, max и
memo. Ничто на этой странице не отправляет сообщений.
Категории, теги на задачах, ключи по типам, бронь задачи и проверка на дубликаты уже есть в общем
ядре инструментов (cli-core). Они есть в tg, max и memo.
Технические подробности — на странице Как устроены задачи.
Откуда берутся задачи
- Правила находят их в сообщениях. Вопрос, на который никто не ответил, становится задачей типа
question. Сообщение с упоминанием вас — задачейmention; упоминание должен отметить сам мессенджер, просто написанное имя не учитывается. Правило автоответа с действиемtaskоткрывает задачуrequestна каждое подходящее сообщение (Telegram, MAX). Правила работают, когда агент синхронизирует или разбирает ваши чаты, и пока инструмент работает в фоне (messages sync,reviewиserve). Правило выбирает категорию задачи по словам сообщения. - Их добавляет агент или вы. Обещание («пришлю договор в понедельник») или просьбу, которую не
поймало правило, добавляют вручную, с типом
promiseилиrequestи с категорией. - Задачи проекта живут в проекте и имеют ключ: ключ проекта и номер, например
HRB-12. Их типы —chore,bugиfeature. Их создают черезmemo; см. Задачи и напоминания в Memo.
Правило закрывает задачу question или mention, когда вы отвечаете в чате. Если у сообщения уже
есть задача, повторное добавление вернёт её же.
Попросите агента
Используй tg CLI. Синхронизируй мои чаты и покажи план задач: что просрочено, что нужно сделать сегодня и в каких чатах ждут моего ответа. Для каждой задачи покажи сообщения, из которых она появилась. Ничего не отправляй.Вы получите короткий список: открытые задачи со сроками и чаты, где последним написал собеседник. Каждая задача указывает на свои сообщения, поэтому видно, откуда она взялась. Для MAX напишите «max CLI».
Используй tg CLI. В чате с Иваном Примером я обещал прислать подписанный договор до пятницы. Добавь задачу-обещание для этого сообщения со сроком в пятницу и понятным названием. Привяжи к ней более ранние сообщения, где мы договорились о цене.Используй tg CLI. Пройди по списку задач, которые могут быть дубликатами. Объедини пары, которые явно об одном деле, отклони явно разные, а остальные отметь как неясные. Потом покажи мне только неясные пары.Одна задача — много сообщений
Задача начинается с одного сообщения — её источника. Более поздние сообщения о том же деле
привязываются к ней, и задача хранит всю историю. У привязки есть вид: related-to (по умолчанию),
evidence (сообщение показывает, что задача настоящая) или created-from. Задача может указывать
и на чат, человека, документ, заметку или веб-адрес.
В одном чате может быть много задач. Три разных вопроса от Анны Пример в одной группе — три задачи. Задача — об одном деле, а не об одном чате или одном человеке.
Команды
Необязательно: команды для терминала
Что нужно посмотреть сегодня:
tg personal tasks agenda
max personal tasks agendaОткрытые задачи одного чата:
tg personal tasks list 'chat:"Renovation" state:open'Добавить задачу для сообщения и спланировать её:
tg personal tasks add msg:telegram/1/77/42 --type promise --category documents --title "Send Bob Sample the signed contract" --due 3d
tg personal tasks plan <task> --description "Done when Bob confirms he has it." --remind-time 2dПривязать ещё сообщения и посмотреть всё в одном месте:
tg personal tasks link <task> msg:telegram/1/77/45 msg:telegram/1/77/51 --kind evidence
tg personal tasks show <task>Закрыть:
tg personal tasks close <task> --as done --reason "contract sent"
tg personal tasks close <task> --as dismissed --reason no-reply-needed<task> — ключ задачи, как его печатает tasks agenda, или её полный id. В max те же команды; некоторые новые имена ниже (tasks related,
duplicates defer, --into, --lease и поля запроса в плане) в max пока называются по-старому.
- agenda показывает просроченные задачи, задачи со скорым сроком или пора проверить, затем чаты, где ответа ждут от вас, и чаты, где ждёте вы. Предупреждает, если хранилище давно ничего не сохраняло.
- add требует тип и категорию (
--category) и отказывает, если уже есть похожая задача; см. Без дубликатов. - plan задаёт название, описание, срок и следующую проверку. Следующая проверка — когда агенту стоит снова посмотреть на задачу; вам она не напоминает.
- link привязывает к задаче сообщения, чаты, людей, документы, заметки или адреса.
- show показывает одну задачу с планом и всем, что к ней привязано.
- close закрывает задачу как
doneилиdismissed. Закрытая задача остаётся закрытой. Открыть её снова может толькоtasks unmerge, и только если задачу закрыло объединение.
Отношения между задачами
Одна задача проекта может ждать другую (blocked-by), продолжать её (follow-up-of) или просто быть
с ней связана по смыслу (related-to). Такие отношения устанавливаете только вы; агент может их
предложить. Они работают между задачами проектов в memo: см.
Что делать в первую очередь.
Есть ещё два вида. duplicate-of говорит, что задача — то же дело, что и другая. Его записывает
объединение, и он связывает задачи из сообщений одного аккаунта. discovered-from говорит, что
задача нашлась во время работы над другой.
Как агент работает с задачами после синхронизации
- Агент загружает новые сообщения (
messages sync). Синхронизация запускает правила задач на сохранённом, с того места, где остановился прошлый запуск. Первый запуск читает только чаты с сообщениями за последние 14 дней, поэтому старые вопросы не становятся задачами. В ответе сказано, сколько задач открыто, сколько закрыто и сколько пар ушло в список на проверку. - Читает план и сверяет каждую новую задачу с её сообщениями.
- Задаёт название, срок и правильную категорию, привязывает сообщения, которые относятся к одному делу, и закрывает сделанное.
- Проходит по списку возможных дубликатов (см. ниже).
- Показывает вам, что изменил, и спрашивает, прежде чем что-либо уйдёт с компьютера.
Без дубликатов
Одна и та же просьба часто приходит несколькими сообщениями: «пришлёшь счёт?», потом «счёт на 15 000, пожалуйста», потом напоминание через два дня. Это должна быть одна задача. Инструмент проверяет каждую новую задачу до того, как создать её:
- Уверен, что это та же задача: так бывает, только когда у того же сообщения уже есть задача
этого типа. Правило также не открывает задачу для сообщения, привязанного к задаче как
evidence. Новая задача не создаётся, а в ответе показана та задача. - Не уверен: инструмент не гадает. Если задачу добавляет агент,
tasks addотказывает и показывает до пяти похожих задач с причинами («тот же человек, та же сумма»). Агент повторяет команду с--into <task>, чтобы привязать сообщение к одной из них, или с--new, чтобы создать новую задачу. Если задачу нашло правило, задача создаётся, а похожие пары попадают в список на проверку. - Явно другая: создаётся новая задача.
Проверка сравнивает слова (в том числе другие формы слова и опечатки), человека, сумму денег, срок, категорию, ответы и время. Один только общий чат никогда не делает две задачи «одной». Инструмент никогда не объединяет задачи только по оценке. Некоторые похожие задачи, например подарок маме и подарок папе на ту же сумму, отличаются смыслом одного слова, поэтому решает агент или вы.
Кто решает. Список на проверку разбирает агент, который просматривает ваши чаты после
синхронизации. Он объединяет пары об одном деле и отклоняет пары о разных. Если он не может решить,
он отмечает пару как неясную. Вы видите только неясные пары: tasks duplicates decision:unsure.
Объединение привязывает все сообщения дубликата к оставшейся задаче и закрывает дубликат как
dismissed с отношением duplicate-of. Объединение можно отменить, и ничего не удаляется.
Отклонённая пара больше не возвращается.
tasks related REQ-23
tasks duplicates
tasks merge REQ-23 --into REQ-22
tasks duplicates reject REQ-23 REQ-22
tasks duplicates defer REQ-23 REQ-22
tasks duplicates decision:unsure
tasks unmerge REQ-23tasks related показывает задачи, которые могут быть тем же делом, что и данная, — лучшие первыми,
каждую с полосой (likely, maybe или different) и причинами. Команда ничего не меняет.
Категории, теги и ключи
- Категория говорит, о чём задача. Список по умолчанию:
money,documents,meeting,delivery,access,personalиother. Список один на всё хранилище и общий дляtg,maxиmemo, поэтому «финансы» и «платежи» не появятся рядом.tasks addтребует категорию и отказывает, если такого имени нет в списке. Правило выбирает категорию по словам сообщения илиother, если ни одно слово не подошло; агент исправляет её черезtasks plan --category. - Список можно менять. У каждой категории есть смысл и слова, по которым её выбирает правило.
Слово может указать свой язык, например
es:vuelo. Можно добавить или изменить категорию, удалить её или вернуть список по умолчанию.otherудалить нельзя. Задачи сохраняют свою категорию. - Теги вроде
urgentилиwaiting-for-themработают и на задачах:tags add urgent --task REQ-22. Теги нужны только для фильтров; проверка на дубликаты их не учитывает. - Ключи по типам: задача из сообщения получает короткий ключ, например
Q-15для вопроса,REQ-22для просьбы,M-7для упоминания илиPR-4для обещания. Ключ никогда не меняется, его можно цитировать в чате или заметке. Старые задачи сохраняют свой ключ, напримерIN1A2B3C4D-17; работают оба вида ключей и полный id.
tasks add msg:telegram/1/77/42 --type request --category money
tasks categories
tasks agenda category:money tag:urgent
tasks list category:money
config set task_categories.travel "trips and tickets | flight, hotel, es:vuelo"
config unset task_categories.travel
config unset task_categories
config showКоманды config меняют хранилище, а не один профиль: список одинаков во всех профилях.
Бронь задачи
Когда одновременно работают два агента или агент и вы, один из них сначала бронирует задачу. Бронь
заканчивается сама через 30 минут, поэтому остановившийся агент не держит задачу вечно. Повторная
бронь продлевает вашу. Закрытие задачи снимает бронь. План задач показывает, кто держит каждую
задачу, и скрывает задачи, которые забронировал кто-то другой; tasks agenda claimed:any показывает и
их. Вы, владелец, можете снять любую бронь.
Держатель брони — одна сессия агента. Инструмент берёт первое, что задано:
--holder <name>- переменная окружения
WIRECAT_HOLDER claude-code:<session id>из переменнойCLAUDE_CODE_SESSION_ID, которую задаёт Claude Code- имя агента из переменной
AI_AGENT owner
Агент без переменной сессии, например веб-агент, передаёт id своего чата через --holder.
tasks claim REQ-22 --lease 30m
tasks release REQ-22
tasks agenda claimed:anyУ агентов, которые работают через MCP-сервер, есть те же инструменты, например tasks_claim,
tasks_release, tasks_categories, tasks_related, tasks_duplicates, tasks_merge и tasks_unmerge.
Ещё не сделано
- Проверка, когда сообщение привязывают к существующей задаче. Проверка читает только название, описание и исходное сообщение задачи. Сначала она должна научиться читать и привязанные сообщения.
- Настройка весов по вашим ответам. Каждое объединение, отказ,
--intoи--newсохраняются, но пока ничто не меняет по ним веса.
Связанные страницы
- Как устроены задачи: данные, ключи, бронь и проверка на дубликаты по шагам.
- Задачи и напоминания в Memo: задачи проектов, исполнители и напоминания.
- Поиск: найти сообщения, к которым относится задача.