Devoplus yapay zekasıyla çalışma: iki yön
Bir Devoplus One uygulaması Devoplus yapay zekasıyla iki yönde çalışır:
- Uygulamadan yapay zekaya: uygulamanız metni özetletir, sınıflandırır, metinden alan çıkarır ya da metin ürettirir (SDK
completeAi). - Yapay zekadan uygulamaya: kullanıcı Devoplus'ta bir soru sorduğunda Devoplus yapay zekası uygulamanızın verisine ve işlemlerine, uygulamanın beyan ettiği araçlarla ve kullanıcının kendi yetkisiyle ulaşır.
İkinci yön zorunlu bir geliştirme adımıdır: veri ya da işlem sunan her uygulama araçlarını beyan eder ve AGENT_GUIDE.md yazar. Yayın kapısı araç beyan eden uygulamada rehberi arar ve eksikse yayını durdurur; araç beyanı olmayan uygulama için "Devoplus yapay zekası bu uygulamaya erişemez" uyarısı verir.
Hangi araçlar gerekir
Kullanıcılarınızın Devoplus asistanına bu uygulama hakkında ne soracağını düşünün: "bekleyen izin taleplerimi göster", "bu ayki rezervasyonlarım neler". Her soru bir araç adayıdır. Bir şeyi değiştiren işlemlerde karar sizindir: asistan talep oluşturabilsin mi, yoksa yalnız göstersin mi? Cevabınız hayırsa o araç yazılmaz.
Araç tasarlama
Her araç üç yerde birlikte durur:
| Yer | Ne yazılır |
|---|---|
one.manifest.json içinde agent.tools[] | name, Türkçe ve İngilizce title ve description, readOnly, gerekiyorsa permission, input şeması |
src/agent.ts | defineAgentTools({ '<ad>': { handler: async ({ input, ctx, env }) => { ... } } }) |
AGENT_GUIDE.md | aracın ne zaman, hangi girdiyle kullanılacağı, ne döndürdüğü, örnek istek |
Kurallar:
- Önce salt okunur araçlar: listeleme, arama, tek kaydı getirme, özet. Bir şeyi değiştiren araç
readOnly: falsebeyan edilir; Devoplus yapay zekası her çağrıdan önce kullanıcıya onay sorar ve bu araçlar Vekalet ya da Yerine Görüntüle oturumunda çalışmaz. Silme gibi geri alınamaz işler araç yapılmaz. - Tek iş, açık ad:
list-requests,get-request,approve-request. Ad küçük harf, rakam ve-, 2-40 karakter; en çok 20 araç. descriptionmodelin seçim ölçütüdür: ne yapar, ne döndürür, ne zaman kullanılmaz. "Talepleri getirir" yetmez; "Kullanıcının kendi izin taleplerini, en yenisi önce döndürür; başka kişinin talebi için kullanılmaz" yazın.- Girdi küçük ve sınırlı:
inputbir JSON şemasıdır ama yalnız şu anahtarlar kullanılabilir:type,properties,required,enum,minimum,maximum,minLength,maxLength,itemsvedescription. Kök her zaman"type": "object"; her düğümdetypeyazılır; dizideitemszorunludur. Şemada olmayan alan çalışma anında reddedilir. Sayfa boyu gibi değerleremaximumkoyun. - Yetki ekranla aynıdır: işleyici kullanıcının kendi kimliğiyle çalışır (
ctx.user.sub); ekrandaki süzgeç (ör. yalnız kendi kayıtları) araçta da aynen uygulanır. Rol gereken araçpermissionalanına uygulamanın kendi izin kodunu (permission.codeya dapermissions[]içinden biri) yazar. Yönetici baypasıctx.admin'dir: aracı çağıran kişi kurulumun portalının şirket yöneticisiysetrueolur vehasPermissionher koddatruedöner. Vekalet ya da Yerine Görüntüle oturumundactx.actordoludur (değiştiren araç o oturumda zaten çağrılamaz). - Devoplus servisleri kişi adına çağrılır: işleyici yapay zeka, DEXA okuma ve kişiler gibi servisleri aracı çağıran kişinin yetkisiyle kullanabilir. ⛔ Süreli onay isteyen yetki alanları araçta kullanılamaz: e-posta (
mail.execute), SMS (sms.execute), mobil bildirim (push.execute) ve DEXA'ya yazma (dexa.write). Kişi bu çağrıda onay ekranını göremez; bu işleri uygulamanın ekranına bırakın ve rehbere yazın. - DEXA bağlam kodları: araçta DEXA okuma sorgusunun
UserCode,CompanyCodeveCostCenterCodedeğerleri gönderilmezse aracı çağıran kişiden çözülür. Uygulamanın bu kodları kendisinin göndermesi kurulumda yöneticinin "kodları uygulama belirler" onayını ister; gönderilen kod portala karşı doğrulanır, boş değer ERP'ye gitmez.LangCodegönderilmez. - Yanıt sade JSON'dur: yapay zekanın cevaplaması için gereken alanlar. Kimlik numarası ya da telefon gibi işin gerektirmediği kişisel veri döndürülmez.
- Araç çağrısı yalnız platformun imzalı yolundan gelir (
/__one/agent/<ad>); tarayıcıdan çağrılamaz. Bu yolu ekranda kullanmayın.
AGENT_GUIDE.md yazma (zorunlu)
Rehber, Devoplus yapay zekasının bu uygulama hakkında bildiği tek şeydir. Dört başlık zorunludur:
# <Uygulama adı>: Devoplus yapay zekası için rehber
## Uygulama ne yapar
Hangi iş sorularının bu uygulamaya ait olduğu, hangilerinin OLMADIĞI.
## Veri
Kayıt türleri, önemli alanlar, kimin neyi görebildiği.
## Araçlar
Her araç için: ne zaman, girdi, çıktı (örnek JSON), izin, değiştiriyor mu.
## Örnek istekler
"Kullanıcının cümlesi", hangi araç (girdi) ve nasıl yanıtlanır.- Her aracın adı rehberde geçmelidir (yayın kapısı arar). Araç eklendiğinde, değiştiğinde ya da kaldırıldığında rehber aynı değişiklikte güncellenir.
- Araçla yapılamayan işleri de yazın ("talep silmek için araç yok; uygulamayı Portal'da açın"); yapay zeka olmayan bir aracı uydurmaz, kullanıcıyı uygulamaya yönlendirir.
- Rehber uygulamanın adresinde
/.well-known/one-agent.md, araç kataloğu/.well-known/one-agent.jsonolarak sunulur; iskelettekisrc/index.tsbaşındaki iki satır bunu yapar. Bu adresler oturum istemez; rehbere kullanıcı verisi, sır ya da iç adres yazmayın.
Uygulamanın yapay zekayı kullanması
import { completeAi } from '@devoplus/one-sdk'
const { output } = await completeAi(api, ctx, { task: 'summarize', input: metin, lang: 'tr' })- Manifest
scopesiçindeai.useolmalıdır (kullanıcıdan ayrıca onay istenmez). - İşler:
summarize,classify(labelsile, 2-50 etiket),extract(schemaile),generatevechat(messagesile, en çok 20). Metin en çok 24.000, talimat en çok 4.000 karakter. - Model, kota ve portalda yapay zekanın açık olup olmadığı Devoplus'tadır: kapalı portalda 503, kota dolunca 429 döner. Uygulamanız bu durumda da çalışmayı sürdürmelidir ("şu anda özet hazırlanamıyor").
- ⛔ Model sayı hesaplamaz ve kayıt yazmaz: tutar, toplam ve tarih farkı kodda hesaplanıp
input'a hazır verilir; modelin çıktısı bir öneridir. Veritabanına yazmadan önce kodunuz doğrular, gerekirse kullanıcıya onaylatır. input'a sır ya da işin gerektirmediği kişisel veri konmaz.