İçeriğe geç

Uç Nokta Referansı

Bu referans, Agent ilk yolunuz için genel Gateway uç noktalarını bir araya getirir. Gateway erişimi Beta aşamasındadır ve operatör tarafından etkinleştirilir. Capability’ye özgü params, result nesneleri, Scope’lar, riskler ve maliyetler her zaman describe üzerinden okunur.

Temel URL:

https://connect.webrichtung.de

Mutasyonlarda Idempotency-Key zorunludur. Format ve yeniden deneme davranışı Idempotency Zorunluluğu sayfasındadır.

EndpointAuthYanıt
GET /healthhayırstatus, service, domain, timestamp içeren JSON
GET /llms.txthayırmakine tarafından okunabilir giriş noktası içeren text/plain
GET /mcp/manifesthayırMeta Araçlar, Kaynaklar ve göreceli Transport uç noktaları içeren JSON Manifest
GET /capabilitieshayırMeta Araçlar ve genel Capability’ler içeren JSON Katalog
GET /openapi.jsonhayırGenel olarak sağlandığı ölçüde OpenAPI Belgesi

Bir Agent App oluşturur ve bir Bootstrap-Key döndürür.

POST https://connect.webrichtung.de/register
Content-Type: application/json
Idempotency-Key: idem-register-20260704-0001
{
"owner_email": "owner@example.com",
"agent_email": "agent@example.com",
"app": {
"slug": "acme-ops-agent",
"name": "Acme Ops Agent",
"description": "Operativer Agent für die Musterorganisation.",
"contact_email": "ops@example.com",
"homepage_url": "https://example.com/agent"
}
}

Yanıt 201:

{
"app": {
"id": "app_123",
"slug": "acme-ops-agent",
"name": "Acme Ops Agent",
"verification_status": "unverified"
},
"agent_email": "agent@example.com",
"bootstrap_key": {
"token": "<bootstrap-api-key>",
"expires_at": "2026-07-05T12:00:00.000Z",
"scopes": ["platform:bootstrap"]
}
}
AlanKural
owner_emailZorunlu. Sorumlu kişinin geçerli e-posta adresi. Aynı adres /organizations içinde tekrarlanmalıdır.
agent_emailİsteğe bağlı. Ayarlanırsa, bu posta kutusu daha sonra Agent-Mail-OTP ile onaylanmalıdır.
app.slugZorunlu. Küçük harfler, sayılar ve - ile teknik kısa ad, 3 ila 63 karakter.
app.nameZorunlu. Agent App’in insan tarafından okunabilir adı, 2 ila 120 karakter.
app.descriptionİsteğe bağlı. Agent App’in kısa açıklaması.
app.contact_emailİsteğe bağlı. Agent operatörünün iletişim adresi.
app.homepage_urlİsteğe bağlı. Agent App veya operatörünün genel web sitesi.
bootstrap_key.token/organizations ve katalog materyali için kısa ömürlü Key. Çalışma Key’i olarak kullanmayın.

Owner Organizasyonu, Agent Kurulumu ve ilk Installation-Key’i oluşturur.

POST https://connect.webrichtung.de/organizations
Content-Type: application/json
Authorization: Bearer <bootstrap-api-key>
Idempotency-Key: idem-bootstrap-20260704-0001
{
"owner_email": "owner@example.com",
"agent_email": "agent@example.com",
"organization": {
"name": "Musterfirma GmbH"
}
}

Yanıt 201:

{
"organization": {
"id": "org_123",
"name": "Musterfirma GmbH"
},
"installation": {
"id": "inst_123",
"agent_email": "agent@example.com",
"agent_email_verified_at": null,
"agent_email_verification_status": "pending",
"owner_email": "owner@example.com",
"owner_user_id": "user_123",
"owner_verified_at": null,
"operator_approval_status": "pending",
"scopes": ["org:manage", "platform.catalog:read"]
},
"installation_key": {
"token": "<installation-api-key>",
"expires_at": "2026-10-02T12:00:00.000Z",
"scopes": ["org:manage", "platform.catalog:read"]
},
"owner_otp_delivery": {
"status": "queued",
"expires_at": "2026-07-07T12:00:00.000Z"
},
"agent_otp_delivery": {
"status": "queued",
"expires_at": "2026-07-07T12:00:00.000Z",
"correlation_id": "otpref_123",
"extraction": {
"mailbox": "agent_email",
"imap_search": {
"header": "Subject",
"contains": "Ref: otpref_123"
},
"subject_contains": "Ref: otpref_123",
"code_line_prefix": "Code: ",
"code_regex": "^Code:\\s*(?<otp>\\S+)\\s*$",
"verify_endpoint": "/agent-otp/verify"
}
}
}
AlanKural
AuthorizationZorunlu. /register çıktısındaki Bootstrap-Key’i kullanın.
owner_emailZorunlu. /register çıktısındaki Owner e-postası ile tam olarak eşleşmelidir.
agent_emailİsteğe bağlı. Orada ayarlanmışsa, kayıtlı agent_email ile eşleşmelidir.
organization.nameZorunlu. Yeni organizasyonun görüntülenme adı, 3 ila 160 karakter.
installation.idTeşhis ve Handover için kararlı Kurulum ID’si. API-Key değildir.
installation.agent_email_verification_statusnot_required ayarlanmamışsa agent_email; aksi takdirde pending başarılı olana kadar /agent-otp/verify.
installation.operator_approval_statuspending, approved veya blocked. Operatif çalışma ancak approved durumunda başlar.
installation_key.tokenİleri adımlar için düz metin Key. Yalnızca bu yanıtta gösterilir.
owner_otp_delivery.statusqueued, sent veya suppressed. suppressed ise durdurun ve netleştirin.
agent_otp_delivery.correlation_idAgent-Mail için genel arama referansı, konuda Ref: <ID> olarak.
agent_otp_delivery.extraction.code_regexKod içeren bağımsız Body satırı için regex.

Owner kodunu gönderir ve sorumluluk üstlenmeyi belgeler.

POST https://connect.webrichtung.de/owner-otp/claim
Content-Type: application/json
Authorization: Bearer <installation-api-key>
Idempotency-Key: idem-owner-claim-20260704-0001
{
"otp": "<owner-otp>"
}

Yanıt 200:

{
"installation": {
"id": "inst_123",
"agent_email": "agent@example.com",
"agent_email_verified_at": null,
"agent_email_verification_status": "pending",
"owner_email": "owner@example.com",
"owner_user_id": "user_123",
"owner_verified_at": "2026-07-04T12:10:00.000Z",
"operator_approval_status": "pending",
"scopes": ["billing.wallet:read", "core:read", "core:write", "documents:read", "documents:write", "org:manage", "platform.catalog:read"]
}
}
AlanKural
AuthorizationZorunlu. /organizations çıktısındaki Installation-Key’i kullanın.
otpZorunlu. E-posta ile oluşturulan Owner kodunu tam olarak kopyalayın ve log çıktısı olmadan.
installation.owner_verified_atŞu anlama gelir: Owner meşruiyeti belgelenmiştir. Operatif çalışma yine de engellenebilir.

Yeni bir Owner kodu talep eder.

POST https://connect.webrichtung.de/owner-otp/resend
Content-Type: application/json
Authorization: Bearer <installation-api-key>
Idempotency-Key: idem-owner-resend-20260704-0001
{}

Yanıt 200:

{
"installation": {
"id": "inst_123",
"agent_email": "agent@example.com",
"agent_email_verified_at": null,
"agent_email_verification_status": "pending",
"owner_email": "owner@example.com",
"owner_verified_at": null,
"operator_approval_status": "pending",
"scopes": ["org:manage", "platform.catalog:read"]
},
"owner_otp_delivery": {
"status": "queued",
"expires_at": "2026-07-07T12:30:00.000Z"
}
}
AlanKural
owner_otp_delivery.statusqueued, sent veya suppressed; suppressed ise durdurun ve netleştirin.
owner_otp_delivery.expires_atYeni Owner kodunun son kullanma zamanı. Önceki kod bundan sonra geçerli değildir.

İsteğe bağlı Agent posta kutusunu onaylar.

POST https://connect.webrichtung.de/agent-otp/verify
Content-Type: application/json
Authorization: Bearer <installation-api-key>
Idempotency-Key: idem-agent-verify-20260704-0001
{
"otp": "<agent-mail-otp>"
}

Yanıt 200:

{
"installation": {
"id": "inst_123",
"agent_email": "agent@example.com",
"agent_email_verified_at": "2026-07-04T12:12:00.000Z",
"agent_email_verification_status": "verified",
"owner_email": "owner@example.com",
"owner_verified_at": "2026-07-04T12:10:00.000Z",
"operator_approval_status": "pending",
"scopes": ["billing.wallet:read", "core:read", "core:write", "documents:read", "documents:write", "org:manage", "platform.catalog:read"]
}
}
AlanKural
otpZorunlu. Agent-Mail kodunu tam olarak kopyalayın ve log çıktısı olmadan.
installation.agent_email_verified_atŞu anlama gelir: İsteğe bağlı Agent-Mail kimliği doğrulanmıştır.
installation.operator_approval_statuspending operatif çalışmayı durdurur. Ancak approved sonraki adıma izin verir.

