ai-ml

دليل تعليمي حول مخزن ذاكرة وكلاء Claude المدارة (2026)

١٥ سبتمبر ٢٠٢٦

Claude Managed Agents Memory Store Tutorial (2026)

تبدأ جلسة Claude Managed Agents بحاوية (container) نظيفة وتنسى كل شيء بمجرد انتهائها. يقوم مخزن الذاكرة (memory store) بحل هذه المشكلة: فهو عبارة عن مجموعة من ملفات نصية صغيرة مرتبطة بنطاق مساحة العمل (workspace-scoped) يتم تركيبها داخل البيئة المعزولة (sandbox) الخاصة بالجلسة، بحيث يمكن للعميل (agent) قراءة ما تعلمه في المرة السابقة وكتابة ما تعلمه للتو1.

ملخص

ستستخدم @anthropic-ai/sdk لإنشاء مخزن ذاكرة، وتزويده بالبيانات الأولية، وربطه بجلسة بصلاحية وصول read_write. بعد ذلك، ستقوم بتحديث الذاكرة بشكل آمن في ظل عمليات كتابة متزامنة باستخدام شرط content_sha256 المسبق، بما في ذلك نمط إعادة المحاولة لخطأ التعارض 409 الذي يظهر. ستقوم أيضاً بقراءة سجل المراجعة (audit trail) الذي تتركه كل عملية كتابة.

مخازن الذاكرة موجودة في النسخة التجريبية العامة منذ 23 أبريل 20262، وتستخدم ترويسة (header) تجريبية خاصة بها، منفصلة عن بقية Managed Agents13. بيئة التشغيل: Node.js مع @anthropic-ai/sdk@0.125.0. وقت البناء: حوالي 20 دقيقة.

ما ستتعلمه

  • كيفية ربط مخزن الذاكرة بجلسة وظهوره داخل نظام ملفات البيئة المعزولة (sandbox)
  • كيفية إنشاء وتزويد وربط مخزن باستخدام أسماء طرق SDK الحقيقية والموثقة لـ TypeScript
  • كيفية تجنب مسح عملية كتابة متزامنة باستخدام شرط التزامن المتفائل content_sha256، بما في ذلك حالة استثنائية موثقة تظهر فقط في الكود المصدري لـ SDK وليس في الوثائق النصية
  • كيفية قراءة سجل الإصدارات الكامل للذاكرة من أجل سجل المراجعة، ولماذا لا يوجد نقطة نهاية (endpoint) مخصصة لـ "الاستعادة" (restore)
  • متى يتوقف كون مخازن الذاكرة مجانية: أبعاد التسعير الدقيقة ومثال عملي
  • ما الذي تم التحقق منه فعلياً في كود هذا البرنامج التعليمي، وما الذي سيتطلبه تشغيله بشكل حي إضافياً

المتطلبات الأساسية

  • Node.js 20 أو أحدث — يحدد ملف README الخاص بـ @anthropic-ai/sdk "Node.js 20 LTS أو أحدث" اعتباراً من إصدار SDK هذا.
  • @anthropic-ai/sdk@0.125.0 — تم تأكيده كأحدث إصدار latest منشور في السجل عبر npm view @anthropic-ai/sdk version في 2026-09-154. يتم إصدار هذه الحزمة بشكل متكرر؛ لذا قم بتثبيت الإصدار الدقيق في بيئة الإنتاج.
  • مفتاح ANTHROPIC_API_KEY إذا كنت ترغب في تشغيل أي من هذا فعلياً. مكالمات CRUD لمخزن الذاكرة خارج الجلسة لا تحمل رسوم تشغيل للجلسة، ولكن أي دور يتخذه العميل داخل جلسة مرتبطة يتم فوترته بأسعار التوكن القياسية بالإضافة إلى 0.08 دولار لكل ساعة جلسة5. انظر قسم التحقق أدناه لمعرفة ما تم التحقق منه بالضبط في كود هذا البرنامج التعليمي.
  • اختياري: واجهة ant CLI، يمكن تثبيتها عبر brew install anthropics/tap/ant على macOS، لاستخدام أوامر ant beta:memory-stores الموضحة في وثائق Anthropic6.

