تشريح المطالبات النظامية
حقن السياق والمطالبات الديناميكية
المطالبات الثابتة قوالب؛ المطالبات الديناميكية أنظمة حية. حقن السياق يحول التعليمات العامة إلى مساعدين واعين بالموقف.
ما هو حقن السياق؟
حقن السياق هو ممارسة إدراج معلومات وقت التشغيل في المطالبات النظامية:
Static: "You are a coding assistant."
Dynamic: "You are a coding assistant working on {{project_name}},
a {{framework}} project in {{language}}. The user is
{{username}} with {{permission_level}} access."
فئات السياق
1. سياق البيئة
معلومات عن بيئة التنفيذ:
<environment>
<working_directory>/Users/dev/my-project</working_directory>
<platform>darwin</platform>
<os_version>Darwin 24.6.0</os_version>
<shell>zsh</shell>
<node_version>20.10.0</node_version>
<python_version>3.12.1</python_version>
</environment>
2. سياق المستخدم
معلومات عن المستخدم الحالي:
<user>
<id>user_12345</id>
<name>Alice Developer</name>
<role>senior_engineer</role>
<preferences>
<language>typescript</language>
<style>functional</style>
<verbosity>concise</verbosity>
</preferences>
</user>
3. سياق المشروع
معلومات عن قاعدة الكود:
<project>
<name>my-saas-app</name>
<framework>Next.js 15</framework>
<language>TypeScript</language>
<package_manager>pnpm</package_manager>
<structure>
- src/app (App Router)
- src/components
- src/lib
- prisma/schema.prisma
</structure>
</project>
4. سياق المحادثة
معلومات عن التفاعل الحالي:
<conversation>
<message_count>12</message_count>
<current_task>implementing user authentication</current_task>
<files_modified>
- src/lib/auth.ts
- src/app/api/auth/route.ts
</files_modified>
<pending_actions>
- Run tests
- Update documentation
</pending_actions>
</conversation>
أنماط السياق من العالم الحقيقي
حقن سياق Cursor
Cursor يحقن سياق قاعدة كود غني:
<codebase_context>
Recently opened files:
- src/components/Button.tsx (modified 2 min ago)
- src/hooks/useAuth.ts (modified 5 min ago)
Symbols in scope:
- Button: React.FC<ButtonProps>
- useAuth: () => AuthContext
- api: AxiosInstance
Related files (by import graph):
- src/types/auth.ts
- src/lib/api-client.ts
</codebase_context>
حقن سياق Claude Code
Claude Code يتضمن حالة التنفيذ:
<session_context>
<git_status>
branch: feature/auth
staged: 2 files
unstaged: 1 file
untracked: 0 files
</git_status>
<recent_commands>
- npm test (exit: 1, 3 failures)
- npm run lint (exit: 0)
</recent_commands>
<active_todos>
- Fix test failures in auth.test.ts
- Update README with new API docs
</active_todos>
</session_context>
سياق ذاكرة Windsurf
Windsurf يحقن التفضيلات المتعلمة:
<memories>
<memory importance="high">
User prefers Tailwind CSS for styling
</memory>
<memory importance="medium">
Project uses PostgreSQL with Prisma ORM
</memory>
<memory importance="low">
User likes detailed commit messages
</memory>
</memories>
أنماط حقن السياق
النمط 1: XML/JSON مهيكل
<context type="environment">
<key>value</key>
</context>
المزايا: سهل التحليل، حدود واضحة العيوب: مطول، يستهلك الرموز
النمط 2: لغة طبيعية
The user is working on a Next.js project called "my-app"
located at /Users/dev/my-app. They prefer TypeScript and
use pnpm as their package manager.
المزايا: صديق للنموذج، مرن العيوب: أصعب للتحديث برمجياً
النمط 3: أزواج مفتاح-قيمة
PROJECT_NAME: my-app
FRAMEWORK: Next.js 15
LANGUAGE: TypeScript
PACKAGE_MANAGER: pnpm
المزايا: مدمج، قابل للمسح العيوب: هيكل محدود
تجميع المطالبات الديناميكية
الأنظمة الإنتاجية تجمع المطالبات برمجياً:
function buildSystemPrompt(context: Context): string {
const sections = [
buildIdentity(context.model),
buildCapabilities(context.tools),
buildEnvironment(context.env),
buildProjectContext(context.project),
buildUserContext(context.user),
buildGuidelines(context.rules),
buildConstraints(context.limits),
];
return sections.join('\n\n');
}
إدارة ميزانية الرموز
حقن السياق يتطلب إدارة رموز دقيقة:
| نوع السياق | الرموز النموذجية | الأولوية |
|---|---|---|
| الهوية الأساسية | 200-500 | حرجة |
| تعريفات الأدوات | 1,000-3,000 | حرجة |
| البيئة | 100-300 | عالية |
| هيكل المشروع | 500-2,000 | عالية |
| الملفات الأخيرة | 1,000-5,000 | متوسطة |
| تاريخ المحادثة | متغير | متوسطة |
| الذكريات | 200-1,000 | منخفضة |
نصيحة احترافية: استخدم تحميل السياق المتدرج—احقن السياق الأساسي دائماً، وأضف السياق المفصل فقط عندما يكون ذا صلة بالمهمة.
حداثة السياق
السياق القديم يسبب أخطاء. الأنظمة الإنتاجية تنفذ استراتيجيات تحديث:
const contextRefreshRules = {
environment: 'on_session_start',
git_status: 'before_each_command',
file_contents: 'on_file_change',
memories: 'on_session_start',
conversation: 'always_current',
};
الوحدة التالية: سنتعمق في أنماط محددة من مساعدي البرمجة بالذكاء الاصطناعي مثل Cursor و Windsurf و Claude Code. :::