워커 환경변수
워커 파일에서 tick.sh를 source하기 전에 값을 지정하면 기본값을 덮어씁니다. 꼭 있어야
하는 줄은 source 한 줄뿐입니다. 아래 변수는 전부 선택 사항입니다. 실제 소스는
tick.sh에 있습니다.
이 장은 워커의 동작을 바꾸는 설정값을 다룹니다. 세션이 쓸 API 토큰 같은 비밀 값은 여기에 적지
말고 프로젝트 설정의 환경변수에 등록하세요(화면 소개의 프로젝트 환경변수
절, 꺼내 쓰는 명령은 CLI의 dira env 절).
워커 설정값
| 변수 | 기본값 | 뜻 |
|---|---|---|
TICKET_NAME | 워커 파일명(.sh 제외) | 로그 접두어 + 티켓 owner 표기 |
TICKET_CWD | 큐 루트의 부모 | 디스패치된 세션의 작업 디렉터리 |
TICKET_PERSONAS | <루트>/personas | 페르소나 프로필 디렉터리 |
TICKET_ONTOLOGY | <루트>/ontology | 온톨로지 디렉터리. 이 워크트리 밖 절대경로로 재정의할 수 있습니다 |
TICKET_PROTOCOLS | <루트>/protocols | 협업 프로토콜 디렉터리. 안의 AGENTS.md가 전원의 프롬프트에 실립니다 |
TICKET_CONTEXT | (없음) | ("<경로>|<설명>" ...) 배열. 프롬프트 끝에 참조 자료로 붙습니다. 없는 경로는 건너뛰고 WARN만 남깁니다 |
TICKET_ENGINE | (claude -p --session-id "{sid}" --dangerously-skip-permissions --input-format stream-json --output-format stream-json --verbose) | 실행 엔진 argv. {prompt}·{sid}가 실행 직전에 치환됩니다. 기본 엔진은 스트리밍 입력 방식이라 최초 프롬프트도 stdin(FIFO)으로 들어갑니다. 도는 세션에 말 걸기도 이 입력을 사용합니다 |
TICKET_PROMPT_FMT | %s 티켓을 확인해 주세요. (...) | printf 포맷. %s = 티켓 해시 하나뿐 |
TICKET_INPROGRESS | .wip | 진행중 상태 파일명 접미사 |
TICKET_DONE | .done | 완료 상태 파일명 접미사 |
TICKET_MAXRUN | 5400(초) | 세션 1건 실행 상한. 초과 시 TERM → KILL 후 백로그 복귀 |
TICKET_FEED_TIMEOUT | 120(초) | 최초 프롬프트가 FIFO를 다 통과할 때까지 기다리는 상한. 스트리밍 입력 엔진 전용이고, 엔진이 이 시간 안에 stdin을 안 읽으면 STALL로 실패 처리합니다 |
TICKET_REUSE | 1 | 세션 재활용. 티켓 하나를 끝낸 세션이 죽지 않고 다음 티켓을 그 자리에서 이어받습니다. 0이면 재활용하지 않고 티켓마다 세션을 새로 띄웁니다 |
TICKET_REUSE_CTX | 100000 | 이어받기를 허용하는 컨텍스트 상한. 방금 끝난 구간의 마지막 assistant 턴이 사용한 컨텍스트(input + cache_creation + cache_read)가 이 값을 넘으면 이어받지 않고 세션을 끝냅니다 |
큐 루트는 설정값이 없습니다. 워커 파일이 놓인 위치가 곧 루트이기 때문입니다.
응답 JSON에서 실제 session_id를 읽어 frontmatter를 고쳐 쓰는 단계는 claude 엔진
전용이라 다른 엔진을 쓰면 건너뜁니다.
페르소나가 엔진 설정을 한 번 더 덮어씁니다. 티켓의 persona:가 정해진 뒤
<페르소나 디렉터리>/<이름>/engine 파일이 있으면 그 파일을 읽어 이 배열을 다시 만듭니다
(페르소나 §디스패치 정책). 워커 파일에 적은 값은 engine 파일이 없는
페르소나에만 적용됩니다.
머신 로컬 상태
호출하는 시점의 환경변수로만 바뀝니다. 워커 파일에 적는 값이 아닙니다.
| 변수 | 기본값 | 뜻 |
|---|---|---|
TICKET_LOCAL | ~/.config/dira | 토큰(oauth-token)과 워커 락(run/)을 두는 디렉터리. 큐 루트가 공유 드라이브에 있어도 이 경로는 이 머신에만 존재합니다 |
DIRA_APM_NO_INSTALL | (없음) | 1이면 워커가 티켓을 가져가기 전 패키지 검사에서 어긋남을 찾아도 설치를 시도하지 않고 바로 멈춥니다. 검사 자체는 그대로 합니다. 테스트에서 네트워크 설치를 막을 때 씁니다(설치) |
dira가 까는 도구의 자리
페르소나와 프로토콜 패키지를 까는 apm 명령은 dira가 직접 설치하고, 사용자 PATH의 apm은 쓰지
않습니다. 버전은 엔진의 apm-version 파일 한 줄이 정합니다(지금 0.33.0).
| 경로 | 내용 |
|---|---|
~/.config/dira/tools/apm/<버전>/bin/apm | dira가 부르는 apm 실행 파일 |
~/.config/dira/tools/apm/<버전>/tools/ | uv로 깔았을 때 그 도구 환경(UV_TOOL_DIR) |
~/.config/dira/tools/apm/<버전>/venv/ | uv가 없어 3.10 이상 python3.x로 깔았을 때의 가상환경 |
apm-version이 바뀌면 새 버전 폴더가 하나 더 생기고 옛 폴더는 그대로 남습니다. 지워도 다음
설치 때 필요한 버전만 다시 깝니다. 위치는 TICKET_LOCAL을 따르지 않고 늘 ~/.config/dira/tools/입니다.
다음은 CLI입니다.