# Ajanın kendi kendine kaydı: Yapay zekâ ajanı tek çağrıyla Shager test ortamını nasıl açar, yayın düğmesi neden hâlâ insanda?

_2026-09-12 · Bir ajan tek bir POST ile kendi Shager test ortamını açabilir. Çağrı, test ortamında neler yapılabildiği, insanın sahiplenmesi ve yayın izninin verilmesi._

Bir yapay zekâ ajanı Shager'a tek bir istekle kendi kendine kaydolabilir: en azından `agent_name` içeren bir JSON gövdesiyle `POST https://app.shager.ai/api/v1/agent/signup`. Karşılığında bir API anahtarı, bir MCP URL'si ve bir sahiplenme linki alır; hemen çalışma alanları oluşturabilir, medya içe aktarabilir ve gönderi taslakları hazırlayabilir. Bir insan sahiplenme linkini açıp giriş yapana ve o anahtarın yayın yapıp yapamayacağına karar verene kadar hiçbir şey planlanmaz ya da yayınlanmaz.

Tasarımın tamamı bu ayrımdan ibaret. Ajan bir insanı beklemeden işine devam eder; gerçek kitlelere dokunan karar ise insanda kalır.

## Bir ajanın kendi kendine kaydolmasına neden izin verelim?

Çünkü alternatif, ajanın akışını bozar. "Müşterimizin sosyal medya dağıtımını kur" denen bir ajan, içeri girmenin tek yolu bir insanın kayıt formu doldurması, e-postasını doğrulaması ve panelde bir anahtar oluşturmasıysa daha ilk adımda duvara çarpar. Biri bunu yapana kadar ajanın bağlamı çoktan kaybolmuştur.

Kendi kendine kayıtla ajan hazırlık işini tek başına yapar: her müşteri için bir çalışma alanı oluşturur, medyayı çeker, gönderi taslaklarını yazar ve insana, incelenmeye hazır her şeyi içeren tek bir link verir. Kayıt tarifi ajanlar için [/auth.md](/auth.md) adresinde yayımlanmıştır; [ajanlar sayfası](/en/agents) da bir ajanın başlamadan önce okuyabileceği keşif dosyalarını listeler.

## Kayıt çağrısı nasıl görünür?

Yalnızca `agent_name` zorunludur (2 ila 80 karakter). Diğer alanlar, insanın neyi sahiplendiğini tanımasına yardımcı olur.

```bash
curl -s https://app.shager.ai/api/v1/agent/signup \
  -H "Content-Type: application/json" \
  -d '{
    "agent_name": "Northwind content agent",
    "contact_email": "ops@northwind-agency.example",
    "organization_name": "Northwind Agency",
    "purpose": "Draft weekly posts for 12 restaurant clients"
  }'
```

Yanıt her şeyi `data` içinde döndürür:

```json
{
  "data": {
    "api_key": "shgr_live_...",
    "organization_id": "...",
    "sandbox": true,
    "claim_url": "https://app.shager.ai/...",
    "expires_at": "2026-09-19T10:04:11.000Z",
    "mcp_url": "https://app.shager.ai/api/mcp",
    "api_base": "https://app.shager.ai/api/v1",
    "openapi_url": "https://app.shager.ai/api/v1/openapi.json",
    "limits": { "workspaces": 5, "requests_per_minute": 120, "publishing": "after a human claims the sandbox" },
    "next_steps": ["..."]
  }
}
```

İki alanla hemen ilgilenmek gerekir.

1. `api_key` yalnızca bir kez gösterilir. Başka bir şey yapmadan önce onu bir sır deposunda ya da ortam değişkeninde saklayın; asla bir log satırına yazmayın.
2. `claim_url` bir insana gider. `contact_email` verdiyseniz Shager sahiplenme linkini oraya da e-postayla gönderir, ama ajan yine de linki kendi yanıtında göstermelidir.

Kayıtlar adres başına saatte beşle sınırlıdır; bu da döngüye giren bir ajanın onlarca sahipsiz test ortamı açmasını önler.

## Sahiplenilmemiş bir test ortamı neler yapabilir?

| Sahiplenmeden önce izin verilenler | Bir insan sahiplenene kadar engellenenler |
|---|---|
| En fazla 5 çalışma alanı oluşturmak | Herhangi bir şeyi planlamak ya da yayınlamak |
| URL'lerden medya yüklemek | Müşteri bağlantı linkleri oluşturmak |
| Gönderi taslakları oluşturmak | Müşteri onay istekleri göndermek |
| Oluşturduğu her şeyi listelemek ve okumak | |

Engellenen çağrılar sessizce hiçbir şey yapmamak yerine açık bir hatayla başarısız olur. Planlama denemesi `"code": "sandbox_unclaimed"` ile HTTP 403 döndürür; `create_connect_link` ve `request_approval` da öyle. Altıncı bir çalışma alanı 403 `sandbox_limit` döndürür. İyi ajanlar yeniden denemek yerine `code` değerini okur ve insana neyin gerektiğini söyler.

Bağlantı linklerinin ve onay isteklerinin engellenmesinin nedeni, ikisinin de ajansın dışındaki gerçek insanlara ulaşmasıdır: Facebook Sayfasını bağlamak için linke tıklayan bir müşteri ya da onay e-postası alan bir onaylayan. Bu, kimsenin doğrulamadığı bir kuruluş adına gerçekleşmemeli.

## Test ortamında makul bir ilk oturum

Düzgün davranan bir ajanın ilk dakikalarında yaptıkları, Python ve `requests` ile:

```python
import os, requests

API = "https://app.shager.ai/api/v1"
H = {"Authorization": f"Bearer {os.environ['SHAGER_API_KEY']}"}

def call(method, path, **body):
    r = requests.request(method, f"{API}{path}", headers=H, json=body or None, timeout=60)
    payload = r.json()
    if not r.ok:
        err = payload["error"]
        raise RuntimeError(f"{r.status_code} {err['code']}: {err['message']}")
    return payload["data"]

me = call("GET", "/me")
print(me)  # organization, scopes, sandbox status

ws = call("POST", "/workspaces", name="Harbor Tacos", timezone="America/Chicago")

media = call("POST", f"/workspaces/{ws['id']}/media",
             url="https://harbortacos.example/press/fall-menu.jpg",
             file_name="fall-menu.jpg")

print("Workspace", ws["id"], "media", media["id"], media["kind"])
```

Bir çalışma alanı oluştururken `timezone` değerini açıkça verin. Bu bir IANA saat dilimi adıdır ve sonraki planlamalar bu dilime göre yorumlanır; Chicago'daki bir restoran başkasının varsayılanını devralmamalı.

Bu noktada henüz bağlı sosyal hesap yoktur, çünkü hesap bağlamak bir bağlantı linki gerektirir, bağlantı linki de sahiplenmeyi. Ajan içeriği ve yapıyı hazırlar; geri kalanının kapısını insan açar.

## İnsan sahiplendiğinde ne olur?

İnsan `claim_url` linkini açar, Shager'a giriş yapar (ya da hesap oluşturur) ve test ortamını, ajanın hazırladığı çalışma alanları, medya ve taslaklarla birlikte sahiplenir. Sahiplenme sırasında ajanın anahtarının planlama ve yayın da yapıp yapamayacağını seçer; bu seçim `publish` yetkisini ekler.

Bu seçim biraz düşünmeyi hak ediyor. `publish` yetkisini kapalı bırakmak uzun vadede gayet iyi bir kurulumdur: ajan taslak hazırlar, insan ya da müşteri onaylar ve planlar. Birçok ajans buradan başlar ve sonra https://app.shager.ai/dashboard/agents adresinde ayrı bir yayın anahtarı ekler; orada her anahtar iptal edilebilir ve ajanın her çağrısı denetim kaydında görünür. Bu kurulumlar arasındaki ödünleşimleri [haftalık dağıtım rutini](/en/blog/skill-weekly-distribution-routine) yazısında ele alıyoruz.

Sahiplenmeden sonra API'nin kendisinin önerdiği sonraki adımlar basittir: hesap sahibinin sosyal hesaplarını (Facebook, Instagram, YouTube, X, LinkedIn veya TikTok) Shager girişi olmadan bağlaması için `create_connect_link`, ardından `create_post` ve anahtarda `publish` varsa `schedule_post`.

## Kimse sahiplenmezse ne olur?

Sahiplenilmemiş test ortamlarının süresi yedi gün sonra, `expires_at` alanında verilen saatte dolar. Taslaklar ve çalışma alanları da onlarla birlikte gider. Daha uzun bir proje üzerinde çalışan bir ajan, bu tarihten önce insana hatırlatmalı ve süre dolduğunda tekrar tekrar kaydolmamalıdır. Yeni bir test ortamı eski taslakları taşımaz.

## Ajan devri nasıl ifade etmeli?

Açıkça, linkle ve sonuçlarıyla birlikte. Örneğin:

```text
I set up a Shager sandbox for Northwind with 3 client workspaces and
9 draft posts. To connect the clients' accounts and publish, open this
link and sign in: <claim_url>
When you claim it you can choose whether I'm allowed to schedule posts
myself. If you don't claim it by Sep 19, the sandbox and drafts are deleted.
```

Bu mesaj neyin yapıldığı, neyin beklediği ve insanın neyi kontrol ettiği konusunda dürüsttür. Aynı zamanda tıklanma olasılığı en yüksek mesajdır.

## SSS

### Kendi kendine kayıt ücretli mi?

Hayır. Test ortamı ücretsizdir ve lansman döneminde Shager sahiplenmeden sonra da ücretsizdir, kart gerekmez; ücretlendirmeye başlamadan önce sizi önceden bilgilendireceğiz. API ve MCP erişimi her plana dahildir. Plan sınırları [fiyatlandırma sayfasında](/en/pricing).

### Ajan kaydolduktan sonra REST yerine MCP kullanabilir mi?

Evet. Yanıt `mcp_url` içerir ve aynı anahtar MCP sunucusunda `Authorization: Bearer shgr_live_...` olarak çalışır. Araçlar, [OpenAPI belgesinde](https://app.shager.ai/api/v1/openapi.json) tanımlanan REST işlemleriyle birebir eşleşir.

### Sahiplenilmiş bir anahtar, bir insan gönderiyi görmeden yayın yapabilir mi?

Yalnızca insan sahiplenme sırasında `publish` yetkisini verdiyse ve çalışma alanı müşteri onayı gerektirmiyorsa. İkisi de insanın tercihidir ve ikisi de sonradan değiştirilebilir: anahtarlar panelden iptal edilebilir, onay da her çalışma alanı için ayrı ayrı zorunlu hale getirilebilir.

## Sonraki adım

Test ortamı sahiplenildikten ve hesaplar bağlandıktan sonra keşiften tam bir çalıştırmaya geçin. [Uçtan uca ajan içerik hattı](/en/blog/agent-content-pipeline-end-to-end), tam olarak burada bıraktığımız yerden devam ediyor: briften yayınlanmış gönderilere ve hesap bazındaki tıklamalara kadar.

---
Source: https://shager.ai/tr/blog/agent-self-signup-and-claim
