Maguyva'da Haskell: tür sınıfları ve modüller için kod grafları
Haskell'in türleri çok şey söyler. Graf onlara kimin dayandığını gösterir.
Uzantılar
.hs, .lhs
Maguyva, Elixir'i AST, sembol ve graf desteğiyle sunar; böylece yapay zeka ajanları Phoenix ve OTP kodunda modülleri, behaviour'ları, protokolleri ve struct'ları izleyebilir.
Elixir’de neredeyse her şey bir makro çağrısıdır. defmodule, def, use, alias ve @impl hepsi çağrı olarak ayrıştırılır; use GenServer ise dosyada hiç görünmeyen davranışlar getirir. Yalnızca çağrı sözdizimini gören bir araç tanımı bağımlılıktan, GenServer callback’ini de yardımcı fonksiyondan ayıramaz.
Maguyva bu makroları ilişkilere dönüştürür; böylece ajan hangi modüllerin bir behaviour’ı uyguladığını ve bir context fonksiyonunu kimin çağırdığını görür.
Maguyva .ex ve .exs dosyalarını kapsar. Elixir makroları şöyle ilişkilere dönüşür:
alias, import ve require içe aktarmaları kaydeder.use bir içe aktarma kaydeder. GenServer, Supervisor, Agent, Task, Phoenix.Controller, Phoenix.LiveView ve Ecto.Schema gibi OTP ve framework behaviour’ları için modülün o behaviour’ı uyguladığını da kaydeder.@behaviour öznitelikleri ve defimpl blokları bir behaviour’ın veya protokolün uygulanmasını kaydeder.@doc, @spec, @impl ve @callback gibi ayrılmış modül öznitelikleri, ardından gelen fonksiyonun ek açıklamaları olarak kaydedilir. @timeout 5_000 gibi değer tutan öznitelikler kaydedilmez.%User{} struct sabitleri örnekleme sayılır, raise bir fırlatma kaydeder, rescue ve catch ise bir yakalama kaydeder.def, defp, defmodule, case ve with gibi dil makroları çağrılardan filtrelenir; böylece çağrı grafı sizin fonksiyonlarınızı gösterir.
Accounts.register_user’i kim çağırıyor ve hangi controller’lardan?” (find_symbol, ardından dependency_search incoming)GenServer’i uyguluyor?” (dependency_search)get_task_context)def, defmodule, alias ve import biçimleri dilbilgisinde çağrı düğümleridir; bu yüzden structural_search içinde yalnızca functions hazır ayarı sonuç döndürür, o da yalnızca anonim fn fonksiyonları için. Adlandırılmış fonksiyonlar ve modüller için find_symbol kullanın.IO.puts, String.*, Enum.take ve Process.* gibi yaklaşık 55 standart kütüphane çağrısı ilişkilerden filtrelenir. Bunlar için text_pattern_search kullanın.Hızlı başlangıç ile bir repo bağlayın, ardından destek matrisi için uyumluluk sayfasına bakın. Diğer fonksiyonel kod tabanları için Haskell rehberini okuyun.
En uygun kullanım
Ajan iş akışları
Motor ayrıntıları
Yararlı MCP giriş noktaları
Tanıma ve çağıranlara ihtiyaç duyduğunuzda bir context fonksiyonu veya modül için kullanın; yapısal hazır ayarlar adlandırılmış `def` biçimlerini seçmez.
Hangi modüllerin bir behaviour veya protokolü uyguladığını görmek için incoming geçişi kullanın.
"Bir ödeme isteğini controller'dan veritabanına kadar izle" gibi istemler için kullanın.
İlgili rehberler
Haskell'in türleri çok şey söyler. Graf onlara kimin dayandığını gösterir.
Uzantılar
.hs, .lhs
Ruby düzyazı gibi okunur. Ama arkasındaki bağımlılıkların bir haritaya ihtiyacı vardır.
Uzantılar
.gemfile, .gemspec, .rake, .rakefile, +2 daha