<!-- https://avertgate.com/tr/docs/sdk · Entegrasyon -->

# SDK

Ajanı kendiniz yazıyorsanız, araç fonksiyonlarını doğrudan kod içinde sarmalayın. Aynı politika motoru, tarayıcılar ve denetim kaydı kullanılır.

## Bir aracı sarmalayın

<!-- agent.ts -->
```ts
import { createAvertGate, AvertGateSecurityError } from "@avertgate/cli/sdk";

const gate = createAvertGate({
  policyPath: "./policy.yaml",
  agentId: "support-agent-v1",
});

const issueRefund = gate.wrapTool("issue_refund", async ({ orderId, amount }) => {
  return payments.refund(orderId, amount);
});

try {
  await issueRefund({ orderId: "ORD-100123", amount: 750 });
} catch (err) {
  if (err instanceof AvertGateSecurityError) {
    console.log(err.decision, err.reason, err.ruleId);
  }
}
```

## Düşük seviye: guard()

<!-- agent.ts -->
```ts
const result = await gate.guard(
  "send_email",
  { to: recipient, body },
  () => mailer.send({ to, body }),
  { sessionId: "sess-42" },
);
```

## Yapılandırma seçenekleri

| Seçenek | Açıklama |
| --- | --- |
| `policy` / `policyPath` | Dosya yolu, ham YAML ya da nesne. |
| `agentId`, `orgId` | Kimlik ve tenant. |
| `auditDbPath` | SQLite yolu; `:memory:` geçici kayıt. |
| `apiKey`, `baseUrl` | Bulut yönetimli politika: `AvertGate.create()` ile çözümlenir. |
| `requestApproval` | Onay geri çağrısı. Varsayılan: reddet (fail-closed). |
| `shadowMode` | Gözlem modu. |
| `enableHotReload` | Politika dosyası değişince sıcak yenile. |
| `tracer`, `metricsRegistry` | OpenTelemetry ve Prometheus. |

## Çerçeve adaptörleri

`wrapOpenAITool` OpenAI araç tanımı + çalıştırıcıyı birlikte sarar; `wrapLangChainTool` LangChain araçları içindir. Her ikisi de `catchErrors` seçeneğini destekler.

## Bulut yönetimli politika

<!-- agent.ts -->
```ts
const gate = await AvertGate.create({
  apiKey: process.env.AVERTGATE_API_KEY, // ag_live_...
  agentId: "support-agent-v1",
});
```

Bu form, politikayı panelden `/api/gateway/resolve` ile çeker ve olayları `/api/events/ingest`'e gönderir.
