AI Engineering Academy · Ders

İnsan Denetimine Yükseltme

Güven düşük olduğunda, yıkıcı bir işlem gerçekleşmek üzereyken veya yeniden deneme bütçesi tükendiğinde aracıyı duraklatıp insandan yönlendirme isteyen yükseltme tetikleyicileri tanımlayın.

4. ders / 413 adım

İnsan Denetimine Yükseltme, CoddyKit'te ücretsiz bir AI Engineering Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AI Engineering Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Engineering Academy kursu toplamda 4 dersten oluşur.

Agent'ların İnsan Rehberliğine İhtiyaç Duyduğu Durumlar

Tamamen özerk Agent'lar, iyi tanımlanmış ve düşük riskli görevler için uygundur. Ancak bazı durumlarda insan yargısı gerekir: belirsiz talimatlar, modelin düşük güveni, geri alınamayan yıkıcı işlemler veya başarısızlığın ciddi sonuçlar doğuracağı görevler. İnsan döngüsünde (HITL) escalation, otomasyonun verimliliğini insanların yargısıyla birleştirerek Agent'ı bu karar noktalarında durdurur ve ilerlemeden önce insan girdisi ister.

Escalation Tetikleyicilerini Tanımlama

Escalation, belirsiz sezgiler yerine belirli ve ölçülebilir koşullar tarafından tetiklenmelidir. Uygulamanız için açık escalation tetikleyicileri tanımlayın. Yaygın tetikleyiciler arasında şunlar bulunur: model güveninin bir eşik değerinin altında olması, yıkıcı bir işlemin gerçekleştirilmek üzere olması, bir politika sınırına yaklaşılması, yeniden deneme bütçesinin tükenmesi veya görevin zaman sınırını aşması. Tetikleyicileri, kontrol akışı mantığını değiştirmeden ayarlanabilmeleri için kodda adlandırılmış sabitler olarak belgeleyin.

from enum import Enum

class EscalationReason(Enum):
    LOW_CONFIDENCE = 'low_confidence'           # model uncertainty
    DESTRUCTIVE_ACTION = 'destructive_action'   # irreversible change
    AMBIGUOUS_TASK = 'ambiguous_task'           # unclear instructions
    RETRY_BUDGET_EXHAUSTED = 'retry_exhausted'  # too many failures
    POLICY_BOUNDARY = 'policy_boundary'         # approaching limit
    HUMAN_REQUESTED = 'human_requested'         # explicit request
    TIMEOUT = 'timeout'                         # took too long

ESCALATION_THRESHOLDS = {
    'min_confidence': 0.6,
    'max_retries': 5,
    'max_runtime_minutes': 30,
}

Düşük Güveni Algılama

Modelden, önerilen bir işlemi gerçekleştirmeden önce güvenini ifade etmesini isteyin. Eşik değerinizin altındaki bir güven puanı escalation'ı tetikler. İnsan denetleyicinin Agent'ın neden kararsız kaldığını tam olarak anlayabilmesi için hem sayısal puan hem de kısa bir gerekçe içeren yapılandırılmış bir güven denetimi kullanın. Gerekçe, insanın tüm görev geçmişini gözden geçirmek zorunda kalmadan hedefli rehberlik sağlamasına yardımcı olur.

from pydantic import BaseModel

class ConfidenceCheck(BaseModel):
    proposed_action: str
    confidence: float  # 0.0 to 1.0
    uncertainty_reason: str | None
    proceed: bool

async def check_confidence(context: str, proposed_action: str) -> ConfidenceCheck:
    return await judge_client.chat.completions.create(
        model='gpt-4o',
        response_model=ConfidenceCheck,
        messages=[{
            'role': 'user',
            'content': f'Context: {context}\n\nI am about to: {proposed_action}\n\nHow confident am I that this is correct? Be honest about uncertainty.'
        }]
    )

Yıkıcı İşlemleri Algılama

