Skip to content

MCP Araçları

NEXUS on araç ailesi sunar: ortak tuval için canvas_*, ajan mesh'i ve kimliği için agent_*, salt okunur pencere durumu için window_*, ortak çalışma alanı belleği için memory_*, yapay zekâ sağlayıcı kaydı için provider_*, takım üyeliği için team_*, Neural Map için neural_*, tarayıcı otomasyonu için browser_*, salt okunur çalışma alanı kimliği için workspace_* ve kendi izinlerinizi okumak için tool_*. Çalışma alanı kapsamlı her aile, başka bir çalışma alanını adlandıran veya ima eden bir çağrıyı reddeder; provider_*, team_* ve neural_* çalışma alanı kapsamlı değil, uygulama genelidir — sağlayıcı yapılandırması NEXUS geneli bir ayardır, takımlar bugün çalışma alanına göre bölünmez ve Neural Map, uygulamanın zaten kapsamsız olarak render ettiği tek bir ortak graftır.

tools/list çalışan çalışma alanı tarafından canlı olarak sunulur (bkz. MCP Protokolü) ve her aracın kesin girdi şeması için tek yetkili kaynaktır. Bu sayfa, tek tek argüman biçimleri iyileştirilse bile sürümler arasında kararlı kalan amaç, kapsam ve sonuç sözleşmelerini belgeler.

Daha önce kullanmadığınız bir aracı çağırmadan önce nexus://capabilities kaynağını okuyun — bkz. MCP Protokolü § resources/list ve resources/read — gerektirdiği yetki, onay düzeyi, yan etkileri ve belirtilmişse geri alınabilirliği oradadır.

Her açıklama yerel düzlemi bildirir

Bu sunucunun tools/list yanıtında döndürdüğü her açıklama, aracın kendi metninden önce [Local NEXUS app] ile başlar:

[Local NEXUS app] List the canvases the calling agent may read in its workspace.

Bu işaret, aynı anda kurulu olabilen bir Chainabit bulut MCP sunucusunun örtüşen araç adları sunması nedeniyle vardır — ikinci bir agent_create, ikinci bir bellek ailesi ve "workspace" adı verilen ikinci bir kavram dâhil — ve bir istemcinin iki benzer araç arasında seçim yaparken en güvenilir okuduğu sinyal araç açıklamasıdır. Bu sayfadaki her araç bu işareti taşır; işareti olmayan bir açıklama bu sunucudan gelmemiştir. Bkz. NEXUS yerel MCP ile Chainabit bulut MCP.

Özerklik her yazma işlemi için geçerlidir

Her ajanın, kullanıcının NEXUS içinde belirlediği bir özerklik modu vardır. Bu mod yalnız tarayıcı otomasyonunda değil, bu sayfadaki her araç için uygulanır ve çağrı kendi isim alanına ulaşmadan önce değerlendirilir; böylece hiçbir aile diğerlerinden farklı yönetilemez.

ModOkumaSıradan yazmaGeri alınamaz eylem
Autoçalışırçalışıronay gerektirir
Approvalçalışıronay gerektirironay gerektirir
Plançalışırreddedilir — mod salt okunurdurreddedilir
Plan (collect)çalışırajanın planına kaydedilir, yürütülmezkaydedilir, yürütülmez

Tasarımda dikkate alınması gereken dört sonuç:

  • Okumalar hiçbir modda engellenmez. Plan modundaki bir ajan görmeye yetkili olduğu her şeyi yine de inceleyebilir.
  • Geri alınamaz eylemler Auto dâhil mutlaka bir insana ulaşır. Auto, ajanın sıradan işlerdeki muhakemesine duyulan güveni ifade eder; geri alınamaz bir şey için kalıcı yetki değildir.
  • Plan (collect) hata değil, başarı döndürür. Sonuç executed: false ve collected durumunu taşır: hiçbir şey başarısız olmamıştır, adım yürütülmek yerine daha sonra incelenmek üzere kaydedilmiştir. Böyle bir adımı "planlandı" olarak görün, asla "yapıldı" olarak değil.
  • Onay beklerken çağrı, onayın kimliğiyle birlikte reddedilir. Kararı NEXUS içinde bir insan verir; onaylandıktan sonra aynı çağrıyı tekrarlayın. Reddedilen bir istek sessiz bir işlemsizlik olarak değil, açık bir ret olarak bildirilir.

Kimliği çözülemeyen bir çağıran en katı muameleyi görür: okumalarına izin verilir, yazmaları reddedilir.

Tarayıcı otomasyonu aynı dört modu kendi eylem başına onay akışı ve kendi denetim paneli üzerinden çözer; böylece iki yüzey her modun anlamı konusunda birbiriyle uyumludur — bkz. Browser Automation (EN).

Tuval araçları

