⚪️ Codex : меняем системный промпт (base instructions + developer instructions)
За последнее время наткнулся дважды на эту фичу, и оба раза в контексте что не все знают про такие фичи. Я тоже в свое время не очень знал, но разбирался - поэтому думаю мои исследования могут быть полезны "широким массам" ИИ кодеров.
Итак, у кодекса есть возможность дописать/заменить в системный промпт инструкции.
❓ В чем профит в сравнении с
AGENTS.md? В отличиет от
AGENTS.md, эти инструкции переживают компакт без сжатия, то есть в неизменном виде. Пишите сюда все что нужно чтобы агент соблюдал всегда, вне зависимости от контекста проекта или задачи: персонализацию под вас, ваши "святые правила", кастомизацию стиля общения. Ну и если вас раздражает как ведет себя кодекс - можно поменять, настроив абсолютно все под себя. Почему просто не дописать в
agents.md? потому что будут конфиликты с указанынми инструкциями в системном промпте, поэтому надо править именно сам base instructions файл.
Давайте разберем какие у нас возможности есть.
👉 Кодекс позволяет кастомизировать base_instructions и developer_Instructions.
▶️ base instructions - это и есть главный системный промпт агента. В исходниках - в codex/codex-rs/protocol/src/prompts/base_instructions/default.md. Вот оно на гитхабе:
https://github.com/openai/codex/blob/main/codex-rs/protocol/src/prompts/base_instructions/default.mdСмотрите, читайте. Можно (и улчше всего) на базе этого же свое делать, поменяв только чего вам там не хватает/мешает - например, можно просить подробнее все объяснять.
▶️ developer_Instructions - это возможность дописать на уровне системного промпта свои инструкции, не заменяя системный промпт. Для приверженцев менее радикальных решений.
👉 Как заменять? через параметры запуска:
для base instructions:
codex -c model_instructions_file=/tmp/my-system-prompt.md
codex exec -c model_instructions_file=/tmp/my-system-prompt.md "сделай задачу"
для developer instructions похоже:
codex -c developer_instructions="..."
▶️ В ~/.codex/config.toml так:
model_instructions_file = "/absolute/path/to/base_instructions.md"
developer_instructions = """
Твои дополнительные developer-инструкции.
Они не заменяют base_instructions, а добавляются отдельным developer-блоком.
"""
Для профиля:
[profiles.custom]
model_instructions_file = "/absolute/path/to/base_instructions.md"
developer_instructions = "Дополнительные developer-инструкции"
Запуск с профилем:
codex --profile custom
Важно: model_instructions_file должен быть путем к файлу, а не строкой prompt прямо в TOML.
▶️ Точно работает в CLI, но по логике должно работать и в app.
(ц) удачной кастомизации
@deksden_notes