Tool memori memungkinkan Claude untuk menyimpan dan mengambil informasi lintas percakapan melalui direktori file memori. Claude dapat membuat, membaca, memperbarui, dan menghapus file yang bertahan antar sesi, memungkinkannya membangun pengetahuan dari waktu ke waktu tanpa menyimpan semuanya dalam jendela konteks. Tool memori beroperasi di sisi klien—Anda mengontrol di mana dan bagaimana data disimpan melalui infrastruktur Anda sendiri.
Tool memori saat ini dalam versi beta. Untuk mengaktifkannya, gunakan header beta context-management-2025-06-27 dalam permintaan API Anda.Silakan hubungi kami melalui formulir umpan balik untuk berbagi umpan balik Anda tentang fitur ini.

Kasus penggunaan

  • Mempertahankan konteks proyek lintas beberapa eksekusi agen
  • Belajar dari interaksi masa lalu, keputusan, dan umpan balik
  • Membangun basis pengetahuan dari waktu ke waktu
  • Memungkinkan pembelajaran lintas percakapan di mana Claude meningkat pada alur kerja berulang

Cara kerjanya

Ketika diaktifkan, Claude secara otomatis memeriksa direktori memorinya sebelum memulai tugas. Claude dapat membuat, membaca, memperbarui, dan menghapus file dalam direktori /memories untuk menyimpan apa yang dipelajarinya saat bekerja, kemudian merujuk memori tersebut dalam percakapan masa depan untuk menangani tugas serupa dengan lebih efektif atau melanjutkan dari tempat terakhir kali berhenti. Karena ini adalah tool sisi klien, Claude melakukan panggilan tool untuk melakukan operasi memori, dan aplikasi Anda mengeksekusi operasi tersebut secara lokal. Ini memberi Anda kontrol penuh atas di mana dan bagaimana memori disimpan. Untuk keamanan, Anda harus membatasi semua operasi memori ke direktori /memories.

Contoh: Cara kerja panggilan tool memori

Ketika Anda meminta Claude untuk membantu dengan tugas, Claude secara otomatis memeriksa direktori memorinya terlebih dahulu. Berikut adalah tampilan interaksi yang khas: 1. Permintaan pengguna:
"Bantu saya merespons tiket layanan pelanggan ini."
2. Claude memeriksa direktori memori:
"Saya akan membantu Anda merespons tiket layanan pelanggan. Biarkan saya memeriksa memori saya untuk konteks sebelumnya."
Claude memanggil tool memori:
{
  "type": "tool_use",
  "id": "toolu_01C4D5E6F7G8H9I0J1K2L3M4",
  "name": "memory",
  "input": {
    "command": "view",
    "path": "/memories"
  }
}
3. Aplikasi Anda mengembalikan konten direktori:
{
  "type": "tool_result",
  "tool_use_id": "toolu_01C4D5E6F7G8H9I0J1K2L3M4",
  "content": "Directory: /memories\n- customer_service_guidelines.xml\n- refund_policies.xml"
}
4. Claude membaca file yang relevan:
{
  "type": "tool_use",
  "id": "toolu_01D5E6F7G8H9I0J1K2L3M4N5",
  "name": "memory",
  "input": {
    "command": "view",
    "path": "/memories/customer_service_guidelines.xml"
  }
}
5. Aplikasi Anda mengembalikan konten file:
{
  "type": "tool_result",
  "tool_use_id": "toolu_01D5E6F7G8H9I0J1K2L3M4N5",
  "content": "<guidelines>\n<addressing_customers>\n- Always address customers by their first name\n- Use empathetic language\n..."
}
6. Claude menggunakan memori untuk membantu:
"Berdasarkan pedoman layanan pelanggan Anda, saya dapat membantu Anda menyusun respons. Silakan bagikan detail tiket..."

Model yang didukung

Tool memori tersedia pada:
  • Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
  • Claude Sonnet 4 (claude-sonnet-4-20250514)
  • Claude Opus 4.1 (claude-opus-4-1-20250805)
  • Claude Opus 4 (claude-opus-4-20250514)

Memulai

Untuk menggunakan tool memori:
  1. Sertakan header beta context-management-2025-06-27 dalam permintaan API Anda
  2. Tambahkan tool memori ke permintaan Anda
  3. Implementasikan handler sisi klien untuk operasi memori
Untuk menangani operasi tool memori dalam aplikasi Anda, Anda perlu mengimplementasikan handler untuk setiap perintah memori. SDK kami menyediakan helper tool memori yang menangani antarmuka tool—Anda dapat membuat subclass BetaAbstractMemoryTool (Python) atau menggunakan betaMemoryTool (TypeScript) untuk mengimplementasikan backend memori Anda sendiri (berbasis file, database, penyimpanan cloud, file terenkripsi, dll.).Untuk contoh yang berfungsi, lihat:

Penggunaan dasar