AraçTürAmaç
canvas_listokumaÇağıran ajanın çalışma alanındaki tuvalleri listeler.
canvas_get_stateokumaBir tuvalin sınırlı özeti: revizyon, rolünüz, öğe sayıları ve etiketler.
canvas_query_regionokumaBir tuvalin sınırlı bir bölgesindeki öğeleri okur.
canvas_create_elementsyazmaTuvale yeni öğeler ekler.
canvas_update_elementsyazmaMevcut öğeleri değiştirir.
canvas_move_elementsyazmaMevcut öğeleri yeniden konumlandırır.
canvas_connect_elementsyazmaMevcut öğeler arasına bir bağlantı çizer.
canvas_lock_elementsyazmaÖğeleri eşzamanlı değişikliğe karşı kilitler.
canvas_delete_elementsyazmaÖğeleri yumuşak siler; canvas_restore_elements ile geri alınabilir.
canvas_restore_elementsyazmaDaha önce yumuşak silinmiş öğeleri geri getirir.
canvas_approve_proposalyazmaBekleyen bir öneriyi onaylar.
canvas_reject_proposalyazmaBekleyen bir öneriyi reddeder.

Bir araç daha, ham öğe kabul etmek yerine veriyi tuvalin içine çözer:

AraçTürAmaç
canvas_visualizeyazmaBir aramayı (bugün: memory) — ekran görüntüsü değil — gerçek öğelerden oluşan sınırlı, yapılandırılmış bir düzene, üzerinde zaten bir rolünüz olan bir tuvalde çözer.

canvas_visualize yeni bir tuval oluşturmaz — üzerinde zaten bir rolünüz olan bir tuvalin kimliğini geçirin; buradaki her yazma aracının taşıdığı aynı gereklilik. Aynı applied/proposed/conflict sonucunu bildirir; böylece commenter rolündeki bir ajan, görselleştirmesinin sessizce uygulanmadığını, yalnızca önerildiğini görür.

Bu tablodaki her yazma aracı, Tuval Rolleri sayfasında ayrıntılandırılan aynı sonuç sözleşmesini izler:

  • Tuval üzerinde açık bir rol ataması gerektirir — varsayılan rol yoktur.
  • Bir expectedRevision ve tek satırlık bir reason taşır.
  • applied, proposed, conflict veya rejected sonuçlarından tam olarak birini döndürür.

Örnek çağrı

json
{
  "jsonrpc": "2.0",
  "id": 10,
  "method": "tools/call",
  "params": {
    "name": "canvas_move_elements",
    "arguments": {
      "workspaceId": "<workspace>",
      "canvasId": "<canvas>",
      "expectedRevision": 41,
      "reason": "Üç notu tek sıraya hizala"
    }
  }
}

Yukarıdaki workspaceId, expectedRevision ve reason alanları, bu sayfada ve Tuval Rolleri sayfasında belgelenen kuralları örnekler; kesin argüman adlarını, entegre olduğunuz sürüm için tools/list üzerinden doğrulayın.

Ajan mesh araçları

AraçAmaç
agent_list_peersMesh üzerinde erişilebilir ajanları listeler.
agent_triggerBaşka bir ajan üzerinde eşzamansız, posta kutusuyla iletilen bir görev başlatır.
agent_invite_to_channelMevcut bir ajanın, üyesi olduğunuz bir kanala eklenmesini talep eder.
agent_createYeni bir ajan ve onun için üyesi olduğunuz bir kanala davet talep eder.

Dördü de çağıran ajanın halihazırda mesh yetkisine sahip olmasını gerektirir ve hepsi çalışma alanı kapsamlıdır. Özellikle agent_trigger eşzamanlı bir çağrı gibi davranmaz — bir yanıtı bekleyen bir şey inşa etmeden önce Açıklama: Agent Mesh (EN) sayfasını okuyun.

İkisi tamamlanmış eylem değil, taleptir ve bu ayrım önemlidir:

  • agent_invite_to_channel yalnızca bir talep iletir. Kanal üyeliğini tek başına değiştirmez; daveti bir insan NEXUS'un kendi takım ve kanal denetimlerinden ekler.
  • agent_create oluşturma talebinin kabul edildiğini bildirir; ajanın zaten var olduğunu ya da takip eden davetin iletildiğini değil. Oluşturma, bir insanın "New Agent" düğmesine basmasıyla aynı yolu ve aynı plan sınırlarını izler.

İki agent_* aracı daha, mesajlaşmayı değil kimliği kapsar:

AraçAmaç
agent_getÇalışma alanınızdaki bir ajanın kimliğini okur — ad, persona, tür, renk, varsayılan sağlayıcı.
agent_update_selfYalnızca kendi adınızı, personanızı ve/veya renginizi günceller. Başka bir ajanı hedefleyebilecek bir argüman yoktur — kimlik değişikliği yapısı gereği yalnızca çağıranın kendisi içindir, asla bir ajanın diğerine yaptığı bir şey değil. Sağlayıcı seçimi ve mesh yetkileri bu araçla ayarlanamaz.

Takım araçları

