Головна / Статті / Практичні нотатки: Контекстні графи для штучних інтелектуальних агентів: надання ШІ пам’яті досвідченого фахівця

Практичні нотатки: Контекстні графи для штучних інтелектуальних агентів: надання ШІ пам’яті досвідченого фахівця

Покрокове пояснення практичних нотаток: Контекстні графи для штучних інтелектуальних агентів: надання ШІ пам’яті досвідченого фахівця: контракти, перевірки та шаблони коду для команд, які використовують цю модель.

7970 слів

Чому наступне покоління штучних інтелектуальних агентів потребує більшого, ніж векторний пошук, ембеддинги та більші вікна контексту

Наведіть уривки, які насправді лежать в основі відповіді. Без посилань оператори не зможуть відрізнити галюцинації від проблем індексації.

Що таке граф контексту?

EmployeeController.java exists.
ReimbursementService.java exists.
SecurityConfig.java exists.
ADR-17.md exists.
EmployeeController
      |
      | follows_pattern
      v
EmployeeApiConvention
      |
      | requires
      v
TenantValidation
ReimbursementEndpoint
      |
      | handled_by
      v
ReimbursementOrchestrator
      |
      | writes_to
      v
ReimbursementRepository
      |
      | persists
      v
HrReimbursement
ReimbursementEndpoint
      |
      | governed_by
      v
ADR-17
ADR-17
      |
      | created_because_of
      v
ProductionIncident-928

Граф — це по суті крапки та лінії

На етапі A Graph Is Basically необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Необхідно документувати як шлях успішного виконання, так і шлях відновлення. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої оптимізації. Встановлюйте людське схвалення для тих кроків, які призводять до витрат грошей чи змінюють дані у продакшені. Підключення на етапі компіляції не є гарантією повності функціоналу продукту. На етапі A Graph Is Basically необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Розглядайте цей етап як контракт між вхідними даними та перевіреними результатами. Називайте всі елементи, визначайте критерії успіху та не допускайте безповідомного часткового завершення роботи.

Node ---- Relationship ---- Node
Vaibhav ---- works_at ---- PeopleStrong
Controller ---- calls ---- Service
Service ---- calls ---- Repository
Repository ---- writes_to ---- DatabaseTable
Endpoint ---- protected_by ---- Permission
Feature ---- explained_by ---- ADR
ADR ---- resulted_from ---- Incident
Test ---- validates ---- Endpoint

Граф знань проти графа контексту

Під час роботи над етапом «Граф знань проти графа контексту» спочатку запишіть умови використання: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Такий перелік допомагає зберігати чесність пізніших змін у коді. Записуйте час виконання та витрати на токени або запити поруч із функціональними результатами. Чітке бачення витрат заздалегідь запобігає несподіваним рахункам, коли процес переходить від демо-версії до спільних середовищ. Робіть контрольні позначки після дорогих кроків. Функція відновлення не повинна знову стягувати плату за один і той самий виклик ШІ, коли оператор перепробовує пізнішу ланку.

Employee
    WORKS_FOR
Organization
Order
    BELONGS_TO
Customer
PaymentService
    USES
PaymentRepository
PaymentService
    USES
PaymentRepository
PaymentService
    GOVERNED_BY
ADR-12ADR-12
    CREATED_AFTER
Incident-492PaymentService
    REQUIRES
FinancePermissionPaymentRepository
    WRITES_TO
PaymentTransactionPaymentTransaction
    MUST_BE_SCOPED_BY
OrganizationIDPaymentTransaction
    MUST_BE_SCOPED_BY
TenantID

Найважливіша частина: графи контексту зберігають «чому»

Під час роботи над етапом «Найважливіша частина» спочатку запишіть умови контракту: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Такий перелік допомагає зберігати чесність пізніших змін у коді. Тримайте конфігурацію окремо від коду додатку. Файли середовища, сховища секретних даних та флаги функцій мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь граф. Робіть контрольні пункти після дорогих кроків. Система відновлення не повинна знову стягувати плату за один і той самий виклик LLM, коли оператор перезапускає пізнішу ланку.

Discount = 25%
Approved = true
ApprovedBy = 182
Customer-482
    RECEIVED
25% Discount
25% Discount
    APPROVED_BY
SalesDirector25% Discount
    EXCEPTION_TO
StandardDiscountPolicyException
    BECAUSE
CustomerMigrationRiskCustomerMigrationRisk
    DOCUMENTED_IN
Opportunity-928Decision
    PRODUCED
SuccessfulRenewal

Основні компоненти графа контексту

Під час роботи над основними компонентами етапу спочатку запишіть умови взаємодії: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Цей перелік допомагає зберігати чесність пізніших змін у коді. Одночасно задокументуйте шлях успішного виконання та шлях відновлення. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої доробки. Робіть контрольні пункти після дорогих операцій. Система відновлення не повинна знову стягувати плату за той самий виклик LLM, коли оператор повторює спробу з пізнішого етапу. Під час роботи над основними компонентами етапу спочатку запишіть умови взаємодії: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Цей перелік допомагає зберігати чесність пізніших змін у коді. Розглядайте цей етап як угоду між вхідними даними та перевіреними результатами. Позначте всі елементи, визначте критерії успіху та не допускайте безповідомного часткового завершення роботи.

1. Ентитети — те, що існує

Етап «1 Ентитети, 1 Річ» працює найкраще, якщо його розглядати як вимірювану поверхню. Запишіть один ідеальний запис, один випадок збою та примітку про скасування змін перед розширенням обсягу роботи. Записуйте час виконання та витрати на токени чи запити поруч із функціональними результатами. Візуалізація витрат заздалегідь запобігає несподіваним рахункам під час переходу від демо-середовища до спільних середовищ. Зберігайте стан графа у вигляді плоскої структури з чіткими типами даних. Вбудовані блоки приховують інформацію про те, який вузол записав яке поле, та ускладнюють продовження роботи після перерв.

Repository
Module
Package
Class
Method
API Endpoint
Database Table
Database Column
Configuration
Skill
Rule
Architecture Decision
Pull Request
Commit
Issue
Incident
Test
Developer
Team
Node: ReimbursementController
Type: JavaClass
Path: services/hr/.../ReimbursementController.java
Node: POST /reimbursements
Type: Endpoint
Node: HrReimbursement
Type: DatabaseTable

2. Взаємозв’язки — як пов’язані речі

Дві форми взаємозв’язків: система «Things stage» працює найкраще, коли її розглядають як вимірювану поверхню. Збережіть один ідеальний зразок даних, один випадок невдачі та примітку про скасування змін перед розширенням обсягу роботи. Тримайте конфігурацію окремо від коду додатку. Файли середовища, сховища конфіденційних даних та флаги функцій мають знаходитися в одному місці, щоб оператори могли їх перевіряти, не читаючи весь граф. Тримайте стан графа простим та типованим. Вкладені блоки даних приховують інформацію про те, який вузол заповнив яке поле, і ускладнюють продовження роботи після перерв.

ReimbursementController
    EXPOSES
POST /reimbursements
POST /reimbursements
    CALLS
