Files
Apple ef3473db21 snapshot: NODE1 production state 2026-02-09
Complete snapshot of /opt/microdao-daarion/ from NODE1 (144.76.224.179).
This represents the actual running production code that has diverged
significantly from the previous main branch.

Key changes from old main:
- Gateway (http_api.py): expanded from ~40KB to 164KB with full agent support
- Router: new /v1/agents/{id}/infer endpoint with vision + DeepSeek routing
- Behavior Policy: SOWA v2.2 (3-level: FULL/ACK/SILENT)
- Agent Registry: config/agent_registry.yml as single source of truth
- 13 agents configured (was 3)
- Memory service integration
- CrewAI teams and roles

Excluded from snapshot: venv/, .env, data/, backups, .tgz archives

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-09 08:46:46 -08:00

936 lines
37 KiB
HTML
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.
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="canonical" href="https://IvanTytar.github.io/microdao-daarion/cursor/15_projects_agent_module/">
<link rel="icon" href="../../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.18">
<title>15 — Projects Agent Module (MicroDAO) - DAARION Documentation</title>
<link rel="stylesheet" href="../../assets/stylesheets/main.66ac8b77.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#15-projects-agent-module-microdao" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="DAARION Documentation" class="md-header__button md-logo" aria-label="DAARION Documentation" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg>
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
DAARION Documentation
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
15 — Projects Agent Module (MicroDAO)
</span>
</div>
</div>
</div>
<script>var media,input,key,value,palette=__md_get("__palette");if(palette&&palette.color){"(prefers-color-scheme)"===palette.color.media&&(media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']"),palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent"));for([key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="DAARION Documentation" class="md-nav__button md-logo" aria-label="DAARION Documentation" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg>
</a>
DAARION Documentation
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../public/" class="md-nav__link">
<span class="md-ellipsis">
Home
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../public/getting-started/" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../public/architecture-overview/" class="md-nav__link">
<span class="md-ellipsis">
Architecture
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../public/daiS_daos_overview/" class="md-nav__link">
<span class="md-ellipsis">
DAIS & DAOS
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="">
<span class="md-ellipsis">
Internal
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
Internal
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5_1" >
<label class="md-nav__link" for="__nav_5_1" id="__nav_5_1_label" tabindex="0">
<span class="md-ellipsis">
Infra
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_5_1_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5_1">
<span class="md-nav__icon md-icon"></span>
Infra
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../internal/infra/INFRA_AUTOMATION_PACK_V1/" class="md-nav__link">
<span class="md-ellipsis">
Infra Automation Pack v1
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../internal/infra/monitoring_overview/" class="md-nav__link">
<span class="md-ellipsis">
Monitoring Overview
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../internal/infra/nodes_registry_v0/" class="md-nav__link">
<span class="md-ellipsis">
Nodes Registry v0
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5_2" >
<label class="md-nav__link" for="__nav_5_2" id="__nav_5_2_label" tabindex="0">
<span class="md-ellipsis">
Specs
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_5_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5_2">
<span class="md-nav__icon md-icon"></span>
Specs
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../internal/specs/matrix_presence_aggregator/" class="md-nav__link">
<span class="md-ellipsis">
Matrix Presence Aggregator
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../internal/specs/city_map_spec/" class="md-nav__link">
<span class="md-ellipsis">
City Map Spec
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../internal/specs/node_join_protocol_draft/" class="md-nav__link">
<span class="md-ellipsis">
Node Join Protocol (Draft)
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="15-projects-agent-module-microdao">15 — Projects Agent Module (MicroDAO)<a class="headerlink" href="#15-projects-agent-module-microdao" title="Permanent link">&para;</a></h1>
<p>Агент-проєктний менеджер для команд і спільнот</p>
<p>Цей документ описує агентський модуль "Проєкти" у MicroDAO — систему управління роботою, яка повністю працює через агентів. Проєкти, задачі, дедлайни, фоллоуапи та прогрес — це не просто дані, а живий простір, у якому взаємодіють люди та агенти microDAO.</p>
<hr />
<h1 id="1">1. Ідея<a class="headerlink" href="#1" title="Permanent link">&para;</a></h1>
<p>Проєкт у MicroDAO — це:</p>
<ul>
<li>спільний простір роботи,</li>
<li>де активні ролі мають люди та агенти,</li>
<li>де задачі створюються й координуються автоматично,</li>
<li>де агент проектів (Projects Agent) виступає координатором, навігатором і аналітиком.</li>
</ul>
<p>Проєкт не існує як "сторінка". Він існує як <strong>розмова</strong>, <strong>контекст</strong>, <strong>граф подій</strong>, яким володіє Projects Agent.</p>
<hr />
<h1 id="2">2. Ролі агентів у модулі<a class="headerlink" href="#2" title="Permanent link">&para;</a></h1>
<h2 id="21-projects-agent">2.1. Projects Agent (основний)<a class="headerlink" href="#21-projects-agent" title="Permanent link">&para;</a></h2>
<p>Роль: <code>"projects_core"</code></p>
<p>Відповідає за:</p>
<ul>
<li>створення, оновлення, завершення задач;</li>
<li>синхронізацію задач з каналами/чатами;</li>
<li>календар дедлайнів;</li>
<li>AI-саммарі проєкту;</li>
<li>глибоку інтеграцію з памʼяттю для пріоритизації.</li>
</ul>
<h2 id="22-task-agent">2.2. Task Agent<a class="headerlink" href="#22-task-agent" title="Permanent link">&para;</a></h2>
<p>Роль: <code>"task_unit"</code></p>
<ul>
<li>Опікується конкретними задачами.</li>
<li>Може вести діалог про задачу у власному треді.</li>
<li>Має памʼять щодо історії виконання конкретної задачі.</li>
</ul>
<h2 id="23-planning-agent">2.3. Planning Agent (опційний)<a class="headerlink" href="#23-planning-agent" title="Permanent link">&para;</a></h2>
<p>Роль: <code>"planning"</code></p>
<ul>
<li>Створює дорожні карти (roadmaps),</li>
<li>Пропонує структурування задач,</li>
<li>Формує спринти,</li>
<li>Аналізує історичні патерни роботи в microDAO.</li>
</ul>
<hr />
<h1 id="3">3. Структура проєкту<a class="headerlink" href="#3" title="Permanent link">&para;</a></h1>
<p>Проєкт складається з:</p>
<ul>
<li><strong>Мета</strong> (опис/маніфест),</li>
<li><strong>Учасники</strong> (люди й агенти),</li>
<li>
<p><strong>Задачі</strong>:</p>
</li>
<li>
<p>backlog,</p>
</li>
<li>активні,</li>
<li>
<p>завершені.</p>
</li>
<li>
<p><strong>Knowledge Space</strong> (повʼязані документи/факти),</p>
</li>
<li>
<p><strong>Проєктний контекст у памʼяті</strong>:</p>
</li>
<li>
<p>важливі рішення,</p>
</li>
<li>визначення,</li>
<li>
<p>стандарти/узгодження,</p>
</li>
<li>
<p><strong>Канали спілкування</strong>:</p>
</li>
<li>
<p>основний канал проєкту,</p>
</li>
<li>треди задач.</li>
</ul>
<p>Проєкт і канал — різні речі, але проєкт зазвичай має прив'язаний канал для комунікації.</p>
<hr />
<h1 id="4">4. Модель задачі<a class="headerlink" href="#4" title="Permanent link">&para;</a></h1>
<p>Задача (<code>task</code>) має:</p>
<ul>
<li><code>id</code></li>
<li><code>project_id</code></li>
<li><code>title</code></li>
<li><code>description</code></li>
<li><code>status</code>: <code>"new" | "in_progress" | "blocked" | "done"</code></li>
<li><code>priority</code>: <code>"low" | "medium" | "high" | "critical"</code></li>
<li><code>assignees</code>: перелік людей/агентів</li>
<li><code>due_at</code> (необовʼязково)</li>
<li><code>created_by</code> (людина або агент)</li>
<li><code>created_at</code>, <code>updated_at</code></li>
<li><code>memory_thread_id</code> (для диалогу з Task Agent)</li>
<li><code>tags</code> (опційно)</li>
</ul>
<p>Задача може мати чат-тред, пов'язаний з Task Agent.</p>
<hr />
<h1 id="5-projects-agent">5. Основні спроможності Projects Agent<a class="headerlink" href="#5-projects-agent" title="Permanent link">&para;</a></h1>
<h2 id="51-">5.1. Авто-створення задач з діалогів<a class="headerlink" href="#51-" title="Permanent link">&para;</a></h2>
<p>Якщо в чаті зʼявляється фраза:</p>
<ul>
<li>"Треба зробити…"</li>
<li>"Хочу щоб агент підготував…"</li>
<li>"До кінця тижня потрібно…"</li>
<li>"Це треба виправити."</li>
</ul>
<p>Projects Agent може запропонувати:</p>
<blockquote>
<p>"Створити задачу для цього?"</p>
</blockquote>
<p>Або може створити самостійно, якщо це дозволено правами контексту.</p>
<h2 id="52">5.2. Автоматичні фоллоуапи<a class="headerlink" href="#52" title="Permanent link">&para;</a></h2>
<p>Projects Agent:</p>
<ul>
<li>відстежує дедлайни,</li>
<li>нагадує виконавцю,</li>
<li>пропонує оновлення статусу,</li>
<li>створює автосаммарі тижня/дня.</li>
</ul>
<h2 id="53">5.3. Розумні саммарі проєкту<a class="headerlink" href="#53" title="Permanent link">&para;</a></h2>
<p>Команда може попросити:</p>
<ul>
<li>"Покажи прогрес по проєкту."</li>
<li>"Що зроблено за останні 3 дні?"</li>
<li>"Які блокери є зараз?"</li>
</ul>
<p>Projects Agent формує відповіді через LLM + памʼять + RAG.</p>
<h2 id="54">5.4. Привʼязка до каналів<a class="headerlink" href="#54" title="Permanent link">&para;</a></h2>
<p>Кожен проєкт має:</p>
<ul>
<li>основний канал,</li>
<li>треди задач.</li>
</ul>
<p>Projects Agent синхронізує зміни задач у чаті:</p>
<ul>
<li>статуси,</li>
<li>дедлайни,</li>
<li>призначення.</li>
</ul>
<h2 id="55">5.5. Планування і пріоритети<a class="headerlink" href="#55" title="Permanent link">&para;</a></h2>
<p>Projects Agent може:</p>
<ul>
<li>групувати задачі в спринти,</li>
<li>пропонувати чергу виконання,</li>
<li>аналізувати історію виконання.</li>
</ul>
<hr />
<h1 id="6-tools-projects-agent">6. Tools для Projects Agent<a class="headerlink" href="#6-tools-projects-agent" title="Permanent link">&para;</a></h1>
<p>У форматі, що сумісний з Runtime Core (12).</p>
<h3 id="61">6.1. Створення задач<a class="headerlink" href="#61" title="Permanent link">&para;</a></h3>
<p><code>create_task(title, description, priority?, due_at?, assignees?)</code></p>
<h3 id="62">6.2. Оновлення задач<a class="headerlink" href="#62" title="Permanent link">&para;</a></h3>
<p><code>update_task(id, fields)</code></p>
<h3 id="63">6.3. Призначення виконавців<a class="headerlink" href="#63" title="Permanent link">&para;</a></h3>
<p><code>assign_task(id, assignees)</code></p>
<h3 id="64">6.4. Пошук задач<a class="headerlink" href="#64" title="Permanent link">&para;</a></h3>
<p><code>search_tasks(query)</code></p>
<h3 id="65">6.5. Показати прогрес проєкту<a class="headerlink" href="#65" title="Permanent link">&para;</a></h3>
<p><code>summarize_project(project_id)</code></p>
<h3 id="66">6.6. Створення спринтів<a class="headerlink" href="#66" title="Permanent link">&para;</a></h3>
<p><code>create_sprint(name, tasks)</code></p>
<h3 id="67-">6.7. Авто-фоллоуап<a class="headerlink" href="#67-" title="Permanent link">&para;</a></h3>
<p><code>auto_followup(task_id)</code></p>
<hr />
<h1 id="7-runtime-core-12">7. Інтеграція з Runtime Core (12)<a class="headerlink" href="#7-runtime-core-12" title="Permanent link">&para;</a></h1>
<p>Projects Agent — звичайний агент:</p>
<div class="codehilite"><pre><span></span><code><span class="kd">const</span><span class="w"> </span><span class="nx">projectsAgentConfig</span><span class="o">:</span><span class="w"> </span><span class="kt">AgentConfig</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nx">id</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;ag_projects_core&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nx">teamId</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;t_...&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nx">name</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;Projects Agent&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nx">role</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;projects_core&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nx">systemPrompt</span><span class="o">:</span><span class="w"> </span><span class="kt">systemProjectsPrompt</span><span class="p">,</span>
<span class="w"> </span><span class="nx">memoryScope</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;team&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="nx">tools</span><span class="o">:</span><span class="w"> </span><span class="p">[</span>
<span class="w"> </span><span class="s2">&quot;create_task&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="s2">&quot;update_task&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="s2">&quot;assign_task&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="s2">&quot;search_tasks&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="s2">&quot;summarize_project&quot;</span><span class="p">,</span>
<span class="w"> </span><span class="s2">&quot;auto_followup&quot;</span>
<span class="w"> </span><span class="p">],</span>
<span class="p">};</span>
</code></pre></div>
<p>Projects Agent працює з:</p>
<ul>
<li>памʼяттю (13),</li>
<li>каналами (14),</li>
<li>еволюційним агентом (09),</li>
<li>LLM (11).</li>
</ul>
<hr />
<h1 id="8-13">8. Інтеграція з памʼяттю (13)<a class="headerlink" href="#8-13" title="Permanent link">&para;</a></h1>
<p>Projects Agent використовує:</p>
<h3 id="81-short-term-memory">8.1. Short-Term Memory<a class="headerlink" href="#81-short-term-memory" title="Permanent link">&para;</a></h3>
<ul>
<li>поточні обговорення задач у каналі проєкту.</li>
</ul>
<h3 id="82-long-term-memory">8.2. Long-Term Memory<a class="headerlink" href="#82-long-term-memory" title="Permanent link">&para;</a></h3>
<ul>
<li>ключові рішення команди,</li>
<li>визначення задач і стандартів,</li>
<li>історія пріоритетів.</li>
</ul>
<h3 id="83-mid-term-memory">8.3. Mid-Term Memory<a class="headerlink" href="#83-mid-term-memory" title="Permanent link">&para;</a></h3>
<ul>
<li>summary спринтів,</li>
<li>переліки завершених задач,</li>
<li>звіти про прогрес.</li>
</ul>
<p>Projects Agent додає факти в памʼять:</p>
<ul>
<li>"Задачу X завершено 12 жовтня."</li>
<li>"Проєкт переходить до етапу тестування."</li>
</ul>
<hr />
<h1 id="9-messenger-agent-14">9. Інтеграція з Messenger Agent (14)<a class="headerlink" href="#9-messenger-agent-14" title="Permanent link">&para;</a></h1>
<p>Messenger Agent допомагає Projects Agent:</p>
<ul>
<li>показувати списки задач у чатах,</li>
<li>формувати треди для задач,</li>
<li>робити дайджести по каналах.</li>
</ul>
<p>Projects Agent може викликати Messenger Agent через tools або через делегацію.</p>
<hr />
<h1 id="10-api">10. API для проєктів та задач<a class="headerlink" href="#10-api" title="Permanent link">&para;</a></h1>
<h3 id="101-projects">10.1. Projects<a class="headerlink" href="#101-projects" title="Permanent link">&para;</a></h3>
<p><code>GET /projects?team_id=...</code>
<code>POST /projects</code>
<code>GET /projects/:id</code>
<code>PATCH /projects/:id</code></p>
<h3 id="102-tasks">10.2. Tasks<a class="headerlink" href="#102-tasks" title="Permanent link">&para;</a></h3>
<p><code>GET /projects/:id/tasks</code>
<code>POST /tasks</code>
<code>PATCH /tasks/:id</code>
<code>GET /tasks/:id</code></p>
<p>Модель задачі повинна бути сумісною з Task Agent.</p>
<hr />
<h1 id="11-ui">11. UI інтеграція<a class="headerlink" href="#11-ui" title="Permanent link">&para;</a></h1>
<h2 id="111-sidebar-projects">11.1. Sidebar → Projects<a class="headerlink" href="#111-sidebar-projects" title="Permanent link">&para;</a></h2>
<p>У лівому сайдбарі в блоці "Простори" відображаються:</p>
<ul>
<li>список проєктів,</li>
<li>кнопка "Створити проєкт".</li>
</ul>
<h2 id="112-right-sidebar-project-context">11.2. Right Sidebar → Project Context<a class="headerlink" href="#112-right-sidebar-project-context" title="Permanent link">&para;</a></h2>
<p>Коли користувач знаходиться у каналі проєкту:</p>
<ul>
<li>
<p>правий сайдбар показує:</p>
</li>
<li>
<p>назву проєкту,</p>
</li>
<li>короткий опис,</li>
<li>задачі по статусам,</li>
<li>кнопку "Нова задача".</li>
</ul>
<h2 id="113-task-panel">11.3. Task Panel<a class="headerlink" href="#113-task-panel" title="Permanent link">&para;</a></h2>
<p>Клік по задачі відкриває:</p>
<ul>
<li>повну картку задачі,</li>
<li>чат-тред задачі,</li>
<li>
<p>дії:</p>
</li>
<li>
<p>змінити статус,</p>
</li>
<li>призначити,</li>
<li>додати опис,</li>
<li>переглянути памʼять.</li>
</ul>
<hr />
<h1 id="12-cursor">12. Інструкції для Cursor<a class="headerlink" href="#12-cursor" title="Permanent link">&para;</a></h1>
<p>Приклад промта:</p>
<div class="codehilite"><pre><span></span><code><span class="n">Implement</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">Projects</span><span class="w"> </span><span class="n">Agent</span><span class="w"> </span><span class="n">module</span><span class="w"> </span><span class="n">using</span><span class="p">:</span>
<span class="o">-</span><span class="w"> </span><span class="mi">15</span><span class="n">_projects_agent_module</span><span class="o">.</span><span class="n">md</span>
<span class="o">-</span><span class="w"> </span><span class="mi">12</span><span class="n">_agent_runtime_core</span><span class="o">.</span><span class="n">md</span>
<span class="o">-</span><span class="w"> </span><span class="mi">13</span><span class="n">_agent_memory_system</span><span class="o">.</span><span class="n">md</span>
<span class="o">-</span><span class="w"> </span><span class="mi">14</span><span class="n">_messenger_agent_module</span><span class="o">.</span><span class="n">md</span>
<span class="o">-</span><span class="w"> </span><span class="mi">10</span><span class="n">_agent_ui_system</span><span class="o">.</span><span class="n">md</span>
<span class="o">-</span><span class="w"> </span><span class="mi">05</span><span class="n">_coding_standards</span><span class="o">.</span><span class="n">md</span>
<span class="n">Tasks</span><span class="p">:</span>
<span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="n">Create</span><span class="w"> </span><span class="n">models</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">Project</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">Task</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">backend</span><span class="o">.</span>
<span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="n">Implement</span><span class="w"> </span><span class="n">basic</span><span class="w"> </span><span class="n">API</span><span class="p">:</span><span class="w"> </span><span class="n">GET</span><span class="o">/</span><span class="n">POST</span><span class="o">/</span><span class="n">PATCH</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">projects</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">tasks</span><span class="o">.</span>
<span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="n">Register</span><span class="w"> </span><span class="n">Projects</span><span class="w"> </span><span class="n">Agent</span><span class="w"> </span><span class="n">with</span><span class="w"> </span><span class="n">tools</span><span class="p">:</span><span class="w"> </span><span class="n">create_task</span><span class="p">,</span><span class="w"> </span><span class="n">update_task</span><span class="p">,</span><span class="w"> </span><span class="n">search_tasks</span><span class="p">,</span><span class="w"> </span><span class="n">summarize_project</span><span class="o">.</span>
<span class="mi">4</span><span class="p">)</span><span class="w"> </span><span class="n">Implement</span><span class="w"> </span><span class="n">UI</span><span class="p">:</span>
<span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">Projects</span><span class="w"> </span><span class="n">list</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">sidebar</span><span class="o">.</span>
<span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">Project</span><span class="w"> </span><span class="n">context</span><span class="w"> </span><span class="n">panel</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">right</span><span class="w"> </span><span class="n">sidebar</span><span class="o">.</span>
<span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">Modal</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">creating</span><span class="w"> </span><span class="n">tasks</span><span class="o">.</span>
<span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">Basic</span><span class="w"> </span><span class="n">task</span><span class="w"> </span><span class="n">list</span><span class="w"> </span><span class="n">with</span><span class="w"> </span><span class="n">statuses</span><span class="o">.</span>
<span class="mi">5</span><span class="p">)</span><span class="w"> </span><span class="n">Integrate</span><span class="w"> </span><span class="n">task</span><span class="w"> </span><span class="n">creation</span><span class="w"> </span><span class="n">with</span><span class="w"> </span><span class="n">agent</span><span class="w"> </span><span class="n">chat</span><span class="w"> </span><span class="p">(</span><span class="n">Projects</span><span class="w"> </span><span class="n">Agent</span><span class="w"> </span><span class="n">intercepts</span><span class="w"> </span><span class="n">messages</span><span class="w"> </span><span class="n">with</span><span class="w"> </span><span class="s2">&quot;треба зробити&quot;</span><span class="p">)</span><span class="o">.</span>
<span class="n">Output</span><span class="p">:</span>
<span class="o">-</span><span class="w"> </span><span class="n">list</span><span class="w"> </span><span class="n">of</span><span class="w"> </span><span class="n">changed</span><span class="w"> </span><span class="n">files</span>
<span class="o">-</span><span class="w"> </span><span class="n">diff</span>
<span class="o">-</span><span class="w"> </span><span class="n">summary</span>
</code></pre></div>
<hr />
<h1 id="13">13. Результат<a class="headerlink" href="#13" title="Permanent link">&para;</a></h1>
<p>Після впровадження цього модуля:</p>
<ul>
<li>MicroDAO отримує повноцінний агентський менеджмент проєктів;</li>
<li>задачі створюються з діалогів, а не через форму;</li>
<li>агенти синхронізують роботу між каналами й людьми;</li>
<li>зʼявляється можливість планувати спринти, отримувати прогрес і формувати дайджести;</li>
<li>Projects Agent стає центральним "організатором роботи" у кожному microDAO.</li>
</ul>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.sections", "navigation.instant", "content.code.copy"], "search": "../../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../../assets/javascripts/bundle.3220b9d7.min.js"></script>
</body>
</html>