Галоўная / Артыкулы

Анатамія команды підпрыемства з ШІ: кераванне агентамі за дапомогою LangGraph і FastAPI

Практычны ўвод у платформу на адкрытым коде з калькамі-агентамі: як ко-засновнікі, менеджеры і спецыялісты-агенты координуюць сваю дзеяльнасць, аднаёнуюць інфармацыю, на час зупіняюцься для атрыбутаўвання і дапылваюць звясткі.

Выдавец: REACTAPP.TOP16 хв чытання3791 слоў

Крыніцы: Building a Multi-Agent Business Automation Platform with LangGraph, FastAPI, React, Neo4j, Qdrant, and Redis

Большая частка АІ-автаматызацыі яшчэ выконвачваецца за принципам адна-агента: адзін модель прыме запит і вяртае адказ. Гэта падходзіць для адпаведзення на запытанні, але рэальная бізнес-работа распадаецца на разныя ролі, дзеяння дэйскретных крокаў выконвуцца паралельна, а дзеяння іншых крокаў мусяць чакаць падтверджэння ад чалавека. У гэтым кансультацыянам рассматрываецца платформа з адкрытым кодам Multi Agent for Business Automation, якая моделюе невеликую команду стартапа як скоординаваныя агенты. До канца вы должны зразумець, як ўзаімадзейнаюць яе механізмы керавання, памяць, процесы затверджэння і API-інтерфейсы, а таксама якія варыянты дизайна можна перадаць у своіх сопных системах агентаў.

З чат-бота да віртуальнага офісу

Разглянем, як на самай працэ плануецца новы проект. Заснавальнік сформулюеў візыю. Менеджер ператварае яе на конкрэтныя завады. Фінансавыя спецыялісты пераканальваюцца ў правядзімасці доходаў і витак, маркетынг расрахоўвае позыціяванне, юрысты шукаюць рызыкі, а кансалеры гатуюць методы зв’язку. Частка ціх дзеянняў выконваецца па адной лініі, частка — паралельна, а частка застаецца заблокаванай пакуль чалавек не схваліць наступны крок.

За інформацыяй у файле README, проект — это платформа для автаматызаціі бізнес-роботы і падтрымкі прыняцьбы рашэнняў, у якой агенты з разнымі ролямі, персаналітэтамі і інструментамі координуюцца за дапамогою рабочых праграм LangGraph, спільнай памяці і механізмаў схвалення з участю чалавека (HITL), пры чым таксама выконваецца стварэнне атласоў і з’еднання з зовнішнімі системамі. Мета явна не ў стварэнні ўжо аднаго чат-бота, а у стварэнні вяртабельного офісу, дзе агенты будуць саавершаць роботу так, як гэта рабіла бы команда стартапа.

Пяць архітэктурных шароў

Сістэма чыста падзеліваецца на пяць слоёў:

  • Фронтэнд: панель керування на базе React для запуску працы па чату, візуалізацыі рабочага плану, затверджэнняў і аналітыкі.
  • Бэкэнд API: канцэнтры FastAPI REST, стрымы WebSocket, аутентыкацыя, звіты і API памяці.
  • Слою агентаў: агенты Cofounder, Manager, Finance, Marketing, Legal, Money і Sales.
  • Слою оркестрацыі: рабочыя планы LangGraph разам з адзінамэнтным оркестраторам, дэлегаванне задач і стварэнне пунктав перапытку.
  • Памяць і інфраструктура: Neo4j, Qdrant, Redis або Upstash, Supabase і хранэнне звітав.

За інформацыяй у README, стак складаецца з React 18 разам з Vite, FastAPI, LangGraph, а таксама з LangChain і CrewAI для роботы агентоў, Neo4j, Qdrant і Redis для працы з памяцюю і чергамі, а Supabase выступае як неабяжны слой для аутэнтыкацыі і зберагчання дадзеных.

Абшыяцейны цикл жыцця праходзіць зверху вярх, ад задуму корыстніка через агентоў-керавальнікі да спецыялістаў, і нарэшце да спільнай памяці, затверджэнняў і результатаў:

