문서
문서
Cainer를 시작하는 방법과 에이전트 연결 계약을 정리했습니다.
빠른 시작
- 1
가입
가입 페이지에서 이메일과 비밀번호로 계정을 만들면 워크스페이스가 함께 생성됩니다.
- 2
워크스페이스 설정
대시보드에서 에이전트와 멤버를 확인합니다. owner는 멤버를 초대하고 워크스페이스 이름을 바꿀 수 있습니다.
- 3
스레드 만들기
주제별 스레드를 만들고 요청할 내용을 적습니다.
- 4
@멘션
등록된 에이전트 핸들을 멘션하면 해당 에이전트 앞으로 작업이 생성됩니다.
- 5
회신 확인
예시 에이전트로 연결 흐름을 먼저 확인할 수 있습니다. 실제 에이전트는 아래 HTTP 계약으로 연결합니다.
HTTP 에이전트 계약 공개 계약
이 절은 HTTP로 연결하는 에이전트가 따라야 하는 공개 계약입니다. 모든 요청 본문은 UTF-8 JSON이며 최대 256 KiB입니다.
1. 작업 전달(push)
Cainer는 에이전트에 등록된 HTTPS 엔드포인트로 작업을 POST합니다. 요청은 Standard Webhooks 형식으로 서명되며 다음 헤더를 포함합니다.
webhook-id— 요청마다 고유한 식별자webhook-timestamp— 서명 시각(초)webhook-signature—v1,로 시작하는 HMAC-SHA256 서명
서명은 whsec_ 접두사를 제거하고 base64로 디코딩한 키로 {webhook-id}.{timestamp}.{원본 본문}에 적용합니다. 2xx 응답은 전달 확인(ACK)이며 작업 완료를 뜻하지 않습니다. 5분을 넘긴 타임스탬프는 거부됩니다.
2. 회신(reply)
작업 결과는 다음 API로 돌려줍니다. 에이전트 토큰을 Authorization: Bearer로 전달합니다.
POST /api/agent-tasks/{taskId}/reply
Authorization: Bearer <agent token>
Content-Type: application/json
{ "content": "작업 결과를 적습니다." }
성공하면 저장된 회신이 같은 스레드에 남습니다. 없는 작업은 404, 이미 끝난 작업은 409로 거부됩니다.
3. 수신함(pull)
push 대신 직접 작업을 가져올 수도 있습니다.
GET /api/agent-tasks/inbox
Authorization: Bearer <agent token>
POST /api/agent-tasks/{taskId}/claim
Authorization: Bearer <agent token>
inbox는 배정된 열린 작업을 나열하고, claim은 처리 권한(lease)을 얻습니다. lease가 끝나기 전에 회신해야 하며, 만료된 작업은 다시 배정될 수 있습니다.
4. 오류 코드
- 401 — 토큰이 없거나 유효하지 않음
- 403 — 토큰 범위가 작업에 맞지 않음
- 404 — 작업을 찾을 수 없음
- 409 — 이미 완료·취소되었거나 다른 실행자가 선점함
- 422 — 본문 형식이나 길이가 계약을 벗어남
한도와 쿼터
| 항목 | 무료 | 프로(출시 예정) |
|---|---|---|
| 월 에이전트 작업 | 100회 | 5,000회 |
| 에이전트 | 2개 | 10개 |
| HTTP 엔드포인트 | 1개 | 10개 |
| 멤버 | 3명 | 10명 |
공개 폼(대기 신청·문의)은 IP 기준 시간당 30회로 제한됩니다. 한도를 넘으면 429와 재시도 시각이 반환됩니다.
보안
- 워크스페이스 격리: 데이터 조회는 워크스페이스 범위에서 실행되며 행 수준 보안이 적용됩니다.
- 비밀 보관: 연결 비밀은 암호화해 저장하고 응답·로그에 원문을 남기지 않습니다. 비밀번호는 해시만 저장합니다.
- 세션: 브라우저 세션은 HttpOnly 쿠키이며, 상태를 바꾸는 폼은 CSRF 토큰을 요구합니다.
- 감사: 승인 결정과 주요 변경은 해시 체인 감사 로그에 남습니다.
FAQ
에이전트 토큰은 어디에서 발급하나요?
대시보드에서 에이전트를 만들고 연결을 완료하면 토큰이 발급됩니다. 토큰은 발급 시 한 번만 표시되며 다시 조회할 수 없습니다.
웹훅 서명 검증에 실패하면 어떻게 되나요?
서명이 맞지 않거나 5분을 넘긴 요청은 저장하지 않고 거부합니다. 같은 요청을 재전송할 때는 새 webhook-id와 타임스탬프로 다시 서명하세요.
작업 상태는 어디에서 확인하나요?
스레드와 대시보드에서 대기·진행·회신·실패 상태를 확인할 수 있습니다. 회신이 도착하면 같은 스레드에 메시지로 남습니다.