78 lines
21 KiB
HTML
78 lines
21 KiB
HTML
<!doctype html>
|
||
<html lang="ar" dir="rtl">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<meta name="referrer" content="strict-origin-when-cross-origin" />
|
||
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'none'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-src 'none'; worker-src 'none'" />
|
||
<meta name="description" content="دليل أنور بي آي العملي لبناء وكيل ذكاء اصطناعي واضح الحدود وقابل للتحقق." />
|
||
<title>ابنِ وكيلك الأول دون فوضى — أنور بي آي</title>
|
||
<style>
|
||
:root {
|
||
--bg: oklch(12% 0 0); --surface: oklch(16% 0 0); --fg: oklch(94% 0 0);
|
||
--muted: oklch(65% 0 0); --border: oklch(26% 0 0); --accent: oklch(96% 0 0);
|
||
--accent-soft: color-mix(in oklch, var(--accent) 12%, transparent); --fg-soft: color-mix(in oklch, var(--fg) 6%, transparent);
|
||
--font-display: "SF Arabic", "Noto Sans Arabic", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
||
--font-body: "SF Arabic", "Noto Sans Arabic", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
||
--font-mono: ui-monospace, "SF Mono", Menlo, monospace; --container: 1180px; --gutter: 32px;
|
||
}
|
||
*,*::before,*::after{box-sizing:border-box} html{scroll-behavior:smooth;-webkit-text-size-adjust:100%} body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.75 var(--font-body);text-rendering:optimizeLegibility} body.locked{overflow:hidden}
|
||
a{color:inherit;text-decoration:none} button,input,textarea{font:inherit} button{cursor:pointer} h1,h2,h3{font-family:var(--font-display);text-wrap:balance} p{text-wrap:pretty} :focus-visible{outline:3px solid color-mix(in oklch,var(--accent) 55%,transparent);outline-offset:3px}
|
||
.container{max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)} .topnav{position:sticky;top:0;z-index:20;background:color-mix(in oklch,var(--bg) 92%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--border)} .nav-inner{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:24px}
|
||
.logo{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:23px;font-weight:700}.logo-mark{width:12px;height:12px;background:var(--fg);transform:rotate(45deg)} .nav-links{display:flex;align-items:center;gap:28px}.nav-links a{min-height:44px;display:inline-flex;align-items:center;color:var(--muted)}.nav-links a:hover{color:var(--fg)}
|
||
.nav-tools{display:flex;align-items:center;gap:8px}.nav-login,.icon-btn{min-height:44px;border:1px solid var(--border);background:transparent;color:var(--fg);display:inline-grid;place-items:center}.nav-login{padding-inline:16px}.nav-login:hover,.icon-btn:hover{border-color:var(--fg);background:var(--fg-soft)}.icon-btn{width:46px}.menu-trigger{background:var(--fg);color:var(--surface);border-color:var(--fg)}.menu-trigger:hover{background:var(--accent);color:var(--surface);border-color:var(--accent)}
|
||
.article-head{padding-block:clamp(58px,9vw,110px);border-bottom:1px solid var(--border)}.crumb{font:12px/1.5 var(--font-mono);color:var(--accent);margin:0 0 20px}.access-chip{display:inline-flex;align-items:center;min-height:34px;padding:6px 14px;border:1px solid var(--accent);color:var(--accent);font:12px/1.5 var(--font-mono);margin-bottom:22px}.article-head h1{font-size:clamp(48px,7.4vw,94px);line-height:1.06;letter-spacing:-.025em;max-width:12ch;margin:0}.dek{font-size:clamp(19px,2vw,24px);line-height:1.7;color:var(--muted);max-width:58ch;margin:28px 0 0}.article-meta{display:flex;align-items:center;flex-wrap:wrap;gap:14px 24px;margin-top:34px;padding-top:20px;border-top:1px solid var(--border);font:12px/1.5 var(--font-mono);color:var(--muted)}
|
||
.article-layout{display:grid;grid-template-columns:minmax(0,740px) 240px;gap:clamp(48px,8vw,100px);align-items:start;padding-block:80px}.article-body{font-size:19px;line-height:2}.article-body h2{font-size:clamp(32px,4vw,48px);line-height:1.2;margin:72px 0 20px}.article-body h3{font-size:27px;margin:42px 0 14px}.article-body p{margin:0 0 26px}.article-body ul{padding-inline-start:24px}.article-body li{margin-block:10px}.lede{font-family:var(--font-display);font-size:28px;line-height:1.6}.code{direction:ltr;text-align:left;background:var(--fg);color:var(--surface);padding:26px;overflow:auto;font:14px/1.8 var(--font-mono);margin:34px 0}.note{border-block:1px solid var(--fg);padding:28px 0;margin:42px 0}.note strong{display:block;font-family:var(--font-display);font-size:24px;margin-bottom:8px}.steps{counter-reset:step;list-style:none;padding:0}.steps li{counter-increment:step;display:grid;grid-template-columns:52px 1fr;gap:18px;padding:22px 0;border-top:1px solid var(--border)}.steps li::before{content:counter(step,decimal-leading-zero);font:14px/1.7 var(--font-mono);color:var(--accent)}
|
||
.toc{position:sticky;top:100px;border-top:1px solid var(--fg);padding-top:18px}.toc strong{font-family:var(--font-display);font-size:20px}.toc a{display:block;padding:11px 0;border-bottom:1px solid var(--border);color:var(--muted)}.toc a:hover{color:var(--fg)}.member-note{margin-top:28px;padding:22px;background:var(--fg);color:var(--surface)}.member-note p{color:color-mix(in oklch,var(--surface) 72%,transparent);font-size:14px}.btn{min-height:46px;display:inline-flex;align-items:center;justify-content:center;padding:11px 20px;border:1px solid transparent;font-weight:700}.btn-primary{background:var(--accent);color:var(--surface);border-color:var(--accent)}.btn-primary:hover{background:color-mix(in oklch,var(--accent) 86%,black);color:var(--surface)}.btn-secondary{background:transparent;color:var(--fg);border-color:var(--border)}.btn-secondary:hover{background:var(--fg);color:var(--surface);border-color:var(--fg)}
|
||
.comments{padding-block:80px;border-top:1px solid var(--border)}.comments-wrap{max-width:740px}.comments h2{font-size:clamp(36px,5vw,54px);margin:0}.comment-empty{color:var(--muted);padding:28px 0;border-bottom:1px solid var(--border)}.comment-list{display:grid}.comment{padding:24px 0;border-bottom:1px solid var(--border)}.comment-head{display:flex;justify-content:space-between;gap:16px}.comment p{margin:8px 0 0}.comment-form{display:grid;gap:18px;margin-top:36px}.field{display:grid;gap:7px}.field label{font-size:13px;color:var(--muted)}.input,.textarea{width:100%;border:1px solid var(--border);background:var(--surface);color:var(--fg);padding:13px 14px;border-radius:0}.textarea{min-height:130px;resize:vertical}.input:focus,.textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.form-status{min-height:24px;color:var(--accent);font-weight:700}
|
||
.related{padding-block:80px;border-top:1px solid var(--border)}.related-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--fg)}.related-card{padding:24px 0;border-bottom:1px solid var(--border)}.related-card+.related-card{margin-inline-start:28px}.related-card span{font:12px/1.5 var(--font-mono);color:var(--muted)}.related-card h3{font-size:24px;margin:12px 0}.related-card a{font-weight:700}.related-card a:hover{color:var(--accent)}
|
||
.pagefoot{padding-block:54px;border-top:1px solid var(--border);color:var(--muted)}.footer-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:44px}.footer-col strong{display:block;color:var(--fg);margin-bottom:12px}.footer-col a{display:block;min-height:36px}.footer-col a:hover{color:var(--fg);text-decoration:underline}.footer-bottom{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-top:28px;margin-top:38px;border-top:1px solid var(--border);font-size:13px}
|
||
.menu-panel{position:fixed;inset:0;z-index:60;visibility:hidden;pointer-events:none}.menu-panel.open{visibility:visible;pointer-events:auto}.menu-scrim{position:absolute;inset:0;border:0;background:color-mix(in oklch,var(--fg) 55%,transparent);opacity:0}.menu-panel.open .menu-scrim{opacity:1}.menu-drawer{position:absolute;inset-block:0;inset-inline-start:0;width:min(520px,92vw);padding:28px clamp(24px,5vw,54px);background:var(--bg);border-inline-end:1px solid var(--fg);transform:translateX(105%);transition:transform .25s ease;display:flex;flex-direction:column}.menu-panel.open .menu-drawer{transform:translateX(0)}.menu-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:24px;border-bottom:1px solid var(--border)}.menu-links{display:grid;margin-top:34px}.menu-links a{min-height:70px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);font-family:var(--font-display);font-size:clamp(27px,4vw,38px)}.menu-links a:hover{color:var(--accent)}.menu-foot{margin-top:auto;color:var(--muted)}
|
||
@media(max-width:920px){:root{--gutter:22px}.nav-links{display:none}.article-layout{grid-template-columns:1fr}.toc{position:static;order:0;margin-top:24px}.footer-grid{grid-template-columns:1fr 1fr}.related-grid{grid-template-columns:1fr}.related-card+.related-card{margin-inline-start:0}.article-body{font-size:18px}}
|
||
@media(max-width:620px){:root{--gutter:18px}.nav-login{display:none}.article-head h1{font-size:48px}.article-layout,.comments,.related{padding-block:56px}.footer-grid{grid-template-columns:1fr;gap:28px}.article-meta{align-items:flex-start;flex-direction:column}.steps li{grid-template-columns:38px 1fr}}
|
||
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important}}
|
||
</style>
|
||
<link rel="stylesheet" href="assets/anwarpi.css?v=5">
|
||
<script src="assets/anwarpi.js?v=4" defer></script>
|
||
</head>
|
||
<body data-anw-dim>
|
||
<header class="topnav" data-od-id="topnav"><div class="container nav-inner"><a class="logo" href="arabic-ai-learning-catalog.html"><img class="logo-mark" src="assets/anwarpi-logo.jpg" alt="" width="1200" height="1352">أنور بي آي</a><nav class="nav-links" aria-label="التنقل الرئيسي"><a href="arabic-ai-learning-catalog.html#catalog">المكتبة</a><a href="article-agent-guide.html">المقالات</a><a href="subscription.html">العضوية</a></nav><div class="nav-tools"><a class="nav-login" href="login.html">تسجيل الدخول</a><button class="icon-btn menu-trigger" id="menuTrigger" aria-label="فتح القائمة" aria-expanded="false" aria-controls="siteMenu" data-od-id="menu-button">☰</button></div></div></header>
|
||
<main>
|
||
<section class="article-head" data-od-id="article-header"><div class="container"><span class="access-chip" data-od-id="access-status">مقال مجاني · متاح بالكامل</span><p class="crumb">الوكلاء · دليل عملي</p><h1 data-od-id="article-title">ابنِ وكيلك الأول دون فوضى</h1><p class="dek">خريطة عملية تفصل التخطيط عن التنفيذ والتحقق، حتى تعرف لماذا نجح الوكيل — ولماذا فشل.</p><div class="article-meta"><span>فريق تحرير أنور بي آي</span><span class="num">قراءة ١٢ دقيقة</span><span>محدّث: أكتوبر ٢٠٢٦</span><button class="btn btn-secondary" id="saveArticle" type="button" aria-pressed="false" data-od-id="save-article">احفظ للعودة لاحقاً</button></div></div></section>
|
||
<section class="container article-layout" data-od-id="article-content">
|
||
<article class="article-body">
|
||
<p class="lede">الوكيل الجيد ليس محادثة أطول. هو نظام صغير يعرف ما المطلوب، يختار أداة مناسبة، ثم يتحقق من النتيجة قبل أن يكمل.</p>
|
||
<p>أغلب التجارب الأولى تفشل لأن كل شيء يحدث داخل تعليمات واحدة: الهدف، والبيانات، والأدوات، والذاكرة. عندما يتعثر النظام لا تعرف هل المشكلة في الفهم أم التنفيذ أم التحقق. الحل ليس إضافة تعليمات أكثر؛ بل فصل المسؤوليات.</p>
|
||
<h2 id="goal">١. اكتب نتيجة يمكن فحصها</h2>
|
||
<p>ابدأ بما يجب أن يكون صحيحاً عند النهاية. «ابحث عن أفضل خيار» هدف ضبابي. أما «أنشئ قائمة من ثلاثة خيارات، مع المصدر والسعر وتاريخ التحقق» فيمكن اختباره.</p>
|
||
<div class="note"><strong>قاعدة أنور بي آي</strong>إذا لم تستطع كتابة اختبار بسيط للنتيجة، فلن يعرف الوكيل متى يتوقف.</div>
|
||
<h2 id="loop">٢. استخدم حلقة قصيرة وواضحة</h2>
|
||
<ol class="steps"><li><div><strong>خطّط</strong><p>حوّل الهدف إلى خطوة واحدة تالية، لا إلى خطة ضخمة لا تتغير.</p></div></li><li><div><strong>نفّذ</strong><p>استدعِ أداة واحدة بمدخلات محددة وسجّل ما حدث فعلاً.</p></div></li><li><div><strong>تحقق</strong><p>قارن الناتج بشرط النجاح، ثم توقف أو عدّل الخطوة التالية.</p></div></li></ol>
|
||
<pre class="code" aria-label="مثال برمجي"><code>while not done:
|
||
step = planner.next(goal, state)
|
||
result = tools.run(step)
|
||
state.record(result)
|
||
done = verifier.check(goal, state)</code></pre>
|
||
<h2 id="tools">٣. اجعل الأدوات ضيقة الصلاحية</h2>
|
||
<p>لا تمنح الوكيل أداة «نفّذ أي أمر». قدّم وظائف محددة مثل قراءة ملف، إنشاء مسودة، أو إرسال عنصر بعد موافقة. كلما ضاقت الأداة أصبح اختبارها ومراجعتها أسهل.</p>
|
||
<ul><li>تحقق من المدخلات قبل التنفيذ.</li><li>اطلب موافقة بشرية قبل الإرسال أو الحذف أو الدفع.</li><li>احتفظ بسجل واضح للطلب والنتيجة.</li></ul>
|
||
<h2 id="memory">٤. الذاكرة ليست صندوقاً واحداً</h2>
|
||
<p>احتفظ بحالة المهمة الحالية منفصلة عن المعرفة طويلة المدى. لا ترسل تاريخ المحادثة كله في كل مرة. استخرج فقط ما يحتاجه القرار التالي، واحتفظ بالمصادر بجوار الحقائق.</p>
|
||
<h2 id="checklist">قائمة الفحص قبل التشغيل</h2>
|
||
<ul><li>هل توجد نتيجة نهائية قابلة للتحقق؟</li><li>هل لكل أداة مدخلات وصلاحيات محددة؟</li><li>هل يستطيع الوكيل التوقف عند الفشل؟</li><li>هل العمليات الحساسة تحتاج موافقة؟</li><li>هل يمكنك إعادة تشغيل المهمة من السجل؟</li></ul>
|
||
<div class="note"><strong>الخلاصة</strong>ابدأ بحلقة صغيرة واختبار واحد. أضف الذاكرة والتخطيط المتقدم فقط عندما يثبت القياس أنك تحتاجهما.</div>
|
||
</article>
|
||
<aside class="toc" aria-label="فهرس المقال" data-od-id="article-toc"><strong>داخل هذا الدليل</strong><a href="#goal">نتيجة قابلة للفحص</a><a href="#loop">حلقة الوكيل</a><a href="#tools">صلاحيات الأدوات</a><a href="#memory">هندسة الذاكرة</a><a href="#checklist">قائمة الفحص</a><div class="member-note"><strong>تريد النسخة العملية؟</strong><p>تشمل العضوية قالب حالة الوكيل وقائمة اختبار قابلة للتنزيل.</p><a class="btn btn-primary" href="subscription.html">شاهد مزايا العضوية</a></div></aside>
|
||
</section>
|
||
<section class="comments" data-od-id="comments"><div class="container comments-wrap"><p class="crumb">نقاش هادئ ومفيد</p><h2 data-od-id="comments-title">التعليقات</h2><div class="comment-list" id="commentList"><p class="comment-empty" id="commentEmpty">كن أول من يضيف تعليقاً على هذا الدليل.</p></div><form class="comment-form" id="commentForm" novalidate data-od-id="comment-form"><div class="field"><label for="commentName">الاسم</label><input class="input" id="commentName" name="name" autocomplete="name" required /></div><div class="field"><label for="commentBody">تعليقك</label><textarea class="textarea" id="commentBody" name="comment" required minlength="8"></textarea></div><button class="btn btn-primary" type="submit">أضف التعليق</button><div class="form-status" id="commentStatus" role="status"></div></form></div></section>
|
||
<section class="related" data-od-id="related-articles"><div class="container"><p class="crumb">اقرأ بعد ذلك</p><div class="related-grid"><article class="related-card" data-od-id="related-model"><span>النماذج · ٨ دقائق</span><h3>ابدأ بالمهمة، لا باسم النموذج</h3><a href="arabic-ai-learning-catalog.html#catalog">اكتشف المقال ←</a></article><article class="related-card" data-od-id="related-rag"><span>الاسترجاع · ١٤ دقيقة</span><h3>اختبر المصدر قبل أن تلوم الإجابة</h3><a href="arabic-ai-learning-catalog.html#catalog">اكتشف المقال ←</a></article><article class="related-card" data-od-id="related-safety"><span>السلامة · قائمة فحص</span><h3>قبل أن تمنح الوكيل زر التنفيذ</h3><a href="subscription.html">ضمن العضوية ←</a></article></div></div></section>
|
||
</main>
|
||
<footer class="pagefoot" data-od-id="footer"><div class="container"><div class="footer-grid"><div><a class="logo" href="arabic-ai-learning-catalog.html"><img class="logo-mark" src="assets/anwarpi-logo.jpg" alt="" width="1200" height="1352">أنور بي آي</a><p>محتوى عربي عملي لتعلّم الذكاء الاصطناعي والوكلاء.</p></div><div class="footer-col"><strong>استكشف</strong><a href="arabic-ai-learning-catalog.html#catalog">المكتبة</a><a href="arabic-ai-learning-catalog.html#topics">المسارات</a></div><div class="footer-col"><strong>العضوية</strong><a href="subscription.html">الأسعار والمزايا</a><a href="login.html">تسجيل الدخول</a></div><div class="footer-col"><strong>تواصل</strong><a href="mailto:hello@anwarpi.ai">hello@anwarpi.ai</a><a href="privacy.html">الخصوصية</a></div></div><div class="footer-bottom"><span>© أنور بي آي ٢٠٢٦</span><span>العربية أولاً · تعلّم بوضوح</span></div></div></footer>
|
||
<aside class="menu-panel" id="siteMenu" aria-hidden="true" data-od-id="site-menu"><button class="menu-scrim" type="button" aria-label="إغلاق القائمة" data-menu-close></button><div class="menu-drawer" role="dialog" aria-modal="true" aria-label="قائمة أنور بي آي"><div class="menu-head"><a class="logo" href="arabic-ai-learning-catalog.html"><img class="logo-mark" src="assets/anwarpi-logo.jpg" alt="" width="1200" height="1352">أنور بي آي</a><button class="icon-btn" type="button" aria-label="إغلاق القائمة" data-menu-close>×</button></div><nav class="menu-links"><a href="arabic-ai-learning-catalog.html#catalog">المكتبة <span>←</span></a><a href="article-agent-guide.html">مقال الأسبوع <span>←</span></a><a href="subscription.html">العضوية والأسعار <span>←</span></a></nav><div class="menu-foot"><a class="btn btn-secondary" href="login.html">تسجيل الدخول</a></div></div></aside>
|
||
<script>
|
||
(()=>{const menu=document.getElementById('siteMenu'),trigger=document.getElementById('menuTrigger');function setMenu(open){menu.classList.toggle('open',open);menu.setAttribute('aria-hidden',String(!open));trigger.setAttribute('aria-expanded',String(open));document.body.classList.toggle('locked',open);(open?menu.querySelector('.menu-head [data-menu-close]'):trigger).focus()}trigger.addEventListener('click',()=>setMenu(true));document.querySelectorAll('[data-menu-close]').forEach(el=>el.addEventListener('click',()=>setMenu(false)));document.addEventListener('keydown',e=>{if(e.key==='Escape'&&menu.classList.contains('open'))setMenu(false)});
|
||
const save=document.getElementById('saveArticle');save.addEventListener('click',()=>{const active=save.getAttribute('aria-pressed')!=='true';save.setAttribute('aria-pressed',String(active));save.textContent=active?'تم الحفظ ✓':'احفظ للعودة لاحقاً'});
|
||
const form=document.getElementById('commentForm'),status=document.getElementById('commentStatus'),list=document.getElementById('commentList');form.addEventListener('submit',e=>{e.preventDefault();if(!form.checkValidity()){status.textContent='أكمل الاسم واكتب تعليقاً من ٨ أحرف على الأقل.';form.reportValidity();return}const name=form.elements.name.value.trim(),text=form.elements.comment.value.trim(),item=document.createElement('article');item.className='comment';const head=document.createElement('div');head.className='comment-head';const strong=document.createElement('strong');strong.textContent=name;const time=document.createElement('span');time.textContent='الآن';time.className='crumb';const p=document.createElement('p');p.textContent=text;head.append(strong,time);item.append(head,p);document.getElementById('commentEmpty')?.remove();list.append(item);form.reset();status.textContent='تمت إضافة تعليقك في هذه المعاينة.'});})();
|
||
</script>
|
||
</body>
|
||
</html> |