ReimbursementService
ReimbursementService
    USES
ReimbursementRepository
ReimbursementRepository
    WRITES_TO
HrReimbursement
POST /reimbursements
    REQUIRES_PERMISSION
CREATE_REIMBURSEMENT
ReimbursementService
    FOLLOWS_PATTERN
OrchestratorPattern

3. Властивості — деталі про вузли та взаємозв’язки

3 характеристики етапу найкраще розглядати як вимірювану поверхню. Зафіксуйте один ідеальний запис, один випадок збою та примітку про скасування змін перед розширенням обсягу роботи. Документуйте як успішний, так і відновлювальний сценарії. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої оптимізації. Зберігайте стан графа у простому та типованому вигляді. Вкладені структури приховують інформацію про те, який вузол заповнив яке поле, що ускладнює продовження роботи після перерв. 3 характеристики етапу найкраще розглядати як вимірювану поверхню. Зафіксуйте один ідеальний запис, один випадок збою та примітку про скасування змін перед розширенням обсягу роботи. Розглядайте цей етап як контракт між вхідними даними та перевіреними результатами. Позначте всі елементи, визначте критерії успіху та не допускайте мовчазного часткового завершення роботи.

JavaClass:
    name = ReimbursementController
    language = Java
    framework = Spring Boot
    module = hr-service
Endpoint:
    method = POST
    path = /api/v1/reimbursements
    authenticationRequired = true
Service
    CALLS
Repository
since = 2026-04-18
confidence = 1.0
source = static-analysis

4. Час

Для етапу 4 Time необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись визначити прихований стан. Записуйте час виконання та витрати на токени або запити поруч із функціональними результатами. Візуалізація витрат заздалегідь запобігає несподіваним рахункам під час переходу з демо-середовища у спільні. Встановлюйте людське схвалення для кроків, які спричиняють витрати чи змінюють дані у продакшені. Підключення під час компіляції не є гарантією повноти бізнес-функціоналу.

Controller
    USES
FieldInjection
FieldInjectionPattern
    validUntil = 2025-01-15
ConstructorInjectionPattern
    validFrom = 2025-01-16

5. Походження — звідки походить ця інформація?

Для етапу «5 Provenance Where Did» необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не здогадуючись про прихований стан. Зберігайте конфігурацію окремо від коду додатку. Файли середовища, сховища конфіденційних даних та флаги функцій мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь алгоритм. Встановіть людське схвалення для кроків, які спричиняють витрати грошей або змінюють дані в продакшені. Підключення під час компіляції не є гарантією повноти бізнес-функціоналу.

Rule:
All employee APIs must validate TenantID.
Rule
    EXTRACTED_FROM
ADR-0027.md
Rule
    OBSERVED_IN
14 Production Endpoints
Rule
    INTRODUCED_BY
PR-8421

6. Короткострокова пам’ять

Для етапу 6 «Короткострокова пам’ять» необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Необхідно документувати як шлях успішного виконання, так і шлях відновлення. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої оптимізації. Встановлюйте людське схвалення для операцій, які призводять до витрат грошей чи змінюють дані у продакшені. Підключення елементів під час компіляції не є гарантією повності функціоналу продукту. Для етапу 6 «Короткострокова пам’ять» необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Розглядайте цей етап як контракт між вхідними даними та перевіреними результатами. Позначте всі елементи, визначте критерії успіху та не допускайте безповідомного часткового завершення роботи.

CurrentTask
    TARGETS
AdminAPI
CurrentTask
    EXCLUDES
EmployeeApp

7. Довгострокова пам’ять

Під час роботи над 7-м етапом довгострокової пам’яті спочатку запишіть умови контракту: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Такий перелік допомагає зберігати чесність пізніших змін у коді. Запишіть час виконання та витрати на токени або запити поруч із функціональними результатами. Відображення витрат заздалегідь запобігає несподіваним рахункам, коли процес переходить від демо-версії до спільних середовищ. Створюйте контрольні точки після дорогих кроків. Функція відновлення не повинна знову стягувати плату за один і той самий виклик LLM, коли оператор перезапускає пізнішу ланку.

Repository
    USES
Java17
Repository
    USES
SpringBoot3EndpointCreation
    REQUIRES
ControllerTestEndpointCreation
    REQUIRES
ServiceTest

8. Пам’ять рішень чи міркувань

Під час праці над 8 етапами прийняття рішень чи міркувань спочатку запишіть умови контракту: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Такий перелік допомагає зберігати чесність подальших змін у коді. Тримайте конфігурацію окремо від коду додатку. Файли середовища, сховища секретних даних та флаги функцій мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь граф. Зберігайте у кеші стабільні інструкції системи та схеми інструментів. Повторна передача ідентичних даних є поширеною причиною витрат ресурсів.

Approach A:
Controller -> Repository
Business logic must pass through the service/orchestrator layer.
Approach-A
    REJECTED_BECAUSE
ArchitectureRule-42

Як насправді працює граф контексту?

Під час роботи над етапом «So How Does the» спочатку запишіть умови виконання: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Цей перелік допомагає зберігати чесність пізніших змін у коді. Одночасно задокументуйте шлях успішного виконання та шлях відновлення. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої доробки. Робіть контрольні пункти після дорогих кроків. Система відновлення не повинна знову стягувати плату за той самий виклик LLM, коли оператор повторює спробу з пізнішого етапу. Під час роботи над етапом «So How Does the» спочатку запишіть умови виконання: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Цей перелік допомагає зберігати чесність пізніших змін у коді. Розглядайте цей етап як контракт між вхідними даними та перевіреними результатами. Позначте всі елементи, визначте критерії успіху та не допускайте безповідомного часткового завершення роботи.

Task:
Create Endpoint
Domain:
ReimbursementOperation:
ApproveActor:
Admin

Крок 1 — Знайдіть початкові вузли

Крок 1 «Знайдіть етап» найкраще працює, якщо його розглядати як вимірювану поверхню. Запишіть один ідеальний приклад роботи, один випадок збою та примітку про скасування змін перед розширенням обсягу. Запишіть час виконання та витрати на токени або запити поруч із функціональними результатами. Візуалізація витрат на ранньому етапі запобігає несподіваним рахункам, коли процес переходить від демо-версії до спільних середовищ. Зберігайте стан графа у випрямленому та типованому форматі. Вкладені блоки приховують інформацію про те, який вузол заповнив яке поле, та ускладнюють продовження роботи після перерв.

Reimbursement
Approve
Endpoint
Admin
ReimbursementController
ReimbursementService
HrReimbursement
ReimbursementStatus
APPROVE_REIMBURSEMENT permission
ReimbursementWorkflow

Крок 2 — Розширіть їхні взаємозв’язки

Етап 2 «Розширення їхньої стадії» працює найкраще, якщо його розглядати як вимірювану поверхню. Збережіть один ідеальний запис, один випадок збою та примітку про скасування змін перед розширенням обсягу. Тримайте конфігурацію окремо від коду додатку. Файли середовища, сховища конфіденційних даних та флаги функцій мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь граф. Тримайте стан графа простим та типованим. Вкладені блоки приховують інформацію про те, який вузол записав яке поле, і ускладнюють продовження роботи після перерв.

