NotariumҚұжаттама
Құжаттама нұсқасы: latest
KZ

Қауіпсіздік және көріну

Агентке сақтау қозғалтқышына тікелей қол жеткізу беру — «lethal trifecta» жинау деген сөз: жеке деректер × жазбалардың сенімсіз мазмұны × сыртқа шығатын арна. Әрбір ось жеке-дара зиянсыз, бірақ бірге олар жазбадағы инъекцияға деректеріңізді сыртқа алып шығуға мүмкіндік береді. Notarium-ның MCP шлюзі әрбір осьті баптаумен емес, құрылымымен үзеді. Бұл — ыңғайлылық үшін жасалған қаптама емес, бұл — сенім шекарасы.

Трифекта құрылымымен үзілген

  • Сыртқа шығатын арна жоқ. Барлық құралдарда openWorldHint:false қойылған — бірде-бір құрал желіге шықпайды. Кеңістіктер арасында тасымалдау немесе көшіру жоқ — деректердің ішкі ағып кетуі де жабық. Деректерді алып шығатын жер жоқ.
  • Сенімсіз мазмұн зарарсыздандырылған. Сервердің нұсқаулары статикалық және жазбалардың мазмұнымен ешқашан араласпайды: мазмұн құралдардың сипаттамаларына да, server instructions-ке де қосылмайды. Осылайша жазба денесіндегі инъекция агентке команда болмайды.
  • Деструктивті әрекеттердің бәрін кері қайтаруға болады. delete_note жазбаны себетке жібереді; оны қалпына келтіру мен біржола тазалауды агент емес, адам жасайды. Дәл осы — «агент қайтарымсыз ешнәрсе істемейді» сызығы.

Әр шақыруда рұқсаттарды тексеру

Рұқсаттар екі рет тексеріледі. Алдымен tools/list токеннің шегімен сүзгіленеді — read-токен жазатын құралдарды жай ғана көрмейді. Содан кейін әрбір tools/call нақты кеңістікке қол жеткізуді қосымша тексереді (can(principal, action, {space})). Рұқсаттар формуласы — effective = scopes(token) ∩ grants(principal): токеннің ауқымы (әрекеттер шегі) кеңістіктердегі тірі мүшелікпен қиылысады. Рұқсатты кері қайтарып алу токенді бірден тарылтады.

Басқару әрекеттері (токендер шығару, мүшелерді басқару) write-тан жоғары тұрады — ағып кеткен write деңгейлі токен жаңа токен шығара алмайды және қол жеткізу бере алмайды.

Бас тарту = 404, 403 емес

Қол жеткізуден бас тарту 403 («болмайды») емес, 404 («ондай нәрсе жоқ») болып қайтарылады. Осылайша жауап кодтары бойынша сізге берілген рұқсаттардан тыс қандай жазбалар немесе кеңістіктер бар екенін іріктеп анықтауға болмайды. Бөтен кеңістік принципінде қолжетімсіз әрі жоқ кеңістіктен ажыратылмайды.

flowchart TD
  call[tools/call] --> listed{құрал токен<br/>шегінде ме?}
  listed -->|жоқ| gone[құрал tools/list-те жоқ]
  listed -->|иә| acl{can principal,<br/>action, space?}
  acl -->|жоқ| notfound[404 · санамалауға қарсы]
  acl -->|иә| exec[орындау · шығу тегі журналға]

Сенімсіз мазмұнды зарарсыздандыру

Агентке кететін бәрі — title, snippet, content, frontmatter — жіберер алдында тазаланады: псевдо-control-тегтердің (<system>, <instructions> және сол сияқтылардың) бұрыштық жақшалары зарарсыздандырылады. Біреу «жүйелік нұсқау» жазып қойған жазба агентке команда емес, кәдімгі мәтін ретінде келеді.

Түзетулер тарихы көрінеді

Әрбір түзету оны кім жасағанын — нақты адамды немесе агентті — түзетулер тарихына жазады. get_note мен recall жазбаны кім түзеткенін қайтара алады: адам ба, агент пе, қайсысы екенін. Агент арқылы өткен инъекция көрінетін әрі қадағаланатын болып қалады.

Бұл іс жүзінде нені білдіреді

Промптпен толық бұзып алынған агент те өз токенімен шектелген: ол желіге шықпайды, бөтен кеңістікке жетпейді, қайтарымсыз жоюды жасамайды және өзіне рұқсат бермейді. Оның қолынан келетін ең сорақысы — өз рұқсаттары шегіндегі, журналда толық шығу тегі бар кері қайтарылатын түзету.

Шекара: E2EE емес

Notarium ұштан-ұшқа шифрлауды әдейі жасамайды. Ақылды сервер — іздеу, семантика, тарих, агенттер — plaintext-ке қол жеткізуді талап етеді. Мұндағы құпиялылық E2EE-ге емес, өзіндік хостинг пен файлдарға иелік етуге негізделген. Шлюздің қатер моделі агенттің бұзылуынан қорғайды, ал файлдарыңызды бәрібір сеніп тапсырған хосттың бұзылуынан емес.

Әрі қарай