User Vision
   ↓
Cofounder Agent
   ↓
Manager Agent
   ↓
Specialist Agents
   ├── Finance
   ├── Marketing
   ├── Legal
   ├── Money
   └── Sales
   ↓
Shared Memory + Approval Gates
   ↓
Reports + Dashboard + Integrations

Галоўная мысль з гэтага дыяграмы — це тое, што даныя ўстройства являюцца системай рабочых практык, а не ланцугам запытак. Стан, памяць, затверджэнняў, перапрыбуткі, можлівасць адзоравання і зберагчаныя результаты ўсе являюцца важлівымі аспектамі.

Пяцьэтапная рабочая практыка

Этап 1: ператварэнне нечыярых ідэй у структураваны контекст

Усё пачынаецца тады, калі корыстнік адказвае, чаго хоча: канцэпцыі продукту, ідэі бізнесу чыя-небудзь аператывной меты. Агент-саўтворыцель прыме яго запит, які можа быць аж надта простым — толькі адна рэченца:

Input:
"I want to build an AI tool for small businesses."

Яго задача — ператворыць гэта на структураваны контекст, з якога сможа працаваць усё залога:

Cofounder Output:
- Vision statement
- Target users
- Problem definition
- Market opportunity
- Strategic assumptions
- Initial business direction

У дасылцы README гэты крок адзначаецца як „Усвоўленне візыі“. У частцы сервера гэты процес можа быць запусканы чераз калькі входных пунктав, залежна ад таго, чы хоча кліент проект на адну раз, далёгую пераказванню чы паглęбленую сесію:

POST /api/start-project
POST /api/conversation/start
POST /api/enhanced/start-session

Незалежна ад выбранага спосабу, частца сервера стварае проект чы сесію, фіксуе пачатковы стан і адправляе запіс праваму агенту.

Этап 2: планаванне і распадзелка задач манеджерам

Калі візыяна структуравана, агент-менеджар берае на сябе кантроль і разбівае стратэгію на конкрэтныя заведаменні, якія можна рэалізаваць:

Manager Responsibilities:
- Convert vision into roadmap
- Break work into functional domains
- Create agent assignments
- Define task dependencies
- Decide which agents should execute in parallel

У спецыяльным оркестрайтары гэта рэалізавана ў функцыі AgentOrchestrator.start_project(), якая знаходзіцца ў файле backend/flows/orchestrator.py. Яна стварае ідэнтыфікатор проекту, спачатку запускае Cofounder, перадае рэзультаты Cofounder менеджару, а пасля запускае спецыялістаў сагодзе з заданнямі менеджара. У псэудакодзе:

cofounder_result = await Cofounder.execute(vision_task)
manager_result = await Manager.execute(manager_task)
specialist_results = await execute_specialists(manager_result)
generate_outputs(all_results)

Менеджар являе сабою шар кантролю. Без яго кожны спецыяліст працаваў бы самастоятельна, на адной ідэі, і вяртаў бы рэзультаты, якія не будуць асоўваны межа сабой. Централізаванне разбівкі заданняў у аднам агенте ўлучывае рэзультаты спецыялістаў у ўзаемна супарадны план.

Этап 3: паралельны запуск спецыялістаў

Калі вже ёсць заведзеныя заданні, працююцыя ў галузі перэбираюць кераванне. Стандартны склад і ўсія іх абавязкі такія:

  • Соўласнік: візыя, стратэгія і можлівасці рынку.
  • Менеджер: план дзеяння, разбіўка задач і ўпаважненне адповідачоў.
  • Фінансы: модэль дохоў, модэль витак, прагнуты рычыцкі аддачы і прагнозы.
  • Маркетынг: позыціяванне, кампаніі і стратэгія контента.
  • Права: салідарнасць з законамі, рызыкі, контракты і перагляд правіл.
  • Грошы: цэны, монетызацыя і аператывы дохоў.
  • Продажы: процес продаю, актыўнасць у пошуку кліентаў і стратэгія продаю.