ReimbursementController
   |
   +--- FOLLOWS_PATTERN ---> ExpenseController
   |
   +--- CALLS -------------> ReimbursementService
   |
   +--- PROTECTED_BY ------> FinancePermission
ReimbursementService
   |
   +--- USES --------------> ReimbursementOrchestrator
ReimbursementOrchestrator
   |
   +--- WRITES_TO ---------> HrReimbursement
   |
   +--- GOVERNED_BY -------> ADR-24
ADR-24
   |
   +--- CREATED_AFTER -----> Incident-842

Етап 3 — Фільтрація графа

Етап «Фільтрація на кроці 3» працює найкраще, коли його розглядають як вимірювану поверхню. Збережіть один ідеальний запис, один випадок збою та примітку про скасування змін перед розширенням обсягу. Документуйте як успішний, так і відновлювальний шляхи роботи. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої доробки. Зберігайте стан графа у простому та типованому вигляді. Вкладені структури приховують інформацію про те, який вузол заповнив яке поле, і ускладнюють продовження роботи після перерв. Етап «Фільтрація на кроці 3» працює найкраще, коли його розглядають як вимірювану поверхню. Збережіть один ідеальний запис, один випадок збою та примітку про скасування змін перед розширенням обсягу. Розглядайте цей етап як контракт між вхідними даними та перевіреними результатами. Позначте всі елементи, визначте критерії успіху та не допускайте мовчазного часткового завершення роботи.

current branch
current module
task
user permission
repository version
organization
time
confidence

Крок 4 — Створення контексту агента

На етапі 4 «Створення сцени» необхідно визначити вхідні дані, відповідальну особу за крок та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись визначити прихований стан. Записуйте час виконання та витрати на токени чи запити поруч із функціональними результатами. Відображення витрат заздалегідь запобігає несподіваним рахункам під час переходу з демо-середовища у спільні. Встановіть людське схвалення для кроків, які вимагають фінансових витрат чи змінюють дані у продакшені. Підключення під час компіляції не є гарантією повноти бізнес-функціоналу.

TASK
Create reimbursement approval endpoint.
RELEVANT PATTERN
ExpenseApprovalController.REQUIRED ARCHITECTURE
Controller -> Service -> Orchestrator -> Repository.SECURITY
Permission APPROVE_REIMBURSEMENT required.TENANCY
Queries must include OrganizationID and TenantID.DATABASE
HrReimbursement.IMPORTANT DECISION
ADR-24 prohibits direct status updates.TEST PATTERN
ExpenseApprovalControllerTest.

Етап 5 — Агент виконує роботу

На етапі 5 «Агент виконує дії» необхідно перед зміною коду визначити вхідні дані, власника кроку та критерії завершення. Оператори мають мати можливість перезапустити крок з відомої точки контролю, не намагаючись визначити прихований стан. Конфігурацію слід тримати окремо від коду додатку. Файли середовища, сховища конфіденційних даних та флаги функцій мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь код. Необхідно передбачити людське схвалення для операцій, які призводять до витрат грошей чи змінюють дані у продакшені. Підключення на етапі компіляції не є гарантією повноти бізнес-функціоналу.

Controller
Request DTO
Response DTO
Service
Orchestrator
Repository query
Authorization
Tenant filtering
Tests

Крок 6 — Зберігати інформацію про те, що сталось

Для етапу „6. Зберігання даних“ необхідно перед зміною коду визначити вхідні дані, власника етапу та критерії завершення. Оператори мають мати можливість знову виконати етап з відомої точки контролю, не здогадуючись про прихований стан. Необхідно документувати як шлях успішного виконання, так і шлях відновлення. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої оптимізації. Встановлюйте людське схвалення для операцій, які призводять до витрат грошей чи змінюють дані у продакшені. Підключення елементів під час компіляції не є гарантією повноти функціоналу продукту. Для етапу „6. Зберігання даних“ необхідно перед зміною коду визначити вхідні дані, власника етапу та критерії завершення. Оператори мають мати можливість знову виконати етап з відомої точки контролю, не здогадуючись про прихований стан. Розглядайте цей етап як контракт між вхідними даними та перевіреними результатами. Позначте всі елементи, визначте критерії успіху та не допускайте безповідомного часткового завершення роботи.

PR-9928
    IMPLEMENTED
ReimbursementApprovalEndpoint
ReimbursementApprovalEndpoint
    FOLLOWS
OrchestratorPattern
PR-9928
    VALIDATED_BY
ArchitectureTests

База даних векторів проти графу контексту

Під час роботи над етапом «База даних векторів проти графу контексту» спочатку запишіть умови використання: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Такий перелік допомагає зберігати чесність пізніших змін у коді. Запишіть час виконання та витрати на токени або запити поруч із функціональними результатами. Чітке бачення витрат заздалегідь запобігає несподіваним рахункам під час переходу від демо-версії до спільних середовищ. Створюйте контрольні точки після дорогих кроків. Функція відновлення не повинна знову стягувати плату за один і той самий виклик LLM, коли оператор перезапускає пізнішу ланку.

EmployeeController.java
EmployeeService.java
EmployeeRepository.java
SecurityConfig.java
ADR-17.md
Incident-928.md
EmployeeControllerTest.java
add-end-point/SKILL.md

Що робить пошук векторів

Під час роботи над етапом «Що таке пошук векторів» спочатку запишіть контракт: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Такий перелік допомагає зберігати чесність пізніших змін у коді. Зберігайте конфігурацію окремо від коду додатку. Файли середовища, сховища секретних даних та флаги функцій мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь граф. Створюйте контрольні точки після дорогих операцій. Функція відновлення не повинна знову стягувати плату за один і той самий виклик LLM, коли оператор перезапускає пізнішу ланку.

EmployeeController.java        similarity 0.94
CandidateController.java       similarity 0.89
EndpointGuide.md               similarity 0.87
EmployeeService.java           similarity 0.82
ADR-17.md

Що робить граф контексту

Під час роботи над етапом «Що таке контекстна графіка» спочатку запишіть умови використання: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Цей перелік допомагає зберігати чесність у подальших змінах коду. Одночасно задокументуйте шлях успішного виконання та шлях відновлення. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої доробки. Робіть контрольні пункти після дорогих операцій. Система відновлення не повинна знову стягувати плату за той самий виклик ШІ, коли оператор намагається виконати наступний етап. Під час роботи над етапом «Що таке контекстна графіка» спочатку запишіть умови використання: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Цей перелік допомагає зберігати чесність у подальших змінах коду. Розглядайте цей етап як угоду між вхідними даними та перевіреними результатами. Позначте всі елементи, визначте критерії успіху та не допускайте безповідомного часткового виконання завдань.

EmployeeEndpoint
EmployeeEndpoint
    MUST_FOLLOW
EmployeeApiPattern
EmployeeApiPattern
    REQUIRES
TenantIsolation
TenantIsolation
    DEFINED_BY
ADR-17
ADR-17
    INTRODUCED_AFTER
