Anthropic · Claude Enterprise · Slack agents

Claude Tag API: حوكمة وكلاء Slack ككود

دليل موثق لحوكمة Claude داخل Slack عبر Desired State وأقل صلاحية وضبط Bundles ومطابقة قابلة للتحقق.

المسار المرتبطالذكاء الاصطناعي وRAG والبحث المتجهي
مساحة داخلية في مقر Slack ترمز إلى تعاون العمل المحكوم
c

أطلقت Anthropic في 23 أكتوبر 2026 واجهة Claude Tag API بنسخة Beta لمؤسسات Claude Enterprise. تسمح الواجهة بقراءة إعدادات Claude Tag وتغييرها داخل قنوات Slack ومساحات العمل، ومعرفة الإعداد الفعلي ومصدر وراثته، وربط Access bundles. المعنى التشغيلي المهم ليس «بوت Slack جديدًا»، بل Control Plane لوكيل يشارك في محادثات الفرق وقد يحصل على وصول إلى Connectors وRepositories وCredentials.

تدعم الواجهة مسارات الموافقة وConfiguration as Code والتدقيق المستمر في الوصول، لكنها لا تربط Slack أوتنشئ Access bundles أوتعدلها، ولا تدير كل إعدادات Claude Tag، ولا تقرر بدل المؤسسة أي قناة تستحق أي صلاحية. التصميم الآمن يحتاج Desired State واضحة، وفهمًا صريحًا للوراثة، وحماية مفاتيح Admin API محددة النطاق، واعتبار وجود الضيوف تغييرًا في حدود الثقة، ومطابقة دورية بين Anthropic وSlack ونظام الموافقات الداخلي.

تاريخ الإصدار وسلوك Endpoints وScopes والمعرفات والقيود أدناه حقائق موثقة من Anthropic. أما Controller والسياسات وRisk Tiers ومراحل الإطلاق والتراجع فهي توصيات هندسية.

ما الذي تديره Claude Tag API؟

Claude Tag هي طريقة عمل Claude كزميل داخل Slack: يذكره شخص في قناة فيجيب داخل Thread. توثق Anthropic أربعة عشر Endpoint ضمن أربعة موارد:

  • قنوات Slack: Setup وList وFind وRead وUpdate وRemove؛
  • مساحات Slack: List وFind وRead وUpdate؛
  • Access bundles: List وRead؛
  • Bundle targets: List وAttach وRead وDetach.

تدير الواجهة خمسة إعدادات اختيارية على مستوى القناة أوWorkspace: enabled وinstructions وmodel وenvironment_id وguest_policy. ويمكنها إظهار القيم الموروثة والمصدر الذي قدم كل قيمة فعالة. تحتاج الطلبات إلى Admin API key على مستوى المؤسسة بصلاحية read:claude_tag أوwrite:claude_tag، وإلى Anthropic version header وBeta header المسمى experimental-claude-tag-2026-10-21.

الحد مهم: توضح Anthropic أن هذه قدرة تابعة لـClaude Enterprise على claude.ai وليست ميزة Claude Platform Workspace أوInference API. يبقى ربط Slack وفصله، وتغيير Organization defaults، وإنشاء Bundles وتعديلها، وحدود الإنفاق، والإعدادات الأخرى في claude.ai.

ابدأ بمصفوفة صلاحيات

لا تبدأ بتمكين Claude في كل القنوات ثم محاولة التنظيف. صنف القناة والمشاركين والبيانات التي تحملها والأفعال التي تستطيع Bundles تنفيذها.

نوع القناةالحالة الافتراضيةسياسة Bundlesسياسة الضيوفالموافقة
إعلانات عامة أوSocialمغلقةلا يوجدRestrictمسؤول التواصل
مساعدة هندسية داخليةبعد المراجعةDocs وIssue Search للقراءةRestrictالهندسة والأمن
Incident ResponseمؤقتةTelemetry للقراءة أولًا؛ الأفعال المميزة منفصلةRestrictقائد الحادث والأمن
دعم العملاءPilot محدودأنظمة دعم معزولة حسب TenantChannel-only أوRestrictالدعم والخصوصية والأمن
Finance أوLegal أوHRمغلقة افتراضيًالا Workspace Bundle واسعةRestrictمالك البيانات والأمن
Slack Connect أوGuest Channelمغلقة افتراضيًاأقل Channel Bundle ممكنةChannel-only أوRestrictمسؤول التعاون الخارجي