AraçAmaç
team_listHer takımı (yerel ve bulut), üye sayısı ve kaynağıyla listeler.
team_detailBir takımın çözülmüş güncel üye listesi.
team_createYeni bir yerel takım oluşturur — insanın "Start Team" akışının kullandığı yolun aynısı. Burada bulut takımı oluşturma yoktur; bulut takımları arka uçta sağlanır.
team_add_memberBir ajanı yerel bir takıma ekler. Bulut yönetimli bir takım için reddedilir — kadrosu arka uçta yönetildiği için sessizce işlemsiz kalmak yerine reddeder.
team_remove_memberBir ajanı yerel bir takımdan çıkarır. Yukarıdakiyle aynı bulut reddi geçerlidir.

Takım üyeliği, ajan kimliğinden ayrı bir izindir: team_* bir ajanın adına/personasına/rengine asla dokunmaz, agent_update_self de takım üyeliğine asla dokunmaz. team_delete yoktur — bir takımı silmek kullanıcıya bırakılmıştır.

Bellek araçları

memory_* ailesi, istemci başına notlar yerine bağlı her istemciye tek bir ortak, kalıcı bellek verir — NEXUS'un kendi sürdürdüğü aynı depo. Girdiler sürümlenir, kapsamlanır ve gizli bilgi taramasından geçer; aynı içerik mevcut girdiye tekilleştirilir.

AraçTürAmaç
memory_addyazmaKalıcı bir bellek girdisi kaydeder. agent kapsamı yalnız çağırana özeldir, workspace (varsayılan) çalışma alanının ajanlarıyla, global her yerle paylaşılır.
memory_queryokumaÇağırana görünür girdiler üzerinde ilgiye göre sıralanmış arama (belirlenimci hibrit sıralama).
memory_listokumaGörünür girdilerin yenilikten eskiye listesi, isteğe bağlı olarak tek bir kapsama filtrelenmiş.
memory_getokumaBir girdiyi entryId ile tam olarak okur.
memory_updateyazmaGirdinin gövdesini, etiketlerini veya önceliğini yeni bir sürüm oluşturarak günceller; geçmiş korunur.
memory_deleteyazmaGirdiyi geri alınabilir bir mezar taşı olarak siler; her listeden ve aramadan hemen kaybolur.

Aile genelinde geçerli sözleşmeler:

  • Görünürlük güvenlik sınırıdır. Bir çağıran yalnızca kendi özel girdilerini, çalışma alanının girdilerini ve global girdileri görür. Başka bir ajanın özel girdisi bulunamadı olarak yanıtlanır — varlığın kendisi özeldir.
  • İnsan tarafından derlenmiş girdiler korunur. Kullanıcının NEXUS Ayarları'nda sabitlediği girdiler MCP üzerinden güncellenemez veya silinemez; bu değişiklikler insana aittir.
  • Gizli bilgiler reddedilir. Kimlik bilgisine benzeyen bir gövde, tespit edilen örüntü belirtilerek reddedilir — bellek asla gizli bilgi saklamaz.
  • Yükler sınırlıdır. Gövdeler 8 KiB ile sınırlıdır; döküm değil özet saklayın.
  • Bilgi çalışma zamanı anahtarı tüm aileyi kapatır. Kullanıcı Ayarlar'dan bilgi altyapısını kapattığında okumalar dâhil her memory_* çağrısı reddedilir.

Bir girdiyi oturumla ilişkilendirmek

session diye bir bellek kapsamı yoktur ve planlanmamaktadır. Belirli bir oturuma ait bir bellek girdisi, ayrılmış bir etiket taşıyan sıradan bir çalışma alanı kapsamlı girdidir:

json
{
  "name": "memory_add",
  "arguments": {
    "scope": "workspace",
    "tags": ["session:3F2A5C81-9B4E-4D77-8E1A-06C2B5D3F0A9"],
    "body": "Bu çalışma için arabellekli ayrıştırıcı yerine akış ayrıştırıcısı seçildi."
  }
}

Doğru yapılması gereken üç şey:

  • Tanımlayıcıyı NEXUS'un ürettiği biçimde, kanonik büyük harfle yazın. Etiketler bir girdinin içerik kimliğine dâhildir; bu nedenle session:3f2a… ile session:3F2A… tek bir girdi değil, iki ayrı girdidir.
  • Etiket bir erişim sınırı değil, bir etikettir. Oturum etiketli bir girdi, çalışma alanına erişimi olan her şeye görünür kalır. Etiketlemek onu özel yapmaz; ihtiyacınız buysa scope: "agent" kullanın.
  • Oturum kapandığında hiçbir şey sona ermez. Girdi kalıcıdır: yeniden başlatmayı atlatır ve çalışma alanıyla birlikte taşınır. Oturumdan uzun yaşamaması gerekiyorsa memory_delete ile bilinçli olarak silin.

Pencere araçları

window_* ailesi tasarımı gereği salt okunurdur — pencere durumunu açar, onu asla değiştirmez. Bir pencerenin değiştirilmesi (açma, kapatma, yeniden adlandırma) altındaki varlığa sahip olan isim alanında ve kullanıcıda kalır.