SecurityIncident-28

Запити векторного пошуку:

Етап «Запити векторного пошуку» працює найкраще, якщо його розглядати як вимірювану поверхню. Запишіть один ідеальний приклад роботи, один випадок збою та примітки щодо скасування змін перед розширенням обсягу роботи. Записуйте час виконання та витрати на токени або запити поруч із функціональними результатами. Візуалізація витрат на ранньому етапі запобігає несподіваним рахункам під час переходу від демо-версії до спільних середовищ. Зберігайте стан графа у випрямленому та типованому форматі. Вкладені блоки приховують інформацію про те, який вузол заповнив певне поле, та ускладнюють продовження роботи після перерв.

Запити контекстного графа:

Граф контексту Asks stage працює найкраще, коли його розглядають як вимірювану поверхню. Збережіть один ідеальний запис, один випадок збою та примітку про скасування змін перед розширенням обсягу. Тримайте конфігурацію окремо від коду додатку. Файли середовища, сховища конфіденційних даних та флаги функцій мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь граф. Тримайте стан графа простим та типованим. Вкладені блоки приховують інформацію про те, який вузол заповнив яке поле, і ускладнюють відновлення роботи після перерв.

Але не викидайте свою базу даних Vector

Етап «The But Do Not Throw» найкраще функціонує, якщо його розглядати як вимірювану поверхню. Збережіть один ідеальний запис, один випадок збою та примітку про скасування змін перед розширенням обсягу роботи. Документуйте як успішний, так і відновлювальний шляхи роботи. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої доробки. Зберігайте стан графа у простому та типованому вигляді. Вкладені структури приховують інформацію про те, який вузол заповнив яке поле, що ускладнює продовження роботи після перерв. Етап «The But Do Not Throw» найкраще функціонує, якщо його розглядати як вимірювану поверхню. Збережіть один ідеальний запис, один випадок збою та примітку про скасування змін перед розширенням обсягу роботи. Розглядайте цей етап як контракт між вхідними даними та перевіреними результатами. Позначте всі елементи, визначте критерії успіху та не допускайте мовчазного часткового завершення роботи.

Vector Search
      +
Graph Traversal
      +
Metadata Filters
      +
Keyword Search
      +
Agent Reasoning

Проста ментальна модель

На етапі «Проста ментальна модель» необхідно визначити вхідні дані, відповідальну особу за крок та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись визначити прихований стан. Записуйте час виконання та витрати на токени або запити поруч із функціональними результатами. Чітке відображення витрат заздалегідь запобігає несподіваним рахункам під час переходу з демо-середовища у спільні середовища. У разі, коли наступним кроком є написання коду або виклик інструменту, краще використовувати структуровані результати з перевіркою схеми, ніж вільний текст.

Графи контексту всередині репозиторію Git

Для графів контексту всередині етапу необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись визначити прихований стан. Конфігурацію слід зберігати окремо від коду додатку. Файли середовища, сховища конфіденційних даних та флаги функціоналу мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь граф. Необхідно передбачити людське схвалення для дій, які призводять до витрат грошей чи змінюють дані у продакшені. Підключення на етапі компіляції не є гарантією повноти бізнес-функціоналу.

employee-platform/
│
├── services/
│   ├── employee-service/
│   ├── payroll-service/
│   └── recruitment-service/
│
├── docs/
│   └── adr/
│
├── database/
│   └── migrations/
│
├── .agents/
│   ├── AGENTS.md
│   │
│   ├── skills/
│   │   └── add-end-point/
│   │       ├── SKILL.md
│   │       ├── templates/
│   │       └── references/
│   │
│   └── context/
│       ├── repository.yml
│       ├── architecture.yml
│       └── rules.yml
add-end-point

Проектування графа контексту репозиторію

На етапі проектування контексту репозиторію необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість знову виконати крок з відомої точки контролю, не намагаючись вгадати прихований стан. Необхідно документувати як шлях успішного виконання, так і шлях відновлення. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої оптимізації. Встановлюйте людське схвалення для операцій, які призводять до витрат грошей чи змінюють дані у продакшені. Підключення на етапі компіляції не є гарантією повності функціоналу продукту. На етапі проектування контексту репозиторію необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість знову виконати крок з відомої точки контролю, не намагаючись вгадати прихований стан. Розглядайте цей етап як контракт між вхідними даними та перевіреними результатами. Називайте створювані елементи, визначайте критерії успіху та не допускайте безповідомного часткового завершення роботи.

Repository
Module
Service
Class
Method
Endpoint
DatabaseTable
DatabaseColumn
Skill
ArchitecturePattern
Rule
Permission
ADR
Issue
PullRequest
Commit
Test
Repository CONTAINS Module
Module CONTAINS ClassController EXPOSES EndpointEndpoint CALLS ServiceService USES RepositoryRepository READS_FROM TableRepository WRITES_TO TableEndpoint REQUIRES PermissionClass TESTED_BY TestClass FOLLOWS PatternPattern DEFINED_IN ADRRule GOVERNED_BY ADRCommit CHANGES ClassPullRequest CONTAINS CommitIssue RESOLVED_BY PullRequestSkill APPLIES_TO EndpointSkill REQUIRES Rule

Невелика прикладна графіка

Під час роботи над етапом «Невелика прикладна графіка» спочатку запишіть умови використання: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Такий перелік допомагає зберігати чесність пізніших змін у коді. Запишіть час виконання та витрати на токени або запити поруч із функціональними результатами. Чітке бачення витрат заздалегідь запобігає несподіваним рахункам, коли процес переходить від демо-середовища до спільних середовищ. Створюйте контрольні точки після дорогих кроків. Функція відновлення не повинна знову стягувати плату за один і той самий виклик LLM, коли оператор перезапускає пізнішу ланку.

EmployeeController
       |
       | CALLS
       v
EmployeeService
       |
       | DELEGATES_TO
       v
EmployeeHandler
       |
       | USES
       v
EmployeeRepository
       |
       | WRITES_TO
       v
HrEmployee
EmployeeController
       |
       | REQUIRES
       v
EmployeePermission
EmployeeRepository
       |
       | FILTERS_BY
       +----> TenantID
       |
       +----> OrganizationID
EmployeeController
       |
       | TESTED_BY
       v
EmployeeControllerTest
add-end-point
       |
       | USES_PATTERN
       v
EmployeeEndpointPattern

Як ми будуємо цю графіку?

Під час роботи над етапом «Як ми будуємо» спочатку запишіть угоду: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Цей перелік допомагає зберігати чесність пізніших змін у коді. Тримайте конфігурацію окремо від коду додатку. Файли середовища, сховища секретів та флаги функцій мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь код. Робіть контрольні пункти після дорогих кроків. Функція відновлення не повинна знову стягувати плату за той самий виклик LLM, коли оператор перезапускає пізнішу ланку.

Java source
imports
method calls
Spring annotations
package structure
repository interfaces
SQL queries
DDL
configuration
test classes
Git history
ADR documents
AGENTS.md
SKILL.md

Етап 1 — Статичний аналіз коду