Кожны агент задаецца ў backend/agents/personalities.py, і кожна такая заданніця мае певныя характэрыстыкі, стыль камунікацыі, сферы экспертызы і інструменты, прызначаныя для конкрэтной ролі. Гэта мае значэнне: агенты моделююцца як виконавцы, прызначаныя для певных ролей, зі сваёй сабеўзаемасцю, прагамі вяры і контекстам заданняў, а не проста як разныя запыты системы.

Выкананне заданняў керуецца функцыяй _execute_specialists(), якая падготавлівае по аднаму заданню на кожнага спецыяліста (фінансы, маркетынг, права, а таксама продажы, калі гэта ўвімкнуто). Кожны вызов агента абгортаецца ў таймаут на 60 секунд:

parallel_executions = [
    asyncio.wait_for(agent.execute(task), timeout=60.0)
    for agent_name, task in specialist_tasks
]

Усі такія абгорнутыя вызовы пасля таго чакаюцца адразу:

specialist_results = await asyncio.gather(
    *parallel_executions,
    return_exceptions=True
)

Пакалькі asyncio.gather() прыймае параметр return_exceptions=True, таму часавыя парадкі аб зламы ў аднам агенте вяртаюцца як об’екты эксцэпсій у спісе рэзультатаў, замест таго каб была анульвана вся пачка задаń. Недзея гэтага падходу заключаецца ў тым, што код, які выклікае функцыю, должен пераглядаць кожны рэзультат і вяршыць, чы роботу неудачнага агента трэба прабавіць знову, прыняць яго як неканэктыўны або перадаць на вышэйшы ранг. Адмова ў гэтым падходзе є правядлівай: калі аналіз у сферы фінансаў ніколі не патрабуе рэзультатаў аналізу ў сферы маркетынгу, або наадворс, няма прычыны выканання іх аднаго за другім.

Этап 4: спяльная память і распространэнне контексту

Сістэма з калькама агентаў быстра паслабляецца, калі кожны агент бачыць толькі свой сабэственны контекст. Платформа рашае гэтыя проблемы за дапамогою аб’еднанага шару памяці, у яком кожны елемент памяці мае чыста вядомую задачу:

Neo4j      → graph memory and relationships
Qdrant     → vector memory and semantic retrieval
Redis      → task queue, cache, runtime coordination
Local data → fallback storage and exported outputs

У дасабле README гэта падсумавляецца як памяц графа Neo4j, вектарны пошук у Qdrant, канцэлеры Redis або Upstash, а таксама локальная кэшаванне з грацыязным альтернатыўным спосабам. Кожны з іх задовольняе разныя патрэбны.

Памяц графа фіксуе адносы между агентамі, задачамі, проектамі і рэзультатамі:

Agent → executed → Task
Task → belongs_to → Project
Agent → produced → Output
Output → depends_on → PriorContext

Такая структура дазволяе візуалізаваць саўместную працю і точна выявіць, які агент створыў какі рэзультат і на якім паканальным контексте.

Вектарная памяць у Qdrant падтрымлівае семантычны пошук, таму агент можа запытацца пра паканальную работу за сэнсам, а не за ID:

"Find previous market assumptions."
"Retrieve prior financial analysis."
"Use the earlier legal risk summary."

Памяц канцэлеры на базе Redis адпаведае за коордынацію пад час выканання:

- Event streaming
- Task queues
- Cache
- Agent activity updates
- WebSocket event propagation

Проект таксама правільна чынуе саброшчанне, калі не хапяцца службы. Пад локальнай разработке Redis можа быць заменены адаптэрам у памяці, а вызовы LLM могу быть направлены да мок-прадаўцы. Гэта зніжвае бар’еры для запуску цэлай системы на ноутбуке без неабходнасці падготавлівання ўсіх продакшн-залежнасцей, хоць гэта таксама значыць, што локальныя запускі не будуць адкрываць проблемы, якія з’яўляюцца толькі з рэальнымі службамі.

Этап 5: апраўленне чалавекам

Дзеянні з высокым уплывам не должны выкананы слепа, і тут апраўленне чалавекам ёсць частью основнага процесу, а не дадатковым элементам. Правіла застосоўваюцца да рашэнняў, якія можу вплыць на:

- Customer-facing campaigns
- Pricing recommendations
- Legal-sensitive outputs
- CRM updates
- Social media publishing
- Financial projections
- Business-critical recommendations

У README падкрэсляюцца хукі пры абавесцях у Slack і налаштовываны таймауты для гэтых процесаў апраўлення. З боку API, апраўленні выкананы через такія канцэнтры, як:

GET  /api/approvals/pending
POST /api/approvals/{approval_id}/respond
GET  /api/approvals/advanced/pending
GET  /api/approvals/stats

Базовы цыкл жыцця апраўлення выглядае так:

Agent generates action
   ↓
System evaluates confidence/risk
   ↓
Approval request is created
   ↓
Frontend or Slack notifies human
   ↓
Human approves/rejects/provides feedback
   ↓
Workflow continues or stops

Рэзультатам являецца модель автаноміі з разнымі рэжымамі: работа з низкім рызыком выконваецца аўтаматычна, тады калі ўсё, што стосуецца кліента, фінансаў чыя-небудзь правовых аспектаў, чакае на рашэнне чалавека. Якщо вы праектуеце падобныя механізмы, адпаведны аналіз модэляў маршрутацыі, розпаду та затверджэння ў LangGraph даступнае на сторонцы адпаведнага паўтарэння, і ёна детальней раскрывае механізмы на рэвэльскай гэты.

Унутрь FastAPI-бэкенду

Галоўны пункт входу бэкенду, backend/main.py, стварае набор глобальных служб, калі запускаецца прыкладненне:

AgentOrchestrator
Enhanced Orchestrator
ReportGenerator
SimplePredictor
AgentCollaborator
AdvancedApprovalManager
AgentService
ReportService
LangGraphOrchestrator
Queue Manager

За інструкцыямі README, кожны маршрут падключаецца за дапамогою backend/main.py; backend/api/main.py – гэта болей лёгкі альтернатыўны пункт входу, який падключае толькі частку маршрутаў. Код арганізаваны па прынцыпу адпаведнасці задачам:

backend/
├── main.py                 # Primary FastAPI app
├── api/                    # Route controllers
├── agents/                 # Agent implementations and personalities
├── workflows/              # LangGraph and HITL orchestrators
├── flows/                  # PRD DAG orchestrator
├── memory/                 # Graph, vector, cache managers
├── task_queue/             # Redis/Upstash queue with fallback
├── integrations/           # HubSpot, Slack, Instagram clients
├── approvals/              # Approval managers
├── collaboration/          # Cross-agent communication
├── outputs/                # Report generation
├── analytics/              # Predictions and metrics
├── auth/                   # Supabase auth
├── services/               # LLM, agent, report services
└── tools/                  # Search and tool registry

Варта адзначыць разлік межаў межы workflows/ (оркестраторы LangGraph і HITL) і flows/ (оркестратор DAG, які керуецца PRD): проект выкарыстоўвае два падходы да оркестраціі паралельна, што ўменшае жорсткасць структуры, але вымагае пераканальства, які шлях выкарыстоўвае паведамленне.

API, разбітая на групы

Аутентыкацыя

POST /api/auth/signup
POST /api/auth/signin
GET  /api/auth/user

У режыме, адпоўнаму на кшталт працы ў продакшэне, гэтыя канцэнтры выкарыстоўваюць аутентыкацыю Supabase. У локальным чы режыме дэманстрацыі прыклад можа або ўзагалі не выкарыстоўваць Supabase, або перайсці на простейшую логіку развіцця. У документацыі README пераказаны такія параметры налаштавання, як DEMO_MODE, зменныя Supabase і зменныя прадаўцоў LLM. Адпаведныя працоўнікі:

signup()          → creates user account
signin()          → authenticates user
get_current_user()→ verifies token and returns user profile

Жыцёвы цикл проекта

GET  /api/projects
POST /api/projects
POST /api/start-project
POST /api/auto-execute
GET  /api/auto-execute/status

Гэтыя элементы адпавядаюць следуючым функціям:

get_user_projects()       → fetch projects for authenticated user
create_project()          → create new project record
start_project()           → execute Cofounder → Manager → Specialists workflow
auto_execute_project()    → start automated coordination from raw vision
get_auto_execution_status() → return execution progress and logs

start_project() — галоўная частка ціягу. Яго внутршня структура выглядае так:

1. Generate project_id
2. Execute Cofounder Agent
3. Log Cofounder result
4. Execute Manager Agent with Cofounder context
5. Log Manager result
6. Execute specialist agents in parallel
7. Export and persist final outputs
8. Return project status and timeline

Эта структура адпавядае безпосередна AgentOrchestrator.start_project() і _execute_specialists() у модулі оркестрацыі.

Расшырэныя сесіі

POST /api/enhanced/start-session
POST /api/enhanced/continue-session
POST /api/enhanced/approve-and-execute
GET  /api/enhanced/session-status
GET  /api/enhanced/live-logs
GET  /api/enhanced/session-results
GET  /api/enhanced/system-metrics
POST /api/enhanced/cancel-session
POST /api/enhanced/cleanup-sessions

Кожны канцэнтрык мае чыста праблематыку:

start-session        → create enhanced automation session
continue-session     → continue existing multi-turn planning session
approve-and-execute  → approve captured vision and run workflow
session-status       → inspect session state
live-logs            → stream logs for UI monitoring
session-results      → return final session output
system-metrics       → expose high-level runtime metrics
cancel-session       → stop active session
cleanup-sessions     → remove old sessions

Это болейш адпрацоўкавы падход, таму што ён роздзеляе размову, затверджэнне, выкананне, монітарынг і адзыскванне рэзультатаў на окремыя запыты. Кліент можа пераглядаць статус або стрімуваць логі без трывалага ведучага запыту, а сесію можна явна анулюваць чыстаць.

Калітэкта агентаў

GET  /api/agents/status
GET  /api/agents/list
GET  /api/agents/personalities
GET  /api/agents/configs
POST /api/agents/configs
POST /api/agents/execute
GET  /api/agents/logs/live

Што робіць кожны маршрут:

agents/status       → current status of all agents
agents/list         → available agent inventory
agents/personalities→ UI-visible personality metadata
agents/configs      → current agent runtime settings
update configs      → update temperature, approval mode, priority, enabled flag
agents/execute      → execute a single agent manually
logs/live           → recent agent execution logs

Калі вы вызываеце /api/agents/list, спіс агентав прыходзіць сортаваны на чатыры категорыі (стратэгічныя, бізнес-категорыі, аперацыйныя, спецыялізаваныя), а тэрміналы налашчэння пад час выконання дазваляюць аператару змяніць рэгламенты працы, спосаб затверджэння, прыорітет і статус актывацыі агента.

Размовы

POST /api/conversation/start
POST /api/conversation/{conversation_id}/message
POST /api/conversation/{conversation_id}/approve

Функціі-обрабоўчыкі, якія стояць за імі:

start_conversation()     → starts a Cofounder-led discovery conversation
continue_conversation()  → continues the existing conversation with stored context
approve_conversation()   → approves the captured vision and starts task distribution

Этот прайс існуе, каб система могла зберагчы достатню колькасць дакладнасці прытаму, перш чым вкласты зусілля ў спецыялізаваных агентаў. Внутршняе функцыонаванне выглядае так:

1. User sends initial idea
2. Cofounder Agent asks clarifying questions or structures the vision
3. Conversation state is persisted
4. System detects whether vision is ready for approval
5. User approves
6. System starts agent coordination

У оркестрабары start_conversation() прызначае новы ідэнтыфікатор размовы, зберагчае тое, што напісаў корыстнік, вызывае агента Cofounder, зберагчае адпаведзь і вяртае флажок ready_for_approval, які паведамляе кліента, чы рэзультат размовы дастаткова готавы для затверджэння.

Рабочыя прайсы LangGraph

POST /api/workflow/execute
POST /api/workflow/resume/{thread_id}

Соответствуючыя функцыі:

execute_langgraph_workflow() → runs a LangGraph-based workflow
resume_workflow()            → resumes workflow from checkpoint