أي "ذاكرة Claude" هذه؟

تقدم Anthropic أربعة أشياء على الأقل يطلق عليها الناس "ذاكرة Claude"، وهذا هو الشيء الذي تتجاهله معظم البرامج التعليمية:

  1. أداة ذاكرة Messages API (memory_20250818) — وهي أداة من جهة العميل حيث يطلب Claude عمليات ملفات مقابل دليل /memories تقوم أنت باستضافته وبرمجته بنفسك. مغطاة في البرنامج التعليمي الخاص بنا حول أداة الذاكرة وتحرير السياق (Context Editing).
  2. SessionStore الخاص بـ Claude Agent SDK — يقوم بعمل نسخة احتياطية من النص الخام للجلسة إلى وحدة تخزين خارجية بحيث يمكن استئناف نفس المحادثة لاحقاً. هذه حزمة مختلفة (@anthropic-ai/claude-agent-sdk).
  3. CLAUDE.md الخاص بـ Claude Code — تعليمات على مستوى المشروع لـ Claude Code CLI، وليست ميزة API.
  4. مخازن الذاكرة المستضافة لـ Managed Agents — موضوع هذا المقال. تقوم Anthropic باستضافة طبقة التخزين؛ لذا لن تحتاج لكتابة معالج /memories على الإطلاق. يتم تثبيتها كمجلد عادي ويستخدم العميل (agent) نفس أدوات الملفات التي يمتلكها بالفعل1.

تعتبر مخازن الذاكرة أيضاً الأساس لعملية Dreaming، وهي عملية خلفية من Anthropic تقوم بمراجعة محتويات المخزن ودمجها في مخزن مخرجات جديد — لا تزال هذه الميزة في مرحلة المعاينة البحثية ومغطاة في درس Managed Agents Dreaming التعليمي7.

الخطوة 1: تثبيت الـ SDK والتأكد من الإصدار

mkdir memory-store-demo && cd memory-store-demo
npm init -y
npm install @anthropic-ai/sdk
npm view @anthropic-ai/sdk version

تم فحص الكود الخاص بهذا الدرس التعليمي مقابل الإصدار 0.125.0. جميع طرق مخزن الذاكرة المذكورة أدناه تقع تحت client.beta.memoryStores، و client.beta.memoryStores.memories، و client.beta.memoryStores.memoryVersions — تم التأكد من ذلك مباشرة من تعريفات الأنواع (type definitions) المرفقة مع الحزمة، وليس فقط من النصوص الوصفية في المستندات4.

الخطوة 2: إنشاء وتغذية مخزن الذاكرة

يحتاج المخزن إلى name؛ أما description فهو ما يظهر للعميل (agent)، لذا صغه لـ Claude وليس لنفسك:

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY });

const store = await client.beta.memoryStores.create({
  name: "repo-conventions",
  description: "Coding conventions and past review corrections for this repo.",
  metadata: { team: "platform" },
});

console.log(store.id); // memstore_...

حقل metadata — الذي يسمح بما يصل إلى 16 زوجاً من المفاتيح والقيم لتدوين ملاحظاتك الخاصة — لم يتم ذكره في أي مكان في النصوص الوصفية لمستندات الذاكرة. لا يمكن رؤيته إلا إذا قمت بتثبيت الـ SDK وقرأت memory_store_create_params مباشرة، وهو ما فعله هذا الدرس التعليمي8. هذا الحقل لا يظهر أبداً للعميل، على عكس description.

قم بتغذية المخزن بالبيانات قبل أن يتعامل معه أي عميل:

const seed = await client.beta.memoryStores.memories.create(store.id, {
  path: "/conventions.md",
  content: "Use tabs, not spaces. Prefer named exports.",
});

console.log(seed.id, seed.content_sha256);

كل ذكرى محدودة بـ 100 كيلوبايت (حوالي 25,000 توكن)، ويستوعب المخزن الواحد 10,000 ذكرى كحد أقصى. توصية Anthropic هي كتابة العديد من الملفات الصغيرة والمركزة بدلاً من بضعة ملفات كبيرة1.

الخطوة 3: ربط المخزن بجلسة