هذه مصفوفة تطبيقية وليست Default من Anthropic. سجل لكل استثناء المالك والغرض وتصنيف البيانات والموديل والبيئة وBundles وسياسة الضيوف وتاريخ الانتهاء.

افصل Desired وObserved وEffective State

يحتاج Controller الآمن إلى ثلاث رؤى:

  1. Desired State: ما تقرره سياسة معتمدة للقناة ومساحة العمل؛
  2. Observed State: ما تخزنه Claude Tag مباشرة على المورد؛
  3. Effective State: ما يطبق بعد وراثة إعدادات Workspace وSlack defaults.

لا تقارن Desired State فقط باستجابة include_inherited؛ فقد تخفي موضع تخزين القيمة. اقرأ Stored Settings بلا وراثة لتصحيح Drift، ثم اقرأ include_inherited=true للتحقق من النتيجة التي يراها المستخدم ومن Source لكل قيمة.

تحتاج instructions انتباهًا خاصًا: توثق Anthropic أن تعليمات القناة تضاف إلى التعليمات الموروثة ولا تستبدلها. قد تحمل القناة جملة محلية سليمة، بينما ترث قاعدة واسعة تغير السلوك النهائي. احفظ سلسلة التعليمات الفعالة أوHashes لها في Evidence، لا النص المحلي فقط.

يجري التحقق من model وenvironment وقت الكتابة ولا يعاد باستمرار. إذا تغير الموديل أوالبيئة لاحقًا تبقى القيمة المخزنة. لذلك يجب أن يفحص Reconciliation Job النص المخزن وحالة Catalog أوEnvironment الحالية.

يحتاج Claude داخل Slack إلى Control Plane محكومة للإعدادات وBundles وحدود الضيوف.
يحتاج Claude داخل Slack إلى Control Plane محكومة للإعدادات وBundles وحدود الضيوف. اضغط لعرض أكبر

لا تخلط Slack IDs بمعرفات Claude Tag

تعرض الواجهة معرفات slch_ وslws_ وcapp_ وbtgt_. ويستخدم Slack معرفات قنوات تبدأ بـC أوG ومساحات تبدأ بـT أوE. Query Parameters الخاصة بالبحث تأخذ Slack IDs، بينما علاقات Request bodies والاستجابات تستخدم غالبًا معرفات Claude Tag.

حل المعرفين واحفظهما:

{
  "slack_workspace_id": "T01ABCD2EFG",
  "slack_channel_id": "C05HJKL6MNP",
  "claude_workspace_id": "slws_...",
  "claude_channel_id": "slch_...",
  "policy_version": "claude-tag-prod-v3",
  "approved_bundles": ["capp_..."],
  "expires_at": "2026-12-31T23:59:59Z"
}

تذكر Anthropic أن إزالة Channel ثم إعدادها مجددًا ينشئ slch_ ID جديدًا، بينما يعيد القديم 404. عامل 404 الواضح على مورد صالح سابقًا كLifecycle Change، وأعد الحل عبر Slack IDs واطلب موافقة قبل إعادة الصلاحيات. لا تعيد إنشاء قناة مميزة تلقائيًا من Row قديم.

احمِ مسار الإدارة

افصل القراءة عن الكتابة. استخدم Read-only key للجرد وكشف Drift واللوحات، وضع Write key في Deployment Identity مخصصة لـReconciler أوApproval Job. توضح Anthropic أن Organization keys تستمر بعد مغادرة الشخص الذي أنشأها، لذا Offboarding للمستخدم لا يساوي تدوير المفتاح.

الضوابط العملية:

  • Secrets Manager بدل Repository أوCI plaintext؛
  • فصل read:claude_tag عن write:claude_tag؛
  • جلسات تشغيل قصيرة للبشر؛
  • تقييد Egress إلى Anthropic API؛
  • Request ID وهوية المنفذ ومرجع الموافقة وBefore/After hashes؛
  • Rotation مجدولة واختبار Emergency Revocation؛
  • تنبيه على Mutation لا تأتي من Reconciler أوOwner Workflow معتمد.

لا تطبع Instructions أوCredentials أوBundle Relationships في Logs منخفضة الثقة. لا تكشف Bundle metadata ما تمنحه فعليًا، لذا احتفظ بـCatalog داخلي يربط Bundle بمالكها وRisk Tier وتاريخ مراجعتها والأنظمة المقصودة دون نسخ Secrets.

عامل Access bundles كقدرات

