İçeriğe geç

AION

Kendi yeteneklerini adım adım geliştirebilen kişisel bir asistan mimarisi üzerine, tek başıma yürüttüğüm mühendislik deneyi.

Problem

Bugün kullandığımız dijital araçların büyük bölümü birbirinden kopuk çalışıyor. Not almak, bir komut çalıştırmak, bilgi aramak, bir işi hatırlamak veya bilgisayarda bir aksiyon gerçekleştirmek için farklı uygulamalar ve farklı arayüzler kullanıyoruz. Yapay zekâ asistanları bu parçaların bir kısmını bir araya getirse de çoğu zaman yalnızca sohbet penceresi olarak kalıyor. Benim merak ettiğim soru daha farklı: Kendi bilgisayarımda çalışan, beni ve kullandığım sistemi zamanla daha iyi anlayan, yeni yetenekler kazanabilen ve yalnızca cevap vermek yerine gerektiğinde aksiyon alabilen kişisel bir dijital asistanı sıfırdan ne kadar ileri götürebilirim?

Bağlam

AION, Iron Man'deki JARVIS fikrinden ilham alan ancak gerçek dünyadaki ihtiyaçlara ve bugünün teknolojik sınırlarına göre tasarladığım kişisel bir mühendislik projesi. Amacım hazır bir sohbet arayüzünü yeniden paketlemek değil; komutları anlayan, doğru yeteneği seçen, bağlamı koruyan ve zamanla yeni yeteneklerin eklenebildiği bir asistan mimarisini kendim oluşturmak. Proje aynı zamanda yapay zekâ, agent mimarileri, doğal dil ile bilgisayar etkileşimi ve kişisel otomasyon konularını uygulamalı olarak araştırdığım bir laboratuvar görevi görüyor.

Kısıtlar

AION'ın en önemli kısıtlarından biri kontrolün kullanıcıda kalması. Bir kişisel asistanın bilgisayardaki işlemlere erişebilmesi güçlü olduğu kadar riskli de olabilir. Bu nedenle hangi komutların yalnızca bilgi ürettiği, hangilerinin sistem üzerinde aksiyon aldığı ve hangi işlemlerin kullanıcı onayı gerektirdiği açık biçimde ayrılmalı. Mimari yeni yeteneklerin eklenmesine izin verirken mevcut davranışları bozmamalı. Projenin kişisel bir çalışma olması nedeniyle gereksiz altyapı ve servis karmaşıklığından kaçınıyorum; önce çalışan çekirdeği oluşturup yetenekleri kontrollü biçimde genişletiyorum.

Hedefler

Doğal dilde verilen komutları anlayabilen merkezi bir asistan deneyimi oluşturmak. Sohbet, komutlar, notlar ve aktiviteleri aynı bağlam içerisinde bir araya getirmek. Kullanıcının niyetini belirleyerek doğru yeteneği seçebilen genişletilebilir bir intent ve capability yapısı kurmak. Yeni yeteneklerin çekirdek sistemi değiştirmeden eklenebilmesini sağlamak. Zaman içerisinde hafıza ve bağlam katmanını geliştirerek yalnızca anlık komutlara cevap veren değil, geçmiş etkileşimlerden yararlanabilen bir sisteme dönüşmek. Uzun vadede sesli etkileşim ve bilgisayar üzerinde kontrollü aksiyon alma yeteneklerini aynı mimari içerisinde birleştirmek.

Çözüm

AION'ı tek bir büyük yapay zekâ çağrısının her şeyi çözmeye çalıştığı bir yapı yerine, farklı sorumlulukların ayrıldığı modüler bir asistan olarak geliştiriyorum. Kullanıcıdan gelen giriş önce normalize ediliyor ve niyeti belirleniyor. Ardından komuta uygun yetenek seçilerek ilgili işlem gerçekleştiriliyor. Sohbet, hızlı işlemler, notlar ve aktivite geçmişi aynı kullanıcı deneyiminde birleşiyor. Yeni bir yetenek gerektiğinde bütün sistemi yeniden tasarlamak yerine ilgili capability sisteme eklenebiliyor. Böylece AION tek seferde tamamlanması gereken büyük bir ürün yerine, her iterasyonda biraz daha yetenek kazanan yaşayan bir sistem haline geliyor.

Mimari

AION'ın istemci tarafı Angular ve TypeScript üzerinde geliştiriliyor. Mimari; kullanıcı arayüzü, intent çözümleme, komut eşleştirme, yetenekler, hafıza ve aktivite takibi gibi sorumlulukları birbirinden ayıracak şekilde ilerliyor. Kullanıcı girdisi merkezi bir intent katmanından geçiyor; matcher'lar belirli komut türlerini tanıyor ve uygun capability'ye yönlendiriyor. Çakışan eşleşmelerde öncelik ve skor mantığı kullanılarak hangi yeteneğin çalışacağı belirleniyor. Yeni komutların sisteme eklenmesi çekirdek akışı değiştirmek yerine yeni matcher ve capability'ler ekleyerek yapılabilecek şekilde tasarlanıyor. Hafıza katmanı ise kısa vadeli konuşma bağlamından başlayarak ileride daha kalıcı kullanıcı bağlamına genişleyebilecek ayrı bir sorumluluk olarak ele alınıyor.