يتم ربط مخازن الذاكرة فقط عند إنشاء الجلسة — لا يمكنك إضافة أو إزالة مخزن من جلسة تعمل بالفعل1:

const session = await client.beta.sessions.create({
  agent: "agent_011CZkYpogX7uDKUyvBTophP",
  environment_id: "env_011CZkZ9X2dpNyB7HsEFoRfW",
  resources: [
    {
      type: "memory_store",
      memory_store_id: store.id,
      access: "read_write",
      instructions: "Check this before writing any code in this repo.",
    },
  ],
});

يأتي agent و environment_id من عميل وبيئة قمت بإنشائهما مسبقاً؛ كلا الحقلين، وشكل مصفوفة resources، تم نسخهم من نماذج الـ SDK المرفقة والتحقق منهم مقابل الأنواع المتاحة، ولم يتم تخمينهم9.

داخل البيئة المعزولة (sandbox)، يتم تثبيت المخزن في /mnt/memory/<slug>/، حيث يكون <slug> هو اسم عرض المخزن بأحرف صغيرة مع استبدال المسافات والرموز غير الأبجدية الرقمية بشرطة. المخزن المسمى "Demo Memory" يتم تثبيته في /mnt/memory/demo-memory/.

لا تقم بكتابة هذا المسار يدويًا. يعيد مورد تخزين الذاكرة الخاص بالجلسة حقل mount_path الحقيقي، وهو الحقل الذي يجب قراءته1. يتم تلقائيًا إضافة ملاحظة قصيرة تصف عملية الربط (الاسم، المسار، وضع الوصول، الوصف، التعليمات) إلى موجه النظام (system prompt)، لذا لا يحتاج العميل (agent) إلى إخباره بوجود المخزن.

يمكن للجلسة ربط ما يصل إلى 8 مخازن ذاكرة في وقت واحد — واحد لكل مستخدم، ومخزن مراجع مشترك للقراءة فقط، أو أي تقسيم يتناسب مع كيفية ملكية بياناتك فعليًا1.

وضع القراءة فقط ليس مجرد وسيلة لتجنب الأخطاء. إذا كانت الجلسة تعالج مدخلات غير موثوقة — مثل موجهات المستخدم، أو صفحات الويب التي يتم جلبها، أو مخرجات أدوات الطرف الثالث — فإن نجاح عملية "حقن الموجه" (prompt injection) يمكن أن يؤدي إلى كتابة محتوى ضار مباشرة في مخزن read_write. بعد ذلك، تقوم جلسة لاحقة بقراءة هذا المحتوى كذاكرة موثوقة.

إرشادات Anthropic واضحة تمامًا بشأن هذا الأمر: استخدم read_only للمواد المرجعية وأي شيء لا يحتاج العميل إلى تعديله. واجعل read_write للمخازن التي من المفترض أن يقوم العميل بتحديثها فعليًا1.

الخطوة 4: تحديث الذاكرة دون مسح كتابة متزامنة

يمكن لجلسيتين مشاركة مخزن واحد. إذا قامت كلتاهما بقراءة ذاكرة، وتعديلها، ثم إعادة كتابتها دون تنسيق، فإن الكتابة الثانية تمسح الأولى بصمت. الحل هو "التزامن المتفائل" (optimistic concurrency): قم بتمرير content_sha256 الذي قرأته، ولن يتم تطبيق التحديث إلا إذا لم يقم أي شيء آخر بتغييره أولاً.

async function updateWithRetry(
  memoryId: string,
  storeId: string,
  newContent: string,
): Promise<void> {
  const current = await client.beta.memoryStores.memories.retrieve(memoryId, {
    memory_store_id: storeId,
  });

  try {
    await client.beta.memoryStores.memories.update(memoryId, {
      memory_store_id: storeId,
      content: newContent,
      precondition: {
        type: "content_sha256",
        content_sha256: current.content_sha256,
      },
    });
  } catch (err) {
    if (err instanceof Anthropic.ConflictError) {
      // memory_precondition_failed_error (HTTP 409) — someone else wrote first.
      console.log("Precondition failed, retrying against fresh content...");
      return updateWithRetry(memoryId, storeId, newContent);
    }
    throw err;
  }
}

