---
title: "AFP'yi yapay zeka kodlama ajanlarıyla kullanın"
description: "AFP ajan becerisini yükleyin, kodlama ajanınızı sitenin Markdown ve llms.txt kopyalarına yönlendirin ve yazdığı kampanya grafiklerini oluşturulabilir tutun."
canonical: https://docs.afp.monster/tr/guides/ai-agent-skill
updated: 2026-08-19
pageType: guide
---

AFP ajan becerisini projenize tek bir komutla yükleyin, sonra ajanın bu siteyi Markdown olarak okumasına izin verin. Beceri, bir modelin tahmin edemeyeceği şeyleri sabitler: AFP'nin bir müşteri API'si yoktur, bu yüzden bir ajanın ürettiği şey kod değil bir kampanya grafiğidir; tuvalin gerçekten ekleyebileceği düğüm türleri; ve tuvalin reddettiği bağlantılar. Buradaki her sayfa Markdown olarak da sunulur — herhangi bir sayfa URL'sine `.md` ekleyin — ve `/llms.txt` hepsini indeksler.

## Önce ihtiyacınız olanlar

- Projenizden talimat dosyaları yükleyen bir ajan: bir beceriler dizini veya başlangıçta okuduğu bir kurallar dosyası.
- Sonucu oluşturacağınız tuvalde bir kampanya. Bir ajan bir grafiği tanımlayabilir; yalnızca tuval birini kaydedebilir. [Tuvalde bir kampanya oluşturun](/tr/guides/build-a-campaign) bölümüne bakın.

## Ajan becerisini nasıl yüklerim?

Beceriyi bu siteden projenize indirin:

```bash
mkdir -p .claude/skills/afp
curl -fsSL https://docs.afp.monster/skills/afp/SKILL.md -o .claude/skills/afp/SKILL.md
```

Bu yol, Claude Code'un bir proje becerisi için baktığı yerdir. Bunun yerine tek bir kurallar veya talimatlar dosyası okuyan bir ajan — Cursor ve çoğu editör asistanı bu şekilde çalışır — aynı içeriği alır: onu diğer ajan talimatlarınızın yanına indirin ve aracınızın başlangıçta yüklediği dosyadan ona referans verin.

```bash
curl -fsSL https://docs.afp.monster/skills/afp/SKILL.md -o afp-skill.md
```

Dosyayı commit edin, böylece her katkıda bulunanın ajanı aynı kurallardan çalışır. Üstteki `version` alanı dosyanın hangi AFP yüzeyini tanımladığını kaydeder — o sürüm değiştiğinde yeniden indirin.

Beceri beş şey taşır: ürün modeli, tuvalin ekleyebileceği her düğüm türü yapılandırma anahtarlarıyla birlikte, tuvalin uyguladığı bağlantı kuralları, işlenmiş bir örnek olarak eksiksiz bir grafik ve modellerin AFP hakkında yaptığı hataların bir kontrol listesi.

## Ajan hangi URL'leri okumalı?

Dört yüzey, hepsi sayfaların kendisiyle aynı Markdown'dan üretilir.

| URL | Ne tutar | Ne için kullanılır |
|---|---|---|
| `https://docs.afp.monster/llms.txt` | Açıklamasıyla birlikte her sayfanın bir indeksi | Bir ajanın neyi okuyacağını seçmesine izin vermek |
| `https://docs.afp.monster/llms-full.txt` | Her sayfanın tam metni tek bir dosyada | Tüm ürünü tek bir istekte yüklemek |
| `https://docs.afp.monster/llms-small.txt` | Aynı metin, boşluklar birleştirilmiş | Daha küçük bir bağlam penceresi |
| `.md` eklenmiş herhangi bir sayfa URL'si | O sayfa temiz Markdown olarak | Gezinme olmadan tek bir sayfayı okumak |

`.md` kuralı her sayfa için geçerlidir, bu yüzden bir ajan bulunduğu adresten ihtiyaç duyduğu adresi oluşturabilir: `/tr/reference/node-types`, `/tr/reference/node-types.md` olur.

Bir Markdown ikizi sayfa başlığını, açıklamasını ve gövdesini taşır — gezinme yok, kenar çubuğu yok, betik yok. İkizler `text/markdown` olarak sunulur, çapraz kaynak okumalarına izin verilir ve indekslenmemek üzere işaretlenirler, bu yüzden yansıttıkları sayfalarla asla rekabet etmezler.

### Her sayfanın Markdown adresi

Her adresin başına `https://docs.afp.monster` ekleyin.

