대형 기능 · AI 게이트웨이 HTTP API
AI 게이트웨이
외부 프로그램이 로컬 HTTP API로 {ai, prompt}를 보내면, orchterm가 그 AI(claude·codex·agy)를 워커 탭에 띄워 한 턴 실행하고 응답을 동기로 돌려줍니다 — 사람 개입 없는 자동 호출.
무엇을 하는가
외부 프로그램(스크립트·CI·인앱 브라우저 페이지)이 한 줄 프롬프트를 보내면, 게이트웨이가 워커 AI를 탭에 띄워 한 턴 돌리고 연결을 잡은 채 OpenAI 호환 응답을 반환합니다.
POST /run{ai, prompt}워커 탭1턴 실행시작하기
-
게이트웨이 켜기 (재시작 후 적용)
새 설치는 게이트웨이가 켜진 채 시작합니다. 끄거나 다시 켜는 변경은 앱 재시작 후 적용됩니다.
-
Bearer 토큰 확인 · 복사
토큰은 최초 1회 랜덤으로 발급됩니다. 설정 → AI 게이트웨이에서 확인·복사해 호출자에게 전달하세요. 모든 요청에
Authorization: Bearer …가 필요하고, 불일치하면401입니다.설정 — AI 게이트웨이AI 게이트웨이
켜짐127.0.0.1 : 9610 (+base)~/.orchterm/gateway① 127.0.0.1 전용이라 외부 네트워크 노출이 없습니다 · 토큰을 복사해 호출자에 전달.
워커는 고정 폴더(~/.orchterm/gateway)에서 실행돼 에이전트 신뢰 승인은 최초 1회만 필요합니다.
API 호출 — POST /run
요청은 POST /run(별칭 POST /v1/chat/completions). 본문에 보낼 AI와 프롬프트를 담으면, 응답이 올 때까지 연결을 잡고 OpenAI chat.completion JSON을 동기 반환합니다.
POST /run · 요청
$ curl -s http://127.0.0.1:9610/run \ -H "Authorization: Bearer $ORCHTERM_GATEWAY_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "agent": "claude", "prompt": "PING", "session": "s1" }'
200 OpenAI chat.completion · 응답
{
"id": "req_8f3a…", "object": "chat.completion",
"choices": [
{ "index": 0,
"message": { "role": "assistant", "content": "PONG" },
"finish_reason": "stop" }
],
"result": "PONG", "error": null // result·error = 레거시 호환
}
504.| 본문 필드 | 의미 |
|---|---|
agent / ai | 워커 종류 — claude · codex · agy (기본 claude) |
prompt / messages | 보낼 프롬프트. 둘 다 비면 400 |
session | keepalive 키(옵션) — 값이면 워커 재사용, 비우면 1회성 |
model | 받지만 현재는 무시됩니다(추후) |
세션 keepalive (멀티턴)
session 값을 주면 같은 session은 같은 워커를 재사용합니다 — 컨텍스트가 유지되는 멀티턴. 값을 비우면 응답 후 워커를 닫는 1회성입니다(“응답 후 워커가 사라졌다”는 버그가 아니라 이 동작).
워커 안전 모드 (기본 ON)
게이트웨이 워커는 기본적으로 안전 모드로 돌아갑니다 — 위험 권한 우회 플래그를 쓰지 않습니다. 우회 모드(무인·빠르지만 비권장)는 설정 “워커 위험 권한 우회”로만 켭니다.
감사 로그 (요청/응답 기록 + 뷰어 탭)
게이트웨이가 켜져 있으면 인증을 통과한 모든 요청을 일자별로 기록합니다 — 프롬프트·시각·총소요·상태(ok·error·timeout)·응답 원문까지. 팔레트 명령 “게이트웨이 감사 로그”로 뷰어 탭을 엽니다.
{ "agent": "claude", "session": "s1",
"prompt": "기억해: 바나나73" }{ "result": "알겠습니다. '바나나73' 기억했어요.",
"error": null } // totalMs 3142 · status ok보관 일수는 설정에서 정합니다(기본 10일) — 초과 날짜는 자동 삭제됩니다. 응답은 원문 전량을 저장합니다.