Під час роботи над етапом статичного коду 1-го фази спочатку запишіть умови використання: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Цей перелік допомагає зберігати чесність у подальших змінах коду. Одночасно задокументуйте шлях успішного виконання та шлях відновлення. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої доробки. Робіть контрольні пункти після дорогих кроків. Система відновлення не повинна знову стягувати плату за той самий виклик ШІ, коли оператор намагається виконати наступний етап. Під час роботи над етапом статичного коду 1-го фази спочатку запишіть умови використання: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Цей перелік допомагає зберігати чесність у подальших змінах коду. Розглядайте цей етап як угоду між вхідними даними та перевіреними результатами. Позначте всі елементи, визначте критерії успіху та не допускайте безповідомного часткового виконання завдань.

@RestController
@RequestMapping("/employees")
public class EmployeeController {
    private final EmployeeService employeeService;    @PostMapping
    public EmployeeResponse create(
            @RequestBody EmployeeRequest request) {
        return employeeService.create(request);
    }
}
EmployeeController
    TYPE
Controller
EmployeeController
    EXPOSES
POST /employeesEmployeeController
    CALLS
EmployeeService.create

Етап 2 — Аналіз репозиторію

Етап аналізу репозиторію на Етапі 2 працює найкраще, якщо його розглядати як вимірювану поверхню. Збережіть один ідеальний запис, один випадок збою та примітку про скасування змін перед розширенням обсягу роботи. Записуйте час виконання та витрати на токени або запити поруч із функціональними результатами. Візуалізація витрат заздалегідь запобігає несподіваним рахункам, коли процес переходить від демо-середовища до спільних середовищ. Зберігайте стан графа у випрямленому та типованому форматі. Вкладені блоки приховують інформацію про те, який вузол записав яке поле, та ускладнюють продовження роботи після перерв.

public interface EmployeeRepository
        extends JpaRepository<EmployeeEntity, Long> {
}
EmployeeRepository
    OPERATES_ON
EmployeeEntity
@Entity
@Table(name = "HrEmployee")
EmployeeEntity
    MAPS_TO
HrEmployee

Етап 3 — Історія Git

Етап історії Git фази 3 працює найкраще, якщо його розглядати як вимірювану поверхню. Збережіть один ідеальний запис, один випадок збою та примітку про скасування змін перед розширенням обсягу роботи. Тримайте конфігурацію окремо від коду додатку. Файли середовища, сховища конфіденційних даних та флаги функцій мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь граф. Тримайте стан графа простим та типованим. Вкладені блоки приховують інформацію про те, який вузол заповнив яке поле, і ускладнюють продовження роботи після перерв.

Commit 812ac3
Message:
Add tenant filtering to employee repository.
Reason:
Prevent cross-tenant access.
EmployeeRepository
    CHANGED_IN
Commit-812ac3
Commit-812ac3
    PART_OF
PR-982PR-982
    INTRODUCED
TenantIsolationRule

Фаза 4 — Документація архітектури

Етап документування архітектури на 4-му етапі працює найкраще, коли його розглядають як вимірювану поверхню. Зафіксуйте один ідеальний запис, один випадок збою та примітку щодо скасування змін перед розширенням обсягу роботи. Документуйте як успішний, так і відновлювальний сценарії роботи разом. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої доробки. Зберігайте стан графа простим та типованим. Вкладені блоки приховують інформацію про те, який вузол заповнив яке поле, і ускладнюють продовження роботи після перерв. Етап документування архітектури на 4-му етапі працює найкраще, коли його розглядають як вимірювану поверхню. Зафіксуйте один ідеальний запис, один випадок збою та примітку щодо скасування змін перед розширенням обсягу роботи. Розглядайте цей етап як контракт між вхідними даними та перевіреними результатами. Позначте всі елементи, визначте критерії успіху та не допускайте безповідомного часткового завершення роботи.

All employee mutations must pass through the EmployeeHandler.
EmployeeMutation
    MUST_USE
EmployeeHandler
rule source:
ADR-17

Етап 5 — Навички ШІ

Для етапу навичок ШІ 5-го рівня необхідно визначити вхідні дані, відповідальну особу за кожен крок та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись визначити прихований стан. Записуйте час виконання та витрати на токени або запити поруч із функціональними результатами. Відображення витрат заздалегідь запобігає несподіваним рахункам під час переходу від демо-середовища до спільних середовищ. Встановіть людське схвалення для тих кроків, які вимагають фінансових витрат або змінюють дані у продакшені. Підключення під час компіляції не є гарантією повності бізнес-функціоналу.

.agents/skills/add-end-point/SKILL.md
Before creating an endpoint:
1. Identify the nearest existing endpoint pattern.
2. Resolve authentication and authorization rules.
3. Resolve tenant and organization isolation.
4. Identify service/orchestrator pattern.
5. Identify persistence pattern.
6. Identify required tests.
get_context(
    task="create-endpoint",
    domain="employee",
    operation="create"
)

Сервіс контекстної графики

На етапі The Context Graph Service необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись визначити прихований стан. Конфігурацію слід тримати окремо від коду додатку. Файли середовища, сховища конфіденційних даних та флаги функцій мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь граф. Необхідно передбачити людське схвалення для кроків, які спричиняють витрати чи змінюють дані у продакшені. Підключення під час компіляції не є гарантією повноти бізнес-функціоналу.

AI Agent
   |
   v
Context API / MCP Server
   |
   +--------> Graph Database
   |
   +--------> Vector Database
   |
   +--------> Git Repository
find_entity
get_neighbors
find_path
get_architecture_context
get_security_context
get_database_context
get_change_history
get_similar_implementations
get_context_for_task
record_decision
get_context_for_task(
    repository="employee-platform",
    skill="add-end-point",
    task="create reimbursement approval endpoint"
)

Яку базу даних графів нам використовувати?

На етапі визначення того, яку базу даних графів слід використовувати, необхідно перед зміною коду визначити вхідні дані, власника кроку та критерії завершення. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Необхідно документувати як шлях успішного виконання, так і шлях відновлення. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої оптимізації. Встановлюйте людське схвалення для операцій, які призводять до витрат грошей чи змінюють дані у продакшені. Підключення на етапі компіляції не є гарантією повності функціоналу продукту. На етапі визначення того, яку базу даних графів слід використовувати, необхідно перед зміною коду визначити вхідні дані, власника кроку та критерії завершення. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Розглядайте цей етап як контракт між вхідними даними та перевіреними результатами. Називайте створювані елементи, визначайте критерії успіху та не допускайте безповідомного часткового завершення роботи.

JSON files
+
NetworkX
+
SQLite

Під час роботи над етапом «Дуже проста репрезентація у стилі Neo4j» спочатку запишіть контракт: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Такий перелік допомагає зберігати чесність пізніших змін у коді. Запишіть час виконання та витрати на токени або запити поруч із функціональними результатами. Відображення витрат заздалегідь запобігає несподіваним рахункам, коли процес переходить від демо-середовища до спільних. Створюйте контрольні точки після дорогих кроків. Функція відновлення не повинна знову стягувати плату за один і той самий виклик ШІ, коли оператор перепробовує пізніший вузол.