await updateWithRetry(
  seed.id,
  store.id,
  "Use tabs, not spaces. Prefer named exports. Avoid default exports.",
);

تعتبر Anthropic.ConflictError هي الفئة المصدرة الحقيقية في SDK لأي خطأ HTTP 409، وهو أمر مؤكد مباشرة في مصدر معالجة الأخطاء الخاص بها (if (status === 409) return new ConflictError(...))، وهو أسلوب أنظف من التحقق من err.status === 409 يدويًا10.

هناك حالة استثنائية تستحق المعرفة لا تذكرها الوثائق النصية على الإطلاق. إذا فشل الشرط المسبق، ولكن محتوى الذاكرة المخزن ومسارها يتطابقان تمامًا مع ما كنت على وشك كتابته، فإن API يعيد 200 بدلاً من 409. هذا السلوك موثق فقط في سلسلة توثيق المعلمات (docstring) الخاصة بـ SDK لـ precondition، وليس في صفحة وثائق الذاكرة8.

من الناحية العملية، هذا يعني أن حلقة إعادة المحاولة التي تصادف أنها تصل إلى نفس المحتوى الذي كتبه Claude بالفعل لن تستمر في الدوران إلى الأبد عند حدوث تعارض حقيقي — بل ستنجح بدلاً من ذلك.

الخطوة 5: قراءة سجل المراجعة

كل عملية كتابة — إنشاء، أو تحديث، أو حذف — تضيف إصدار ذاكرة غير قابل للتغيير. لا يوجد "سجل مراجعة" منفصل لربطه؛ فهو مدمج في المخزن:

for await (const version of client.beta.memoryStores.memoryVersions.list(store.id, {
  memory_id: seed.id,
})) {
  console.log(version.id, version.operation, version.created_at);
}

تكون قيمة version.operation واحدة من ثلاث قيم بالضبط: created، أو modified، أو deleted — وهذا مؤكد من تعريفات الأنواع في SDK، بما أن الوثائق النصية لا تسردها11. كما تدعم نقطة نهاية القائمة (list endpoint) التصفية حسب api_key_id، وبحسب operation، وبحسب نطاق created_at، وهي ميزات غير موثقة خارج مصدر SDK نفسه11.

يتم الاحتفاظ بالإصدارات لمدة 30 يومًا، باستثناء أن أحدث الإصدارات من الذاكرة التي لا تزال نشطة يتم الاحتفاظ بها بغض النظر عن عمرها1. لا توجد نقطة نهاية مخصصة لاستعادة البيانات.

للتراجع عن التغييرات، استرجع الإصدار الذي تريده واكتب content الخاص به مرة أخرى باستخدام memories.update — أو memories.create، إذا كانت الذاكرة نفسها قد حُذفت ولا يزال الإصدار الذي تريده محفوظاً1.

إذا كنت بحاجة إلى مسح شيء ما من السجل تماماً — مثل سر مسرب أو طلب حذف — فإن memoryVersions.redact() يقوم بذلك. ومع ذلك، لا يمكنه المساس بإصدار الرأس (head version) الحالي لذاكرة نشطة لا تزال قيد الاستخدام؛ لذا قم بكتابة إصدار جديد (أو احذف الذاكرة) أولاً، ثم قم بمسح الإصدار القديم1.

هناك تفصيل آخر يتعلق بالإسناد مدفون في مصدر SDK بدلاً من الوثائق. يسجل الإصدار من قام بكتابته كواحد من أربعة أنواع من الجهات الفاعلة: مفتاح API، أو حساب خدمة، أو جلسة، أو مستخدم. يوضح تعليق في المصدر أن "مفتاح API الذي أنشأ الجلسة لا يتم تسجيله في عمليات كتابة العميل؛ الإسناد يجيب على من قام بالكتابة، وليس من هو المسؤول في النهاية"11.

إذا كنت بحاجة إلى تتبع ذاكرة سيئة وصولاً إلى جلسة محددة من أجل المساءلة، فهذا يتطلب عملية بحث منفصلة — وليس شيئاً يوفره لك حقل الجهة الفاعلة في الإصدار مباشرة.

أنماط الإنتاج التي تستحق المحاكاة