curl https://api.anthropic.com/v1/messages \
    --header "x-api-key: $ANTHROPIC_API_KEY" \
    --header "anthropic-version: 2023-06-01" \
    --header "content-type: application/json" \
    --header "anthropic-beta: context-management-2025-06-27" \
    --data '{
        "model": "claude-sonnet-4-5",
        "max_tokens": 2048,
        "messages": [
            {
                "role": "user",
                "content": "Saya sedang mengerjakan web scraper Python yang terus crash dengan error timeout. Berikut adalah fungsi yang bermasalah:\n\n```python\ndef fetch_page(url, retries=3):\n    for i in range(retries):\n        try:\n            response = requests.get(url, timeout=5)\n            return response.text\n        except requests.exceptions.Timeout:\n            if i == retries - 1:\n                raise\n            time.sleep(1)\n```\n\nTolong bantu saya debug ini."
            }
        ],
        "tools": [{
            "type": "memory_20250818",
            "name": "memory"
        }]
    }'

Perintah tool

Implementasi sisi klien Anda perlu menangani perintah tool memori ini:

view

Menampilkan konten direktori atau konten file dengan rentang baris opsional:
{
  "command": "view",
  "path": "/memories",
  "view_range": [1, 10]  // Opsional: lihat baris tertentu
}

create

Membuat atau menimpa file:
{
  "command": "create",
  "path": "/memories/notes.txt",
  "file_text": "Catatan rapat:\n- Membahas timeline proyek\n- Langkah selanjutnya didefinisikan\n"
}

str_replace

Mengganti teks dalam file:
{
  "command": "str_replace",
  "path": "/memories/preferences.txt",
  "old_str": "Warna favorit: biru",
  "new_str": "Warna favorit: hijau"
}

insert

Menyisipkan teks pada baris tertentu:
{
  "command": "insert",
  "path": "/memories/todo.txt",
  "insert_line": 2,
  "insert_text": "- Tinjau dokumentasi tool memori\n"
}

delete

Menghapus file atau direktori:
{
  "command": "delete",
  "path": "/memories/old_file.txt"
}

rename

Mengganti nama atau memindahkan file/direktori:
{
  "command": "rename",
  "old_path": "/memories/draft.txt",
  "new_path": "/memories/final.txt"
}

Panduan prompting

Kami secara otomatis menyertakan instruksi ini ke system prompt ketika tool memori disertakan:
PENTING: SELALU LIHAT DIREKTORI MEMORI ANDA SEBELUM MELAKUKAN HAL LAIN.
PROTOKOL MEMORI:
1. Gunakan perintah `view` dari tool `memory` Anda untuk memeriksa kemajuan sebelumnya.
2. ... (kerjakan tugas) ...
     - Saat Anda membuat kemajuan, catat status / kemajuan / pemikiran dll dalam memori Anda.
ASUMSIKAN INTERUPSI: Jendela konteks Anda mungkin direset kapan saja, jadi Anda berisiko kehilangan kemajuan apa pun yang tidak dicatat dalam direktori memori Anda.
Jika Anda mengamati Claude membuat file memori yang berantakan, Anda dapat menyertakan instruksi ini:
Catatan: saat mengedit folder memori Anda, selalu coba jaga kontennya tetap terkini, koheren dan terorganisir. Anda dapat mengganti nama atau menghapus file yang tidak lagi relevan. Jangan buat file baru kecuali diperlukan.
Anda juga dapat memandu apa yang Claude tulis ke memori, misalnya, “Hanya tulis informasi yang relevan dengan <topik> dalam sistem memori Anda.”

Pertimbangan keamanan

Berikut adalah masalah keamanan penting saat mengimplementasikan penyimpanan memori Anda:

Informasi sensitif

Claude biasanya akan menolak untuk menuliskan informasi sensitif dalam file memori. Namun, Anda mungkin ingin mengimplementasikan validasi yang lebih ketat yang menghilangkan informasi yang berpotensi sensitif.

Ukuran penyimpanan file

Pertimbangkan untuk melacak ukuran file memori dan mencegah file tumbuh terlalu besar. Pertimbangkan menambahkan jumlah maksimum karakter yang dapat dikembalikan perintah baca memori, dan biarkan Claude melakukan paginasi melalui konten.

Kedaluwarsa memori

Pertimbangkan untuk membersihkan file memori secara berkala yang tidak diakses dalam waktu yang lama.

Perlindungan path traversal

Input path yang berbahaya dapat mencoba mengakses file di luar direktori /memories. Implementasi Anda HARUS memvalidasi semua path untuk mencegah serangan directory traversal.
Pertimbangkan perlindungan ini:
  • Validasi bahwa semua path dimulai dengan /memories
  • Resolve path ke bentuk kanoniknya dan verifikasi mereka tetap dalam direktori memori
  • Tolak path yang mengandung urutan seperti ../, ..\\, atau pola traversal lainnya
  • Perhatikan urutan traversal yang dikodekan URL (%2e%2e%2f)
  • Gunakan utilitas keamanan path bawaan bahasa Anda (misalnya, pathlib.Path.resolve() dan relative_to() Python)

Penanganan error

Tool memori menggunakan pola penanganan error yang sama seperti tool text editor. Error umum termasuk file tidak ditemukan, error izin, dan path tidak valid.