احتفظ بسجل تدقيق لكل ما يغيّره وكلاء الذكاء الاصطناعي

أول مرة ينقل فيها وكيل ذكاء اصطناعي إحدى تذاكرك إلى العمود الخطأ، سيفتح أحدهم المهمة ويسأل: "من فعل هذا؟" وما يحدث بعدها يخبرك هل أعددت النظام إعدادًا صحيحًا.
إذا كان الجواب اسمًا، فأنت بخير. تفتح سجل النشاط، وترى أي وكيل أجرى التغيير ومتى وماذا لمس، ثم تقرر ما تفعله. أما إذا كان الجواب "البوت"، فلديك مشكلة. حساب البوت المشترك فاعل مجهول واحد. كل وكيل تربطه يكتب بالهوية نفسها، فيسجّل السجل أن "البوت" غيّر الأولوية، و"البوت" أغلق ثلاث مهام، و"البوت" ترك تعليقًا تبين لاحقًا أنه خاطئ.
لا تستطيع معرفة أي وكلائك الأربعة فعلها. ولا تستطيع قطع من أساء التصرف دون قطعهم جميعًا. وحين يسأل أحدهم في النهاية كيف حصل حقل على قيمته، فالجواب الصادق أنك لا تعرف.
هذه هي فجوة المساءلة التي تنفتح لحظة يصبح بمقدور الوكلاء الكتابة في أداة التتبع، وتستحق الإغلاق قبل أن تتوسع إلى ما بعد وكيل واحد.
مشكلة الرمز المشترك
رمز API واحد مشترك بين الوكلاء هو الافتراضي لأنه الأسهل. تصدر مفتاحًا واحدًا، وتلصقه في كل سكربت وكل عميل MCP، فيعمل كل شيء. تمتلئ اللوحة، وتعمل قواعد الأتمتة، ويبدو العرض التوضيحي رائعًا.
ثم ينحرف شيء ما وتذهب باحثًا عن أثر. فلا تجد أثرًا، أو على الأقل لا تجد أثرًا نافعًا. كل كتابة في التاريخ تُقرأ باسم الفاعل نفسه:
flowchart TD
A[Triage agent] --> T[One shared token]
B[Spec agent] --> T
C[Review agent] --> T
T --> L[Activity log]
L --> Q[Who did this]
Q --> U[No way to tell]
ترى أن تغييرًا حدث، لكن لا ترى من بين وكلائك أجراه. وهذا يعني أنك لا تستطيع تتبع تغيير سيئ إلى مصدره، ولا مقارنة سلوك وكيل بسلوك آخر، ولا إلغاء وصول وكيل واحد. إلغاء الرمز المشترك يقتل كل الوكلاء دفعة واحدة، فلا يلغيه أحد عمليًا، ويظل الوكيل المشكوك فيه يعمل لأن إيقافه أشد إرباكًا من إبقائه.
لا شيء من هذا مشكلة نموذج. إنها مشكلة هوية، وتحلها كما تحلها لفريق من البشر: امنح كل واحد اسمًا وبيانات اعتماد خاصة به.
امنح كل وكيل هويته الخاصة
في Taskfolk الوكيل عضو حقيقي في مساحة العمل، لا رمز. حين تربط وكيلًا من مركز الوكلاء، تسميه (من 2 إلى 60 حرفًا) وتختار مزوّده، Claude Code أو Codex أو Cursor أو Gemini وحفنة غيرها، أو وكيلًا مخصصًا عامًا. يحصل على صورة رمزية بشارة وكيل، ويظهر في قائمة اختيار المُسند إليه ضمن قسم "الوكلاء" إلى جانب أشخاصك، ويظهر في النشاط كأي عضو آخر. وأعضاء الوكلاء لا يُحتسبون مقاعد مدفوعة، فالقيام بالأمر على وجهه الصحيح لا يكلفك شيئًا.

الجزء المهم لسجل التدقيق: كل تعليق وكل تغيير حالة وكل تحديث مهمة يجريه ذلك الوكيل يُسجَّل في تاريخ نشاط المهمة باسم ذلك الوكيل تحديدًا. لا "البوت"، بل الاسم الذي أعطيته إياه. إذا ضبط وكيل "spec-drafter" أولوية وأضاف وكيل "triage" تسمية، يقول السجل ذلك بالضبط، بالترتيب، ومع الطوابع الزمنية.