Yeni bir Agent-Mail kodu talep eder.

POST https://connect.webrichtung.de/agent-otp/resend
Content-Type: application/json
Authorization: Bearer <installation-api-key>
Idempotency-Key: idem-agent-resend-20260704-0001
{}

Yanıt 200:

{
"installation": {
"id": "inst_123",
"agent_email": "agent@example.com",
"agent_email_verified_at": null,
"agent_email_verification_status": "pending",
"owner_email": "owner@example.com",
"owner_verified_at": "2026-07-04T12:10:00.000Z",
"operator_approval_status": "pending",
"scopes": ["billing.wallet:read", "core:read", "core:write", "documents:read", "documents:write", "org:manage", "platform.catalog:read"]
},
"agent_otp_delivery": {
"status": "queued",
"expires_at": "2026-07-07T12:30:00.000Z",
"correlation_id": "otpref_456",
"extraction": {
"mailbox": "agent_email",
"imap_search": {
"header": "Subject",
"contains": "Ref: otpref_456"
},
"subject_contains": "Ref: otpref_456",
"code_line_prefix": "Code: ",
"code_regex": "^Code:\\s*(?<otp>\\S+)\\s*$",
"verify_endpoint": "/agent-otp/verify"
}
}
}
AlanKural
agent_otp_delivery.correlation_idYeni teslim edilen Agent-Mail için yeni arama referansı.
agent_otp_delivery.extraction.code_regexKod içeren Body satırı için regex.

Tüm gerekli OTP’lerden sonra Organizasyon ve etkinleştirme durumunu okur. Owner-Claim’den önce, veya agent_email ayarlanmışsa Agent-Mail doğrulamasından önce, HTTP 412 precondition_failed beklenen davranıştır; ayrıntılar Hata Taksonomi içindedir.

GET https://connect.webrichtung.de/org/current
Authorization: Bearer <installation-api-key>

Yanıt 200:

{
"organization": {
"id": "org_123",
"name": "Musterfirma GmbH",
"short_id": "abc123",
"is_active": true,
"created_at": "2026-07-04T12:00:00.000Z",
"updated_at": "2026-07-04T12:10:00.000Z"
},
"installation": {
"id": "inst_123",
"agent_email": "agent@example.com",
"agent_email_verified_at": "2026-07-04T12:12:00.000Z",
"agent_email_verification_status": "verified",
"owner_verified_at": "2026-07-04T12:10:00.000Z",
"operator_approval_status": "approved",
"operator_approved_at": "2026-07-04T12:15:00.000Z",
"scopes": ["billing.wallet:read", "core:read", "core:write", "documents:read", "documents:write", "org:manage", "platform.catalog:read"]
},
"principal": {
"sb_user_id": "principal_123",
"installation_id": "inst_123",
"scopes": ["billing.wallet:read", "core:read", "core:write", "documents:read", "documents:write", "org:manage", "platform.catalog:read"]
}
}
AlanAnlam
organization.idHandover ve teşhis için Owner Organizasyonu’nun kararlı ID’si.
organization.short_idİnsan referansı için kısa Organizasyon kodu.
organization.is_activefalse şu anlama gelir: çalışmaya devam etmeyin, operatöre devrolunan.
installation.agent_email_verification_statusOperatif çalışma başlamadan önce not_required veya verified sağlanmalıdır.
installation.operator_approval_statuspending = bekleyin veya Handover, approved = çalışmaya izin verildi, blocked = durdurun.
principal.sb_user_idAgent’ın teknik Principal ID’si. Owner ID olarak yorumlamayın.
principal.scopesŞu anda kullanılan Installation-Key’in Scope’ları.

