요즘 코덱스 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개 있음)
아 손시려서 나머지는 나중에
ㄷㄷ
스킬은 뭐하는데썽? Mcp는 좋던뎅
엄청 거대한 툴을 설명부분까지 넣으면 낭비니까 그걸 대체하기 좋음 난 안씀
developer instruction, base instruction각각뭐가달랑 agents.md가 base instruction인강
@뷰티무토낑(121.159) ㅇㅇ role도 각각 developer, system으로 할당됨
ㅊㅊ
저런거 보완해서 코덱스에 pr 넣어줘잉