Всередині штучного інтелектуального агента: пояснення моделей, інструментів, пам’яті та міркувань
Розбирає основну архітектуру штучних інтелектуальних агентів — цілі, моделі, інструменти, пам’ять та міркування — та наводить приклад практичного дослідницького агента на основі Python.
У першій частині AI Agents with Python 2026 ми розглянули фундаментальне питання:
Що саме таке штучний інтелект-агент?
Ми дослідили, чим традиційне програмне забезпечення відрізняється від чат-ботів, систем генеративного ШІ та агентів, які самостійно досягають цілей. Ми також описали основні складові агента — моделі, інструменти, пам’ять, знання, дії та механізми безпеки.
Цього разу ми розглянемо внутрішню структуру агента.
Що насправді відбувається під час роботи агента?
Як він обирає наступний крок?
Як він обирає правильний інструмент для виконання завдання?
Як він зберігає інформацію між кроками?
І як він розпізнає, що завдання виконане?
Ласкаво просимо до другої частини цієї серії — ми рухаємося від простої автоматизації до справді автономних систем.
Архітектура агента ШІ
На концептуальному рівні агент ШІ поєднує кілька компонентів у циклі, який постійно повторюється:
Мета → Модель → Рішення → Інструмент → Спостереження → Наступне рішення → Результат
Спрощена версія цієї архітектури може виглядати так:
USER / APPLICATION
│
▼
┌──────────────┐
│ GOAL │
└──────┬───────┘
│
▼
┌──────────────┐
│ AI MODEL │
│ LLM / Model │
└──────┬───────┘
│
▼
┌──────────────┐
│ DECISION │
│ / PLANNING │
└──────┬───────┘
│
┌─────────┼─────────┐
▼ ▼ ▼
TOOL 1 TOOL 2 TOOL 3
│ │ │
└─────────┼─────────┘
│
▼
OBSERVATION
│
▼
┌──────────────┐
│ NEXT ACTION? │
└──────┬───────┘
│
┌──────┴──────┐
│ │
YES NO
│ │
▼ ▼
Continue Result
Пам’ятайте, що це спрощений опис.
Системи агентів промислового рівня зазвичай є набагато складнішими, але розуміння цього основного циклу дає міцну відправну точку для всього, що буде далі.
1. Мета
Поведінка кожного агента починається з мети.
Системі потрібне чітке розуміння того, що вона має досягти.
Розгляньмо цей приклад:
"Проаналізуйте дані про продажі цього місяця та визначте три продукти з найбільшим спадом."
Ціль визначає напрямок усього процесу.
Коли ціль не сформульована чітко, агент ризикує надавати несвоєчасні відповіді або вживати дій, які насправді не допомагають.
Добре сформульована ціль зазвичай включає:
- Завдання, яке потрібно виконати
- Дані чи інформація, які мають значення
- Очікуваний формат результату
- Будь-які обмеження чи умови, яких потрібно дотримуватися
Розгляньмо ці два варіанти:
Слабка ціль:
"Проаналізувати дані."
Сильніша ціль:
"Ознайомитися з набором даних про продажі, позначити всі товари, чий місячний дохід знизився більш ніж на 10 відсотків, та підготувати таблицю з узагальненнями результатів."
Порівняно з нечітким варіантом, така формулювання дає агентові набагато чіткішу мету для роботи.
2. Модель ШІ
Модель виступає як механізм міркувань та обробки мови в основі більшості сучасних агентів.
Великі мовні моделі (LLM) займають тут своє місце, оскільки вони здатні:
- Аналізувати вхідний текст у природній мові
- Розуміти інструкції
- Оцінювати контекстуальну інформацію
- Створювати добре структурований результат
- Вибирати серед можливих дій
- Складати аргументи, необхідні інструменту
Проте модель — це лише одна частина загальної картини.
Мозок, ізольований від очей, рук, пам’яті та зовнішнього світу, не може багато чого зробити сам по собі.
Те саме стосується й LLM — її корисність зростає, коли вона підключена до відповідних інструментів та джерел даних.
3. Інструкції та контекст
Моделі потрібно знати свою роль та деталі поточного завдання.
Це зазвичай включає:
- Інструкції на рівні системи
- Інструкції від користувача
- Список інструментів, які можна використовувати
- Історію попередніх розмов
- Дані, отримані шляхом пошуку
- Текущий стан завдання
- Будь-які правила чи обмеження, яких необхідно дотримуватися
Як приклад, агент, створений для підтримки служби технічної допомоги, може бути налаштований з чимось на кшталт:
You are an IT support assistant.
Your responsibilities:
1. Diagnose common technical issues.
2. Search the approved knowledge base.
3. Provide troubleshooting instructions.
4. Escalate high-risk issues to a human technician.
Do not modify production systems without authorization.
Саме такі інструкції визначають, якою повинна бути поведінка агента.
4. Інструменти
Хоча модель може генерувати текст та логіку, саме інструменти дозволяють агенту взаємодіяти з зовнішніми системами.
Поширені категорії інструментів включають:
- Пошук у Інтернеті
- Зовнішні API
- Бази даних
- Системи файлів
- Калькулятори
- Власні функції Python
Уявіть собі асистента, який має звітувати про поточну погоду.
Вбудовані знання моделі не включатимуть актуальних даних про погоду.
Тому агент звертається до API погоди через виклик інструменту.
Процес виглядає приблизно так:
User Request
↓
AI Model
↓
Weather Tool
↓
Current Weather Data
↓
AI Model
↓
Response
Інструмент надає дані, які модель не може отримати самостійно надійним способом.
Виклик інструменту
Ключовою ідеєю в агентських системах є так званий виклик інструменту.
Замість того, щоб створювати лише відповідь у простому тексті, модель може позначити, що потрібно запустити певний інструмент.
Наприклад:
tools = [
"search_database",
"calculate",
"get_weather"
]
Припустимо, користувач запитує:
"Яка погода в Аккрі?"
Модель може визначити, що get_weather — це правильний інструмент для цього запиту.
Потім супутнє додатку виконує цю функцію та передає результат назад у модель.
У Python це можна просто описати так:
def get_weather(city):
# Call an approved weather service
return weather_data
Основне правило тут полягає у тому, що модель пропонує те, що їй потрібно, але додаток зберігає контроль над тим, що насправді виконується.
Це розділення має велике значення для безпеки.
Моделі не повинні мати необмеженого доступу
- Вашою базою даних
- Вашими електронними адресами
- Вашою файловою системою
- Вашими фінансовими системами
- Вашою операційною системою
Такий рівень доступу створює серйозні ризики.
Агентам слід надавати лише той доступ, який їм справді потрібен для виконання роботи.
Це відображає добре відому ідею з інженерії безпеки:
Принцип мінімальних привілеїв
Надавайте системі лише ті дозволи, які їй справді потрібні для виконання завдань, і нічого більше.
Наприклад:
Агент служби підтримки клієнтів може законно потребувати читання записів про клієнтів.
Але у нього, ймовірно, немає причин видаляти ці записи.
Ця ідея знову буде розглянута більш детально, коли ми будемо говорити про безпеку агентів у наступних розділах цієї серії.
5. Пам’ять
Пам’ять дозволяє агенту зберігати важливу інформацію протягом усього діалогу чи завдання.
Без неї кожна переписка здавалась б відокремленою від попередньої.
Ви кажете:
«Моя улюблена мова програмування — Python».
Потім ви запитуєте:
«Рекомендуйте мені проєкт з програмування».
Якщо у асистента є робоча пам’ять, він може поєднати ці два моменти та адаптувати свою відповідь, використовуючи те, що ви йому розповіли раніше.
Пам’ять — це не єдине поняття; вона функціонує у різних масштабах.
Короткострокова пам’ять
Короткострокова пам’ять охоплює деталі, які є актуальними лише під час поточної сесії або завдання.
User:
My budget is GHS 5,000.
User:
Show me laptops.
Agent:
I'll focus on options around your GHS 5,000 budget.
Без зберігання раніше згаданого бюджету агент не знатиме, як належним чином сформулювати рекомендації щодо ноутбуків.
Довгострокова пам’ять
Довгострокова пам’ять зберігається поза межами однієї розмови.
User Preference:
Prefers Python tutorials.
Previous Project:
Built an AI study assistant.
Current Goal:
Learning AI agents.
Зазвичай додаток зберігає такий тип даних у спеціалізованій базі даних або шарі пам’яті.
Проте зберігання особистих даних порушує питання конфіденційності, які не варто ігнорувати.
Вам потрібно ретельно обміркувати:
- Яка інформація варта зберігання
- Як довго її слід зберігати
- Де вона зберігається
- Хто має право до неї отримувати доступ
- Як користувач може її видалити
Пам’ять ніколи не повинна залишатися питанням другорядним — її потрібно ретельно спланувати під час проектування.
6. Знання
Пам’ять та знання звучать схоже, але виконують різні функції.
Пам’ять зазвичай відстежує деталі про користувача, розмову чи поточний стан завдання.
Отримання знань, з іншого боку, означає отримання відповідних фактів з зовнішніх джерел.
Розгляньмо корпоративного AI-агента, якому може знадобитися посилатися на:
- Політики компанії щодо співробітників
- Документацію до продукту
- Технічні посібники
- Внутрішні процедури
- Часто ставлені запитання
Замість того, щоб включати всі документи до запиту, система може отримати лише те, що є актуальним у момент потреби.
Це є основою важливого паттерну в архітектурі AI:
Retrieval-Augmented Generation (RAG)
На високому рівні процес RAG виглядає так:
User Question
↓
Retrieve Relevant Information
↓
Knowledge Source
↓
Relevant Context
↓
AI Model
↓
Answer
RAG стає особливо корисним, коли поєднується з агентами.
Агент може визначити, що йому бракує певної інформації, отримати відповідний контент та потім продовжити виконання завдання, використовуючи знайдене.
Ми детальніше розглянемо цей паттерн у Частині 6.
7. Міркування та планування
Припустимо, користувач просить агента підготувати порівняння трьох постачальників хмарних послуг для малого бізнесу.
Для виконання цього може знадобитися:
- Визначення платформ
- Збір інформації про ціни
- Порівняння функцій
- Оцінка переваг та недоліків
- Організація отриманих даних
- Підготовка кінцевого звіту
Агенту може знадобитися динамічно визначати, який крок є наступним, виходячи з того, що він наразі знає.
Саме цю роль виконує планування.
Планування не завжди означає складне міркування
Не варто припускати, що кожен агент потребує складного, повністю автономного механізму планування.
Деякі робочі процеси можуть залишатися простими:
Input
↓
Call API
↓
Format Result
↓
Return Response
Інші справді пропонують щось більш складне:
Goal
↓
Plan
↓
Research
↓
Analyze
↓
Verify
↓
Generate
↓
Review
↓
Complete
Те, що підходить, залежить виключно від проблеми, яку ви намагаєтесь вирішити.
Варто повторити:
Оберіть найпростішу архітектуру, здатну надійно вирішити проблему.
8. Спостереження
Як тільки агент виконує дію, йому потрібна інформація про те, що насправді сталось.
Це і є кроком спостереження.
Agent:
Search for information about Python.
Tool:
Returns 20 search results.
Agent:
Analyze the results and determine which are relevant.
Дані, які повертаються, стають спостереженням, яке агент враховує під час свого наступного кроку.
Разом це утворює цикл, який повторюється:
Мислення → Дія → Спостереження → Рішення → Знову дія
Цикл агента
Коли всі елементи на своїх місцях, ось як вони поєднуються між собою:
┌──────────────┐
│ GOAL │
└──────┬───────┘
↓
┌──────────────┐
│ CONTEXT │
└──────┬───────┘
↓
┌──────────────┐
│ AI MODEL │
└──────┬───────┘
↓
┌──────────────┐
│ DECISION │
└──────┬───────┘
↓
┌──────────────┐
│ TOOL │
└──────┬───────┘
↓
┌──────────────┐
│ OBSERVATION │
└──────┬───────┘
↓
┌──────────────┐
│ COMPLETE? │
└───┬──────┬───┘
│ │
NO YES
│ │
↓ ↓
Continue Result
Розуміння цього циклу є ключовим для розуміння того, як працюють агентські системи.
Практичний приклад: дослідницький агент
Розглянемо простий дизайн дослідницького агента.
Обробка цього запиту може бути розділена на наступні етапи.
Крок 1 — Розуміння
Визначте:
- Тему
- Географічну зону дослідження
- Цільову аудиторію
- Яким має бути вихідний результат
Крок 2 — Планування
Визначте, яка саме інформація є необхідною.
Крок 3 — Збір даних
Отримайте дані з схвалених джерел.
Крок 4 — Аналіз
Перегляньте отриману інформацію.
Крок 5 — Організація
Розташуйте результати у логічних категоріях.
Крок 6 — Створення
Складіть запитаний огляд.
Крок 7 — Перевірка
Переконайтеся, що результат дійсно відповідає початковому запиту.
Крок 8 — Надсилання
Надайте остаточну відповідь.
Це ілюструє робочий процес агента, орієнтованого на досягнення цілей, на практиці.
Що відбувається, коли інструмент не працює?
У реальному світі речі ламаються.
API можуть перестати працювати.
Бази даних можуть досягти тайм-ауту.
Пошук може повертати нерелевантні результати.
Іноді інструменти надсилають пошкоджені дані.
Добре створений агент має враховувати такі ситуації.
Наприклад:
try:
result = get_data()
except Exception as error:
print("Tool failed:", error)
Системи промислового рівня зазвичай потребують набагато міцнішого оброблення даних, ніж це.
Залежно від ситуації агент може:
- Перепробувати невдалий крок
- Перейти на інший схвалений інструмент
Гідне управління невдачами є основною частиною проектування агентів, а не винятковим випадком.
Участь людини у процесі
Автоматизація не повинна застосовуватися до кожного рішення.
Деякі дії справді потребують попередньої затвердження людини.
Наприклад:
AI Agent
↓
Prepare financial transaction
↓
Human Approval
↓
Execute Transaction
Цей підхід відомий як Участь людини у процесі (HITL).
Він особливо корисний, коли агент здатний виконувати дії з високим ризиком, такі як:
- Фінансові транзакції
- Видалення даних
- Надсилання конфіденційних повідомлень
- Зміна продуктивних систем
- Схвалення важливих рішень
Додавання людського контролю може значно зменшити наслідки помилок агента.
Детерміністичні та агентські робочі процеси
Є ще одна відмінність, яку варто зрозуміти.
Детерміністичний робочий процес дотримується фіксованої послідовності кроків:
Step 1 → Step 2 → Step 3 → Step 4
Натомість агентний робочий процес на льоту вирішує, що робити далі:
Goal
↓
Decision
↓
Action
↓
Observation
↓
Next Decision
Жоден з них за своєю суттю не є кращим вибором.
Для завдань, які є передбачуваними та добре зрозумілими, детерміністичний робочий процес часто є простішим для тестування, моніторингу та забезпечення безпеки.
Коли умови є невизначеними, а вимоги постійно змінюються, надання агенту можливості самостійно обирати шлях зазвичай є кращим рішенням.
Жоден з цих підходів не є кращим у всіх ситуаціях. Вибір між ними — це просто частина якісної інженерії.
Де застосовується Python
Python ідеально підходить для об’єднання елементів агента в єдину структуру.
Спрощена архітектура може виглядати так:
Python Application
│
├── AI Model
│
├── Tools
│
├── APIs
│
├── Database
│
├── Memory
│
└── RAG / Knowledge Base
Python керує координацією між цими елементами та реалізує супутню бізнес-логіку.
Це одна з причин, чому Python став таким ідеальним вибором для створення систем ШІ.
Проста архітектура агента на Python
Ось концептуальний ескіз мінімального агента:
class SimpleAgent:
def __init__(self, model, tools):
self.model = model
self.tools = tools
def run(self, goal):
context = goal
while True:
decision = self.model.decide(
context,
self.tools
)
if decision["action"] == "finish":
return decision["result"]
tool = self.tools[decision["tool"]]
result = tool(**decision["arguments"])
context = {
"goal": goal,
"previous_result": result
}
Цей приклад навмисно залишений у спрощеному вигляді.
Справжній агент, готовий до експлуатації, потребуватиме значно більшої інфраструктури підтримки, такої як:
- Перевірка надходящих даних
- Спосіб перевірки того, хто викликає систему
- Обробка помилок під час роботи
- Запис того, що сталось та коли
- Правила щодо використання інструментів
- Відстеження поточного стану агента
Проте цей уривок відображає основний алгоритм:
Визначити мету → прийняти рішення → скористатися інструментом → спостерігати за результатом → продовжувати або зупинитися.
Чому цикли агентів потребують обмежень
Без обмежень він може працювати без кінця.
Якщо це не контролювати, це може призвести до:
- Надмірних витрат на API
- Повільної реакції системи
- Надмірного використання ресурсів
- Повторюваних, зайвих дій
- Непередбачуваної поведінки
Щоб уберегтися від цього, розробники повинні вбудувати такі механізми контролю:
- Ліміт кількості ітерацій
- Часові обмеження на виконання
- Ліміти на виклики інструментів
- Ліміти витрат
- Обов’язкові кроки схвалення
Наприклад:
MAX_STEPS = 10
Система може зупинити агента, як тільки він перевищить дозволену кількість кроків.
Такий простий захист може бути достатнім, щоб запобігти виходу робочих процесів з-під контролю.
Безпека — частина архітектури
Безпека для агента — це не щось, що додається пізніше.
Її потрібно вбудувати з самого початку.
Основні аспекти, які потрібно розглянути:
Аутентифікація
Хто має дозвіл взаємодіяти з агентом?
Авторизація
Які ресурси може використовувати агент?
Перевірка вхідних даних
Які дані можуть надсилати користувачі?
Дозволи на використання інструментів
Які функції насправді може виконувати агент?
Захист даних
Які конфіденційні дані може отримати агент?
Журналування
Що саме робив агент, крок за кроком?
Підтвердження людиною
Які дії потребують підтвердження людини перед тим, як вони будуть виконані?
Ці проблеми стають ще більш критичними, коли агенти набувають більшої функціональності.
Стек агента
Штучного інтелектуального агента також можна розглядати як багатошаровий технологічний стек:
┌──────────────────────────────┐
│ USER / GOAL │
├──────────────────────────────┤
│ AGENT LOGIC │
├──────────────────────────────┤
│ AI MODEL / LLM │
├──────────────────────────────┤
│ TOOLS & FUNCTIONS │
├──────────────────────────────┤
│ MEMORY & STATE │
├──────────────────────────────┤
│ KNOWLEDGE / RAG │
├──────────────────────────────┤
│ APIs & DATABASES │
├──────────────────────────────┤
│ SECURITY / GUARDRAILS / LOGS │
└──────────────────────────────┘
Кожен шар виконує свою функцію.
Знання цих шарів значно полегшує проектування та виправлення помилок у агентах.
Ментальна модель для початківців
Коли ви починаєте працювати з агентами, пам’ятайте про ці шість запитань:
1. Яка мета?
Який результат має досягти система?
2. Що мусить зрозуміти модель?
Які інструкції та контекст їй потрібні для виконання завдання?
3. Які інструменти є у розпорядженні?
Які зовнішні ресурси він може використовувати?
4. Яку інформацію він потребує?
Звідки насправді походить його знання?
5. Які дії він може виконувати?
Що саме йому дозволено робити?
6. Що відбувається, якщо щось піде не так?
Як система реагує, коли щось ламається?
Здатність відповісти на ці шість запитань означає, що ви вже міркуєте як людина, яка створює агентів.
Ваша практична вправа
Перш ніж переходити далі, спробуйте накреслити схему проекту агента на папері.
Виберіть сценарій, наприклад:
Допоміжник з вивчення ШІ
Потім визначте:
Мета:
Допомагати студентам краще розуміти навчальний матеріал.
Модель:
Мовна модель.
Інструменти:
Читач документів та калькулятор.
Знання:
Самі навчальні матеріали курсу.
Пам’ять:
Текуща сесія навчання.
Дії:
Створення пояснень та генерація практичних запитань.
Обмеження:
Ніколи не вигадувати факти, якщо відповідні навчальні матеріали недоступні.
Людський контроль:
Студент перевіряє все, що створює агент.
На цьому етапі ви вже намалювали схему архітектури робочого агента.
Що буде у частині 3?
Маючи схему, наступним кроком є її перетворення на функціональний код.
У частині 3 буде розглянуто створення вашого першого простого ШІ-агента за допомогою Python.
Ви перейдете від діаграм та теорії до фактичної реалізації, і коли все закінчиться, ви будете знати, як запустити проект агента, під’єднати Python до мовної моделі, сформулювати чітку мету для агента, створити базовий інструмент, який він може використовувати, дозволити йому викликати цей інструмент, працювати з тим, що інструмент повертає, та нарешті отримати готову відповідь.
Перша версія буде навмисно мінімальною.
Метою на цьому етапі є зрозуміння того, як усі елементи взаємодіють, а не негайна реалізація повністю готової системи для використання.
Заключні міркування
Штучний інтелект-агент — це більше, ніж чат-бот під новою маркою.
Це система, побудована навколо мети, яка має засоби для роботи з інформацією та дії за допомогою інструментів.
У своїй суті архітектура зводиться до наступного:
Мета → Модель → Рішення → Інструмент → Спостереження → Наступна дія → Результат
Пам’ять + Знання + Безпека + Обмеження + Людський нагляд
Як тільки всі ці елементи починають працювати разом, штучний інтелект у формі агента вже не здається чимось магічним.
Це перетворюється на звичайну задачу інженерії програмного забезпечення.
Саме такі завдання Python ідеально підходить вирішувати.
Тепер ви знаєте, що таке агенти ШІ та як вони функціонують.
Наступним кроком є створення такого агента власноруч.
Пов’язана література
- Розуміння агентів ШІ: мети, інструменти, пам’ять та цикл агента — просте пояснення для початківців про відмінності агентів ШІ від чат-ботів, яке охоплює основні компоненти, цикл прийняття рішень, рівні автономії та приклади їх використання у реальному світі.