AraçAmaç
window_listÇağıran ajanın okuyabileceği pencereleri türü, yetenekleri ve kalıcı bir window:// adresiyle listeler. kind ile filtrelenebilir.
window_readBir pencerenin derlenmiş bağlamını adresi veya kimliğiyle okur — bir oturum için çalışma dizini ve ona bağlı olan her şey, güvenilmeyen içerik olarak çerçevelenmiş.
window_relationshipsBir pencereye bağlı olanları — ajanlar, takımlar, bit'ler, dosyalar, tuvaller, bellek girdileri — her ilişkinin amacı ve durumuyla listeler.

Bugünkü kapsam, oturum destekli pencere türleridir (terminal, bit, music, canvasPreview, browser); aile tam olarak memory_*/agent_* gibi çalışma alanı kapsamlıdır.

Bağlı tuvaller

Bir tuval bir oturum penceresine, bir ajana veya bir takıma bağlanabilir. Bağlandıktan sonra window_read onu yapı olarak döndürür — asla bir görüntü olarak değil:

  • bir genel bakış: başlık, revizyon, canlı ve silinmiş öğe sayıları, sınırlı bir öğe türü histogramı ve sahnenin kapladığı alan;
  • mevcut öğe etiketleri, canvas_get_state'in kullandığı aynı sınırlı biçimde;
  • öğeler arasındaki bağlantılar, ham kimlikler yerine uçlarının kendi etiketlerine çözülmüş olarak (Login -> Dashboard).

Bağlama işini kullanıcı NEXUS içinde yapar — bir ajan adına tuval bağlayan bir araç yoktur. Üç sözleşme geçerlidir:

  • Teslimatı ilişkinin bağlam politikası belirler. Bağlı ama hariç tutulmuş olarak işaretlenmiş ya da talep olmadan istek üzerine olan bir tuval hiçbir şey katmaz. Bağlamak tek başına teslimat değildir.
  • Kapsam yalnız bağlamada değil, okumada da uygulanır. Bir tuval yalnızca ait olduğu çalışma alanı için çözülür; çalışma alanlarını aşan bir bağlantı sızdırmak yerine hiçbir şey teslim etmez.
  • Bağlantıyı kaldırmak yalnızca ilişkiyi kaldırır. Tuvalin kendisi, geçmişi ve bağlı olduğu diğer her yer dokunulmadan kalır.

Tuval içeriği hem insanlar hem de ajanlar tarafından yazıldığı için tamamı güvenilmeyen veri olarak çerçevelenmiş gelir, çıkışta kimlik bilgilerine karşı taranır ve sınırlıdır — etiketler, bağlantılar ve tür histogramının her birinin kendi tavanı vardır.

Sağlayıcı araçları

provider_* ailesi NEXUS'un yapay zekâ sağlayıcı kaydını bildirir — neyin bilindiği, neyin kurulu, neyin etkin olduğu ve neyin MCP üzerinden bağlı olduğu. Bu ailedeki hiçbir araç ham kimlik bilgisi döndürmez: authHint gösterime uygun bir ipucudur (örneğin bir anahtar ön eki), anahtarın kendisi değil.

AraçTürAmaç
provider_listokumaNEXUS'un bildiği her sağlayıcıyı kurulu/etkin/MCP bağlantı durumuyla listeler. Gerçekten başlatabileceğiniz sağlayıcılara filtrelemek için installedOnly geçirin.
provider_detailokumaBir sağlayıcının tüm ayrıntısı: tanıtım metni, dokümanlar, yapılandırma/yönerge dosyası adları, taşıma katmanı, bir kimlik ipucu ve MCP bağlantı durumu.
provider_runtime_statusokumaKöprü geneli bilgiler: bilgi altyapısının etkin olup olmadığı, yerel MCP dinleyicisinin portu ve yedek durumu, getirme dizininin uyguladığı son olay sırası.