| Sayfa | Markdown adresi |
|---|---|
| [Başlangıç](/tr/start) | `/tr/start.md` |
| [Hesap oluştur](/tr/start/create-your-account) | `/tr/start/create-your-account.md` |
| [Bir sayfa bağla](/tr/start/connect-a-page) | `/tr/start/connect-a-page.md` |
| [İlk otomatik yanıtını gönder](/tr/start/first-auto-reply) | `/tr/start/first-auto-reply.md` |
| [Kampanyam neden yanıt vermiyor?](/tr/start/troubleshooting) | `/tr/start/troubleshooting.md` |
| [Tuvalde bir kampanya oluşturun](/tr/guides/build-a-campaign) | `/tr/guides/build-a-campaign.md` |
| [Yorumları ÖM'ye yönlendirin](/tr/guides/route-comments-to-dm) | `/tr/guides/route-comments-to-dm.md` |
| [Bir kampanyayı test et ve hata ayıkla](/tr/guides/test-and-debug-campaigns) | `/tr/guides/test-and-debug-campaigns.md` |
| [Yorumları anahtar kelime listeleriyle eşleştirin](/tr/guides/keyword-lists) | `/tr/guides/keyword-lists.md` |
| [Kişileri etiketlerle segmentlere ayır](/tr/guides/tags) | `/tr/guides/tags.md` |
| [Kişilerle çalış](/tr/guides/contacts) | `/tr/guides/contacts.md` |
| [Görüşmeleri gelen kutusunda yönet](/tr/guides/inbox) | `/tr/guides/inbox.md` |
| [Yorumları moderasyon et](/tr/guides/comment-moderation) | `/tr/guides/comment-moderation.md` |
| [Temizleyiciyle toplu-yorum kaldır](/tr/guides/cleaner) | `/tr/guides/cleaner.md` |
| [Bağlı sayfaları yönet](/tr/guides/connected-pages) | `/tr/guides/connected-pages.md` |
| [Bir hesap altında profilleri yönet](/tr/guides/profiles-and-master-accounts) | `/tr/guides/profiles-and-master-accounts.md` |
| [Paketler ve faturalandırma](/tr/guides/plans-and-billing) | `/tr/guides/plans-and-billing.md` |
| [Referanslarla kazanın](/tr/guides/referrals) | `/tr/guides/referrals.md` |
| [Bildirim al](/tr/guides/notifications) | `/tr/guides/notifications.md` |
| [Yardım alın](/tr/guides/support-tickets) | `/tr/guides/support-tickets.md` |
| AFP'yi yapay zeka kodlama ajanlarıyla kullanın (bu sayfa) | `/tr/guides/ai-agent-skill.md` |
| [Düğüm türleri](/tr/reference/node-types) | `/tr/reference/node-types.md` |
| [Tetikleyici olaylar](/tr/reference/trigger-events) | `/tr/reference/trigger-events.md` |
| [Anahtar kelime eşleşme kuralları](/tr/reference/keyword-matching) | `/tr/reference/keyword-matching.md` |
| [Çalıştırma durumları](/tr/reference/execution-states) | `/tr/reference/execution-states.md` |
| [Kampanya grafiği şeması](/tr/reference/campaign-graph-schema) | `/tr/reference/campaign-graph-schema.md` |
| [Kişi alanları](/tr/reference/contact-fields) | `/tr/reference/contact-fields.md` |
| [Sayfa izinleri ve token'ları](/tr/reference/page-permissions) | `/tr/reference/page-permissions.md` |
| [Paket kotaları](/tr/reference/plans-and-quotas) | `/tr/reference/plans-and-quotas.md` |
| [Abonelik yaşam döngüsü](/tr/reference/subscription-lifecycle) | `/tr/reference/subscription-lifecycle.md` |
| [Bildirim kataloğu](/tr/reference/notifications) | `/tr/reference/notifications.md` |
| [Sözlük](/tr/reference/glossary) | `/tr/reference/glossary.md` |
| [AFP'nin alternatiflerle karşılaştırılması](/tr/compare) | `/tr/compare.md` |
| [AFP vs ManyChat](/tr/compare/afp-vs-manychat) | `/tr/compare/afp-vs-manychat.md` |
| [AFP vs Chatfuel](/tr/compare/afp-vs-chatfuel) | `/tr/compare/afp-vs-chatfuel.md` |
| [AFP vs Meta'nın yerleşik otomasyonları](/tr/compare/afp-vs-meta-automations) | `/tr/compare/afp-vs-meta-automations.md` |
| [Değişiklik günlüğü](/tr/changelog) | `/tr/changelog.md` (yakında) |

Ağa erişemeyen bir ajan aynı dosyalarla çevrimdışı çalışır: `/llms-full.txt` dosyasını bir kez alın ve becerinin yanına commit edin.

## Ajan hangi kampanya-grafiği desenlerini izlemeli?

Üç şekil, insanların bir ajandan tasarlamasını istediği çoğu şeyi kapsar. Her biri tuval kurallarını karşılar, bu yüzden düğüm düğüm inşa edilebilir.

| Desen | Düğüm sırası | Ne zaman kullanılır |
|---|---|---|
| Anahtar kelime yorumundan ÖM'ye | `trigger_comment` → `condition` → `reply_comment` → `send_dm` → `stop` | Bir gönderi insanlardan bir şey almak için bir kelime yorumlamasını istediğinde |
| Yanıtla ve nitele | `trigger_dm` → `condition` → `send_dm` → `condition` → `add_tag` → `send_dm` → `stop` | Gelen bir ÖM'nin bir yanıta ve bir takip sorusuna ihtiyacı olduğunda |
| Moderasyon et ve yanıtla | `trigger_comment` → `condition` → Eşleşmede `hide_comment`, Eşleşme Yok'ta `reply_comment` | İstenmeyen yorumlar gizlendiğinde ve geri kalan her şey herkese açık bir yanıt aldığında |

Bir grafiği tanımlayan bir ajan her düğümün türünü ve yapılandırma anahtarlarını ve her bağlantının kaynak çıktısını isimlendirmelidir. Bunlar kaydedilmiş grafiğin kullandığı aynı isimlerdir — bağlantılar `from_node_id`, `to_node_id` ve `output_index` taşır — bu yüzden tanımlanmış bir grafik ve kaydedilmiş bir grafik alan alan karşılaştırılabilir. [Kampanya grafiği şeması](/tr/reference/campaign-graph-schema) tam şekli verir.

### Anahtar kelime yorumundan ÖM'ye

```d2 title="Comment to public reply to DM, with a stop on each branch"
direction: down
trigger: "trigger_comment\npost_scope all"
cond: "condition\nkeyword_list" {shape: diamond}
reply: reply_comment
dm: send_dm
haltMatch: stop
haltNoMatch: stop
trigger -> cond
cond -> reply: "Match, output 0"
reply -> dm -> haltMatch
cond -> haltNoMatch: "No Match, output 1"
```

`send_dm`'den önceki herkese açık `reply_comment` kasıtlıdır: yorumlayana mesajlarını kontrol etmesini söyler ve diğer okuyucular sayfanın yanıt verdiğini görür. Koşulun `match_type`'ını `keyword_list` olarak ayarlayın ve ona kaydedilmiş bir listenin tanımlayıcısını verin; eşleşen mesajlar çıktı 0'dan, geri kalan her şey çıktı 1'den ayrılır.

### Yanıtla ve nitele

```d2 title="A DM campaign that asks a question, waits for the reply, then tags and answers, or falls back"
direction: down
trigger: trigger_dm
gate: "condition\nmatch_type any" {shape: diamond}
ask: "send_dm\nbir soru sorar"
awaitReply: "condition\nmatch_type contains\nwait_for_reply" {shape: diamond}
tag: add_tag
answer: send_dm
haltMatch: stop
fallback: "send_dm\nyedek"
haltNoMatch: stop
trigger -> gate
gate -> ask: "output 0"
ask -> awaitReply
awaitReply -> tag: "Match, output 0"
tag -> answer -> haltMatch
awaitReply -> fallback: "No Match, output 1"
fallback -> haltNoMatch
```

`wait_for_reply` ayarlanmış bir `condition`, kişi yanıt verene kadar çalıştırmayı o düğümde park eder ve yanıt daha sonra ilk mesajın eşleştirildiği şekilde eşleştirilir — dokundukları bir düğmenin etiketi dahil. Her iki dal da kendi uç düğümlerine ihtiyaç duyar, çünkü bir düğüm tek bir gelen bağlantı kabul eder ve iki dal birleşemez.

`match_type: any` olarak ayarlanmış bir `condition` her şeyi eşleştirir ve tek bir çıktıya sahiptir: tuval onun Eşleşme Yok çıktısını düşürür ve ondan ayrılan her bağlantıyı kaldırır. Bir `any` koşulundan bir Eşleşme Yok dalı çizen bir ajan, tuvalin tutmayacağı bir grafiği tanımlıyordur.

### Moderasyon et ve yanıtla

```d2 title="A moderation campaign that hides matching comments and replies to the rest"
direction: down
trigger: trigger_comment
cond: "condition\nkeyword_list" {shape: diamond}
hide: hide_comment
haltMatch: stop
reply: reply_comment
haltNoMatch: stop
trigger -> cond
cond -> hide: "Match, output 0"
hide -> haltMatch
cond -> reply: "No Match, output 1"
reply -> haltNoMatch
```

Yorum eylemlerinin üzerinde işlem yapacak bir yoruma ihtiyacı vardır, bu yüzden bu desen yalnızca `trigger_comment` altında çalışır. İstenmeyen kelimeleri anahtar kelime listesine koyun ve Eşleşme dalını gizleyin, veya listenin eşleşmediği her şeyin bunun yerine Eşleşme dalını alması için koşulda `reverse_keywords`'ü ayarlayın.

### Üretilen her grafiğin karşılaması gereken nedir?

1. Bir tetikleyici, ve gelen bağlantısı olmayan tek düğüm odur. Diğer her düğümün bir tanesi vardır, yoksa etkinleştirme başarısız olur.
2. Tetikleyici yalnızca bir `condition`'a bağlanır ve bir `condition` asla başka bir `condition`'a bağlanmaz.
3. Her düğüm bir gelen bağlantı alır ve her çıktı tutamacı bir giden bağlantı taşır.
4. Döngü yok. Zaten ziyaret ettiği bir düğüme ulaşan bir çalıştırma bir döngü hatasıyla sona erer.
5. Tetikleyici `trigger_dm` olduğunda yorum eylemleri kullanılamaz ve `reply_comment` ile `hide_comment`, bir `delete_comment`'in altında reddedilir.
6. Bir `condition`'da çıktı 0 **Eşleşme**'dir ve çıktı 1 **Eşleşme Yok**'tur.

[Kampanya grafiği şeması](/tr/reference/campaign-graph-schema) tam alan isimlerini ve JSON'da eksiksiz bir grafiği verir; [Düğüm türleri](/tr/reference/node-types) bir ajanın yazabileceği her yapılandırma anahtarını verir.

## Bir ajan AFP hakkında neyi yanlış anlıyor?

| Modellerin varsaydığı | AFP'nin yaptığı | Becerinin modele bunun yerine verdiği |
|---|---|---|
| Kampanya oluşturmak için bir REST API vardır | Müşteri API'si yoktur. Kampanyalar tuvalde yazılır ve oradan kaydedilir | Uydurulmuş bir uç nokta için bir istek yazmak yerine bunu söyleyen bir talimat |
| Bir tetikleyici doğrudan bir `send_dm`'e gidebilir | Bir tetikleyici yalnızca bir `condition`'a bağlanır | En yaygın geçersiz grafik olarak adlandırılan bu örnekle birlikte bağlantı kuralları |
| Çalışma zamanındaki herhangi bir düğüm türü kullanılabilir | Yalnızca palet türlerinin bir ayarlar paneli vardır, bu yüzden yalnızca onlar yapılandırılabilir | Palet listesi, artı asla kullanılmayacak tür isimleri |
| İki dal tek bir düğümde birleşebilir | Bir düğüm tek bir gelen bağlantı kabul eder | Birleştirmek yerine ucu çoğaltma kuralı |
| Anahtar kelimeler koşulun kendisine yazılır | Bir koşul kendi `text`'ini eşleştirir veya tanımlayıcıya göre ayrı kaydettiğiniz bir anahtar kelime listesine referans verir | Dört eşleşme türü ve her birinin hangi anahtarı okuduğu |
| Bir paketin kampanya veya sayfa izni sabit bir sayıdır | İzinler hesaptaki paketten gelir | Bir kota sayısını asla belirtmeme talimatı |
| Bir ÖM herkese her zaman gönderilebilir | İlk ÖM çalıştırmayı başlatan olayı yanıtlar; sonraki mesajlar kişi yanıt verdikten sonra hesabına ulaşır | Platform mesajlaşma pencerelerinin uygulandığına ve AFP'nin bunları geçersiz kılmadığına dair bir not |
| Kaydetmek bir kampanyayı canlıya koyar ve düzenlemek devam eden çalıştırmaları değiştirir | Kaydetmek yeni bir sürüm yazar ve etkinleştirmek ayrıdır; bir çalıştırma başladığı sürümde kalır | Her iki kural da, modelin yanında |
| Bu bir chatbot oluşturucudur, bu yüzden "akış" ve "bot" uyar | Kelime dağarcığı kampanya, düğüm, koşul, çalıştırmadır | Baştan sona kullanılan o kelime dağarcığı |

Becerinin kendi başına düzeltemediği iki şey daha var, çünkü bunlar yalnızca bir grafik çalıştığında ortaya çıkar:

- `send_comment`'in kendi `post_id`'sine ihtiyacı vardır. Tetikleyicinin ateşlendiği gönderiye geri dönmez ve biri olmadan çalıştırma ona ulaştığında hiçbir şey yapmaz.
- Bir kişi aynı kampanyanın iki çalıştırmasına aynı anda sahip olamaz. Çalıştırması aktifken, ondan gelen ikinci bir eşleşen olay atlanır, bu yüzden bir takip mesajı aynı kişiden ikinci bir olaya güvenmek yerine aynı grafik içinde bir `delay`'in arkasına ait olmalıdır.

## Bir ajanın bana verdiği grafiği nasıl kontrol ederim?

1. Onu tuvalde inşa edin. Tuval sürüklerken doğrular, bu yüzden inşa edemediği bir grafik kaydettikten sonra değil ilk kötü bağlantıda başarısız olur.
2. Tuvalin işaretlediği herhangi bir düğümü düzeltin. Bir düğümün yapılandırma hatası olduğu sürece **Kampanyayı kaydet** devre dışı kalır.
3. Kaydedin, sonra bir test çalıştırması çalıştırın. Kimseye mesaj göndermeden, bir yoruma dokunmadan veya bir kişinin etiketlerini değiştirmeden kaydedilmiş grafiği gezer ve her düğümün ne yapacağını kaydeder. [Bir kampanyayı test et ve hata ayıkla](/tr/guides/test-and-debug-campaigns) bölümüne bakın.
4. Yalnızca test yolu ajanın açıklamasıyla eşleştikten sonra etkinleştirin.

:::note
Bir ajan tuvalin kabul ettiği bir şekilde yanlış olabilir. Temiz bir şekilde kaydeden ve etkinleşen bir grafik yine de yanlış dalda yanlış mesajı gönderebilir, test çalıştırmasının amacı da budur.
:::

## Ajan neden hala tuvalin reddettiği bir grafik üretiyor?

| Belirti | Neden | Düzeltme |
|---|---|---|
| Ajan bir AFP uç noktasına gönderi yapan kod yazıyor | Beceri bu oturumda yüklenmemiş | Dosyanın ajanın talimatlar için baktığı yerde olduğunu doğrulayın, sonra yeni bir oturum başlatın |
| Grafik bir tetikleyiciyi doğrudan bir eyleme bağlıyor | Ajan genel chatbot bilgisinden tasarlıyor | Yeniden bir grafik önermeden önce bağlantı kurallarını yeniden ifade etmesini isteyin |
| Grafik ayarlar paneli olmayan bir düğüm türü kullanıyor | Düğüm listesi beceriden başka bir yerden geldi | Onu değiştirin: bir `condition` dallanmayı kapsar, bir `delay` beklemeyi kapsar |
| Ajan bir kampanya veya sayfa limiti aktarıyor | İzinler sabit değerler değil paket yapılandırmasıdır | Sayıyı bırakın ve bunun yerine [Paket kotaları](/tr/reference/plans-and-quotas) bağlantısını verin |
| İki dal aynı düğümde bitiyor | Birleşme bir diyagramda iyi okunur ve tuval bunu reddeder | Her daldaki uç düğümleri çoğaltın |
| Açıklanan alanlar ayarlar panelinde mevcut değil | Beceri yüzeydeki bir değişiklikten öncesine ait | Dosyayı yeniden indirin ve `version` alanını karşılaştırın |
| Siteden gelen tablolar bozuk geliyor veya hiçbir şey alınamadı | Ajan HTML sayfasını okudu veya ağ erişimi yok | Ona `.md` adresini veya `/llms-full.txt`'i verin, veya bu dosyaları becerinin yanına depoya kaydedin |

## İlgili

- [Kampanya grafiği şeması](/tr/reference/campaign-graph-schema) — bir ajanın karşı yazması gereken alan isimleri ve kısıtlamalar
- [Düğüm türleri](/tr/reference/node-types) — her düğüm ve her yapılandırma anahtarı
- [Tuvalde bir kampanya oluşturun](/tr/guides/build-a-campaign) — önerilen bir grafiği kaydedilmiş bir grafiğe dönüştürme
- [Bir kampanyayı test et ve hata ayıkla](/tr/guides/test-and-debug-campaigns) — grafiğin gerçekte ne yaptığını kontrol etme
- [Yorumları anahtar kelime listeleriyle eşleştirin](/tr/guides/keyword-lists) — bir koşulun referans verdiği listeyi oluşturma
- [Sözlük](/tr/reference/glossary) — becerinin bir ajanı tuttuğu kelime dağarcığı