Rolüm

AION kişisel olarak tasarladığım ve geliştirdiğim bir mühendislik projesi. Ürün fikrinden kullanıcı deneyimine, mimari kararlardan kodlamaya kadar projenin tamamını yürütüyorum. Buradaki temel amacım yalnızca çalışan bir asistan ortaya çıkarmak değil; sistemi mümkün olduğunca kendim geliştirerek intent çözümleme, capability tasarımı, hafıza, agent davranışı ve insan–bilgisayar etkileşimi gibi konuları derinlemesine anlamak. Geliştirme sürecinde yapay zekâ destekli geliştirme araçlarından yararlanıyorum ancak mimari kararları, davranış kurallarını, kalite kontrolünü ve sistemin hangi yetkilere sahip olacağını kendi kontrolümde tutuyorum.

Teknoloji

Frontend: Angular / TypeScript

Mimari: Modüler ve capability tabanlı kişisel asistan mimarisi

Intent: Normalize edilmiş kullanıcı girdisi, matcher tabanlı intent çözümleme, skor ve öncelik yönetimi

Yetenekler: Bağımsız eklenebilen komut ve capability katmanları

Deneyim: Sohbet, hızlı işlemler, notlar ve aktivite geçmişi

Hafıza: Kısa vadeli bağlamdan kalıcı kullanıcı bağlamına genişleyebilecek hafıza yaklaşımı

Etkileşim: Metin tabanlı kullanım, ilerleyen aşamalarda sesli etkileşim

Geliştirme: AI destekli geliştirme, otomatik testler ve kontrollü checkpoint/code review yaklaşımı

Önemli Kararlar

Hazır bir asistan ürününü özelleştirmek yerine mimariyi sıfırdan kurmak. Sistemi tek bir büyük karar mekanizmasına bağlamak yerine intent ve capability katmanlarını ayırmak. Yeni yeteneklerin çekirdek kodu sürekli değiştirmeden eklenebilmesini sağlamak. Kullanıcının bilgisayarında aksiyon alabilecek işlemleri bilgi üreten işlemlerden ayırmak ve kritik aksiyonlarda kullanıcı kontrolünü korumak. İlk aşamada her şeyi yapmaya çalışan bir asistan yerine temel yetenekleri güvenilir çalışan küçük bir çekirdek oluşturmak. Hafıza ve agent davranışını başlangıçtan itibaren mimarinin parçası olarak düşünmek ancak ihtiyaç oluşmadan gereksiz karmaşıklık eklememek.

Zorluklar

Doğal dil kesin kurallarla çalışmadığı için benzer ifadelerin farklı intent'lerle eşleşmesi önemli problemlerden biri. Yeni bir capability eklerken daha önce çalışan komutları bozmamak için eşleşme öncelikleri ve çakışma yönetiminin kontrollü olması gerekiyor. Hafıza tarafında hangi bilginin gerçekten saklanmaya değer olduğunu belirlemek, her şeyi hatırlayan ama kullanışsız bir sistem oluşturmamak açısından önemli. Bir diğer zorluk, asistanın yetenekleri arttıkça güvenlik sınırlarını korumak. Bilgi vermek ile bilgisayar üzerinde gerçek bir işlem gerçekleştirmek aynı risk seviyesinde olmadığı için yetki ve onay mekanizmasının yeteneklerle birlikte gelişmesi gerekiyor.

Sonuçlar

AION aktif geliştirme aşamasında. Temel Angular uygulaması, ana kullanıcı deneyimi, sohbet ve hızlı işlem akışları, notlar, aktivite takibi ve intent/capability mimarisinin ilk katmanları oluşturuldu. Kullanıcı komutlarının normalize edilmesi, farklı matcher'larla değerlendirilmesi ve çakışan intent'lerin skorlanması üzerinde çalışılıyor. Sistem henüz nihai bir kişisel asistan değil; ancak yeni yeteneklerin kontrollü biçimde eklenebileceği temel mimari oluşmuş durumda. Bundan sonraki aşamalarda hafıza katmanının geliştirilmesi, daha fazla gerçek capability eklenmesi ve sesli etkileşimin sisteme dahil edilmesi hedefleniyor.

Çıkarımlar

Bir kişisel asistanı gerçekten kullanışlı yapan şey yalnızca güçlü bir yapay zekâ modeli değil; kullanıcının niyetini doğru anlaması, doğru yeteneği seçmesi, bağlamı koruması ve gerektiğinde güvenli biçimde aksiyon alabilmesi. Küçük görünen bir komutun arkasında intent çözümleme, önceliklendirme, hafıza ve güvenlik gibi birbirini etkileyen birçok karar bulunuyor. Sistemi sıfırdan geliştirmek bu katmanların her birinin neden gerekli olduğunu çok daha görünür hale getiriyor. AION'ın benim için asıl değeri de burada: bitmiş bir asistandan çok, kişisel yapay zekâ sistemlerinin nasıl tasarlanması gerektiğini deneyerek öğrendiğim ve her iterasyonda biraz daha ileri taşıdığım yaşayan bir mühendislik çalışması.