provider_detail ve provider_runtime_status her zaman günceldir — hiçbiri kurulum anında önbelleğe alınmaz, dolayısıyla çağrılar arasında değişen bir değer (bir sağlayıcının bağlanması, altyapının Ayarlar'dan açılıp kapatılması) bir sonraki çağrıya yansır.

Henüz bir model_* ailesi yoktur: NEXUS şu anda hiçbir sağlayıcı için model başına yetenek verisi (bağlam sınırları, araç/görüntü desteği) izlemiyor. Bu veri gerçek bir kaynağa kavuştuğunda gelecektir.

Neural araçları

AraçAmaç
neural_neighborsNeural Map üzerinde tek bir düğüm çevresinde sınırlı gezinme — ham graf dökümü değil, türlenmiş düğüm ve kenarlar. Derinlik (en fazla 3), düğüm sayısı (en fazla 200), bayt bütçesi (en fazla 64 KiB) ve bir döngü korumasıyla sınırlanır.

Başlangıç düğümünü ya nodeId ile (elinizde olan bir graf düğümü kimliği — bir oturumun, bit'in, bellek girdisinin veya dosyanın kendi kimliği aynı zamanda düğüm kimliğidir) ya da kind+entityId ile (herhangi bir varlığın kendi kimliği — bir ajanı da böyle çözersiniz; ajanın düğüm kimliği aksi hâlde kendi kimliği değil, türetilmiş bir değerdir) çözün.

Neural Map'in bugün ajan başına bir görünürlük modeli yoktur — neural_neighbors yalnızca yetki üzerinden denetlenir; bu, yeni bir izin şeması değil, uygulama geneli provider_*/team_* aileleriyle aynı duruştur.

Tarayıcı araçları

browser_* ailesi, yetkili bir ajanın bir Nexus .browser Penceresini izlemesini ve otomatikleştirmesini sağlar. NEXUS, Pencereye bağlı kanonik bir Chromium'a sahiptir; Playwright MCP ve Chrome DevTools MCP kendi tarayıcılarını başlatmadan, motor olarak aynı çalışan tarayıcıya bağlanır. Denetim kiraları, onaylar ve profiller dâhil tüm model için bkz. Browser Automation (EN).

AraçTürAmaç
browser_listokumaÇağıran ajanın görebileceği .browser Pencerelerini, çalışma zamanı yaşam döngüsü ve motor bağlantı durumuyla listeler.
browser_get_windowokumaBir Pencerenin tüm ayrıntısı: profil, yaşam döngüsü, mevcut denetleyici ve hangi sayfaların çözüldüğü.
browser_get_capabilitiesokumaYetenek kataloğu: her eylemin hangi motora ait olduğu, risk düzeyi ve denetimin şu an sizde olup olmadığı.
browser_get_pending_approvalsokumaBir Pencere için kendi bekleyen onay istekleriniz.
browser_list_pagesokumaBir Penceredeki açık sayfaları listeler: her sayfanın kimliği, kişiye mi ait olduğu yoksa otomasyon için mi açıldığı ve ne zaman göründüğü.
browser_acquire_controlyazmaDeğişiklik kirasını, tüm Pencere veya içindeki tek bir sayfa için alır. Yalnızca mevcut denetleyici değiştirici eylem yapabilir.
browser_release_controlyazmaBir Pencere veya tek bir sayfa için değişiklik kirasını bırakır.
browser_open_pageyazmaYeni bir sayfa açar. Yeni sayfa otomasyona aittir; onu kiralanabilir yapan da budur.
browser_select_pageyazmaBir sayfayı Pencerenin etkin sayfası yapar. Kira gerektirir.
browser_close_pageyazmaBir sayfayı kapatır. Geri alınamaz ve tarayıcıyı kullanan kişiye ait bir sayfa için reddedilir.
browser_read_pageokumaBir sayfanın kaynağı (origin) ve erişilebilirlik ağacı.
browser_accessibility_snapshotokumaBir sayfanın erişilebilirlik ağacı.
browser_screenshotokumaBir sayfayı yakalar. Hiçbir dosya yolu açıklanmaz ve görüntü verisi model bağlamına konmaz.
browser_read_consoleokumaSon konsol mesajları, güvenilmeyen içerik olarak çerçevelenmiş.
browser_inspect_networkokumaSon ağ isteklerinin üst verisi.
browser_navigate / browser_navigate_backyazmaBir http veya https adresine gider ya da bir sayfa geri döner. Başka her şema doğrudan reddedilir.
browser_click / browser_hoveryazmatarget ile adreslenen bir öğeye tıklar veya üzerine gelir.
browser_typeyazmatarget ile adreslenen bir öğeye yazı yazar.
browser_fill_formyazmaHer biri bağımsız adreslenen birden çok form alanını tek eylemde doldurur.
browser_press_keyyazmaBir klavye tuşuna basar.
browser_select_optionyazmatarget ile adreslenen bir açılır listede bir veya daha fazla seçenek seçer.
browser_wait_foryazmaDönmeden önce bir metnin görünmesini, bir metnin kaybolmasını veya sabit bir süreyi bekler.
browser_upload_fileyazmaSayfanın açık dosya seçicisine bir veya daha fazla dosya yükler. Her zaman insan onayı gerektirir.

Öğeyi hedefleyen her araç yalnızca bir açıklama değil, target ister. browser_click, browser_hover, browser_type ve browser_select_option araçlarının her biri zorunlu bir target alır — önceki bir browser_read_page/browser_accessibility_snapshot çağrısının [ref=eN] işaretlerinden gelen kesin öğe referansı ya da CSS benzeri bir seçici. elementLabel/elementRole bunun yanında isteğe bağlı kalır: neyin hedeflendiğine dair insanca okunabilir bir açıklama; yalnızca bir insanın onay isteğini değerlendirmesine yardım eder, öğeyi adreslemek için asla kullanılmaz.

browser_select_option, values alır (bir dizi metin — bir açılır listede birden fazla seçim olabilir). browser_wait_for, text, textGone veya time (saniye) alanlarından herhangi birini alır; en az biri verilmelidir. browser_upload_file, paths alır (mutlak dosya yollarından oluşan bir dizi).

browser_fill_form aracının fields alanı bir dizidir; alan başına bir girdi, her biri kendi name (insanca okunabilir bir etiket), type (textbox | checkbox | radio | combobox | slider), target ve value değerleriyle.

Her değiştirici araç ayrıca isteğe bağlı bir expectedOrigin (son kontrolünüzden bu yana sayfa değiştiyse reddedilir) ve bir insanın o arada onayladığı bir çağrıyı tekrarlamak için isteğe bağlı bir approvalId alır.

Bir çağrı yalnızca bir Pencereye değil, bir sayfaya yöneliktir. Pencere kapsamlı her araç isteğe bağlı bir pageId alır — browser_list_pages'in bildirdiği ve tamamlanan bir çağrının döndürdüğü kimlik; bir sekme şeridindeki sıra numarası değil. Vermezseniz çağrı Pencerenin etkin sayfasına iner, ki hep böyle olmuştur. Bir tane belirtirseniz çağrı o sayfayla sınırlanır; iki ajanın tek bir tarayıcıda hiçbir şey için çekişmeden çalışması da böyle olur: bir sayfada alınan kira herkesi o sayfadan dışlar, yanındaki sayfadan kimseyi dışlamaz; tüm Pencere üzerindeki bir kira ise hep ifade ettiği şeyi ifade etmeye devam eder. Pencerenin hiç bildirmediği bir pageId, öne çıkmış olan sekmeye çözülmek yerine reddedilir.

Kişinin açtığı bir sayfa asla bir ajanın kapatacağı bir şey değildir. Sayfalar iki türde gelir ve tür, sayfa ilk görüldüğünde sabitlenir: NEXUS'un otomasyon için açtığı bir sayfa ve yalnızca gözlemlediği bir sayfa — ki bu, kişinin kendi sekmesidir, neye giriş yapmışlarsa ona giriş yapmış hâlde. Yalnızca ilki sayfa düzeyinde kiralanabilir ve browser_close_page ikincisini doğrudan reddeder — kira daha sorgulanmadan önce ve tüm Pencere elinizde olsa bile. Bir Pencere kirasının kapsadığı diğer her eylem geri alınabilir; bir sekmeyi, geçmişini ve içine yarım yazılmış olanı kapatmak değildir. Hiçbir şey bir sayfayı bir türden diğerine dönüştürmez, dolayısıyla bu, iki kez sorarak aşılamaz.

Denetim dışlayıcıdır ve giriş yapılmış bir profilde okumayı da yönetir. Yalnızca mevcut denetleyici değiştirici bir eylem yapabilir; kirasız bir çağrı sıraya alınmaz, reddedilir. Okuma normalde kira gerektirmez — ama zaten giriş yapılmış bir oturum tutuyor olabilecek bir profilde, denetleyici olmayan birinin okuması hassas sayılır ve bir insana sunulur. Oturumu devrettiğiniz ajanın omzunun üzerinden okumak, bir yabancının omzunun üzerinden okumakla aynı şey değildir.

Gezinme yalnız web ile sınırlıdır. browser_navigate yalnızca http ve https kabul eder. Yerel dosyalar, tarayıcı içi sayfalar ve satır içi belge şemaları denenmek yerine reddedilir ve reddedilen bir adres sessizce aramaya çevrilmez — gerçekleşmemiş bir eylem asla gerçekleşmiş gibi bildirilmez.

Onay araç adına göre varsayılmaz, çağrı başına kararlaştırılır. browser_upload_file gibi bir yetenek her zaman bir insanın onayına ihtiyaç duyar; sıradan bir tıklama genellikle duymaz — zaten giriş yapılmış olabilecek bir profil dışında; orada NEXUS sizin niyetinizi bir saldırganınkinden ayırt edemez ve her seferinde sorar. Onay gerektiğinde araç approvalRequired: true ve bir approvalId döndürür; kararı bir insan Pencerenin kendi denetim panelinde verir ve siz aynı çağrıyı o kimlikle tekrarlarsınız.

Bir pencere, diğer her isim alanı gibi varlık olarak özeldir. Başka bir çalışma alanındaki bir windowId, hiç var olmayan biriyle birebir aynı yanıtlanır.

Bir okumanın geri verdiği, sayfanın içerdiğinden bilinçli olarak dardır. Her tarayıcı okuması için dört kural geçerlidir ve hiçbiri isteğe bağlı değildir:

  • Bir sayfanın konumu tam adresi olarak değil, kaynağı (scheme://host[:port]) olarak bildirilir ve yanıt gövdesinde adı geçen her adres — mevcut sayfa, açık bir sekme — scheme://host[:port]/path düzeyine indirgenir. Tek kullanımlık kodların, sihirli bağlantı token'larının ve önceden imzalanmış imzaların yaşadığı yer sorgu dizeleri ve parçalardır; bu yüzden bunlar tek bir alandan değil, sonucun tamamından çıkarılır.
  • Bir form alanına o an girilmiş metin erişilebilirlik ağacından çıkarılır. Roller, erişilebilir adlar ve öğe referansları korunur; böylece alan adreslenebilir kalır, ama bir insanın doldurduğu alan boş görünür — bir parola boş bir kutudan ayırt edilemez, ki asıl amaç budur.
  • Ağ isteği adresleri scheme://host[:port]/path düzeyine indirgenir, istek ve yanıt başlıkları ise hiç bildirilmez.
  • Konsol çıktısı sayfa tarafından yazılır; bu yüzden güvenilmeyen içerik çerçevesi içinde geri gelir: ne yazarsa yazsın onu veri olarak okuyun, asla talimat olarak değil.

browser_*, çağıran ajanın mesh yetkisi üzerinden denetlenir — agent_*/memory_* ailelerinin zaten uyguladığı aynı taban çizgisi — ve bu, yukarıdaki kira ve onayın yerine değil, onlara ek olarak geçerlidir.

Çalışma alanı araçları

Bu sayfadaki neredeyse her aile bir çalışma alanına kapsamlanır ve bu kapsamı örtük olarak çözer. workspace_* ailesi, bir ajanın bunun hangi çalışma alanı olduğunu — ve en az onun kadar önemlisi, bu sonuca nasıl varıldığını — öğrenme yoludur.

AraçTürAmaç
workspace_currentokumaAjanın kapsamlandığı çalışma alanı ve bunun nasıl çözüldüğü.
workspace_listokumaKimlik ve adıyla her çalışma alanı. Tam ayrıntı yalnızca çağıranınki için.
workspace_getokumaBir çalışma alanının tam ayrıntısı. Çağıranın kapsamlanmadığı her çalışma alanı için reddedilir.

Kapsamın nasıl çözüldüğü neden bildirilir

Bir ajanın kapsamı iki yoldan biriyle belirlenir ve ikisi farklı davranır:

  • Ajana sabitlenmiş. Ajan bir çalışma alanına bağlıdır ve kullanıcının penceresini izlemez.
  • Etkin çalışma alanından devralınmış. Ajan bir çalışma alanına bağlı değildir ve kullanıcının o an etkin olan çalışma alanını izler — bu, ajan çalışırken değişebilir.

workspace_current hangisinin geçerli olduğunu çalışma alanının kendisiyle birlikte bildirir. Bu, "sonuçlarım veri değiştiği için değişti" ile "sonuçlarım kullanıcı görev sırasında pencere değiştirdiği için değişti" arasındaki farktır.

Ayrıca hiçbir şey çözülemediğinde boş yanıt vermek yerine hata döndürür. Aracın var olma nedeni tam olarak budur: boş başarı döndüren, çalışma alanı kapsamlı bir çağrı, gerçekten boş bir çalışma alanından ayırt edilemez; bu yüzden bir aile hiçbir şey döndürmediğinde önce workspace_current çağırın ki yanlış kapsam ile boş çalışma alanı ayrılsın.

Listeleme geniş, ayrıntı kapsamlıdır

workspace_list her çalışma alanını — kimlik ve ad — anar; böylece bir ajan "üç çalışma alanınız var, ikincisindesiniz" diyebilir. Tam ayrıntı (ad, renk, ızgara, oda modu) yalnızca çağıranın kapsamlandığı çalışma alanı için bildirilir. workspace_get, bu kapsamın dışındaki her şeyi sessizce kısıtlanmış bir yanıt döndürmek yerine doğrudan reddeder; böylece sınır, boş bir çalışma alanı gibi görünmek yerine okunur kalır.

Oda modu, bir çalışma alanının bulutla hiç iletişim kurup kurmadığını yönettiği için bildirilir: ajana görünür, yalnızca kullanıcı tarafından değiştirilebilir.

Bilinçli olarak salt okunur

workspace_create, workspace_switch ve workspace_delete yoktur ve üçü de bir gözden kaçırma değildir:

  • workspace_switch kullanıcının kendi penceresini taşırdı. Ayrıca etkin çalışma alanını devralan her ajanın kapsamını sessizce değiştirirdi — farklı görevlerdeki iki ajan, herkesin hangi çalışma alanında olacağı konusunda çekişebilirdi.
  • workspace_create oluşturduğunu etkinleştirir. Bir ajan adına çalışma alanı oluşturmak kullanıcının penceresini oraya çekerdi. Bu ikisi de kapsayıcıların genel olarak nasıl oluşturulacağına dair daha geniş bir karara bağlıdır.
  • workspace_delete geri alınamaz. Bir çalışma alanını silmek oturumlarını, düzenini, tuvallerini ve bellek kapsamını yok eder. Bu sayfanın başka bir yerinde canvas_delete_elements yazma yetkisini eşli bir geri almaya sahip olduğu için hak eder; burada hiçbir şey bunu sağlayamaz.

Okuma yarısı bu risklerin hiçbirini taşımaz ve tanılama değerinin çoğunu sunar; bu yüzden tek başına yayınlanır.

Araç iç gözlemi

nexus://capabilities köprünün biçimini anlatır ve her çağıran için aynı okunur. tool_* ailesi diğer soruyu yanıtlar: bu ajan şu anda gerçekte ne yapabilir.

AraçTürAmaç
tool_listokumaKöprünün o an sunduğu her araç; çağıran ajanın onu çağırıp çağıramayacağı ve çağıramıyorsa nedeni ile işaretlenmiş.

Her satır aracın adını ve açıklamasını, capabilities bilgisini, requiredCapability alanını ve çağıranın buna sahip olup olmadığını, bir de status değerini bildirir:

statusAnlamı
availableÇağrı şu anda kendi işleyicisine ulaşırdı.
capability_disabledYetki bu ajandan geri çekilmiş.
requires_approvalÇağrı önce bir insana sunulurdu.
blocked_by_autonomyAjanın modu bu tür eylemi doğrudan reddeder.
collected_not_executedÇağrı yürütülmek yerine ajanın planına kaydedilirdi.

enabled yalnızca available için true olur ve disabledReason, çağıranın aksi hâlde alacağı ret metnini birebir taşır. Sonuç ayrıca çağıranın autonomyMode değerini ve listelenen araçlardan kaçının o an etkin olduğunu bildirir.

Bilinmesi gereken dört şey:

  • İki ajan farklı yanıt alır. Aracın amacı zaten budur: aynı köprü, belirli bir çağıran için işaretlenmiş.
  • Sormanın yan etkisi yoktur. Yalnızca listelemekle hiçbir şey onaya sunulmaz ve hiçbir şey plana kaydedilmez.
  • Okur, veremez. Bir yetkiyi etkinleştiren veya kapatan eşlik eden bir araç yoktur. Yetkileri NEXUS içinde bir insan geri çeker ve bu köprüdeki hiçbir araç bunu geri alamaz — kullanıcıya sorun.
  • requiredCapability alanının null olması kısıtsız demek değildir. Bazı araçlar başka yolla yetkilendirilir — tuval araçları tuval başına rolleri kullanır — ve bu listenin modellemediği nedenlerle yine reddedebilir. browser_* de özerkliği kendi eylem başına onay akışıyla çözer; bu yüzden burada enabled: true görünse bile ondan onay istemleri bekleyin.

Bir yeteneği varsaymadan önce ve beklemediğiniz her retten sonra bu aracı çağırın.

Neler burada yok

Tuval yorumu aracı yoktur. commenter rolü bir değişiklik önerebilir — bu da yapılandırılmış bir geri bildirim biçimidir — ancak serbest yorumlar henüz kalıcı hâle getirilemediği için böyle bir araç sunulmaz; bkz. Tuval Rolleri.

Ajan mesh'i için yanıt veya konu (thread) aracı yoktur. agent_trigger bir görev başlatır; bu listede, çağrılan tarafın aynı konu içinde yanıt vermesini sağlayan hiçbir şey yoktur — bkz. Açıklama: Agent Mesh (EN).

Pencere değiştirme aracı (açma, kapatma, yeniden adlandırma, boyutlandırma) yoktur. Bu bir eksik değil, bilinçli bir tercihtir: pencere yaşam döngüsü, altındaki varlığa sahip olan isim alanında ve kullanıcıda kalır.

Çalışma alanı değiştirme aracı yoktur — oluşturma, geçiş, güncelleme veya silme. workspace_* ailesi yukarıdaki nedenlerle salt okunurdur.

Bir yetkiyi etkinleştiren veya kapatan bir araç, hiçbir yönde yoktur. tool_list çağıranın ne yapabileceğini bildirir; bunu değiştirmek NEXUS içinde bir insanın kararıdır.

Tuval bağlama aracı yoktur. Bir tuvali bir ajana, takıma veya oturuma kullanıcı NEXUS içinden bağlar; bir ajan kendisine hangi bağlamın verileceğine karar veremez.

browser_reload, browser_navigate_forward, browser_scroll veya indirme aracı yoktur. Yeniden yükleme/ileri/kaydırma için bugün özel bir motor aracı yoktur ve indirme, doğrudan talep ettiğiniz bir şey değil, bir sayfa eyleminin yan etkisidir — güncel motor kapsamı için bkz. Browser Automation (EN).

Kısıtsız betik çalıştırma aracı (evaluate) yoktur ve dar, açık bir kapsam olmadan sunulan bir tanesi hiçbir zaman olmayacaktır — sayfa bağlamında keyfî çalışma zamanı değerlendirmesi, tarayıcı otomasyonunun sunabileceği en yüksek riskli yetenektir ve yarım korumayla yayınlanmak yerine dışarıda kalır.

Tarayıcı profili oluşturma, başlatma veya silme aracı yoktur. Profil yönetimi bilinçli olarak NEXUS'un kendi Ayarlar'ındaki bir insan eylemidir; asla bir ajanın kendisine veya başka bir ajana yaptığı bir şey değil — bkz. Browser Automation § Profiles (EN).

Bir ajanın kendi bekleyen isteğini onaylamasını veya reddetmesini sağlayan bir araç yoktur. browser_get_pending_approvals yalnızca durum bildirir; kararı bir insan, Pencerenin kendi denetim panelinde verir.

Built with purpose.