Access bundle مجموعة وصول مسماة يمكن أن تشمل Connectors وRepositories وCredentials. ربطها بـWorkspace قد يمدها إلى كل القنوات؛ وربطها بقناة يضيق النطاق. Attachment قرار Authorization لا إعداد شكلي.

فضل Channel-level attachment للأدوات الحساسة. اجعل لكل Bundle غرضًا واحدًا وافصل Read عنWrite. لا تضع Documentation Search وIssue Lookup وDeployment Execution في Bundle واحدة باسم “engineering”. القناة التي تحتاج أول اثنتين لا يجب أن ترث الثالثة.

توثق Anthropic أن إرفاق الزوج نفسه من Bundle وTarget عملية Idempotent تعيد Target القائمة. استخدم ذلك في Reconciliation، لكن تحقق من Type وIDs المعادة. تسرد الواجهة Targets حسب Bundle، ولا تقدم Endpoint كاملة لكل Bundles الفعالة في Channel، وقد تضيف Rules أوDefaults صلاحيات لا تظهر في Direct Targets. ابنِ التدقيق من Bundles وTargets وSettings Sources وOrganization defaults معًا.

اعتبر وجود الضيف Policy Event

Guest Accounts وSlack Connect حدود ثقة خارجية. تدعم Claude Tag ثلاث سياسات: allow وrestrict وchannel_only. تسمح channel_only لـClaude بالإجابة باستخدام Bundles المرتبطة مباشرة بالقناة فقط، بينما restrict تمنعه من الإجابة عند وجود ضيوف.

اختر restrict كDefault حيث لا يحتمل عدم اليقين. لا تستخدم channel_only إلابعد مراجعة كل Direct Bundle للمشاركين الخارجيين، وكتابة Instructions تمنع كشف السياق الداخلي. السياسة لا تغير الرسائل والملفات التاريخية أوصلاحيات البشر الموجودة في Slack.

يجب أن يكتشف Audit:

  • قناة مفعلة بـallow وتحتوي مشاركين خارجيين؛
  • Workspace Bundle تصل إلى Shared Channel؛
  • channel_only بلا Bundle review موثقة؛
  • إضعاف Guest Policy دون موافقة التعاون الخارجي؛
  • تغير نوع المشاركين بعد الموافقة.

يبقى Slack هو Source of Truth لجرد القنوات والمشاركين. تقول Anthropic إن Claude Tag API تسرد القنوات المعدة فقط، وليس كل Slack Channels. طابق النظامين ولا تعتبر قائمة قصيرة دليلًا على النظافة.

ابنِ Approval-driven Reconciliation Loop

يمكن لمسار Production العمل هكذا:

  1. اقرأ Desired State المعتمدة من Signed Config أوPolicy DB؛
  2. اسرد Workspaces وكل صفحات Set-up Channels؛
  3. اقرأ Stored Settings ثم Effective Settings ومصادرها؛
  4. اسرد Bundles وكل صفحات Bundle Targets؛
  5. اضمم ملكية القناة والمشاركين من Slack؛
  6. احسب Plan تفصل الإضافات الآمنة عنScope Expansion وRemoval؛
  7. اطلب موافقة على وصول جديد أوWrite Bundle أوإضعاف Guest Policy؛
  8. طبق تغييرات محدودة وIdempotent؛
  9. أعد القراءة وأرفق Evidence بسجل التغيير؛
  10. نبه وتراجع إذا اختلف Final State عن Approved Plan.

Pagination ليست اختيارية. تحذر Anthropic من أن الصفحة قد تحمل عناصر أقل من limit مع بقاء next_page. استمر حتى تصبح next_page null. Controller يتوقف عند Short Page قد يفقد قنوات أوTargets بصمت.

أضف Optimistic Safeguards في طبقتك: احسب Hash للمورد المرصود قبل الموافقة، وأعد قراءته مباشرة قبل Mutation. إذا تغير، ألغ الخطة وأعد الحساب. لا توثق الواجهة ETag أوCompare-and-swap لهذا المسار، لذا Read-before-write وRead-back verification ضابطان هندسيان مهمان.

الإطلاق والتراجع

ابدأ Read-only inventory، ثم Drift Evaluation بلا Writes، ثم Pilot في Workspace منخفضة المخاطر وقنوات قليلة. فعّل Claude بعد ربط Bundles المقصودة كي لا تبدأ الجلسة الأولى بسياسة ناقصة.

