0Pricing
AI Agents · درس

وكيل لشرح الشيفرة

ابنِ وكيلًا يقرأ ملفات المصدر، ويطلب من LLM شرحًا، ثم يعيد توثيقًا بتنسيق Markdown.

وكيل لشرح الشيفرة درس مجاني في AI Agents على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AI Agents، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AI Agents 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

هدف المشروع

ابنوا وكيلًا يتلقى ملفًا مصدرًا (Python أو JS أو أي لغة أخرى) ويعيد توثيقًا بصيغة Markdown يتضمن الغرض والدوال الأساسية ومثالًا على الاستخدام.

لماذا هو مفيد؟

يُعد توليد التوثيق من الكود أحد أكثر حالات استخدام LLM موثوقية — فالكود منظَّم، والمهمة محددة، ويقرأ المخرجاتَ بشرٌ (لذلك يمكن التسامح مع الأخطاء البسيطة).

البنية

  1. قراءة الملف المصدر
  2. تقسيمه اختياريًا حسب الفئة/الدالة
  3. طلب شرح كل chunk من LLM
  4. دمجها في مستند Markdown

Step 1: Read the File

import sys

with open('example.py', 'w') as f:
    f.write('print("hello")\n')

path = sys.argv[1] if len(sys.argv) > 1 else 'example.py'
with open(path) as f:
    code = f.read()
print(f'Read {len(code)} characters from {path}')

Step 2: Prompt for Documentation

from openai import OpenAI
oai = OpenAI()

prompt = f'''
You are a senior engineer writing developer-friendly docs.

Given this source file, produce a Markdown document with:
# {path}

## Purpose
(One paragraph)

## Public API
(Each function/class with one-line description)

## Usage Example
(One short, runnable snippet)

Source:
```
{code}
```
'''

response = oai.chat.completions.create(
    model='gpt-4o-mini',
    messages=[{'role': 'user', 'content': prompt}],
    temperature=0.2,
)
print(response.choices[0].message.content)

معالجة الملفات الطويلة

إذا كان الملف طويلًا جدًا، فقسّموه حسب الدوال واشرحوا كل دالة على حدة:

import ast

tree = ast.parse(code)
functions = [node for node in ast.walk(tree) if isinstance(node, ast.FunctionDef)]

for func in functions:
    snippet = ast.unparse(func)
    explain(snippet)

الخطوة 3: دمج المخرجات

في عمليات التشغيل متعددة الـ chunks، ادمجوا الشروحات الخاصة بكل دالة في مستند واحد:

docs = []
for func_name, snippet in functions:
    explanation = explain(snippet)
    docs.append(f'### {func_name}\n\n{explanation}\n')

full_doc = '\n'.join(docs)
open('docs.md', 'w').write(full_doc)

إضافة ملخص على مستوى المشروع

بعد الشروحات الخاصة بكل دالة، اطلبوا من LLM تقديم نظرة عامة عالية المستوى:

summary_prompt = 'Summarise the purpose of this package in 3 sentences, given these function docs:\n\n' + full_doc
summary = ask(summary_prompt)

تعدد اللغات

يعمل prompt نفسه مع JS وGo وRust وغيرها. وللحصول على نتائج أفضل، أضيفوا اللغة إلى prompt:

prompt = f'You are documenting {language} code. ...'

توثيق قائم على الفروقات

بالنسبة إلى التحديثات التدريجية، أعيدوا التشغيل على الملفات التي تغيرت فقط:

import subprocess
changed = subprocess.check_output(['git', 'diff', '--name-only', 'HEAD~1']).decode().splitlines()
for path in changed:
    if path.endswith('.py'):
        regenerate_doc(path)

استخدام أداة لتشغيل المثال

تحققوا من أن مثال الاستخدام الذي أنشأه LLM يعمل فعلًا — امنحوا الوكيل أداة Python REPL:

def run_python(code):
    try:
        exec(code, {})
        return {'stdout': 'ok', 'stderr': ''}
    except Exception as e:
        return {'stdout': '', 'stderr': str(e)}

tools = [{'name': 'run_python', 'description': 'Execute a Python snippet and return stdout/stderr', 'parameters': {'code': 'str'}}]

broken_example = 'print(1/0)'
result = run_python(broken_example)
if result['stderr']:
    print('Example failed:', result['stderr'])
    fixed_example = 'print(1)'
    result = run_python(fixed_example)
    print('Self-corrected result:', result)
else:
    print('Example ran fine:', result)

عندما يهلوس الوكيل

يخترع النموذج أحيانًا دوال أو وسائط غير موجودة. ومن وسائل التخفيف:

  • توفير محتوى الملف فقط (من دون ذاكرة النموذج)
  • ضبط Temperature على 0
  • إضافة خطوة للتحقق (تشغيل المثال أو إجراء lint على المقتطف)

تحويله إلى منتج

غلّفوا هذا في CLI:

# pip install -e .
# docgen src/myproject/agent.py
# Outputs docs.md

من الأداة إلى CI

اربطوه بـ CI: عند كل PR، أعيدوا توليد التوثيق للملفات التي تغيرت وأعيدوا إيداعه. وهكذا يصبح مستودعكم موثقًا دائمًا.

لماذا نقرأ الملف كاملًا؟

لماذا نمرر ملف المصدر كاملًا إلى LLM بدلًا من تمرير تواقيع الدوال فقط؟

مراجعة

وكيل من 30 سطرًا يحوّل الكود إلى توثيق. من السهل توسيعه باستخدام الأدوات والتحقق. إنه مشروع ثانٍ ممتاز بعد RAG.

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

هل درس «وكيل لشرح الشيفرة» مجاني؟

نعم — نص درس «وكيل لشرح الشيفرة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AI Agents، انتقل إلى CoddyKit PRO. تتضمن دورة AI Agents 4 دروس في المجموع.

ماذا ستتعلم في «وكيل لشرح الشيفرة»؟

ابنِ وكيلًا يقرأ ملفات المصدر، ويطلب من LLM شرحًا، ثم يعيد توثيقًا بتنسيق Markdown. تتمرن على AI Agents مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ AI Agents؟

لا تُشترط خبرة سابقة. AI Agents على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «وكيل لشرح الشيفرة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس AI Agents هذا؟

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

جميع الدروس في هذه الدورة

  1. روبوت أسئلة وأجوبة فوق مستنداتك
  2. وكيل لشرح الشيفرة
  3. وكيل بحث وتصفح الويب
  4. مساعد SQL لقاعدة بياناتك
← العودة إلى AI Agents