6. AGENTS.md: הזיכרון הקבוע של הפרויקט
Codex לא צריך שתחזרו על אותן הנחיות בכל שיחה. קובץ AGENTS.md נותן לו הוראות קבועות — לפני שהוא נוגע בקוד — וקובצי Rules קובעים אילו פקודות מותר לו להריץ מחוץ ל-sandbox בלי לשאול. בפרק הזה נראה איך בונים את שניהם נכון, ומתי להשתמש בכל אחד.
מה זה AGENTS.md ולמה זה קיים
Codex קורא קובצי AGENTS.md לפני שהוא מתחיל לעבוד (פעם אחת בכל הרצה; ב-TUI זה בדרך כלל אומר פעם אחת לכל סשן). מי שמכיר את CLAUDE.md מ-Claude Code ימצא כאן רעיון דומה: קובץ טקסט פשוט עם הנחיות עבודה קבועות לפרויקט, שנטען אוטומטית ולא צריך להעתיק שוב בכל שיחה.
איך Codex מוצא את ההנחיות
Codex בונה "שרשרת הנחיות" שלמה בכל הפעלה, לפי סדר עדיפויות:
- תחום גלובלי: בתיקיית הבית של Codex (
~/.codexכברירת מחדל, או המיקום שהוגדר ב-CODEX_HOME) — Codex קוראAGENTS.override.mdאם הוא קיים, אחרתAGENTS.md. רק קובץ אחד לא-ריק נטען בשכבה הזו. - תחום הפרויקט: החל משורש הפרויקט (בדרך כלל שורש ה-Git) וכלה בתיקיית העבודה הנוכחית — Codex בודק בכל תיקייה לאורך הדרך: קודם
AGENTS.override.md, אחר כךAGENTS.md, ואז שמות חלופיים שהוגדרו ב-project_doc_fallback_filenames. קובץ אחד לכל היותר לכל תיקייה. - סדר המיזוג: Codex משרשר את הקבצים מהשורש כלפי מטה, עם שורות ריקות ביניהם. קבצים קרובים יותר לתיקיית העבודה שלכם גוברים על הנחיות מוקדמות יותר, כי הם מופיעים מאוחר יותר בפרומפט המשורשר.
קבצים ריקים מדולגים. Codex מפסיק להוסיף קבצים כשהגודל המצטבר מגיע למגבלה שמוגדרת ב-project_doc_max_bytes (32KB כברירת מחדל) — אפשר להעלות את המגבלה, או לפצל הנחיות בין תיקיות מקוננות.
הוראות גלובליות: אותן העדפות בכל פרויקט
הנחיות ב-~/.codex/AGENTS.md חלות על כל פרויקט שתפתחו:
- ודאו שהתיקייה קיימת:
mkdir -p ~/.codex - צרו את
~/.codex/AGENTS.md:# ~/.codex/AGENTS.md ## Working agreements - Always run `npm test` after modifying JavaScript files. - Prefer `pnpm` when installing dependencies. - Ask for confirmation before adding new production dependencies. - בדקו שההנחיות נטענות:
תוצאה צפויה: Codex מצטט את הסעיפים מהקובץ הגלובלי לפני שהוא מציע עבודה.codex --ask-for-approval never "Summarize the current instructions."
כדי לעקוף זמנית את ההנחיות הגלובליות בלי למחוק אותן, צרו ~/.codex/AGENTS.override.md. מחיקת הקובץ הזה מחזירה את ההנחיות הרגילות.
הנחיות לפרויקט, עם חריגות לתתי-תיקיות
קובץ ברמת הריפו שומר על נורמות הפרויקט, ועדיין יורש את ברירות המחדל הגלובליות:
# AGENTS.md
## Repository expectations
- Run `npm run lint` before opening a pull request.
- Document public utilities in `docs/` when you change behavior.
לצוותים עם כללים שונים בתת-תיקייה, מוסיפים AGENTS.override.md ספציפי. לדוגמה, בתוך services/payments/:
# services/payments/AGENTS.override.md
## Payments service rules
- Use `make test-payments` instead of `npm test`.
- Never rotate API keys without notifying the security channel.
הפעלה מתוך התיקייה הזו מדגימה את סדר העדיפויות:
codex --cd services/payments --ask-for-approval never "List the instruction sources you loaded."
תוצאה צפויה: Codex מדווח על הקובץ הגלובלי ראשון, קובץ השורש שני, וה-override של payments אחרון. Codex מפסיק לחפש ברגע שהוא מגיע לתיקיית העבודה שלכם — כדאי למקם override קרוב ככל האפשר לעבודה הספציפית.
כללי סקירת קוד ב-AGENTS.md
עבור סקירת קוד אוטומטית של Codex ב-GitHub, אפשר להוסיף סעיף ## Code Review Rules ל-AGENTS.md הקרוב ביותר לקוד שהכללים חלים עליו — בדיקות כלל-ריפו בשורש, ובדיקות ספציפיות לשירות בקובץ מקונן:
## Code Review Rules
### Experiment cohorts
- Do not filter treatment comparisons on post-exposure behavior, including conversion or retention.
Safe path: build cohorts from assignment or exposure; report conversion as an outcome.
כדאי לשמור על כללים תמציתיים, להסביר את ההתנהגות שיש לסמן ואת הדרך הבטוחה החלופית, ולהשאיר בדיקות פורמט ולינטינג ל-CI.
שמות קבצים חלופיים
אם בריפו שלכם כבר יש קובץ הנחיות בשם אחר (למשל TEAM_GUIDE.md), אפשר להוסיף אותו לרשימת השמות החלופיים:
# ~/.codex/config.toml
project_doc_fallback_filenames = ["TEAM_GUIDE.md", ".agents.md"]
project_doc_max_bytes = 65536
לאחר הפעלה מחדש, Codex בודק בכל תיקייה לפי הסדר: AGENTS.override.md, AGENTS.md, TEAM_GUIDE.md, .agents.md. שמות שלא ברשימה מתעלמים מהם לצורך גילוי הנחיות.
הריצו codex --ask-for-approval never "Summarize the current instructions." משורש הריפו כדי לראות את ההנחיות מהקבצים הגלובליים והפרויקטיים לפי סדר העדיפות. השתמשו ב-codex --cd subdir --ask-for-approval never "Show which instruction files are active." כדי לאשר שחריגות מקוננות אכן מחליפות כללים רחבים יותר. Codex בונה מחדש את שרשרת ההנחיות בכל הרצה, אז אין צורך לנקות מטמון — אם משהו נראה לא מעודכן, פשוט הפעילו מחדש מהתיקייה הרצויה.
Rules: אילו פקודות מותר להריץ בלי לשאול
AGENTS.md אומר ל-Codex איך לעבוד. קובצי Rules (עדיין ניסיוניים ועשויים להשתנות) שולטים במשהו אחר: אילו פקודות מוחשיות מותר לו להריץ מחוץ ל-sandbox בלי לעצור ולבקש אישור. זה המקום להגדיר "מותר להריץ gh pr view תמיד" או "אסור להריץ rm -rf לעולם" — לא הנחיה כללית, אלא כלל טכני על פקודה ספציפית.
יצירת קובץ כללים
- צרו קובץ
.rulesתחת תיקייתrules/ליד שכבת הגדרות פעילה, למשל~/.codex/rules/default.rules. - הוסיפו כלל — הדוגמה הזו מבקשת אישור לפני הרצת
gh pr viewמחוץ ל-sandbox:# Prompt before running commands with the prefix `gh pr view` outside the sandbox. prefix_rule( # The prefix to match. pattern = ["gh", "pr", "view"], # The action to take when Codex requests to run a matching command. decision = "prompt", # Optional rationale for why this rule exists. justification = "Viewing PRs is allowed with approval", match = [ "gh pr view 7888", "gh pr view --repo openai/codex", ], not_match = [ # Does not match because the `pattern` must be an exact prefix. "gh pr --repo openai/codex view 7888", ], ) - הפעילו את Codex מחדש כדי שהכלל ייטען.
Codex סורק את rules/ בכל שכבת הגדרות פעילה בעת ההפעלה, כולל תצורת צוות ושכבת המשתמש ב-~/.codex/rules/. כללים ברמת הפרויקט תחת <repo>/.codex/rules/ נטענים רק כשהשכבה .codex/ של הפרויקט מהימנה (trusted).
כשמאשרים פקודה ומוסיפים אותה לרשימת האמון ישירות מה-TUI, Codex כותב אותה ל-~/.codex/rules/default.rules כדי שהרצות עתידיות ידלגו על השאלה. וכש-Smart approvals פעיל (ברירת המחדל), Codex עשוי להציע prefix_rule בעצמו במהלך בקשת אישור — כדאי לבדוק כל הצעה כזו לפני קבלתה.
שדות הכלל
| שדה | תפקיד |
|---|---|
pattern (חובה) | רשימה שמגדירה את קידומת הפקודה להתאמה — מחרוזת בודדת, או רשימת חלופות באותה עמדה, למשל ["view", "list"] |
decision (ברירת מחדל allow) | allow — רץ בלי לשאול; prompt — שואל בכל התאמה; forbidden — חוסם בלי לשאול. כשכמה כללים תואמים, ההחלטה המחמירה ביותר גוברת (forbidden > prompt > allow) |
justification (אופציונלי) | הסבר קריא לאדם שעשוי להופיע בבקשות אישור או בהודעות דחייה; כדאי לכלול חלופה מומלצת עבור forbidden |
match / not_match (ברירת מחדל []) | דוגמאות ל"בדיקות יחידה" מוטמעות — Codex מוודא אותן בטעינת הכלל, כדי לתפוס טעויות מוקדם |
פקודות מורכבות ו-shell wrappers
כלים מסוימים עוטפים כמה פקודות shell בקריאה אחת, למשל ["bash", "-lc", "git add . && rm -rf /"]. אם הסקריפט הוא שרשרת ליניארית של מילים פשוטות (בלי הרחבת משתנים, $FOO, תווים כלליים וכד') מחוברות באופרטורים בטוחים (&&, ||, ;, |), Codex מפרק אותה לפקודות נפרדות ומחיל את הכללים על כל אחת בנפרד — כך שגם אם git add מותר, rm -rf / באותה שורה עדיין ייבדק בנפרד ולא "יוברח" יחד עם הפקודה הבטוחה. כשהסקריפט משתמש בתכונות מתקדמות יותר (הפניות קלט/פלט, $(...), משתני סביבה, תווים כלליים, בקרת זרימה), Codex לא מפרק אותו, והכלל מוחל על ההרצה השלמה כמקשה אחת.
בדיקת קובץ כללים
codex execpolicy check --pretty
--rules ~/.codex/rules/default.rules
-- gh pr view 7888 --json title,body,comments
הפקודה מדפיסה JSON עם ההחלטה המחמירה ביותר וכל הכללים שהתאימו, כולל justification. אפשר לשלב כמה קבצי כללים עם כמה דגלי --rules.
קובצי .rules כתובים ב-Starlark — תחביר שדומה ל-Python, אבל מתוכנן להיות בטוח להרצה: מנוע הכללים מריץ אותו בלי תופעות לוואי (כמו נגיעה במערכת הקבצים).
AGENTS.md מול Rules: מתי להשתמש בכל אחד
| AGENTS.md | Rules | |
|---|---|---|
| מה זה קובע | הנחיות עבודה, קונבנציות, הקשר על הפרויקט | אילו פקודות מותר/אסור/צריך לאשר מחוץ ל-sandbox |
| איך Codex "קורא" את זה | כטקסט בפרומפט — הצעה שהמודל מנסה לפעול לפיה | כמנוע כללים דטרמיניסטי, נבדק לפני הרצת כל פקודה |
| דוגמה | "הריצו npm test אחרי שינוי קבצי JS" | "אפשר להריץ gh pr view תמיד, אבל תמיד לשאול לפני rm -rf" |
כלל אצבע: אם זו העדפת עבודה או קונבנציה — זה שייך ל-AGENTS.md. אם זו החלטה בינארית על פקודת shell ספציפית שצריכה להיאכף בעקביות — זה שייך ל-Rules.
Personalize: התאמת Codex להעדפות שלכם
מעבר להנחיות ברמת הפרויקט, אפשר להתאים את הסגנון הכללי של Codex להעדפות האישיות שלכם, דרך Settings > Personalization:
- אישיות: בוחרים Friendly, Pragmatic או None כברירת מחדל לסגנון התקשורת — זה משנה איך Codex מתקשר, לא מה שהוא מסוגל לעשות.
- הוראות אישיות (custom instructions): העדפות שרוצים ש-Codex יעקוב אחריהן בכל שיחה. ב-Codex, הוראות כאלה נשמרות בפועל בקובץ
AGENTS.mdהגלובלי שלכם — כלומר זו למעשה אותה מנגנון שראינו למעלה, רק דרך תפריט הגדרות. - Memories: מאפשרות ל-ChatGPT לשאת הקשר שימושי משיחות קודמות לתוך עבודה עתידית — העדפות יציבות, זרימות עבודה חוזרות, וקונבנציות פרויקט. Memories נפרדות מהנחיות פרויקט מחייבות: הנחיות שחייבות לחול תמיד שייכות ל-
AGENTS.mdאו לתיעוד פרויקט מנוהל בגרסאות, לא למנגנון הזיכרון.
AGENTS.mdנטען אוטומטית בכל הרצה, משכבה גלובלית (~/.codex/AGENTS.md) ומכל תיקייה בדרך לתיקיית העבודה, מהשורש כלפי מטה — קרוב יותר גובר על רחוק יותר.AGENTS.override.mdעוקף זמנית קובץ רגיל באותה תיקייה, בלי למחוק אותו.- אפשר להוסיף שמות קבצים חלופיים עם
project_doc_fallback_filenames, ולהעלות את מגבלת הגודל (32KB כברירת מחדל) עםproject_doc_max_bytes. - Rules (ניסיוני) שולטות באילו פקודות shell מותר להריץ מחוץ ל-sandbox בלי לשאול — כתובות ב-Starlark, בקובצי
.rulesתחתrules/. - Codex מפרק פקודות shell מורכבות לרכיבים בטוחים כדי שכלל מותר לא "יבריח" פקודה מסוכנת שהוצמדה אליו.
- אישיות, הוראות אישיות ו-Memories מותאמים דרך Settings > Personalization; הוראות אישיות נשמרות בפועל ב-
AGENTS.mdהגלובלי.
התוכן באתר נועד למידע כללי בלבד ואינו מהווה ייעוץ מקצועי, הצעה או התחייבות. נעשה מאמץ לדייק, אך ייתכנו שינויים, טעויות או חוסר עדכניות, והשימוש במידע הוא באחריות המשתמש. ככל שהדין מתיר, האתר ובעליו אינם אחראים לנזק שייגרם מהסתמכות על המידע. קישורים לאתרים חיצוניים הם באחריות אותם אתרים, וככל שקיימים קישורי שותפים, ייתכן שהאתר יקבל עמלה ללא תוספת עלות עבורכם. התוכן מוגן בזכויות יוצרים (חוק זכות יוצרים, התשס״ח-2007) ואין להעתיקו ללא רשות. שמות מותגים וסימני מסחר שייכים לבעליהם. ראו גם תקנון האתר ומדיניות הפרטיות.