المفتاح يتصرف باسم المستخدم الذي أنشأه، فأسرع فحص سلامة أن تسأل API إلى من يعود مفتاحك قبل أن يبدأ الوكيل الكتابة:
curl -H "Authorization: Bearer $TASKFOLK_API_KEY" \
https://taskfolk.ai/api/v1/me
إذا أعاد ذلك هوية الوكيل نفسه، فكل كتابة يجريها من تلك اللحظة تهبط في التاريخ تحت الاسم الصحيح. هذه المقروئية هي الغاية كلها. حين تستطيع قراءة التاريخ ورؤية وكلاء منفردين يتصرفون، يتوقف "من غيّر هذا؟" عن كونه سؤالًا بلا جواب ويصبح لمحة من ثانيتين.
والأثر نفسه قابل للاستعلام أيضًا. كل إدخال نشاط يحمل الفاعل ونوع التغيير وطابعًا زمنيًا:
curl -H "Authorization: Bearer $TASKFOLK_API_KEY" \
"https://taskfolk.ai/api/v1/workspaces/acme/projects/WEB/issues/WEB-12/activity"
{
"data": [
{
"id": "0197f2ab-...",
"kind": "status_changed",
"actor": { "id": "0197e011-...", "email": "[email protected]", "name": "Codex" },
"payload": { "from": "todo", "to": "in_progress" },
"created_at": "2026-07-14T09:12:44.000Z"
}
]
}
قيمة actor.id تلك هي معرّف المستخدم الخاص بالوكيل نفسه، لا معرّف بوت مشترك.
مفتاح واحد، وكيل واحد، إلغاء جراحي
كل وكيل يرتبط بمفتاح API خاص به محدود النطاق، يُصدر مرة ويُعرض مرة. ولأن المفتاح ملك وكيل واحد، فإن إلغاءه يقطع ذلك الوكيل بالضبط ولا شيء غيره. بقية وكلائك يواصلون العمل.
| الرمز المشترك | مفاتيح لكل وكيل | |
|---|---|---|
| إدخال السجل يُقرأ | "البوت" | اسم الوكيل |
| تتبع تغيير سيئ | لا | نعم، إلى وكيل واحد |
| إلغاء وكيل واحد | يقتل كل الوكلاء | يقتل ذلك الوكيل وحده |
| مقارنة سلوك الوكلاء | مستحيلة | اقرأ التاريخ |
هذا هو الفرق بين المشرط ومفتاح الكهرباء. مع الرمز المشترك، الضبط الوحيد المتاح لك هو الإطفاء. ومع مفاتيح لكل وكيل، تستطيع إحالة الوكيل الذي سجّل موجة مهام مكررة يوم الثلاثاء على التقاعد وترك بقية إعدادك دون مساس. ودورة حياة المفتاح نفسها مسجلة: أحداث api_key.created وapi_key.revoked تهبط في سجل تدقيق مساحة العمل على صفحة المطوّر.

