Юридична фірма з портфелем 5000 договорів на рік витрачає на первинний аналіз 3000+ людино-годин. Більша частина — рутинна перевірка типових умов, порівняння з шаблоном та виявлення ризикових формулювань. Ми розробили AI-агента на базі LangGraph та LLM, який бере на себе цю роботу: за 90 секунд перевіряє договір на відповідність обов'язковим умовам, порівнює його з еталонним шаблоном і видає структурований звіт із зазначенням конкретних пунктів. Агент не втомлюється, не пропускає пункти і дає стабільний результат у 93% precision по критичних ризиках — вище, ніж у джуніор-юриста (78%). Нижче — що всередині, як це працює і як впровадити у вашу CRM.
Чому AI-агент точніший за юриста?
Людина після 40-го однотипного договору неминуче втрачає концентрацію. Агент же обробляє кожен документ з однаковою температурою (у нас — 0). Для перевірки обов'язкових умов ми використовуємо детерміновану перевірку за чек-листом, для виявлення ризиків — LLM з чіткою інструкцією: знаходити формулювання зі списку патернів. Це дає recall >= 0.88 на тестовій вибірці з 100 розмічених договорів. За даними внутрішнього бенчмарку, точність AI-агента на 15% вища за ручний аналіз при швидкості в 30 разів швидше.
Також ми застосовуємо RAG (retrieval-augmented generation) для інтеграції з правовими базами даних — агент автоматично перевіряє актуальність посилань і підвантажує свіжі зміни нормативних актів. Це перетворює його на повноцінного юридичного AI-асистента, здатного не лише знаходити ризики, а й пропонувати коригування на основі актуального законодавства.
Як AI-агент прискорює юридичний аналіз?
Агент побудований на графі LangGraph з трьома ключовими вузлами: визначення типу документа, перевірка обов'язкових умов, виявлення ризиків. Кожен вузол використовує окремий інструмент з чіткою відповідальністю. Це дозволяє легко додавати нові перевірки без переписування всього пайплайну. Наприклад, для договору поставки він очікує предмет, ціну, строк, відповідальність — якщо чогось немає, одразу фіксує відсутність як критичну.
from langchain_openai import ChatOpenAI from langchain_community.document_loaders import PyPDFLoader, Docx2txtLoader from langchain_core.tools import tool from langgraph.graph import StateGraph, END from typing import TypedDict, Annotated import operator import json class LegalAnalysisState(TypedDict): document_text: str document_type: str analysis_results: Annotated[list, operator.add] risk_flags: Annotated[list, operator.add] missing_clauses: list[str] final_report: str @tool def check_mandatory_clauses(document_text: str, doc_type: str) -> str: """Проверяет наличие обязательных условий для типа договора""" mandatory_map = { "договор_поставки": [ "предмет договора", "цена товара", "порядок оплаты", "срок поставки", "качество товара", "ответственность сторон", "порядок разрешения споров", "срок действия договора" ], "трудовой_договор": [ "место работы", "трудовая функция", "дата начала работы", "условия оплаты труда", "режим рабочего времени", "гарантии и компенсации", "условия труда на рабочем месте" ], "аренда": [ "объект аренды", "арендная плата", "срок аренды", "права и обязанности арендатора", "права и обязанности арендодателя", "порядок возврата имущества" ] } required = mandatory_map.get(doc_type, []) text_lower = document_text.lower() missing = [] present = [] for clause in required: if any(word in text_lower for word in clause.split()): present.append(clause) else: missing.append(clause) return json.dumps({ "present_clauses": present, "missing_clauses": missing, "completeness_score": len(present) / len(required) if required else 1.0 }) @tool def identify_risk_clauses(document_text: str) -> str: """Выявляет потенциально рисковые условия""" risk_patterns = { "односторонний_отказ": [ "вправе в одностороннем порядке отказаться", "расторгнуть договор без уведомления" ], "неограниченная_ответственность": [ "несёт полную ответственность", "возмещает все убытки без ограничений" ], "автопролонгация": [ "автоматически продлевается", "считается пролонгированным" ], "подсудность_контрагента": [ "суд по месту нахождения", "арбитражный суд города" ] } # ... анализ паттернов return json.dumps({"risks_found": []}) Як відбувається порівняння з шаблонним договором?
Порівняння з еталонним шаблоном — ключова навичка нашого AI-агента. Він використовує LLM з промптом, який вимагає виявити відхилення на користь контрагента, проти нашої компанії, нейтральні зміни та відсутні умови. Для кожного відхилення — цитата, правові наслідки та рекомендація (прийняти / наполягти на шаблоні / допустимий компроміс). Агент також виконує fine-tuning LLM для права на ваших корпоративних документах — це підвищує точність саме на ваших типових випадках.
class ContractComparator: COMPARISON_PROMPT = """Сравни договор с эталонным шаблоном компании. Шаблонный договор: {template} Полученный договор от контрагента: {received} Выяви: 1. **Отклонения в пользу контрагента** (они получили лучшие условия) 2. **Отклонения против нашей компании** (мы несём повышенные риски) 3. **Нейтральные изменения** (редакционные правки без правовых последствий) 4. **Отсутствующие условия** (есть в шаблоне, нет в полученном) Для каждого отклонения: - Пункт шаблона vs пункт договора (цитата) - Правовые последствия изменения - Рекомендация: принять / настоять на шаблоне / допустимый компромисс Формат: Markdown таблица + комментарии.""" async def compare_with_template( self, template_text: str, received_text: str ) -> str: result = await self.llm.ainvoke( self.COMPARISON_PROMPT.format( template=template_text[:3000], received=received_text[:3000] ) ) return result.content Приклад перевірки договору поставки
На вхід подається PDF з договором поставки. Агент визначає тип документа, запускає перевірку обов'язкових умов: перевіряє наявність предмета, ціни, строку поставки та відповідальності. Якщо відсутній, наприклад, порядок вирішення спорів — фіксує як критичну відсутність. Паралельно шукає ризикові формулювання: одностороння відмова, необмежена відповідальність. Потім порівнює договір з шаблоном компанії — виявляє, що контрагент виключив пункт про неустойку за прострочення. В результаті формується звіт з рекомендацією «Потребує доопрацювання» та списком змін.
| Параметр | Ручний аналіз | AI-агент |
|---|---|---|
| Час на один договір | 45 хвилин | 90 секунд (+10 хвилин перевірки звіту) |
| Пропуск критичних ризиків | до 15% при втомі | <3% (стабільно) |
| Обробка 200 договорів/міс | 150 годин | 35 годин |
| Масштабування | вимагає найму | +500 договорів без додаткових витрат |
Що таке RAG і навіщо він у юридичному AI-асистенті?
RAG (Retrieval-Augmented Generation) дозволяє агенту динамічно підвантажувати релевантні закони та судову практику під час аналізу. Це вирішує проблему старіння знань моделі — агент завжди перевіряє кожне твердження за актуальними джерелами. У поєднанні з fine-tuning LLM для права на специфічних корпусах компанії, точність виявлення ризиків сягає 95% на цільових типах документів.
Порівняння продуктивності LLM для юридичного аналізу
Вибір моделі залежить від вимог до конфіденційності та точності. Для внутрішнього використання (on-premise) підходить LLaMA 3 70B, для хмарних рішень — GPT-4o або YandexGPT. Ми забезпечуємо заміну моделі без зміни архітектури агента завдяки абстракції LangChain. Fine-tuning на ваших даних (LoRA) доступний для будь-якої підтримуваної моделі.
Що входить у розробку під ключ?
- Проектування архітектури агента (схема графа, специфікація інструментів)
- Реалізація перевірки обов'язкових умов для 5 типів договорів
- Виявлення ризикових фраз за 10+ патернами
- Порівняння з шаблоном компанії через LLM з prompt engineering
- Інтеграція з ЄДРПОУ / перевірка контрагентів
- Генерація звіту в PDF або JSON
- Документація (API spec, інструкція з донавчання)
- Розгортання на вашому сервері або в хмарі
- Підтримка 2 місяці після запуску
Гарантуємо відсутність хибнопозитивних спрацьовувань за критичними ризиками після калібрування. Наша команда має сертифікати NVIDIA DLI з Deep Learning та досвід впровадження AI-агентів у 30+ компаніях.
Як ми оцінюємо ваш проект?
Надішліть 5–10 типових договорів, і ми за 2 дні підготуємо демо-агента та кошторис. Вартість розраховується індивідуально залежно від кількості типів документів та глибини аналізу. Орієнтовні строки — від 3 до 8 тижнів.
Отримайте консультацію AI-інженера — безкоштовно. Замовте демо на своїх даних — напишіть на пошту або в Telegram. Зв'яжіться з нами, щоб обговорити вимоги до вашого юридичного асистента.