Geri döndürülemez işlemler gerçekleştiren araçları destructive=True bayrağıyla etiketleyin ve yürütülmeden önce insan onayı alınmasını zorunlu kılın. Örnekler: dosyaları silmek, gerçek kullanıcılara e-posta göndermek, geri alınamayan veritabanı değişiklikleri yapmak, müşteriden ücret tahsil etmek veya içeriği herkese açık şekilde yayımlamak. Agent, başka açılardan özerk olarak çalışsa bile bu işlemlerde durmalı ve açık insan onayını beklemelidir.

from dataclasses import dataclass
from typing import Callable

@dataclass
class Tool:
    name: str
    func: Callable
    destructive: bool = False
    description: str = ''

tools = [
    Tool('search_web',     search_web,      destructive=False),
    Tool('read_file',      read_file,       destructive=False),
    Tool('write_file',     write_file,      destructive=True,  description='Overwrites existing file'),
    Tool('send_email',     send_email,      destructive=True,  description='Sends real email to user'),
    Tool('delete_records', delete_records,  destructive=True,  description='Permanent DB deletion'),
]

def requires_approval(tool: Tool) -> bool:
    return tool.destructive

Agent'ı Duraklatma ve Girdi Bekleme

Bir escalation tetikleyicisi etkinleştiğinde kontrol noktasını kaydedin (böylece görev sürdürülebilir), bir escalation isteği kaydı oluşturun ve insan denetleyiciyi bilgilendirin. Agent işlemeyi durdurur ve bekler. İnsan, escalation'ı bir kontrol paneli veya bildirim aracılığıyla inceler, rehberlik ya da onay sağlar ve Agent, bu rehberlik geçmişe yeni bir mesaj olarak eklenmiş şekilde kontrol noktasından sürdürülür.

import asyncio

async def escalate_and_wait(task_id: str, reason: EscalationReason, context: str,
                             question: str, timeout_hours: int = 24) -> str:
    # Save checkpoint
    save_checkpoint(load_checkpoint(task_id))
    # Create escalation record
    escalation_id = create_escalation(task_id, reason, context, question)
    # Notify reviewer
    notify_reviewer(escalation_id, question)
    # Wait for response (polling with timeout)
    deadline = asyncio.get_event_loop().time() + timeout_hours * 3600
    while asyncio.get_event_loop().time() < deadline:
        response = get_escalation_response(escalation_id)
        if response:
            return response.guidance
        await asyncio.sleep(60)  # check every minute
    raise TimeoutError(f'Escalation {escalation_id} not answered within {timeout_hours}h')

Denetleyici Arayüzünü Oluşturma

İnsan inceleyicilerin, eskalasyonlara yanıt vermek için basit bir arayüze ihtiyacı vardır. En azından şunları gösterin: görev açıklaması, aracının o ana kadarki ilerlemesi, onay gerektiren belirli soru veya önerilen eylem ve Onayla, Reddet ve Rehberlik Sağla düğmeleri. Denetim amacıyla her inceleyici kararını, inceleyicinin kimliği ve zaman damgasıyla birlikte günlüğe kaydedin. Bir Slack botu veya basit bir web formu, kurum içi ekipler için uygun seçeneklerdir.

# FastAPI escalation endpoint
from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class EscalationResponse(BaseModel):
    escalation_id: str
    decision: str  # 'approve', 'reject', 'guide'
    guidance: str | None = None
    reviewer_id: str

@app.post('/escalations/{escalation_id}/respond')
async def respond_to_escalation(esc_id: str, response: EscalationResponse):
    escalation = get_escalation(esc_id)
    if not escalation or escalation.status != 'pending':
        return {'error': 'Escalation not found or already resolved'}
    save_escalation_response(esc_id, response)
    return {'status': 'response_recorded', 'task_will_resume': True}

Aracı Bağlamına İnsan Rehberliği Eklemek

