> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kazzle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Skills

> Ajarkan AI tentang aplikasi Anda dan berikan alat untuk dipanggilnya.

# Skills

Skill adalah **folder** yang memberi tahu AI apa yang diketahuinya dan dapat dilakukan dengan aplikasi Anda. Skill memiliki:

* `SKILL.md` — instruksi yang dibaca AI (wajib).
* `tools.ts` — daftar alat yang dapat dipanggil AI (opsional).

`SKILL.md` menjelaskan aplikasi dan alatnya; `tools.ts` mendeklarasikan alat; setiap alat diimplementasikan oleh rute HTTP di salah satu komponen aplikasi Anda.

## Mendefinisikan skills

Arahkan `kazzle.config.ts` ke `SKILL.md` setiap skill. Kazzle menggunakan foldernya, jadi `tools.ts` di sebelahnya akan diambil secara otomatis.

```typescript theme={"theme":"material-theme-darker"}
import { defineConfig } from '@kazzle/app';

export default defineConfig({
  components: [{ name: 'api', type: 'process', path: './components/api/index.ts' }],
  skills: [
    { name: 'API guide', path: './skills/api/SKILL.md' },
  ],
});
```

## SKILL.md

Markdown dengan frontmatter, diikuti instruksi yang harus diikuti AI.

```markdown theme={"theme":"material-theme-darker"}
---
name: API guide
description: Cara menggunakan alat aplikasi ini.
alwaysActive: true
---

Gunakan `save_bookmark` untuk menyimpan tautan. Ini mengembalikan konfirmasi.
```

## tools.ts

`tools.ts` di sebelah `SKILL.md` mendeklarasikan alat yang dapat dipanggil skill tersebut. Kontrak alat lengkap — tipe deklarasi, bentuk permintaan/respons handler, dan saluran hasil `content` vs `markdown` — ada di [Tools](/apps/tools).

```ts theme={"theme":"material-theme-darker"}
import { z } from 'zod';
import type { KazzleTool } from '@kazzle/app/tools';

export const tools = [
  {
    name: 'save_bookmark',
    displayName: 'Save bookmark',
    description: 'Simpan URL bookmark dan kembalikan konfirmasi.',
    input: z.object({ url: z.string().url(), title: z.string().optional() }).strict(),
    target: {
      type: 'app',
      component: 'api',
      path: '/tools/save-bookmark',
      method: 'POST',
      body: '${input}',
    },
  },
] as const satisfies readonly KazzleTool[];
```

## Bagaimana AI menggunakan skills

AI membaca `SKILL.md` sesuai permintaan (bukan semua skills di awal) untuk mendasarkan jawabannya, dan dapat memanggil alat yang dideklarasikan di `tools.ts`. Alat tanpa rute yang cocok tidak melakukan apa pun; tambahkan keduanya bersama-sama. `tools.json` tidak didukung.
