# Kendi ajanınız

Varsayılan olarak Borkol bir [çalıştırmanın](/tr/docs/marketing/runs) her adımını OpenRouter anahtarınızla çalıştırır. Zaten kendi ajanınızı, örneğin [Hermes Agent](https://github.com/NousResearch/hermes-agent) çalıştırıyorsanız adımları kendi modelleriyle o yapabilir. Borkol marka bağlamını, akışı ve kontrolleri tutar; ajanınız işi alır, Borkol'un kullanacağı aynı brifingi okur ve sonuçları geri gönderir. Sizin için hiçbir şey değişmez: isteğinizi yine **Genel bakış** sayfasına yazarsınız ve senaryolar yine [Senaryolar](/tr/docs/marketing/scripts) altına gelir.

Kurulum üç şey gerektirir: bir token, ajanınıza yapıştırılan üç kurulum bloğu ve **Ajanınız** olarak ayarlanmış marka.

## Token oluşturun

**Pazarlama** → **Ayarlar** → **Bağlantılar** → **Daha fazla** · **Kendi ajanınız** (`/m/marketing/settings/integrations?section=agent`), ajanlarınızın bağlanmak için kullandığı token'ları listeler. Önceden ayarlarda kendi bölümündeydi; eski adres `/m/marketing/settings/agent` onu hâlâ açar.

1. **Token oluştur** düğmesine tıklayın ve bir **Ad** verin, örneğin "Dizüstü bilgisayarımdaki Hermes".
2. **Token oluştur** düğmesine tıklayın. Sonraki pencere `bka_` ile başlayan token'ı gösterir. **Token'ı şimdi kopyalayın: yalnızca bir kez gösterilir.** Pencereyi kapattıktan sonra yalnızca son dört karakteri görünür ve Borkol'da kimse onu yeniden gösteremez.
3. Aynı pencere, token'ınız doldurulmuş olarak üç kurulum bloğunu gösterir (aşağıya bakın). Gerekenleri kopyalayın ve **Tamam** düğmesine tıklayın.

Oluşturma penceresindeki **Daha fazla**, varsayılan olarak kapalı iki isteğe bağlı sınır içerir:

| Seçenek | Varsayılan | Ne yapar |
| --- | --- | --- |
| **Ajanın yapabilecekleri** | Üçü de | **Bekleyen işleri görme ve brifingleri okuma** (`work:read`), **Sonuçları geri gönderme** (`work:submit`), **Bir adımın maliyetini bildirme** (`cost:report`). En az biri zorunludur. |
| **Marka** | **Tüm markalar** | Token'ı tek bir markayla sınırlar. Ajan bu durumda diğer markaların işlerini görmez. |

Bir token etkin olduğunda listenin altındaki bir satır **Yapay zeka akışı** bölümüne bağlantı verir; orada bir marka için **Adımların çalıştığı yer** ayarını **Ajanınız** yaparsınız.

Liste her token için **Ad**, **Token** altında son dört karakteri, **Marka**, **Son kullanım** (ajan ilk kez bağlanana kadar **Hiç**) ve **Durum** (**Etkin** veya **İptal edildi**) gösterir.

Token'ları yalnızca hesap sahibi oluşturabilir ve iptal edebilir. Ekip üyeleri listeyi "Token'ları yalnızca hesap sahibi oluşturabilir veya iptal edebilir." notuyla görür.

## Üç kurulum bloğu

Tek seferlik pencere blokları token'ınızla birlikte gösterir. Token listesinin altındaki **Kurulum talimatları** aynı blokları daha sonra, token yerine `<token'ınız>` ile gösterir: oraya kendi token'ınızı yapıştırın.

| Blok | Nedir |
| --- | --- |
| **Ajan yapılandırması (Hermes)** | Hermes'in `~/.hermes/config.yaml` dosyası için `mcp_servers` girdisi: Borkol Marketing sunucusunun adresi ve header olarak token. |
| **Skill** | **Borkol Marketing** skill'i (`SKILL.md`, Agent Skills biçimi): iş bulma, brifingi okuma, sonuç gönderme ve maliyet bildirme yöntemi. Bloğun altındaki adreste de sunulur, böylece bir ajan onu oradan kurabilir. |
| **Zamanlama** | Önerilen bir zamanlama satırı: 15 dakikada bir Borkol'da iş olup olmadığını kontrol et. |

### Hermes ile

1. **Ajan yapılandırması (Hermes)** bloğunu `~/.hermes/config.yaml` dosyasına ekleyin.
2. Skill'i kurun: `hermes skills install https://api.borkol.com/mcp/marketing/SKILL.md` (**Skill** bloğundaki adres).
3. **Zamanlama** satırını bir kez çalıştırın. Hermes zamanlanmış işleri kendi gateway'inde çalıştırır, bu yüzden `hermes gateway` çalışır durumda kalsın.

Hemen denemek için Hermes'e "Use the borkol-marketing skill: check Borkol for work and do it." deyin.

### Başka bir MCP istemcisi

Sunucu HTTP üzerinden Model Context Protocol konuşur, bu yüzden her MCP istemcisi bağlanabilir. İstemciyi yapılandırma bloğundaki sunucu adresine yönlendirin ve token'ı `Authorization: Bearer <token>` olarak gönderin. Skill metni her ajan için talimat olarak çalışır.

## Bir markayı ajanınıza geçirin

**Pazarlama** → **Ayarlar** → **Yapay zeka akışı** → **Daha fazla** → **Adımları kim çalıştırır** tek bir alan içerir, **Adımların çalıştığı yer**: **Borkol** (varsayılan) veya **Ajanınız**. Her yapay zeka akışı ayarı gibi marka başınadır ve alttaki çubukla kaydedilir. Başlamış çalıştırmalar ayarlarını korur. **Ajanınız** seçiliyken adım modelleri geçerli değildir: ajanınız kendi modellerini seçer ve sayfa bunu modellerin üstünde belirtir.

Henüz token yokken **Ajanınız** seçilirse "Ajanınızın henüz bir token'ı yok. Kendi ajanınız bölümünden bir tane oluşturun." yazısı token sayfasına bağlantıyla görünür.

Ajanınızda çalışan bir marka OpenRouter anahtarı gerektirmez: anahtar olmadan çalıştırma başlatabilirsiniz.

## Ajan ne yapar

Ajanınız Borkol Marketing sunucusundaki şu araçlarla çalışır:

| Araç | Ne yapar |
| --- | --- |
| `list_work` | Ajanı bekleyen adımları en eskiden başlayarak listeler |
| `get_brief` | Bir adımı üstlenir ve brifingini, playbook'unu, çıktı biçimini ve limitlerini döndürür. **Sonuçları geri gönderme** izni olmayan bir token yalnızca brifingi okur ve adımı başka bir ajan için beklemede bırakır |
| `submit_research` | Araştırmayı geri gönderir |
| `submit_angles` | Yaklaşımları geri gönderir |
| `submit_scripts` | Senaryoları geri gönderir |
| `submit_check` | Her senaryonun kontrolünü geri gönderir |
| `submit_scenes` | Bir senaryo hook'unun sahnelerini geri gönderir. Bir sahne çalışmasında her senaryo ve hook için bir adım vardır, bu yüzden ajan `list_work` içindeki `step_id` değerini `get_brief` çağrısına ve buraya iletir |
| `report_cost` | İsteğe bağlı: bir adımın ajanın kendi modellerinde ne kadara mal olduğunu bildirir |
| `report_metrics` | Borkol'un öğrenebilmesi için reklam sonuçlarını reklam ve gün başına bildirir. Aşağıya bakın |

Her sonuç, Borkol'un kendi çalıştırdığı bir adımla aynı biçim ve limitlere göre kontrol edilir: senaryo sayısı, senaryo başına hook sayısı, izin verilen etiketler. Yanlış biçimdeki çıktı, hatalı alanı belirten bir hata olarak ajana döner; ajan düzeltip yeniden gönderir. Geçerli bir sonuç gelene kadar adım açık kalır. Senaryolar reklam kodlarını alır ve kontrolden tam olarak Borkol'daki gibi geçer.

Ajanınızın gönderdikleri talimat değil, veridir: sonraki brifinglerde yalnızca alıntı olarak yer alır ve kontrol, talimat benzeri metni tekrarlayan bir senaryoyu başarısız sayar. Ajanın araştırma sırasında önerdiği bilgi kayıtları, diğer çalıştırmaların önerileri gibi [Bilgi](/tr/docs/marketing/knowledge) altında kabul bekler.

## Reklam sonuçlarını bildirme

Reklam platformunuzu okuyabilen bir ajan, sizin bir dosya içe aktarmanız yerine sonuçları `report_metrics` ile Borkol'a gönderebilir. Sonuçlar bir [reklam sonuçları içe aktarması](/tr/docs/marketing/imports) ile tam olarak aynı şekilde saklanır ve [öğrenimleri](/tr/docs/marketing/learning) besler. Token'ın **Sonuçları geri gönderme** (`work:submit`) yetkisi olmalıdır; yoksa araç sunulmaz.

Argümanlar:

| Ad | Tür | Zorunlu | Açıklama |
| --- | --- | --- | --- |
| `brand_id` | string | Hayır | Reklamların ait olduğu marka. Hesapta birden fazla marka varsa ve token tek bir markayla sınırlı değilse zorunludur |
| `rows` | array | Evet | Reklam ve gün başına bir olmak üzere 1 ile 500 arası satır |

Her satır:

| Ad | Tür | Zorunlu | Açıklama |
| --- | --- | --- | --- |
| `ad_name` | string | Evet | Reklam platformunun gösterdiği, Borkol reklam kodunu içeren reklam adı (en fazla 500 karakter) |
| `date` | string | Evet | Gün, `YYYY-MM-DD` |
| `spend` | number | Evet | O günkü harcama, 0 veya daha fazla |
| `impressions` | integer | Hayır | Gösterimler |
| `plays_3s` | integer | Hayır | En az 3 saniyelik video oynatmaları |
| `thruplays` | integer | Hayır | ThruPlay |
| `clicks` | integer | Hayır | Tıklamalar |
| `purchases` | integer | Hayır | Satın almalar |
| `revenue` | number | Hayır | Gelir |
| `currency` | string | Hayır | Harcama ve gelirin üç harfli para birimi kodu |
| `video_seconds` | string | Hayır | Reklam videosunun süresi: saniye (`22`, `22s`) veya `mm:ss` (`0:22`) |
| `channel` | string | Hayır | Reklam platformu, örneğin `meta` veya `tiktok` (en fazla 32 karakter) |

Her satır dosya içe aktarmasıyla aynı kurallarla kontrol edilir. Kontrolden geçmeyen satır dışarıda bırakılır ve dizini, alanı ve nedeniyle `errors` altında listelenir; diğer satırlar kaydedilir. Yanıt `{ok, created, updated, matched, unmatched, skipped, errors}` şeklindedir: `matched` satırlar reklam kodları üzerinden bir senaryoya bağlanmıştır, `unmatched` satırlar saklanır ve senaryo oluştuğunda bağlanır, `skipped` satırlar [Meta reklamları bağlantısının](/tr/docs/marketing/settings#meta-reklamlar) zaten eşitlediği bir reklam ve güne aittir, böylece asla iki kez sayılmaz. Aynı reklamı ve günü yeniden göndermek onu günceller.

Tüm çağrıyı durduran hatalar:

| Kod | Ne zaman |
| --- | --- |
| `BRAND_REQUIRED` | Hesapta birden fazla marka var, token tek bir markayla sınırlı değil ve `brand_id` gönderilmedi |
| `BRAND_NOT_ALLOWED` | Token tek bir markayla sınırlı ve `brand_id` başka bir markayı belirtiyor |
| `BRAND_NOT_FOUND` | Bu `brand_id` ile marka yok |
| `INVALID_INPUT` | `rows` eksik, boş veya 500'den uzun |

Tek bir markayla sınırlı bir token `brand_id` göndermeyebilir.

## Çalıştırma sayfasında

Ajanınızda çalışan bir çalıştırma **Ayrıntılar** altında **Çalıştığı yer**: **Ajanınız** gösterir ve adımları iki ek durum gösterebilir:

| Adım durumu | Anlamı |
| --- | --- |
| **Ajanınız bekleniyor** | Adım hazır; ajanınız henüz almadı |
| **Takıldı** | Adım, ajanınız almadan 30 dakikadır bekliyor |

Takılan bir adım çalıştırmanın üstüne bir satır ekler: "Ajanınız bir adımı zamanında almadı. Ajanınızın çalıştığını ve zamanlamasının açık olduğunu kontrol edin ya da markayı yeni çalıştırmalara açmak için çalıştırmayı iptal edin.", **Kendi ajanınız** bağlantısıyla. Zil takılan her adım için bir bildirim gösterir ("Ajanınız {step} adımını almadı: {istek}") ve mobil uygulama bunu anlık bildirim olarak gönderir. Ajan adımı aldığında normal şekilde devam eder. Takılan bir çalıştırma markası için hâlâ etkin sayılır; **Aynı anda çalıştırma** 1 iken o markanın yeni çalıştırmaları onun arkasında bekler: markayı serbest bırakmak için çalıştırmayı iptal edin.

Ajanınızın başlattığı ama bir saat içinde bitirmediği bir adım **Ajanınız bekleniyor** durumuna döner, böylece bir sonraki kontrol onu yeniden alabilir.

## Maliyet

Ajanınız kendi modellerinin ücretini öder; OpenRouter anahtarınızdan hiçbir şey alınmaz. Ajan maliyetini bildirdiğinde çalıştırma sayfası bunu adım başına ve toplamda **ajanınız tarafından bildirildi** olarak gösterir. Bildirim isteğe bağlıdır, bu yüzden bildirimi olmayan bir adım maliyet göstermez ve hiç bildirimi olmayan bir çalıştırma **Ajanınız tarafından bildirilmedi** gösterir. Model yalnızca ajan bildirdiyse görünür.

**Çalıştırma başına maliyet sınırı** yalnızca Borkol'da çalışan çalıştırmalar için geçerlidir. Ajanınızda çalışan bir çalıştırma maliyet limitinde asla duraklatılmaz.

## Token iptal edin

Etkin bir token'ın satır menüsünde **İptal et** bulunur. "Bu token iptal edilsin mi?" onayından sonra onu kullanan ajan artık bağlanamaz ve satır **İptal edildi** gösterir. Bu işlem geri alınamaz: yeni bir token oluşturun ve ajanın yapılandırmasını güncelleyin. Ajanın üstlendiği bir adım hemen **Ajanınız bekleniyor** durumuna döner, böylece başka bir ajan onu alabilir.

## Kim ne yapabilir

Token oluşturmak ve iptal etmek yalnızca hesap sahibine açıktır. **Adımların çalıştığı yer** ayarını değiştirmek, yapay zeka akışının geri kalanı gibi pazarlama düzenleme erişimi gerektirir. Okuma erişimi olan üyeler token listesini ve çalıştırma sayfalarını görür.