İnsan yanıt verdikten sonra, devam etmeden önce rehberliğini aracının konuşma geçmişine yeni bir ileti olarak ekleyin. Rehberliği, aracının kendi gözlemlerinden ayırt etmek için bir "yönetici" tarafından geliyormuş gibi ifade edin. Böylece aracı, bir sonraki adımında bu rehberliğe başvurabilir. İnsan önerilen eylemi reddettiyse bunun yerine ne yapılacağına ilişkin talimatları ekleyin.

def inject_human_guidance(messages: list, decision: str, guidance: str | None) -> list:
    if decision == 'approve':
        messages.append({
            'role': 'user',
            'content': 'Supervisor: Your proposed action has been approved. Proceed.'
        })
    elif decision == 'reject':
        messages.append({
            'role': 'user',
            'content': f'Supervisor: Your proposed action was rejected. Instead: {guidance}'
        })
    elif decision == 'guide':
        messages.append({
            'role': 'user',
            'content': f'Supervisor: Additional guidance: {guidance}'
        })
    return messages

Eskalasyon Ölçümlerini İzlemek

Eskalasyon hacmini, nedenlerini ve yanıt sürelerini izleyin. Yüksek eskalasyon hacmi, aracının yeterince güvenli olmadığını gösterir — görev fazla belirsiz olabilir, modelin daha iyi talimatlara ihtiyacı olabilir veya güven eşikleri çok düşük ayarlanmış olabilir. Uzun yanıt süreleri, inceleyicilerin iş yüküyle ilgili sorunlara işaret eder. Bu ölçümler, gereksiz kesintileri en aza indirirken gerçekten riskli kararlarda insanların sürece dâhil olmasını sağlamak için otomasyon ile insan denetimi arasındaki dengeyi ayarlamanıza yardımcı olur.

def escalation_report(db_connection, days: int = 7) -> dict:
    # SQL query (pseudocode)
    rows = db_connection.execute('''
        SELECT
            reason,
            COUNT(*) as count,
            AVG(EXTRACT(EPOCH FROM (responded_at - created_at)) / 3600) as avg_response_hours,
            SUM(CASE WHEN decision = 'approve' THEN 1 ELSE 0 END) as approvals,
            SUM(CASE WHEN decision = 'reject' THEN 1 ELSE 0 END) as rejections
        FROM escalations
        WHERE created_at > NOW() - INTERVAL '%s days'
        GROUP BY reason
        ORDER BY count DESC
    ''' % days).fetchall()
    return [dict(r) for r in rows]

Özerkliği Kademeli Olarak Genişletmek

Yüksek eskalasyon duyarlılığıyla başlayın (düşük güven eşiği kullanın ve tüm yıkıcı eylemler için eskalasyon yapın); ardından aracının davranışına güveniniz arttıkça eskalasyon sıklığını kademeli olarak azaltın. Hangi eskalasyonların Onayla kararlarıyla, hangilerinin gerçek düzeltmelerle sonuçlandığını izleyin. Belirli bir tetikleyici türü için sürekli yüksek onay oranı görülmesi, insan iş yükünü azaltırken gerçekten önemli noktalarda denetimi koruyarak bu tetikleyiciyi güvenle otomatikleştirebileceğiniz anlamına gelir.

# Autonomy expansion strategy:
# Week 1: escalate for ALL destructive actions
# Week 2: auto-approve file writes to /tmp (low-risk), escalate others
# Week 4: auto-approve all file writes, escalate only email/DB changes
# Week 8: auto-approve emails under 10 recipients, escalate mass emails

# Track approval rates per trigger type:
# Tool: write_file    -> 98% approve -> safe to automate
# Tool: send_email    -> 89% approve -> near-automate with content check
# Tool: delete_records -> 43% approve -> always escalate

Acil Durum Geçersiz Kılma ve Görev İptali