تتبع المفاتيح قاعدة اقرأ بسخاء واكتب بضيق. نطاق write يمنح كتابات بمستوى العضو؛ وadmin مُبعد عمدًا عن write العادي، فالوكيل الذي قصدت منحه وصولًا عاديًا لا يستطيع الوصول بصمت إلى إجراءات بمستوى الإعدادات. حدد نطاق الوكيل ليقرأ اللوحة كلها ويكتب حيث يحتاج فقط، فيبقى الأثر الذي يتركه داخل الحد الذي رسمته.
الجلسات تسجّل التشغيل، لا الكتابات وحدها
الإسناد يجيب من غيّر الشيء. أما جلسات الوكلاء فتجيب ماذا كان الوكيل يفعل وهو يغيّره. الجلسة هي وسيلة الوكيل للإبلاغ عن تشغيل: تحمل عنوانًا، وملاحظة حالة (شيء مثل "blocked on env var")، ورابطًا خارجيًا، عادةً رابط طلب سحب. ويمكن تثبيت الجلسة على مهمة محددة مثل WEB-12 أو تشغيلها على مستوى مساحة العمل، وتظهر في مركز الوكلاء وعلى المهمة نفسها معًا.
بدء جلسة طلب واحد. بصيغة curl:
curl -X POST \
-H "Authorization: Bearer $TASKFOLK_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title": "Safari checkout regression", "issue_key": "WEB-12"}' \
https://taskfolk.ai/api/v1/workspaces/acme/agent-sessions
const res = await fetch(
"https://taskfolk.ai/api/v1/workspaces/acme/agent-sessions",
{
method: "POST",
headers: {
Authorization: `Bearer ${process.env.TASKFOLK_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
title: "Safari checkout regression",
issue_key: "WEB-12",
}),
},
);
const { data: session } = await res.json();
import os
import requests
res = requests.post(
"https://taskfolk.ai/api/v1/workspaces/acme/agent-sessions",
headers={"Authorization": f"Bearer {os.environ['TASKFOLK_API_KEY']}"},
json={"title": "Safari checkout regression", "issue_key": "WEB-12"},
)
session = res.json()["data"]
ثم تتنقل الجلسة بين الحالات، وكل تحديث PATCH نبضة حياة:
stateDiagram-v2
[*] --> running
running --> needs_input
needs_input --> running
running --> review
review --> done
running --> done
running --> failed
running --> cancelled
done --> [*]
failed --> [*]
cancelled --> [*]
وحين ينتهي الوكيل وطلب السحب مفتوح، نداء واحد إضافي يغلق الحلقة:
curl -X PATCH \
-H "Authorization: Bearer $TASKFOLK_API_KEY" \
-H "Content-Type: application/json" \
-d '{"state": "review", "external_url": "https://github.com/acme/web/pull/481"}' \
https://taskfolk.ai/api/v1/workspaces/acme/agent-sessions/SESSION_ID

فحين تراجع تغييرًا لاحقًا، تكون أمامك طبقتان. سجل النشاط يقول إن الوكيل رفع الأولوية إلى عالية وحرّك البطاقة. والجلسة تقول إن ذلك جرى أثناء تشغيل بعنوان "Safari checkout regression"، وإن الوكيل ربط طلب سحب، وإن الجلسة انتهت في "review" بانتظار شخص. هذا السياق هو ما يحوّل سطر سجل مجردًا إلى شيء تستطيع فعلًا التفكير فيه.
ملاحظة صريحة عن الجلسات. الجلسة التي تمضي 30 دقيقة بلا نبضة حياة تُعرض "متوقفة". هذه إشارة إلى أن تذهب وتنظر، لا دليل على أن شيئًا فشل. قد يكون الوكيل بانتظار بناء بطيء. اقرأها "افحص هذا"، لا "هذا معطّل".
الأثر يبقى بعد الوكيل
الوكلاء مؤقتون. تربط وكيلًا لمشروع، فيؤدي عمله، ثم تفصله في النهاية. والسؤال: ماذا يحل بكل ما فعله؟
السجل يبقى. حين تفصل وكيلًا، تظل تعليقاته وتغييرات حالته وتحديثاته السابقة منسوبة إليه في تاريخ النشاط. لا يتجوف سجل التدقيق إلى "مستخدم مجهول" ولا ينهار إلى ضبابية البوت المشترك. بعد ستة أشهر، حين يسأل أحدهم لماذا أُعيد ترتيب أولوية مهمة في الربيع الماضي، يظل الجواب هناك وعليه الاسم الصحيح، رغم أن الوكيل نفسه رحل منذ زمن. سجل التدقيق الذي ينسى من فعل ماذا لحظة مغادرته ليس سجل تدقيق.
أين يجب أن تكون الصراحة
هذا ليس تحقيقًا جنائيًا شاملًا على مستوى الحقل، وبيعه على هذا النحو غير أمين. النطاقات على مستوى المورد لا الحقل. يخبرك الأثر بموثوقية أي وكيل لمس أي مهمة وأي تعليق أو تغيير حالة أجرى. لكنه لا يفكك دائمًا كل تعديل حقل منفرد بالدقة نفسها. لمعظم أسئلة المساءلة، من غيّر هذه المهمة، من حرّك هذه البطاقة، من ترك هذا التعليق، هذه هي الدقة التي تحتاجها بالضبط. أما إن كنت تتوقع فرقًا لكل حقل على كل خاصية لإعادة بناء بمستوى الامتثال، فاعرف الحد قبل الدخول.
الوكلاء يحصلون فعلًا على دفع لحظي: كل وكيل مربوط يمسك تدفق SSE ينطلق لحظة إسناد مهمة إليه أو الإشارة إليه بـ @ أو تغيّر إحدى جلساته، فيتفاعل مع الحدث لا مع الاستطلاع (والاستطلاع العادي عبر REST يظل يعمل بديلًا احتياطيًا). وفي الحالين يسجّل الأثر ما حدث، بمعزل عن سرعة تفاعل الوكيل، وهذا من الأمور التي تستحق المعرفة قبل تركيب مسار عمل يفترض استجابة فورية.
ما الذي يشتريه لك هذا
سبب إتقان الهوية قبل التوسع بسيط: إنه الفرق بين وكلاء تستطيع الإشراف عليهم ووكلاء مضطر إلى الثقة بهم ثقة عمياء. مع وكلاء مسمّين ومفاتيح لكل وكيل وجلسات وإسناد دائم، تستطيع تشغيل عدة وكلاء معًا وما زلت تجيب عن كل "من فعل هذا؟" يظهر، وتتتبع التغيير السيئ إلى مصدره، وتلغي بالضبط من استحق الإلغاء. ومع رمز مشترك، تحصل على السرعة حتى أول خطأ، ثم تحصل على سجل مليء بـ "البوت" ولا طريقة نظيفة للتصرف بناءً عليه.
إن كنت تربط وكيلك الأول، فاربطه عضوًا مسمّى بمفتاحه محدود النطاق من مركز الوكلاء، وافحص سجل النشاط على تغييراته القليلة الأولى. قراءة سجل تدقيقك مرة واحدة أسرع طريقة لتعرف أنه سيصمد حين تحتاجه.
أسئلة شائعة
كيف تحتفظ بسجل تدقيق لما يغيّره وكلاء الذكاء الاصطناعي؟
امنح كل وكيل هويته الخاصة بدل حساب بوت مشترك. في Taskfolk كل وكيل عضو مسمّى في مساحة العمل بمفتاح API خاص محدود النطاق، فيُسجَّل كل تعليق وتغيير حالة وتحديث مهمة في تاريخ النشاط باسم ذلك الوكيل تحديدًا، مع الطوابع الزمنية، لا باسم "البوت".
لماذا يمثل رمز API المشترك مشكلة لوكلاء الذكاء الاصطناعي؟
كل كتابة في التاريخ تُقرأ باسم الفاعل المجهول نفسه، فلا تستطيع تتبع تغيير سيئ إلى مصدره، ولا مقارنة سلوك وكيل بآخر، ولا إلغاء وكيل واحد دون قتلهم جميعًا. إنها مشكلة هوية لا مشكلة نموذج، وتستحق الإصلاح قبل أن تتوسع إلى ما بعد وكيل واحد.
هل يمكن إلغاء وصول وكيل واحد دون قطع البقية؟
نعم، إذا كان لكل وكيل مفتاحه الخاص. في Taskfolk يرتبط كل وكيل بمفتاح API خاص محدود النطاق، فإلغاؤه يقطع ذلك الوكيل بالضبط بينما يواصل البقية العمل؛ ونطاق write العادي لا يصل أصلًا إلى إجراءات الإعدادات بمستوى admin.
ماذا يحل بسجل التدقيق حين تفصل وكيلًا؟
السجل يبقى. تظل التعليقات وتغييرات الحالة والتحديثات السابقة منسوبة إلى الوكيل باسمه في تاريخ النشاط، فبعد أشهر يظل سؤال "من غيّر هذا؟" يملك الجواب الصحيح رغم رحيل الوكيل منذ زمن.
قراءات ذات صلة

حوكمة وكلاء الذكاء الاصطناعي لفرق المشاريع: سبعة ضوابط تستطيع أداة التتبع فرضها
حوكمة وكلاء الذكاء الاصطناعي ليست ملف سياسات بصيغة PDF. سبعة ضوابط تفرضها أداة تتبع المشاريع بنفسها، من الهوية إلى الإخراج الكامل، وما لا تستطيع الأدوات إصلاحه.
15 يوليو 2026 · 10 د قراءة

كيف تدير فريقًا من وكلاء الذكاء الاصطناعي دون أن يفلت منك ما يفعلونه
تشغّل عدة وكلاء ذكاء اصطناعي معًا؟ الحياة اليومية لأسطول وكلاء: دليل بأسماء ومالكين، وجلسات حية، وتفويض فوري، وصلاحيات على مستوى الحقل، وعمل موثق بالأدلة.
15 يوليو 2026 · 16 د قراءة

أهّل وكيل الذكاء الاصطناعي كما تؤهّل موظفًا جديدًا: هوية وصلاحيات ومهمة أولى
أنت تعرف أصلًا كيف تستقبل موظفًا جديدًا. طبّق الأمر نفسه على وكيل الذكاء الاصطناعي: هوية حقيقية، وصلاحيات محدودة النطاق، ومهمة صغيرة واحدة، ومراجعة، ومسار خروج نظيف.
15 يوليو 2026 · 8 د قراءة

من يقرر ماذا: رسم حقوق القرار بين فريقك ووكلاء الذكاء الاصطناعي
قاعدة بسيطة لحوكمة الذكاء الاصطناعي: الخطوات القابلة للتراجع قليلة الرهان من حق الوكيل، وغير القابلة للتراجع أو عالية الرهان تحتاج إلى إنسان. هكذا ترسم الخط.
15 يوليو 2026 · 7 د قراءة

باكلوج مشترك لفريق من وكلاء البرمجة بالذكاء الاصطناعي
مدير مهام لوكلاء البرمجة بالذكاء الاصطناعي: امنح ثلاثة وكلاء باكلوجًا مشتركًا واحدًا، مع هوية لكل وكيل، وصلاحيات على الحقول، وتسليم عبر الحالات، وبوابات مراجعة بشرية.
16 يوليو 2026 · 13 د قراءة

ما هو متتبع المهام بالذكاء الاصطناعي فعلًا، وكيف تختاره
معظم الأدوات التي تقول «تتبع المهام بالذكاء الاصطناعي» تقصد زر تلخيص. قائمة تحقق من خمسة بنود لما ينبغي أن تعنيه التسمية، مع أنماط الفشل التي تستحق اختبارها في تشغيل تجريبي.
15 يوليو 2026 · 8 د قراءة

كيف تستخدم وكلاء الذكاء الاصطناعي في Taskfolk: اربطهم وأسند العمل وتابع جلساتهم
شرح عملي من البداية إلى النهاية: اربط وكيلًا، وحدّد صلاحيات مفتاحه، وأسند إليه المهام، وراقب جلساته، دون أن تتخلى عن السيطرة على اللوحة.
15 يوليو 2026 · 11 د قراءة

دع وكلاء الذكاء الاصطناعي يديرون لوحتك عبر REST API: المصادقة والنطاقات والكتابة الآمنة
دليل للمطورين لمنح وكيل الذكاء الاصطناعي مفتاح Taskfolk API مقيّدًا بنطاقات، فينقل البطاقات ويسجّل المهام دون نطاق ضرر واسع: مفتاح لكل وكيل، أدنى الامتيازات، تثبيت على المشروع، ومفاتيح idempotency على كل كتابة.
26 يونيو 2026 · 7 د قراءة

كيف تعرف أن وكيل الذكاء الاصطناعي عالق (وماذا تفعل حيال ذلك)
الوكيل الذي يدور في حلقة أو ينتظر أو معلق يبدو تمامًا كوكيل يعمل. إليك كيف تحصل على إشارة حقيقية عن الحالة الحية للوكيل وتلتقط التشغيلات العالقة.
15 يوليو 2026 · 7 د قراءة

لماذا أعطينا Taskfolk خادم MCP، وما الذي يغيّره
ما هو بروتوكول Model Context Protocol بكلمات بسيطة، ولماذا تناسب أداة تتبع المشاريع هذا الدور، وكيف يلتقط وكيل الذكاء الاصطناعي مساحة عملك دون أي كود ربط.
11 يوليو 2026 · 5 د قراءة
أضف تعليقًا
ابدأ النقاش.