슬래시 명령 — /every
이 장에서 배우는 것 입력창에서
/로 쓰는 명령이 무엇을 하는지, 왜 전송되지 않는지, 그리고 "될 때까지 다시 시도"가 왜 명령이 아니라 기본 동작이 되었는지.
하나뿐입니다
입력창에 / 를 치면 목록이 뜹니다. 지금 거기 있는 것은 하나입니다.
| 명령 | 하는 일 |
|---|---|
/every <주기> <요청> | 지금 적고 있는 요청을 반복 업무로 만듭니다 |
한때
/goal이 함께 있었습니다. "조건이 충족될 때까지 스스로 다시 시도하라"를 거는 명령이었는데, 그 동작이 모든 대화의 기본이 되면서 지웠습니다. 아래 「재시도는 기본입니다」에서 지금 무엇이 대신 도는지 봅니다.
/every — 반복으로 만들기
주기로 알아듣는 낱말은 예약 화면의 목록과 같은 표입니다.
영어도 됩니다(hourly, daily, evening, weekly, friday, monthly).
그 밖의 주기는 예약 화면에서 cron 식으로 직접 정하세요.
왜 전송되지 않는가
/every 는 등록만 하고 보내지 않습니다.
"매일 아침 해라"를 지금 한 번 더 할 이유가 없습니다. 보내 버리면 만든 사람만 첫 회를 두 번 받습니다.
만들어지면 어디에 생겼는지 토스트로 알려 줍니다.
왜 입력창에서 만드나
반복을 걸 값어치가 있는 요청은 대개 방금 잘 된 그 요청입니다. 그리고 그 요청의 조건은 지금 입력창에 이미 골라져 있습니다.
예약 화면의 빈 폼으로 보내면 이 다섯 개를 처음부터 다시 고르게 되고, 그러면 아무도 안 합니다.
재시도는 기본입니다 — 켤 것이 없습니다
여기가 예전 매뉴얼과 달라진 부분입니다.
모든 대화가 "결과를 보고할 때까지 이어서" 돌아갑니다. 켜는 명령도, 켜는 화면도 없습니다.
어떻게 도나
에이전트는 일을 마치면 report_result 로 스스로 판정을 보고합니다. 그 보고가
회전 여부를 정합니다.
| 보고 | 그다음 |
|---|---|
completed (다 됐음) | 즉시 끝납니다. 한마디로 끝나는 대화는 회전을 타지 않습니다 |
failed + 다음에 할 행동 한 줄 | 시스템이 그 한 줄을 붙여 한 번 더 돌립니다 |
blocked (사람이 필요함) | 멈추고 사람을 부릅니다 |
왜 모델에게 다음 프롬프트를 통째로 맡기지 않나
모델이 자기 다음 지시를 다 쓰면 판정자와 피실험자가 같아집니다. 실제로 세 가지로 무너집니다.
| 무너지는 방식 | 어떻게 보이나 |
|---|---|
| 자기 확신 | failed 라고 적어놓고 "거의 다 됐으니 마무리하라"고 써서 같은 자리를 맴돔 |
| 의도 드리프트 | 원본 요청이 이력에서 밀려나 몇 회전 뒤에는 다른 일을 하고 있음 |
| 제약 유실 | 요약하는 과정에서 "만료 쿠폰은 이 문구로" 같은 조건이 조용히 빠짐 |
그래서 모델이 소유하는 것은 "다음에 할 행동" 한 줄뿐이고, 원본 요청과 완료 조건은 매 회전 시스템이 원문 그대로 다시 붙입니다. 아래 두 줄이 여기서 막힙니다.
이건 컨텍스트가 밀려날 때에서 본 "중요한 제약은 다시 적는다"를 제품이 대신 해주는 것입니다.
그래서 무엇을 하면 되나
명령이 없어졌으니 완료 조건은 요청 안에 적습니다.
완료 조건은 기계가 판정할 수 있어야 합니다. "보기 좋을 때까지"는 조건이 아닙니다. 좋은 지시의 네 요소에서 본 완료 조건과 같은 기준이고, 이제 그것을 별도 명령이 아니라 본문에 적습니다.
오타는 그냥 메시지가 됩니다
/evrey 매일 … 처럼 잘못 치면 슬래시 명령으로 인식되지 않고 그대로 모델에게
갑니다. 모델은 그것을 업무 지시로 읽습니다. 목록에서 골라 넣는 것이 안전합니다.
없어진 /goal 도 마찬가지입니다. 손에 익어서 /goal ... 을 쳐도 오류가 나지
않고 그 문장이 그대로 모델에게 갑니다 — 아무 일도 안 일어난 것처럼 보이지
않으므로 더 헷갈립니다. 완료 조건은 위처럼 본문에 적으세요.
자주 하는 오해
"/every 로 만든 것은 어디서 고치나요?"
예약 화면입니다. 만들어진 뒤로는 화면에서 만든 것과 완전히 같습니다 — 수정·삭제·일시 정지가 전부 됩니다.
"재시도가 무한히 돌지 않나요?"
아닙니다. 기본 3회, 상한 5회입니다. 그리고 모델이 completed 로 보고하면 그
자리에서 멈추므로, 짧게 끝나는 대화는 애초에 회전을 타지 않습니다.
"재시도를 끄고 싶으면요?"
화면에는 끄는 자리가 없습니다. 기본으로 켜 둔 이유가 그것입니다 — 예전에는 꺼짐이 기본이라, 켜지 않은 대화(즉 거의 모든 대화)는 모델이 절반쯤 하다 멈춰도 그 자리에서 끝났습니다. 사람이 그걸 알아채는 통로가 알림뿐인데, 알림은 무엇이 끝났는지 말해줄 뿐 다시 시키지는 못합니다.
프로그램에서 부를 때는 API의 repeatMaxAttempts 에 0 을
명시하면 꺼집니다.
확인
1. /every 가 전송되지 않는 이유는?
답
나중에 할 일이기 때문입니다. 지금 한 번 더 보내면 만든 사람만 첫 회를 두 번
받습니다. /every 는 등록만 하고 토스트로 어디에 생겼는지 알려줍니다.
2. /every 를 예약 화면이 아니라 입력창에서 쓰는 이유는?
답
에이전트·모델·그룹·도구·드라이브 범위가 이미 입력창에 골라져 있기 때문입니다. 빈 폼에서 다시 고르게 하면 아무도 안 합니다.
3. "될 때까지 다시 시도"를 걸려면 무엇을 해야 합니까?
답
아무것도 안 해도 됩니다. 재시도는 모든 대화의 기본(3회, 상한 5회)입니다. 할 일은 완료 조건을 요청 본문에 적는 것뿐이고, 그 조건은 기계가 판정할 수 있어야 합니다.
4. 명령을 잘못 치면 어떻게 됩니까?
답
그대로 메시지로 나갑니다. 모델이 그것을 업무 지시로 읽으므로, 목록에서 골라
넣는 편이 안전합니다. 없어진 /goal 도 오류 없이 그냥 메시지가 됩니다.
다음은 에이전트를 만드는 법입니다 → 에이전트란