Tüm Meta-Araçlar /mcp/* altındadır ve ilk yol bootstrap edildikten sonra Installation-Key kullanır.

POST https://connect.webrichtung.de/mcp/search_capabilities
Content-Type: application/json
Authorization: Bearer <installation-api-key>
{
"query": "organization context",
"domain": "core",
"risk_level_max": "medium",
"limit": 5
}

Yanıt:

{
"interface_version": "1.0",
"results": [
{
"id": "core.org.current.get",
"version": "1.0.0",
"summary": "Aktuellen Organisationskontext lesen.",
"domain": "core",
"risk_level": "low",
"access": "allowed"
}
],
"total": 1,
"next_cursor": null
}
AlanKural
query, domain, risk_level_max, limit, cursorİsteğe bağlı. limit maksimum 50.
results[].accessallowed, scope_missing veya approval_always. scope_missing durumunda tahmin etmeyin, describe okuyun.
POST https://connect.webrichtung.de/mcp/describe
Content-Type: application/json
Authorization: Bearer <installation-api-key>
{
"id": "core.org.current.get"
}

Yanıt: Capability’nin tam Runtime-Contract’ı. params ve result için input_schema ve output_schema bağlayıcıdır.

Operatif dry_run çağrıları meşrulaştırılmış ve etkinleştirilmiş bir Kurulum gerektirir. Gerekli OTP’lerden önce veya Operator-Approval’dan önce Handler HTTP 412 precondition_failed ile yanıt verir.

POST https://connect.webrichtung.de/mcp/dry_run
Content-Type: application/json
Authorization: Bearer <installation-api-key>
{
"id": "core.org.current.get",
"params": {}
}

Yanıt formu ve maliyet semantiği dry_run & Maliyet-Preflight üzerindedir.

/mcp/invoke, dry_run ile aynı Guard zincirini kullanır: Installation-Key, gerekli OTP’ler, Operator-Approval, Scope’lar, Schema, Policy, Audit, Billing ve Egress. Gerekli OTP’lerden önce veya Operator-Approval’dan önce HTTP 412 precondition_failed beklenen davranıştır.

POST https://connect.webrichtung.de/mcp/invoke
Content-Type: application/json
Authorization: Bearer <installation-api-key>
{
"id": "core.org.current.get",
"params": {}
}

Mutasyon yapan Capability’lerde Body ayrıca idempotency_key içerir. Tam result nesnesi Capability’nin describe-Contract’ından gelir.

Başarılı Invoke’lar bu zarfı kullanır:

{
"interface_version": "1.0",
"status": "succeeded",
"capability_id": "documents.document.upload",
"resolved_version": "1.0.0",
"audit_id": "audit_123",
"result": {
"...": "capability-specific output"
},
"cost": {
"...": "nur vorhanden, wenn gebucht oder vom Handler gemeldet"
}
}

Zorunlu alanlar interface_version, status, capability_id, resolved_version ve audit_id şeklindedir. result, approval, poll, cost, replayed ve warnings, Capability ve yürütme durumuna bağlıdır.

estimated_cost, dry_run yanıtına aittir. Başarılı bir invoke, Gateway rezerve ettiyse veya Handler maliyetleri raporladıysa bunun yerine isteğe bağlı olarak cost kullanır.

wallet.agent_budget.guard.check durumunda karar dolayısıyla result.allowed altındadır, üst seviyede değil:

{
"interface_version": "1.0",
"status": "succeeded",
"capability_id": "wallet.agent_budget.guard.check",
"resolved_version": "1.0.0",
"audit_id": "audit_123",
"result": {
"allowed": true,
"organization_id": "org_123",
"wallet_balance_credits": "100.00",
"estimated_cost_credits": 0.09,
"policy": {
"policy_profile_id": "policy_123",
"task_cap_credits": 0,
"daily_cap_credits": 10,
"monthly_cap_credits": 100,
"burn_rate_hourly_cap_credits": 0,
"kill_switch_enabled": false
},
"ledger": {
"hour_cost_credits": 0.2,
"today_cost_credits": 0.5,
"month_cost_credits": 2
}
}
}

Installation-Key’i ancak ilk yoldan sonra döndürün. Gerekli OTP’lerden önce Endpoint HTTP 412 precondition_failed ile yanıt verir. Yeni düz metin Key yalnızca bir kez görünür.

POST https://connect.webrichtung.de/keys/rotate
Content-Type: application/json
Authorization: Bearer <installation-api-key>
Idempotency-Key: idem-key-rotate-20260704-0001
{}

Yanıt 201:

{
"key": {
"token": "<rotated-installation-api-key>",
"expires_at": "2026-10-02T12:15:00.000Z",
"scopes": ["billing.wallet:read", "core:read", "core:write", "documents:read", "documents:write", "org:manage", "platform.catalog:read"],
"rotated_from_key_id": "key_123"
}
}

Sorun Giderme & Kurtarma