قم بتقسيم المتاجر حسب المالك، وليس حسب السهولة. تخصيص متجر واحد لكل مستخدم نهائي أو لكل مشروع، بالإضافة إلى متجر read_only منفصل للمواد المرجعية المشتركة، يمنع وصول سقف الـ 10,000 ذاكرة لكل متجر إلى بيانات غير مرتبطة، ويجعل صلاحية الكتابة محصورة في الجلسات التي يجب أن تكتب بالفعل1.

ضع حداً أقصى للإنفاق غير المنضبط على مستوى الجلسة. تأخذ sessions.create() أيضاً حقلاً اختيارياً هو budget — "سقف إنفاق صارم. تتوقف الجلسة عن إصدار طلبات نماذج جديدة بمجرد أن تصل تكلفة القائمة المتتبعة إلى max_list_cost." هذا ليس خاصاً بالذاكرة، ولكنه افتراض معقول لأي جلسة يمكن أن تعمل لفترة من الوقت مقابل متجر مشترك9.

خطط لسقف الـ 10,000 ذاكرة قبل أن تصل إليه. بعد هذا الحد، تبدأ كل من استدعاءات memories.create المباشرة وعمليات كتابة الملفات الخاصة بالعميل في مسارات جديدة في الفشل؛ بينما تظل الذكريات الموجودة قابلة للقراءة والتعديل. المسار المقترح من Anthropic هو تقليم الذكريات القديمة، أو تشغيل جلسة Dreaming، والتي تدمج محتويات المتجر في متجر مخرجات جديد ومنفصل بدلاً من تعديل المتجر الأصلي — ثم تقوم بنقل الجلسات إليه وأرشفة أو حذف المتجر القديم17.

التكلفة الفعلية

استدعاءات CRUD لمتجر الذاكرة التي تتم مباشرة ضد API — إنشاء متجر، كتابة ذاكرة، سرد الإصدارات — لا تحمل رسوماً منفصلة في صفحة أسعار Anthropic؛ الرسوم الوحيدة الموثقة والخاصة بـ Managed-Agents هي التوكنز (بالأسعار القياسية لكل نموذج) ووقت تشغيل الجلسة5:

البندالسعر
توكنز المدخلات / المخرجاتأسعار API القياسية لكل نموذج
وقت تشغيل الجلسة0.08$ لكل ساعة جلسة، يتم احتسابها بالملي ثانية، فقط عندما يكون status = running
البحث في الويب داخل الجلسة10$ لكل 1,000 عملية بحث

مثال عملي من Anthropic: جلسة برمجة Claude Opus 5 لمدة ساعة واحدة تستخدم 50,000 توكن مدخلات و 15,000 توكن مخرجات تبلغ تكلفتها الإجمالية 0.705$ — منها 0.25$ لتوكنز المدخلات، و 0.375$ لتوكنز المخرجات، و 0.08$ لوقت تشغيل الجلسة5.

إضافة مخزن ذاكرة (memory store) إلى نفس الجلسة لا يضيف رسومًا منفصلة. إن عمليات القراءة والكتابة التي يقوم بها العميل (agent) داخل الـ sandbox هي التي تستهلك التوكنز، تمامًا مثل أي استدعاء لأداة أخرى. (هناك دليل من طرف ثالث يتداول رقم 0.25$ لكل ساعة جلسة للـ Managed Agents؛ لكن صفحة الأسعار الخاصة بـ Anthropic تذكر 0.08$، وهذا هو المصدر الأساسي الذي يعتمد عليه هذا المنشور5.)

الفرق التي بدأت في استخدامه

يقتبس منشور الإطلاق الخاص بـ Anthropic عدة مستخدمين مبكرين. هذه أرقام أبلغت عنها الشركات نفسها ونسبتها لنفسها — وليست معايير تم التحقق منها بشكل مستقل، وليست نتائج نموذجية متوقعة بمجرد التشغيل:

يُقتبس عن Yusuke Kaji من Rakuten، المدير العام لـ AI for Business، أن الذاكرة حققت "أخطاء أقل بنسبة 97% في المحاولة الأولى بتكلفة أقل بنسبة 27% وزمن استجابة أقل بنسبة 34%" في عملائهم الذين يعملون على مهام طويلة الأمد2. ويقول Denys Linkov، رئيس تعلم الآلة في Wisedocs، إن الذاكرة العابرة للجلسات في خط أنابيب التحقق من المستندات لديهم "سرّعت عملية التحقق بنسبة 30%"2. كما تم ذكر Netflix و Ando كمستخدمين، دون إرفاق رقم محدد لأي منهما2.

التحقق

ما تم التحقق منه، وما لم يتم: لم يتم تشغيل أي من الأكواد أعلاه مقابل جلسة Managed Agents حية — يتطلب ذلك ANTHROPIC_API_KEY مدفوع وعميل وبيئة حقيقية مهيأة بالفعل، وهو أمر خارج نطاق كتابة هذا البرنامج التعليمي. لا ينبغي قراءة أي شيء هنا على أنه "مخرجات وحدة تحكم (console output) تم التقاطها".

بدلاً من ذلك، تم التحقق من كل اسم طريقة (method name)، ومعامل (parameter)، وفئة خطأ (error class) أعلاه مقابل الـ SDKs الحقيقية والمنشورة حاليًا، ولم يتم افتراضها من النصوص الوصفية في الوثائق. تم تثبيت @anthropic-ai/sdk@0.125.0 حديثًا من سجل npm، وتمت قراءة ملفات .d.ts و .js المصدرية المرفقة مباشرة: memoryStores.create/retrieve/update/list/delete/archive، و .memories.create/retrieve/update/list/delete، و .memoryVersions.list/retrieve/redact، و Anthropic.ConflictError.

تم تثبيت Python SDK (anthropic@1.5.0، وهو أيضًا الإصدار الحالي على PyPI) بشكل منفصل، وتمت مراجعة مورد memory_stores وملفات الأنواع الخاصة به مقابل ملفات TypeScript. ثم تم فحص أنواع كل عينة TypeScript أعلاه باستخدام npx tsc --noEmit (TypeScript 7.0.2) مقابل تلك الحزمة المثبتة فعليًا — ولم تظهر أي أخطاء — بعد التأكد أولاً من أن الفاحص نفسه يكتشف خطأً حقيقيًا عن طريق تشغيله على ملف تجريبي مكسور عمدًا أولاً.

أوامر CLI (ant beta:memory-stores create، إلخ) ومثال إنشاء الجلسة في دليل البدء السريع هي أمثلة حرفية من وثائق Anthropic، تم إعادة إنتاجها هنا بدلاً من تشغيلها بشكل مستقل.

إذا كان لديك ANTHROPIC_API_KEY فعال، فإن كل مقتطف كود أعلاه قابل للنسخ واللصق كما هو: فقط استبدل معرف الـ agent ومعرف الـ environment_id بمعرفات حقيقية من حسابك وسيعمل الكود.

استكشاف الأخطاء وإصلاحها

طلب مخزن الذاكرة (memory-store) يعيد 400. من المرجح أنك أرسلت كل من managed-agents-2026-04-01 و agent-memory-2026-07-22 كترويسات بيتا (beta headers). نقاط نهاية مخزن الذاكرة تتطلب agent-memory-2026-07-22 فقط؛ ويقوم الـ SDK بتعيين هذا تلقائيًا إذا لم تكن تقوم بتعيين ترويسات بيتا يدويًا3.

تحديث الذاكرة يعيد 409. هذا هو خطأ memory_precondition_failed_error — حيث تمت عملية كتابة أخرى بين عملية القراءة وعملية التحديث الخاصة بك. أعد قراءة الذاكرة وحاول مرة أخرى، كما هو موضح في الخطوة 41.

عمليات كتابة العميل (agent) في /mnt/memory/... تفشل بصمت. تحقق من وضع access الخاص بالمخزن. عملية التثبيت (mount) بوضع read_only ترفض عمليات الكتابة على مستوى نظام الملفات؛ هذا إجراء تنفيذي وليس خطأً برمجياً1.

توقف إنشاء ذكريات جديدة. من المرجح أن المخزن قد وصل إلى الحد الأقصى وهو 10,000 ذكرى. تظل الذكريات الموجودة قابلة للقراءة والكتابة؛ فقط المسارات الجديدة هي التي تفشل. قم بتنقية البيانات، أو دمجها من خلال جلسة Dreaming1.