CREATE (:Class {
    name: "EmployeeController",
    type: "Controller"
});
CREATE (:Service {
    name: "EmployeeService"
});CREATE (:Repository {
    name: "EmployeeRepository"
});
MATCH (c:Class {name:"EmployeeController"}),
      (s:Service {name:"EmployeeService"})
CREATE (c)-[:CALLS]->(s);
MATCH (s:Service {name:"EmployeeService"}),
      (r:Repository {name:"EmployeeRepository"})
CREATE (s)-[:USES]->(r);

Під час виконання етапу запитування графа спочатку запишіть контракт: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Такий перелік допомагає зберігати чесність подальших змін у коді. Зберігайте конфігурацію окремо від коду додатку. Файли середовища, сховища секретів та флаги функцій мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь граф. Створюйте контрольні точки після дорогих операцій. Функція відновлення не повинна знову стягувати плату за той самий виклик LLM, коли оператор перезапускає пізнішу ланку.

MATCH path =
    (endpoint:Endpoint)-[*1..4]-(context)
WHERE endpoint.domain = "employee"
RETURN path
Controller
Service
Handler
Repository
Table
Permission
Tenant Rule
Tests
ADR

Kраща архітектура: гібридне пошукове забезпечення

Під час роботи над етапом A Better Architecture Hybrid спочатку запишіть умови взаємодії: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Цей перелік допомагає зберігати чесність у подальших змінах коду. Одночасно задокументуйте шлях успішного виконання та шлях відновлення. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої доробки. Перед налаштуванням запитів вимірюйте рівень точності відповідей на фіксованому наборі запитань. Зміна запитів рідко вирішує проблеми слабкої системи пошуку інформації. Під час роботи над етапом A Better Architecture Hybrid спочатку запишіть умови взаємодії: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Цей перелік допомагає зберігати чесність у подальших змінах коду. Розглядайте цей етап як угоду між вхідними даними та перевіреними результатами. Назвіть всі елементи, визначте критерії успіху та не допускайте мовчазного часткового виконання завдань.

User Request
                         |
                         v
                 Context Retriever
                         |
          +--------------+--------------+
          |              |              |
          v              v              v
      Vector          Graph         Keyword
      Search         Traversal        Search
          |              |              |
          +--------------+--------------+
                         |
                         v
                  Context Ranking
                         |
                         v
                  Agent Context
                         |
                         v
                       LLM

Проблема бюджету контексту

Етап проблеми бюджету контексту функціонує найкраще, коли його розглядають як вимірювану поверхню. Збережіть один ідеальний запис, один випадок збою та примітку про скасування змін перед розширенням обсягу роботи. Записуйте час виконання та витрати на токени чи запити поруч із функціональними результатами. Чітке бачення витрат заздалегідь запобігає несподіваним рахункам під час переходу від демо-версії до спільних середовищ. Тримайте стан графа простим та типованим. Вкладені блоки приховують інформацію про те, який вузол заповнив яке поле, і ускладнюють продовження роботи після перерв.

Repository:
8 million tokens
Controller conventions
Service convention
Security rule
Two repositories
One ADR
Three tests
Total:
18,000 tokens

Граф контексту + навички агента

Етап роботи з навичками Context Graph Agent працює найкраще, якщо його розглядати як вимірювану поверхню. Збережіть один ідеальний запис, один випадок збою та примітку про скасування змін перед розширенням обсягу. Тримайте конфігурацію поза кодом додатку. Файли середовища, сховища конфіденційних даних та флаги функцій мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь граф. Тримайте стан графа простим та типованим. Вкладені блоки приховують інформацію про те, який вузол заповнив яке поле, і ускладнюють відновлення роботи після перерв.

Developer
   |
   v
AI Agent
   |
   v
add-end-point Skill
   |
   v
Context Graph Query
Developer
   |
   | "Create employee endpoint"
   v
AI Agent
   |
   | reads
   v
.agents/skills/add-end-point/SKILL.md
   |
   | SKILL.md says:
   | "Before generating code,
   |  call get_task_context"
   v
MCP Tool
get_task_context(...)
   |
   v
Context Graph Service
   |
   +---- Neo4j / Graph DB
   |
   +---- Vector Search
   |
   +---- Git metadata
   |
   v
Relevant Context
   |
   v
AI Agent
   |
   | follows retrieved rules
   v
Generate / modify code
Nearest endpoint:
LeaveRequestController
Controller pattern:
@RestController
constructor injectionService pattern:
interface + implementationArchitecture:
Controller
   -> Service
   -> Handler
   -> RepositorySecurity:
LEAVE_VIEWTenant rules:
OrganizationID + TenantIDPersistence:
HrLeaveBalanceTesting:
ControllerTest
ServiceTest
RepositoryITArchitecture decision:
ADR-42

Потім агент генерує код

Етап «The Then the Agent Generates» працює найкраще, коли його розглядають як вимірювану поверхню. Зафіксуйте один ідеальний запис, один випадок збою та примітку щодо скасування змін перед розширенням обсягу роботи. Документуйте як успішний, так і відновлювальний сценарії роботи разом. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої доробки. Зберігайте стан графа у простому та типованому вигляді. Вкладені структури приховують інформацію про те, який вузол заповнив яке поле, і ускладнюють продовження роботи після перерв.

LeaveBalanceController
LeaveBalanceRequest
LeaveBalanceResponse
LeaveBalanceService
LeaveBalanceServiceImpl
LeaveBalanceHandler
LeaveBalanceRepository
LeaveBalanceProjection
LeaveBalanceException
LeaveBalanceControllerTest
LeaveBalanceServiceTest
LeaveBalanceRepositoryTest

Етап «The Then the Agent Generates» працює найкраще, коли його розглядають як вимірювану поверхню. Зафіксуйте один ідеальний запис, один випадок збою та примітку щодо скасування змін перед розширенням обсягу роботи. Розглядайте цей етап як контракт між вхідними даними та перевіреними результатами. Позначте всі елементи, визначте критерії успіху та не допускайте мовчазного часткового виконання завдань.

Does the endpoint follow the required architecture?
YES.Does it apply security?YES.Does repository filtering include TenantID?YES.Does it include OrganizationID?YES.Are mandatory tests present?YES.

Bootstrap репозиторію

На етапі Bootstrap репозиторію необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись визначити прихований стан. Записуйте час виконання та витрати на токени чи запити поруч із функціональними результатами. Візуалізація витрат заздалегідь запобігає несподіваним рахункам під час переходу з демо-середовища у спільні. Встановлюйте людське схвалення для кроків, які вимагають фінансових витрат чи змінюють дані у продакшені. Підключення під час компіляції не є гарантією повності бізнес-функціоналу.

bootstrap-context
2-3 representative endpoints
architecture
build files
framework versions
dependency injection
security
database patterns
testing
exception handling
transactions
module boundaries
Repository
   USES
Java17
Repository
   USES
SpringBoot3Endpoint
   FOLLOWS
Controller-Service-Handler-RepositoryDatabaseQuery
   MUST_INCLUDE