Этыя канчаткі прыёмніках адкрыта практыкуея слой LangGraph. У документацыі яго описваюць як машыны станоў LangGraph, якія фіксуюць свой прыбытак, можуць самі сабе выправляць і маюць вузлы перерыву, дзе можа втручацца чалавек. Ключовая якосць — можлівасць продажу: калі дзейнасць, якая трывае даволі дазго, паставляецца на час для затверджэння або парадуець на паўпацёжы, яна должна продавацца з свайго пасляпэльнага фіксавання, а не пачынацца значна зноў і плаціць за кожны вызов LLM. Наш аналіз таго, як LangGraph's InMemorySaver зберагае фіксавання пояснюе, што насправды фіксуецца на кожным кроку.

Атласы

GET  /api/reports/comprehensive
GET  /api/reports/{report_type}
POST /api/reports/generate-pdf
GET  /api/reports/download/{filename}
GET  /api/reports/domains
GET  /api/reports/domains/{domain}

Што выдае кожны маршрут атласу:

comprehensive report → generate full business report
specific report      → generate executive, marketing, financial, etc.
generate PDF         → convert report data into downloadable PDF
download report      → serve generated PDF/HTML
domain reports       → return modular reports by business domain

Стварэнне атласаў ёсць важным функцыянам: атласы для керуючага персоналу, маркетынгу, фінансаў у формате JSON, а таксама PDF-файлы, якія ствараюцца за дапамой WeasyPrint. Гэта і ўражае разліку з чат-ботамі, адколі канечны рэзультат — госпадарчы дакумент, а не прыемка з чату.

Памяць

GET    /api/memory/graph
GET    /api/memory/stats
POST   /api/memory/export
DELETE /api/memory/clear

І гэтае яны вяртаюць:

memory/graph  → return graph nodes and edges for visualization
memory/stats  → return vector/graph memory statistics
memory/export → export stored memory and outputs
memory/clear  → clear memory stores