الخلاصة

مخزن الذاكرة هو جزء صغير ومحدد النطاق من البنية التحتية: ملفات نصية، مسار تثبيت، وضع وصول، وسجل مراجعة، مدمج في أدوات يعرف العميل بالفعل كيفية استخدامها.

الجزء الذي يسهل الخطأ فيه ليس المسار السهل، بل ما يحدث عندما تقوم جلستان بالكتابة في نفس المخزن في وقت واحد — وهو بالضبط ما وجد شرط content_sha256 المسبق لاكتشافه. اقرأ سجل الإصدارات قبل أن تبني نظام تسجيل خاص بك فوقه؛ فمعظم ما تحتاجه للإجابة على سؤال "هل قام العميل بذلك؟" موجود بالفعل هناك.

Footnotes

  1. Anthropic, "Using agent memory" — https://platform.claude.com/docs/en/managed-agents/memory (memory store definition, mount path derivation, size/count limits, access modes, prompt-injection guidance, version retention, redact rules, best practices; fetched 2026-09-15) 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

  2. Anthropic, "Built-in memory for Claude Managed Agents" — https://claude.com/blog/claude-managed-agents-memory (April 23, 2026 public-beta announcement; Rakuten, Wisedocs, Netflix, Ando customer quotes; fetched 2026-09-15) 2 3 4 5

  3. Anthropic, "Claude Managed Agents overview" — https://platform.claude.com/docs/en/managed-agents/overview (Managed Agents still in beta as of this fetch; managed-agents-2026-04-01 beta header; only MCP tunnels and Dreaming in research preview requiring access request; fetched 2026-09-15) 2 3

  4. npm registry — https://registry.npmjs.org/@anthropic-ai/sdk (version 0.125.0 confirmed via npm view @anthropic-ai/sdk version against the live registry, 2026-09-15); PyPI — pip index versions anthropic confirmed 1.5.0 as latest, same date 2

  5. Anthropic, "Pricing" — https://platform.claude.com/docs/en/about-claude/pricing (Claude Managed Agents pricing section: token rates, $0.08/session-hour runtime, $10/1,000 web searches, worked example; fetched 2026-09-15). A third-party guide (Tygart Media) states $0.25/session-hour; this post uses Anthropic's own page. 2 3 4 5

  6. Anthropic, "Get started with Claude Managed Agents" — https://platform.claude.com/docs/en/managed-agents/quickstart (CLI install command, SDK install, session-creation example; fetched 2026-09-15)

  7. NerdLevelTech, "Claude Managed Agents: Dreaming, Outcomes, Orchestration" — /claude-managed-agents-dreaming-outcomes-multiagent-orchestration (2026-05-10) 2

  8. anthropic Python SDK 1.5.0 (installed from PyPI and inspected directly, 2026-09-15) — anthropic/types/beta/memory_store_create_params.py (metadata field), anthropic/types/beta/memory_stores/beta_managed_agents_precondition_param.py (200-instead-of-409 behavior on matching content) 2

  9. @anthropic-ai/sdk 0.125.0 (installed from npm and inspected directly, 2026-09-15) — resources/beta/sessions/sessions.d.ts (SessionCreateParams, BetaManagedAgentsMemoryStoreResourceParam, budget field); example agent/environment_id IDs copied from this file's own JSDoc examples 2

  10. @anthropic-ai/sdk 0.125.0 — core/error.ts / error.d.ts (ConflictError extends APIError<409, Headers>)

  11. @anthropic-ai/sdk 0.125.0 — resources/beta/memory-stores/memory-versions.d.ts (MemoryVersionListParams filters, BetaManagedAgentsMemoryVersionOperation enum, actor attribution types and source comment) 2 3

الأسئلة الشائعة

هي مجموعة من الملفات النصية الصغيرة المحددة بنطاق مساحة العمل، والتي يتم تثبيتها كمجلد داخل البيئة المعزولة (sandbox) للجلسة، بحيث يمكن للعميل قراءة وكتابة حالة مستمرة تبقى بعد انتهاء الجلسة 1 .