Графы знаний и их ограничения
С быстрым ростом приложений искусственного интеллекта (ИИ) графы знаний (КГ) стали основополагающей структурой для представления знаний в машиночитаемой форме. Они организуют информацию в виде троек — головной сущности, отношения и хвостовой сущности, формируя графоподобную структуру, где сущности — это узлы, а отношения — рёбра. Это представление позволяет машинам понимать и анализировать связанные знания, поддерживая интеллектуальные приложения, такие как ответы на вопросы, семантический анализ и системы рекомендаций.
Несмотря на свою эффективность, графы знаний имеют заметные ограничения. Они часто теряют важную контекстуальную информацию, что затрудняет передачу сложности и богатства реальных знаний. Кроме того, многие КГ страдают от разреженности данных, где сущности и отношения неполны или плохо связаны. Это ограничивает контекстуальные сигналы, доступные во время логического вывода, создавая проблемы для эффективного рассуждения, даже при интеграции с большими языковыми моделями.
Контекстные графы
Контекстные графы (КК) расширяют традиционные графы знаний, добавляя дополнительную информацию, такую как время, местоположение и сведения об источнике. Вместо хранения знаний в виде изолированных фактов они фиксируют ситуацию, в которой факт или решение имели место, что приводит к более чёткому и точному пониманию реальных знаний.
При использовании с агентскими системами контекстные графы также хранят информацию о том, как были приняты решения. Агенты нуждаются не только в правилах — им нужно знать, как правила применялись раньше, когда допускались исключения, кто утверждал решения и как обрабатывались конфликты. Поскольку агенты работают непосредственно там, где принимаются решения, они могут естественным образом фиксировать этот полный контекст.
Со временем эти сохранённые следы решений формируют контекстный граф, который помогает агентам учиться на прошлых действиях. Это позволяет системам понимать не только то, что произошло, но и почему это произошло, делая поведение агентов более последовательным и надёжным.
Влияние контекстуальной информации
Контекстуальная информация добавляет важные слои к представлению знаний, выходя за рамки простых фактов об сущностях и отношениях. Она помогает различать факты, которые выглядят одинаково, но происходят в разных условиях, таких как различия во времени, местоположении, масштабе или окружающих обстоятельствах. Например, две компании могут быть конкурентами на одном рынке или в течение одного периода времени, но не в другом. Фиксируя такой контекст, системы могут представлять знания более детально и избегать трактовки всех похожих фактов как идентичных.
В контекстных графах контекстуальная информация также играет ключевую роль в рассуждениях и принятии решений. Она включает в себя такие сигналы, как исторические решения, применённые политики, предоставленные исключения, утверждения и связанные события из других систем. Когда агенты записывают, как было принято решение — какие данные использовались, какое правило было проверено и почему было разрешено исключение — эта информация становится повторно используемым контекстом для будущих решений.
Переход от статических инструментов к агентам, принимающим решения
Произошёл явный сдвиг в системах ИИ — от статических инструментов к агентам, принимающим решения, во многом благодаря крупным игрокам отрасли. Реальные решения редко основываются только на правилах; они включают исключения, утверждения и уроки из прошлых случаев. Контекстные графы устраняют этот пробел, фиксируя, как решения принимаются в разных системах — какие политики были проверены, какие данные использовались, кто утвердил решение и какой результат последовал. Структурируя эту историю принятия решений в виде контекста, агенты могут повторно использовать предыдущие суждения вместо того, чтобы заново изучать одни и те же особые случаи.
Примеры перехода
Функции Gmail Gemini и фреймворки агентов на основе Gemini 3 показывают, что ИИ переходит от простой помощи к активному принятию решений, будь то управление приоритетами в почтовом ящике или выполнение сложных рабочих процессов.
OpenAI
ChatGPT Health собирает данные о здоровье из разных источников — медицинских записей, приложений, носимых устройств и заметок — в одном месте. Это создаёт чёткий общий контекст, который помогает системе понимать закономерности здоровья с течением времени, а не отвечать на отдельные вопросы.
JP Morgan
JP Morgan заменяет прокси-советников своим инструментом искусственного интеллекта Proxy IQ, что свидетельствует о переходе к созданию собственных систем принятия решений, которые агрегируют и анализируют данные о голосовании на тысячах встреч, а не полагаются на рекомендации третьих сторон.
NVIDIA
Набор инструментов NVIDIA NeMo Agent помогает превратить агентов ИИ в готовые к производству системы, добавляя возможности наблюдения, оценки и управления развёртыванием. Захватывая трассировки выполнения, шаги рассуждений и сигналы производительности, он фиксирует, как агент пришёл к результату, а не только конечный результат.
Microsoft
Copilot Checkout и Brand Agents превращают покупательские разговоры в прямые покупки. Вопросы, сравнения и решения происходят в одном месте, создавая чёткий контекст того, почему покупатель выбрал продукт.
В этом руководстве мы демонстрируем, как работает полуцентрализованная мультиагентская система в стиле Anemoi, позволяя двум агентам-сверстникам вести переговоры напрямую, без менеджера или супервизора. Мы показываем, как Drafter и Critic итеративно совершенствуют результат посредством обратной связи между равными, снижая накладные расходы на координацию при сохранении качества. Мы реализуем этот шаблон от начала до конца в Colab, используя LangGraph, уделяя особое внимание ясности, управлению потоками и практическому исполнению, а не абстрактной теории оркестровки.
Код
«`python
import os
import json
from getpass import getpass
from typing import TypedDict
from langchain_openai import ChatOpenAI
from langgraph.graph import StateGraph, END
if not os.environ.get(«OPENAIAPIKEY»):
os.environ[«OPENAIAPIKEY»] = getpass(«Enter OPENAIAPIKEY (hidden): «)
MODEL = os.environ.get(«OPENAI_MODEL», «gpt-4o-mini»)
llm = ChatOpenAI(model=MODEL, temperature=0.2)
«`
Определение состояния Anemoi
«`python
class AnemoiState(TypedDict):
task: str
max_rounds: int
round: int
draft: str
critique: str
agreed: bool
final: str
trace: bool
«`
Реализация Drafter
«`python
DRAFTER_SYSTEM = «»»You are Agent A (Drafter) in a peer-to-peer loop.
You write a high-quality solution to the user’s task.
If you receive critique, you revise decisively and incorporate it.
Return only the improved draft text.»»»
def drafter_node(state: AnemoiState) -> AnemoiState:
task = state[«task»]
critique = state.get(«critique», «»).strip()
r = state.get(«round», 0) + 1
if critique:
user_msg = f»»»TASK:
{task}
CRITIQUE:
{critique}
Revise the draft.»»»
else:
user_msg = f»»»TASK:
{task}
Write the first draft.»»»
draft = llm.invoke(
[
{«role»: «system», «content»: DRAFTER_SYSTEM},
{«role»: «user», «content»: user_msg},
]
).content.strip()
if state.get(«trace», False):
print(f»\n— Drafter Round {r} —\n{draft}\n»)
return {state, «round»: r, «draft»: draft, «agreed»: False}
«`
Реализация Critic
«`python
CRITIC_SYSTEM = «»»You are Agent B (Critic).
Return strict JSON:
{«agree»: true/false, «critique»: «…»}»»»
def critic_node(state: AnemoiState) -> AnemoiState:
task = state[«task»]
draft = state.get(«draft», «»)
raw = llm.invoke(
[
{«role»: «system», «content»: CRITIC_SYSTEM},
{
«role»: «user»,
«content»: f»TASK:\n{task}\n\nDRAFT:\n{draft}»,
},
]
).content.strip()
cleaned = raw.strip(««`»).replace(«json», «»).strip()
try:
data = json.loads(cleaned)
agree = bool(data.get(«agree», False))
critique = str(data.get(«critique», «»)).strip()
except Exception:
agree = False
critique = raw
if state.get(«trace», False):
print(f»— Critic Decision —\nAGREE: {agree}\n{critique}\n»)
final = draft if agree else state.get(«final», «»)
return {state, «agreed»: agree, «critique»: critique, «final»: final}
«`
Продолжение или завершение
«`python
def continueorend(state: AnemoiState) -> str:
if state.get(«agreed», False):
return «end»
if state.get(«round», 0) >= state.get(«max_rounds», 3):
return «force_ship»
return «loop»
def forceshipnode(state: AnemoiState) -> AnemoiState:
return {state, «final»: state.get(«final») or state.get(«draft», «»)}
«`
Сборка графа
«`python
graph = StateGraph(AnemoiState)
graph.addnode(«drafter», drafternode)
graph.addnode(«critic», criticnode)
graph.addnode(«forceship», forceshipnode)
graph.setentrypoint(«drafter»)
graph.add_edge(«drafter», «critic»)
graph.addconditionaledges(
«critic»,
continueorend,
{«loop»: «drafter», «forceship»: «forceship», «end»: END},
)
graph.addedge(«forceship», END)
anemoicriticloop = graph.compile()
«`
Демонстрация
«`python
demo_task = «»»Explain the Anemoi semi-centralized agent pattern and why peer-to-peer critic loops reduce bottlenecks.»»»
result = anemoicriticloop.invoke(
{
«task»: demo_task,
«max_rounds»: 3,
«round»: 0,
«draft»: «»,
«critique»: «»,
«agreed»: False,
«final»: «»,
«trace»: False,
}
)
print(«\n====================»)
print(» FINAL OUTPUT»)
print(«====================\n»)
print(result[«final»])
«`
В заключение мы продемонстрировали, что переговоры между равными в стиле Anemoi являются практичной альтернативой архитектурам «менеджер-работник», предлагая более низкую задержку, уменьшение раздувания контекста и упрощение координации агентов. Позволяя агентам напрямую контролировать и корректировать друг друга, мы достигли конвергенции с меньшим количеством токенов и меньшей сложностью оркестровки. В этом руководстве мы предоставили повторно используемый шаблон для построения масштабируемых полуцентрализованных агентских систем.
1. Какие ограничения имеют графы знаний и как контекстные графы решают эти проблемы?
Ответ: графы знаний (КГ) организуют информацию в виде троек — головной сущности, отношения и хвостовой сущности, но они часто теряют важную контекстуальную информацию. Контекстные графы (КК) расширяют традиционные графы знаний, добавляя дополнительную информацию, такую как время, местоположение и сведения об источнике. Это позволяет более чётко и точно понимать реальные знания.
2. Какие примеры использования контекстных графов приведены в статье и как они демонстрируют их преимущества?
Ответ: в статье приведены примеры использования контекстных графов в различных компаниях и инструментах. Например, Google использует функции Gmail Gemini и фреймворки агентов на основе Gemini 3 для активного принятия решений. OpenAI использует ChatGPT Health для сбора данных о здоровье из разных источников. JP Morgan заменяет прокси-советников инструментом искусственного интеллекта Proxy IQ. NVIDIA использует набор инструментов NVIDIA NeMo Agent для превращения агентов ИИ в готовые к производству системы. Microsoft использует Copilot Checkout и Brand Agents для превращения покупательских разговоров в прямые покупки. Эти примеры демонстрируют, как контекстные графы помогают системам ИИ принимать более точные и обоснованные решения.
3. Как контекстные графы влияют на переход от статических инструментов к агентам, принимающим решения?
Ответ: контекстные графы устраняют пробел между статическими инструментами и агентами, принимающими решения. Они фиксируют, как решения принимаются в разных системах — какие политики были проверены, какие данные использовались, кто утвердил решение и какой результат последовал. Структурируя эту историю принятия решений в виде контекста, агенты могут повторно использовать предыдущие суждения вместо того, чтобы заново изучать одни и те же особые случаи. Это позволяет системам ИИ более эффективно принимать решения на основе накопленного опыта.
4. Какие ключевые компоненты включает в себя контекстуальная информация в контекстных графах?
Ответ: контекстуальная информация в контекстных графах включает в себя такие сигналы, как исторические решения, применённые политики, предоставленные исключения, утверждения и связанные события из других систем. Она также включает информацию о том, как были приняты решения — какие данные использовались, какое правило было проверено и почему было разрешено исключение. Это позволяет системам более детально представлять знания и избегать трактовки всех похожих фактов как идентичных.
5. Какие примеры из статьи иллюстрируют, как контекстные графы помогают агентам ИИ учиться на прошлых действиях?
Ответ: в статье приведены примеры, показывающие, как контекстные графы помогают агентам ИИ учиться на прошлых действиях. Например, в случае с JP Morgan инструмент Proxy IQ агрегирует и анализирует данные о голосовании на тысячах встреч, что позволяет системе ИИ учиться на предыдущих решениях и избегать повторения ошибок. В случае с NVIDIA NeMo Agent набор инструментов фиксирует, как агент пришёл к результату, а не только конечный результат, что позволяет системе ИИ улучшать свои решения на основе анализа прошлых шагов.