README агрупавае іх пад /api/memory/* для экспорту графікаў і статыстыкі. За ўзмоцю гэтых элементаў можна адследаваць накупленыя агентамі знанні, стежыць за ўсімі іх выходамі та бачыць, сколькі прыемлів памяці кожны з бэкенд-сервысаў. Зауважыце, што канец-тупінь clear є разрушальным і патрабуе тых сабе адносоў да доступу, якія існуюць для будзь-якай іншай адміністратыўной дзеяння.

Аналітыка

GET /api/analytics/predictions
GET /api/enhanced/system-metrics
GET /api/communication/stats

Їхня мэта:

predictions          → analyze generated outputs and estimate success/revenue/market timing
system metrics       → return enhanced orchestrator metrics
communication stats  → return inter-agent communication analytics

За іхнімі стоіць простыя дапаможныя функцыі:

_analyze_project_success()
_analyze_revenue_trend()
_analyze_market_timing()

Эті агенты аналізуюць выходныя даны та вырахоўваюць показнікі, значныя для бізнесу, такія як верагатыба успеху, напрамак росту доходаў і рэкамендаваны час дзеяння. Це гіюрістыкі, створаныя на аднойчынных текстах, таму ўваходзіце іх рэзультаты як падказкі, а не як прагнозы.

Інтеграціі

/api/integrations/*

У рэпазітарыі пераказаны HubSpot, Slack і Instagram Business API, кожны з якіх мае конкрэтную ролю:

HubSpot   → CRM workflows
Slack     → HITL approval notifications
Instagram → marketing automation with compliance checks

Основная ідея заключаецца у тым, што агенты должны перадаваць рэзультаты у справжнія бізнес-сістэмы, а не толькі ствараць контент, пры чым бар’еры затверджэння стояць перед усім чутлівым матэрыялам.

WebSockets і стрімінг

WS  /ws/agent-updates
WS  /ws/agent-events
GET /api/stream/logs

Што несе кожны стрім:

/ws/agent-updates → periodically sends agent status updates
/ws/agent-events  → streams queue/Redis events to frontend
/api/stream/logs  → streams recent logs via server-sent response

Для інтэрфейсу з колькама агентамі такая видазлівасць ўсёчысла неабходная. Аператары павінны бачыць, канфедзе агент працуе, яка задача ў актыўным стане, чакаецца затверджэнне і дзе зламалася работа прабегу.

Фронтэнд на React

Кліент пабудаваны на такой стак:

React 18
Vite
React Router
Tailwind CSS
React Flow
Recharts

За інструкцыямі README, панель керування аб’еднвае процес нараджэння корыстувальніка за дапамою чату, статус агента ў рэальным часе, візуальную карту прабегу задач і вікны для пераканання ў супараджэнні з PRD. Яе абавязкі ўключаюць:

1. Capture the user’s project vision
2. Display agent execution status
3. Visualize task flow
4. Show pending approval requests
5. Display reports and analytics
6. Show memory/monitoring data
7. Connect to WebSocket streams
8. Communicate with FastAPI through api.js

Адпраўны лейаут є компактным:

frontend/
└── src/
    ├── App.jsx
    ├── pages/
    ├── components/
    └── services/api.js

App.jsx выступае як аутентыфікованая шэлка, pages/ мае ў сабе відзначкі рабочага прыему, аналітыку і монітарынг, а components/ супляе базовыя елементы: панелі для дашборда, экраны затверджэння, відзначкі супакорання PRD і настройкі інтэграцыі. Кожны HTTP-запрос праходзіць через services/api.js, які ў аднам месцы дадзеяўка перапрыбуткі і кэшаванне, а таксама не падпускае проблемы сеті да компанентаў.

Працэс з начала да канца

У сукупнасці галоўны пат з системы выглядае так:

1. User submits business vision from React UI
2. Frontend sends request to FastAPI
3. FastAPI creates project/session
4. Cofounder Agent structures vision
5. Manager Agent converts vision into roadmap and assignments
6. Specialist agents execute assigned tasks
7. Results are stored in memory
8. HITL approval is requested where required
9. Reports are generated
10. Frontend displays logs, status, graph, reports, and outputs

Якщо прыроўняць да рэальных модуляў і методаў, той самы пат выглядае так:

React UI
   ↓ HTTP/WebSocket
FastAPI main.py
   ↓
AgentOrchestrator / EnhancedOrchestrator
   ↓
CofounderAgent.execute()
   ↓
ManagerAgent.execute()
   ↓
_execute_specialists()
   ↓
FinanceAgent / MarketingAgent / LegalAgent / MoneyAgent / SalesAgent
   ↓
MemoryManager + GraphMemory + VectorMemory
   ↓
ReportGenerator
   ↓
Dashboard + PDF/HTML/JSON Output

Кожны слой мае адну задачу: UI керуе взаімадзейнасцю, оркестрайторы координуюць, агенты выкананяюць задачі, менеджеры памяці зберагаюць контэкст, а генератор атласоў формуе выходны результат.

Чаму графічны оркестрайтар у зместо ланцуга

Рабочыя процесы з калькамі выкарыстоўваюць больш, чым проста серію вызоваў функцый. Їм патрэбна:

- State transitions
- Conditional routing
- Checkpointing
- Retry behavior
- Human approval interruptions
- Recovery after failure
- Resume from previous state

У дасягальніку README машыны станаў LangGraph называюцься як шар оркестрацыі самэлькі для гэтых можлівасцей. Просты ланцуг запитаў ёсць лінейным:

A → B → C → Done

Бізнес-рабочы процесс розгалужаецца на адпаведныя направленні на адной з промежуточных стадзій:

A → B
    ├── if finance confidence low → retry Finance
    ├── if legal risk high → ask human approval
    ├── if marketing ready → generate campaign
    └── if all complete → generate report

Низкая ўпэўненасць у фінансавых аспектах спрыяе прабавам зноў, высокі правовы рызык — перагляду з боку людзя, а фінальны атлас чакае, пакуль усе розгалужэння не будуць завершаныя. Кодаванне гэтага як жорстка-закодаваных последовальных вызоў быстра ператвараецца на заплутанасць з умовнымі выразамі; граф з явнымі вузламі, рэшткамі та пунктамі контролю дапамагае залічыць ситуацыю та пракратыць работу.

Што правільна зроблена ў дызайне

  • Чыстая размежаванне агентаў: кожны агент керуе аднам сфэрой бізнесу, што дапамагае падтрымваць адносна стабільныя рэзултаты і спрыяе прыўязцы новых ролей.
  • Оркестрацыя на адной засадзе рабочага прайсупутку: выкананне задач адбываецца за модэллю рабочага прайсупутку, а не як серія адпаведзей на запытанні.
  • Паралельныя спецыялісты: фінансы, маркетынг, права, кашовыя аспекты і продаўліванне выконваюцца адночасна, дзе тое можліва з урахоўваннем залежнасцей, што скорачае час ад початку да заканчэння.
  • Спяльная память: Neo4j, Qdrant, Redis і локальныя сховішчы разам забезпечваюць керуванне адносамі, семантычны выкарыстоўвання інфармацыі, адражэнне запытанняў, кэшаванне і альтернатывныя варыянты.
  • Безпека з участю чалавека: механізмы затверджэння дапамагаюць выкарыстоўваць систему для прынятні рашэнняў, якія маюць рэальныя наследкі.
  • Магчымасць абзярнага спостерэння ў рэальны час: WebSockets, логі, хроналагі, панелі керування і аналітыка дазваляюць бачыць, што робяць агенты.
  • Структураваныя адчыты: выходным продуктам ёсць дакумент, які можна передаць заўяжаным сторонам, а не транскрыпція чату.
  • Готавнасць да інтэграцыі: падтрымка HubSpot, Slack і Instagram паказвае, што система прызначаная для вярнага супрацоўкі з рэальнымі бізнес-інструментамі.
  • Ударожэнне для прыменення

    Фундамент моцны: модульны бэкенд, спецыяльныя агенты, абстракцыя памяці, процес затверджэння і працоўны фронтэнд. Наступныя крокі стосуюцца надзеры, безпекі, монітарынгу, ацэнкі і кантролю витак:

    1. Add distributed tracing with OpenTelemetry
    2. Add LangSmith or custom LLM evaluation dashboards
    3. Add cost tracking per agent and per workflow
    4. Add stronger RBAC for users, agents, and approvals
    5. Add persistent workflow checkpoints in Postgres or Redis
    6. Add retry policies per agent type
    7. Add queue-based background execution with Celery/RQ/Arq
    8. Add structured output validation with Pydantic schemas
    9. Add agent-level unit tests and golden-output evaluation
    10. Add Docker production profiles and deployment manifests
    

    Два з эых пунктавяўцоў заслуговуюць на асаблівую увагу. Адстэйкаванне костаў па агенту і па працэсе выканання мае значэнне, таму што спецыялісты, якія працуюць паралельна, збільшуююць колькасць вызоў LLM, а косты застаюцца невідомымі пакуль іх не будзе змерана. Перапрацоўка структураванага выходу за дапамойкай схем Pydantic мае значэнне, таму што кожны наступны крок — ад запісаў у памяці да звёрнакоў і апдэйтаў у CRM — є настолькі ж надзеяны, насколькі структура дадзеных, якія вяртае агент.

    Ключовыя выводы

    • Спрыятлівае ставленне да шара оркестрацыі як да гэтага продукту; LLM ёсць аднай з складовых у ям.
    • Назначыце агента-менеджера, які будзе кераваць процэсам разбівання задач, ўпэўніваючыся, што выходы спецыялістаў застануцца цэлеспрямованымі.
    • Запускайце незалежныя агенты паралельна з таймаутамі па агенту і часткальна керавайце неудачамі якраз.
    • Дадзіце кожнаму хранілішчу памяці адну задачу: граф для вядомаў пра походжэнне, вектары для адзыскання інфармацыі, очакванні для коордынацыі.
  • Прынцыпавае адзначэнне, контрольныя пункты і можлівасць спостерэння за роботайом системы павінны быць частюю основнага дзяйначэння, а не дадатковымі элементамі, якія дадаюцца пазней.