TenantIDDatabaseQuery
   MUST_INCLUDE
OrganizationID

Навички стають значно простішими

На етапі, коли навички стають значно простішими, необхідно визначити вхідні дані, відповідальну особу за крок та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не здогадуючись про прихований стан. Зберігайте конфігурацію поза кодом додатку. Файли середовища, сховища конфіденційних даних та флаги функцій мають знаходитися в одному місці, яке оператори можуть перевірити, не читаючи весь код. Встановіть людське схвалення для дій, які призводять до витрат грошей чи змінюють дані у продакшені. Підключення на етапі компіляції не є гарантією повноти бізнес-функціоналу.

For employee APIs use EmployeeHandler.
For payroll APIs use PayrollOrchestrator.For recruitment APIs use ActionHandler.For employee APIs tenant filtering happens...For payroll APIs...
1. Understand the requested endpoint.
2. Query the repository Context Graph.3. Resolve:
   - architecture pattern
   - closest implementation
   - security
   - data ownership
   - persistence
   - testing requirements4. Generate code.5. Validate generated changes against graph constraints.6. Record newly confirmed repository knowledge.

Навички вказують агенту ЯК

На етапі Skills Tell the Agent необхідно визначити вхідні дані, відповідальну особу за крок та критерії завершення перед зміною коду. Оператори мають мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Необхідно документувати як шлях успішного виконання, так і шлях відновлення. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої оптимізації. Встановлюйте людське схвалення для тих кроків, які призводять до витрат грошей або змінюють дані у продакшені. Підключення на етапі компіляції не є гарантією повноти функціоналу продукту.

Контекстна графіка повідомляє агенту, ЩО ТУТ Є ПРАВДИВИМ

Щоб контекстна графіка визначала етап, необхідно перед зміною коду визначити вхідні дані, власника кроку та критерії завершення. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Краще використовувати невеликі, перевірювані одиниці коду замість об’ємних скриптів. Коли крок зазнає невдачі, причина має вказувати на конкретну відповідальність, а не на заплутану структуру процесу. Необхідно встановити людське схвалення для операцій, які призводять до витрат грошей чи змінюють дані у продакшені. Підключення елементів під час компіляції не є гарантією повноти бізнес-функціоналу.

Контекстні графіки та багатоагентні системи

Для етапів Context Graphs та Multi-Agent необхідно визначити вхідні дані, відповідального за крок та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Розглядайте цей етап як контракт між вхідними даними та перевіреними результатами. Позначте всі елементи, визначте критерії успіху та не допускайте мовчазного часткового завершення. Вимагайте людського схвалення для тих елементів, які спричиняють витрати грошей чи змінюють дані виробництва. Компіляційна налаштування не є гарантією повності бізнес-процесу.

Architecture Agent
Security Agent
Backend Agent
Testing Agent
Database Agent
Reviewer Agent
duplicate work
different conclusions
large token usage
conflicting decisions
Context Graph
              /      |      \
             /       |       \
            v        v        v
       Backend   Security   Testing
        Agent      Agent     Agent
Endpoint requires FINANCE_WRITE

Context Graphs можуть навчатися з Pull Requests

На етапі, коли контекстні графи можуть навчатися, необхідно визначити вхідні дані, виконавця кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись визначити прихований стан. Записуйте час виконання та витрати на токени або запити поруч із функціональними результатами. Чітке бачення витрат заздалегідь запобігає несподіваним рахункам, коли процес переходить від демо-середовища до спільних. Встановіть людське схвалення для дуг, які спричиняють витрати чи змінюють дані у продакшені. Підключення під час компіляції не є гарантією повності бізнес-функціоналу.

repository.findByEmployeeId(employeeId);
EmployeeRepositoryQuery
    MUST_FILTER_BY
TenantID
EmployeeRepositoryQuery
    MUST_FILTER_BY
OrganizationIDRule
    LEARNED_FROM
PR-11882

Контекстний граф — це не мозок LLM

На етапі A Context Graph Is необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись визначити прихований стан. Конфігурацію слід тримати окремо від коду додатку. Файли середовища, сховища конфіденційних даних та флаги функцій мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь граф. Коли наступним кроком є код або виклик інструменту, краще використовувати структуровані результати з перевіркою схеми, ніж вільний текст.

LLM
=
Reasoning Engine
Context Graph
=
Structured MemoryVector Database
=
Semantic Memory SearchSkills
=
ProceduresTools
=
Actions
AI Agent
                |
      +---------+---------+
      |         |         |
      v         v         v
   Skills    Context    Tools
              Graph
                |
        +-------+-------+
        |               |
        v               v
     Vector           Graph
     Search           Store

Context Graph проти фін-тюнінгу

На етапі Context Graph проти Fine-Tuning необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори мають мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Необхідно документувати як шлях успішного виконання, так і шлях відновлення. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої оптимізації. Встановлюйте людське схвалення для операцій, які призводять до витрат грошей чи змінюють дані у продакшені. Підключення під час компіляції не є гарантією повності функціоналу продукту. На етапі Context Graph проти Fine-Tuning необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори мають мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Розглядайте цей етап як контракт між вхідними даними та перевіреними результатами. Називайте створювані елементи, визначайте критерії успіху та не допускайте безповідомного часткового завершення роботи.

OldRule
    status = deprecated
NewRule
    status = active

Граф контексту проти величезного запиту

Під час роботи над етапом «Граф контексту проти величезного запиту» спочатку складіть перелік вимог: необхідні дані вхіду, сигнал про успіх та наслідки часткової невдачі. Такий перелік допоможе зберегти чесність подальших змін у коді. Записуйте час виконання та витрати на токени або запити поруч із функціональними результатами. Чітке бачення витрат заздалегідь убереже від несподіваних рахунків під час переходу від демо-версії до спільних середовищ. Зберігайте у кеші стабільні інструкції системи та схеми інструментів. Повторна передача ідентичних дань є поширеною причиною зайвих витрат.

AGENTS.md
= 40,000 lines
Task
   |
   v
Relevant Subgraph
   |
   v
Prompt
Entire Organization
   |
   v
Prompt

Як розгорнути першу версію

Під час роботи над етапом «Як здійснити розгортання» спочатку запишіть умови контракту: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Такий перелік допомагає зберігати чесність подальших змін у коді. Тримайте конфігурацію окремо від коду додатку. Файли середовища, сховища секретів та флаги функцій мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь код. Робіть контрольні пункти після дорогих кроків. Функція відновлення не повинна знову стягувати плату за один і той самий виклик LLM, коли оператор перезапускає пізнішу ланку.

Repository:
employee-service
Skill:
add-end-point
Module
Class
Endpoint
Service
Repository
Table
Rule
Permission
Test
ADR
CONTAINS
EXPOSES
CALLS
USES
WRITES_TO
READS_FROM
REQUIRES
TESTED_BY
FOLLOWS
DEFINED_IN

Рекомендоване розгортання

