요즘 코덱스 rp툴 만들면서 레포 이리저리 뜯어보고 있는데

잘만하면 유사 gpt api처럼 쓸수 있기도 하고 openai에서 코덱스 집중적으로 업데이트 해주는것 같아서 몇개 유용한 팁 적어봄

26년 1월 25일 기준임


0. 프롬프트 구조

[You are ChatGPT...] -> 서버에서 강제삽입 (500토큰?)

[base_instructions] -> 4000토큰

[skill instruction] -> 1000토큰

[tool deions] -> 1000토큰~

[sandbox config] -> 1000토큰~

[current env] -> 200토큰

[arg: developer_instructions] -> 옵션

[arg: user_input] -> 옵션


코덱스에서 명령어를 실행하면 이 프롬프트를 기본으로 user_input 부분에 유저가 입력한 내용이 들어가서 서버로 전송됨


1. skill 프롬프트 끄는법


코덱스는 기본적으로 시스템 프롬프트가 엄청 헤비함. 어떤 명령어를 넣든 8000토큰으로 시작해버림

이 중 1000토큰을 차지하는게 'skill을 사용하는 방법' 에 대한건데, 원리는 코덱스 실행 시 유저/기본 스킬이 하나라도 감지되는 순간 해당 지시사항을 시스템 프롬프트에 넣는거임

문제는 유저가 스킬을 쓰든 안 쓰든 코덱스는 작동하자마자 자체적으로 .codex/ 에 skills/ 라는 폴더를 만들어서 기본 스킬을 깔아버림. 폴더가 삭제돼도 어림없음

그럼 어떻게 하느냐?

그냥 해당 폴더 읽기 권한을 막아버리면 됨. chmod 000같은거 쓰면 됨

그러면 프롬프트에서 1000토큰이 사라짐


2. base_instruction 삭제하는법


코덱스는 네가지 실행방법을 제공함

터미널에서 코덱스 실행 (tui)

codex exec [user-input]

codex mcp-server 이후 mcp로 실행

codex app-sever 이후 jsonl rpc로 실행


코덱스에서는 분명 base-instruction이라는 config를 제공해서 ""로 입력하면 삭제가 돼야 하는데, 문제는 터미널이나 codex exec으로 실행하면 무슨 짓을 해도 base instruction을 없앨 수 없음

그래서 그냥 한쪽 터미널에서 mcp-server나 app-server를 킨 다음 다른 터미널에서 접근해야함

codex mcp-server -c base_instructions="" 로 하면 됨


3. tool deion


코덱스 얘네들 개발 진짜 ㅈ같이하는게

분명 tool 키고 끄는 기능이 있어서 그걸 끄면 툴 설명 부분도 프롬프트로 삽입이 안 돼야 하는데

몇가지는 키고 끌수 있게 해놓고 몇가지는 그냥 방치해놓음

그래서 툴 꺼도 설명 부분은 들어가서 정작 툴을 못써버리는 상황이 발생함

apply_patch, mcp_resources, parallel_exec, view_image 툴 등이 그러함 (한 6개 있음)


아 손시려서 나머지는 나중에