İnsanın çalışan bir aracı görevini hemen iptal etmesine olanak tanıyan bir acil durum geçersiz kılma mekanizması her zaman sağlayın. Bir aracı hatalı davranıyorsa — yapmaması gereken araçları çağırıyor veya amaçlanan kapsamının dışında eylemler gerçekleştiriyorsa — insanın aracı birkaç saniye içinde durdurabilmesi gerekir. Bir iptal sinyali uygulayın (aracının her adımda kontrol ettiği bir veritabanı işareti) ve aracı adımın ortasında iptal edilirse araç çağrılarının sonuçlarının yok sayılmasını sağlayın.

async def run_agent_with_cancel(task_id: str, messages: list) -> str:
    for step in range(MAX_ITERATIONS):
        # Check cancel flag at start of every step
        if redis_client.get(f'agent:cancel:{task_id}'):
            save_final_status(task_id, 'cancelled')
            return 'Task cancelled by operator.'
        response = await get_next_action(messages)
        if response.is_final:
            return response.answer
        result = await execute_tool(response.tool, response.args)
        messages.append({'role': 'user', 'content': result})
        save_checkpoint_after_step(task_id, step, messages)
    return 'Max iterations reached'

Eskalasyon Eşiklerini Ayarlamak

Eskalasyon eşiklerinin ayarlanması gerekir. Güven eşiği çok yüksekse aracı neredeyse her eylemde eskalasyon yaparak inceleyicileri aşırı yükler. Çok düşükse riskli eylemler denetimden geçer. İlk hafta ihtiyatlı eşiklerle başlayın, eskalasyon hacmini ve inceleyici onay oranını izleyin ve ayarlamalar yapın. Kararlı bir sistem, güven sorunları nedeniyle görevlerin %5-15'i için, yıkıcı eylemler içinse neredeyse %100 oranında eskalasyon yapmalı ve genel onay oranı %80'in üzerinde olmalıdır.

# Threshold tuning guide:
# Escalation rate vs quality trade-off:
#
# confidence_threshold=0.8  -> 35% escalation rate (too many)
# confidence_threshold=0.6  -> 12% escalation rate (target)
# confidence_threshold=0.4  ->  4% escalation rate (too few)
#
# Weekly review of escalation decisions:
# - Approval rate > 90%: lower threshold (too conservative)
# - Approval rate < 70%: raise threshold (not catching real issues)
# - Target: 75-85% approval rate

Hızlı Kontrol

İnsan denetimli eskalasyon tasarımı konusundaki anlayışınızı sınayın.

Ders Özeti

Bu derste şunları öğrendiniz: eskalasyon tetikleyicileri, aracının durup insan rehberliği istemesi gereken kesin koşulları tanımlar; araçlardaki yıkıcı eylem işaretleri, geri döndürülemez işlemler için onay gerekliliklerini zorunlu kılar; özerkliğin kademeli olarak genişletilmesi ise aracı güven kazandıkça otomasyonu güvenli biçimde artırmanızı sağlar. Sırada bitirme projemiz için üretim mimarisini tasarlıyoruz.

Başlamak ücretsiz

Yapay zeka eğitmeniyle Python öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
30
Dersler
120

Sıkça Sorulan Sorular

“İnsan Denetimine Yükseltme” dersi ücretsiz mi?

Evet — “İnsan Denetimine Yükseltme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AI Engineering Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Engineering Academy kursu toplamda 4 dersten oluşur.

“İnsan Denetimine Yükseltme” dersinde ne öğreneceğim?

Güven düşük olduğunda, yıkıcı bir işlem gerçekleşmek üzereyken veya yeniden deneme bütçesi tükendiğinde aracıyı duraklatıp insandan yönlendirme isteyen yükseltme tetikleyicileri tanımlayın. AI Engineering Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

AI Engineering Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te AI Engineering Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“İnsan Denetimine Yükseltme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu AI Engineering Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her AI Engineering Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Aracı Hata Türlerini Sınıflandırma
  2. Kendi Kendini Düzeltme ve Yansıtıcı İstem Oluşturma
  3. Denetim Noktaları ve Göreve Devam Etme
  4. İnsan Denetimine Yükseltme
← AI Engineering Academy Sayfasına Dön