للتراجع احتفظ بإصدار Desired State السابق وExact Before State. فضل تعطيل القناة وفصل Bundle خطرة على حذف Record. توثق Anthropic أن Remove Channel عملية مدمرة: تحذف Stored Settings وBundle Targets والجلسات وTranscripts والذاكرة وRoutines وPublished Artifacts، وتتطلب عادة تعطيل Claude أولًا. لذلك DELETE ليست تصحيح Drift اعتياديًا.

اختبر: Key منتهية أوملغاة، و403 بسبب Scope، و404 بعد إعادة إنشاء Channel، و400 عند وضع Slack ID في الحقل الخطأ، و503 عند تعذر قراءة Inherited Level، وPartial Pagination، ومنع Attachment بسبب On-call management، وEnvironment أصبحت غير نشطة بعد تخزينها.

أفضل الممارسات

  • Read-only inventory key مع Write key منفصلة ومحمية.
  • حفظ Slack IDs وClaude Tag IDs معًا.
  • مقارنة Stored وEffective settings وحفظ مصدر الوراثة.
  • Channel scope للـBundles الحساسة وفصل Read عنWrite.
  • Restrict افتراضيًا لقنوات الضيوف وSlack Connect.
  • مطابقة جرد Slack الكامل بموارد Claude Tag المعدة.
  • إكمال كل الصفحات حتى next_page null.
  • Read-back للـEffective State بعد كل Mutation.
  • Exceptions مؤقتة واختبار Revocation.
  • معاملة Remove Channel كحذف بيانات يحتاج موافقة صريحة.

Anti-patterns

  • Workspace Bundle واحدة تضم كل Connectors وCredentials.
  • Admin API key داخل Source Control أوShell Profile مشترك.
  • افتراض أن Offboarding يلغي Key أنشأها المستخدم.
  • مقارنة Inherited Output فقط وفقد مصدر الإعداد.
  • اعتبار Set-up Channels هي كل Slack Inventory.
  • تفعيل Claude قبل تثبيت Bundles وGuest Policy.
  • إعادة استخدام slch_ قديمة بعد حذف القناة وإعادة إعدادها.
  • إيقاف Pagination عند صفحة أقصر من limit.
  • استخدام DELETE لإعادة ضبط Drift دون فهم أثر الاحتفاظ.

القيود

الواجهة Beta وتتطلب Experimental Header، لذلك قد تتغير Contracts والإتاحة. وهي مخصصة لـClaude Enterprise وSlack. لا تدير Organization defaults أوConnect Slack أوCreate Bundles، ولا تكشف Grants داخلها، ولا تسرد كل Bundles الفعالة لقناة واحدة، ولا تتحكم في كل إعدادات Claude Tag. لا يمكن تغيير بعض Self-hosted Runner Pools من الواجهة، ولـGroup DMs قيود إضافية. كما لا تقرر الواجهة صحة Business Approval أوسلامة Scope الخاصة بـBundle.

هذه القيود سبب لبناء Controller ضيقة، لا سبب لترك الحوكمة يدوية. استخدم الواجهة كمصدر أدلة وMutation Surface واحدة داخل Governance Process أوسع.

الخلاصة التنفيذية

تحول Claude Tag API جزءًا من إدارة وكيل Slack إلى Interface قابلة للتدقيق. التصميم الدائم هو Desired-state Controller بمفاتيح محددة، ووراثة صريحة، وقدرات على مستوى القناة، وسياسة واعية بالضيوف، وPagination كاملة، وموافقة بشرية على توسيع النطاق، وRead-back Verification. عامل Bundles كصلاحيات والحذف كعملية مدمرة. الهدف إثبات أي Claude يستطيع استخدام أي Capability في أي قناة وتحت أي موافقة.

تابع عبر محور AI وRAG والبحث المتجهي، وخدمة Applied AI، ودليل ترحيل Anthropic API 2026-10-21، ومعمارية Anthropic User Profiles، ودليل إدخال RAG الآمن.

المراجع الأساسية

إعداد: Noor Yasser

المراجع الرسمية

تدعم هذه المراجع سلوك الأدوات المذكورة. الأمثلة وقرارات التصميم توضيحية، ويجب تكييفها مع متطلبات المشروع وإصداراته.

إعداد: Noor Yasser

من القرار إلى التنفيذ

تعمل على تحدٍ تقني مشابه؟

أساعد الفرق على تحويل القرار المعماري إلى نطاق واضح وتنفيذ يمكن تشغيله ومراجعته بثقة.

احجز لقاءً لمدة ٣٠ دقيقةالخدمة المرتبطةهندسة الأنظمة الخلفية وتكاملات APIمشروع من الأعمالمنصة اللوجستيات