Під час виконання етапу «Рекомендоване розгортання» спочатку запишіть умови контракту: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Такий перелік допомагає зберігати чесність пізніших змін у коді. Одночасно задокументуйте шлях успішного виконання та шлях відновлення. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої доробки. Робіть контрольні пункти після дорогих кроків. Система відновлення не повинна знову стягувати плату за той самий виклик LLM, коли оператор намагається знову виконати пізнішу операцію.

Git Repository
      |
      |
      v
Repository Indexer
      |
      +------ Java Parser
      |
      +------ Git Parser
      |
      +------ Markdown Parser
      |
      +------ SQL Parser
      |
      v
Context Graph DB
      |
      +------ Vector Index
      |
      v
Context Service / MCP
      |
      v
AI Coding Agent
      |
      v
Repository Skills

Поступове оновлення графу

Під час виконання етапу «Оновлення графа поступово» спочатку запишіть контракт: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Такий перелік допомагає зберігати чесність подальших змін у коді. Віддавайте перевагу невеликим, тестованим одиницям коду перед об’ємними скриптами. Якщо якийсь крок зазнає невдачі, причина має вказувати на конкретну відповідальність, а не на заплутану послідовність операцій. Робіть контрольні пункти після дорогих кроків. Функція відновлення не повинна знову оплачувати один і той самий виклик LLM, коли оператор намагається виконати наступний етап.

EmployeeController.java
EmployeeService.java
ADR-42.md
git diff HEAD~1
changed files
      |
      v
re-index
      |
      v
update graph

Контекст має мати впевненість

Під час роботи на етапі «Контекст має бути надійним» спочатку запишіть умови контракту: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Цей перелік допомагає зберігати чесність пізніших змін у коді. Розглядайте цей етап як контракт між вхідними даними та перевіреними результатами. Позначте всі елементи, визначте критерії успіху та не допускайте безповідомного часткового виконання завдань. Робіть перевірки після дорогих кроків. Система повернення до виконання не повинна знову оплачувати однаковий виклик ШІ, коли оператор намагається виконати наступний етап.

EmployeeController
    CALLS
EmployeeService
confidence = 1.0
source = static-analysis
Employee APIs
    PROBABLY_REQUIRE
ManagerPermission
confidence = 0.62
source = llm-inference
FACT
OBSERVATION
INFERENCE
DECISION
RULE

Люди повинні мати можливість виправляти структуру даних

Під час роботи над етапом «Люди повинні мати можливість» спочатку запишіть умови контракту: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Такий перелік допомагає зберігати чесність пізніших змін у коді. Запишіть час виконання та витрати на токени або запити поруч із результатами функціоналу. Відображення витрат на ранньому етапі запобігає несподіваним рахункам, коли процес переходить від демо-середовища до спільних. Робіть контрольні пункти після дорогих кроків. Функція відновлення не повинна знову стягувати плату за один і той самий виклик LLM, коли оператор перезапускає пізніший етап.

Payroll APIs use Handler architecture.
HandlerPattern
    status = deprecated
OrchestratorPattern
    status = active

Більша ідея: від пошуку у репозиторії до його розуміння

Під час роботи над етапом «The Bigger Idea From» спочатку запишіть умови виконання: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Такий перелік допомагає зберігати чесність пізніших змін у коді. Тримайте конфігурацію окремо від коду додатку. Файли середовища, сховища конфіденційних даних та флаги функцій мають знаходитися в одному місці, де оператори можуть їх перевіряти, не читаючи весь код. Робіть контрольні пункти після дорогих операцій. Система відновлення не повинна знову стягувати плату за один і той самий виклик LLM, коли оператор перезапускає пізнішу ланку.

Question
   |
   v
Search Files
   |
   v
Read Files
   |
   v
Generate Code
Question
   |
   v
Understand Task
   |
   v
Identify Relevant Entities
   |
   v
Traverse Architecture
   |
   v
Recover Rules
   |
   v
Recover History
   |
   v
Recover Decisions
   |
   v
Build Context
   |
   v
Execute Skill
   |
   v
Validate Result
   |
   v
Record Learning

Аналогія з старшим інженером

Під час роботи над етапом «Аналогія старшого інженера» спочатку запишіть умови контракту: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Цей перелік допомагає зберігати чесність пізніших змін у коді. Документуйте як шлях успішної роботи, так і шлях відновлення. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої доробки. Робіть контрольні пункти після дорогих кроків. Система повторного запуску не повинна знову стягувати плату за той самий виклик LLM, коли оператор намагається знову виконати пізнішу операцію. Під час роботи над етапом «Аналогія старшого інженера» спочатку запишіть умови контракту: необхідні вхідні дані, сигнал про успіх та те, що відбувається у разі часткової невдачі. Цей перелік допомагає зберігати чесність пізніших змін у коді. Розглядайте цей етап як контракт між вхідними даними та перевіреними результатами. Назвіть всі елементи, визначте критерії успіху та не допускайте безповідомного часткового виконання завдань.

Ось справжня обіцянка

Модель «Це і є справжня стадія» найкраще функціонує, якщо її розглядати як вимірювану поверхню. Запишіть один ідеальний приклад, один випадок збою та примітку про скасування змін перед розширенням обсягу роботи. Записуйте час виконання та витрати на токени чи запити поруч із функціональними результатами. Чітке бачення витрат заздалегідь запобігає несподіваним рахункам під час переходу від демо-середовища до спільних середовищ. Тримайте стан графа простим та типованим. Вкладені блоки приховують інформацію про те, який вузол записав яке поле, і ускладнюють продовження роботи після перерв.

Майбутній репозиторій може виглядати зовсім інакше

CODE
What the system does.
SKILLS
How agents should perform work.CONTEXT GRAPH
What the agent should understand about this repository.
my-platform/
│
├── services/
│
├── database/
│
├── docs/
│
├── tests/
│
│
├── AGENTS.md
│
├── .agents/
│   │
│   ├── skills/
│   │   ├── add-end-point/
│   │   ├── fix-bug/
│   │   ├── create-migration/
│   │   └── review-pr/
│   │
│   └── context/
│       ├── graph-schema.yml
│       ├── rules.yml
│       └── bootstrap.yml
│
└── context-graph/
    ├── indexer/
    ├── extractors/
    ├── graph-api/
    └── validation/

Останній приклад

TASK
Create reimbursement endpoint.
DOMAIN
Finance / Employee.PATTERN
ExpenseController.ARCHITECTURE
Controller -> Service -> Orchestrator -> Repository.AUTHENTICATION
Session authentication required.AUTHORIZATION
CREATE_REIMBURSEMENT.TENANCY
OrganizationID + TenantID mandatory.DATABASE
HrReimbursement.TRANSACTION
Orchestrator owns transaction.IMPORTANT HISTORY
Direct reimbursement status mutation caused incident FIN-822.RULE
Use ReimbursementWorkflow.TESTING
Controller + Service + Repository tests required.REFERENCE PR
PR-11822 implemented similar Expense workflow.

Заключні міркування

LLM
gives the agent intelligence.
Skills
give the agent procedures.Tools
give the agent hands.Vector search
helps the agent find things.Context Graph
helps the agent understand how those things are connected.Decision history
helps the agent understand why.

Чек-лист для експлуатації