Telegram 채널

개요 Telegram 채널은 BotFather를 통해 생성한 봇 토큰으로 연동한다. DM/그룹 정책, 포럼 토픽 격리, 라이브 스트리밍, 웹훅 모드 등을 지원한다. 봇 생성 Telegram에서 @BotFather에게 DM /newbot 명령 입력 봇 이름과 사용자명 설정 발급된 토큰 복사 설정 { "channels": { "telegram": { "enabled": true, "botToken": "${TELEGRAM_BOT_TOKEN}", "dmPolicy": "pairing" } } } DM 정책 정책 설명 pairing 최초 대화 시 관리자 승인 필요 (기본값) allowlist 허용 목록의 사용자만 DM 가능 open 모든 사용자 DM 허용 disabled DM 비활성화 페어링 승인 새 사용자가 봇에 메시지를 보내면 관리자에게 알림이 전송된다. 관리자가 승인하면 해당 사용자와 대화가 시작된다. ...

2 분 · 김정우

커스텀 어댑터 만들기

에이전트 런타임과 Paperclip을 통합하는 커스텀 어댑터를 빌드하는 가이드입니다. 패키지 구조 packages/adapters/<name>/ ├── src/ │ ├── index.ts # 루트 메타데이터 │ ├── server.ts # 실행 로직 │ ├── ui.ts # 트랜스크립트 파싱 │ └── cli.ts # 터미널 포맷팅 구현 단계 단계 1: 루트 메타데이터 src/index.ts에서 어댑터 정보를 내보냅니다: 타입, 라벨, 지원 모델, 설정 문서. 이 파일은 의존성이 없어야 합니다. 단계 2: 서버 실행 실행 모듈은 컨텍스트를 받아 결과를 반환합니다: 설정을 안전하게 읽기 환경 빌드 세션 상태 해결 프롬프트 렌더링 프로세스 생성 사용량 메트릭 및 오류 처리를 위한 출력 파싱 단계 3: 환경 테스트 error, warn, info 카테고리를 사용한 구조화된 진단으로 설정을 검증합니다. ...

1 분 · 김정우

Discord 채널

개요 Discord 채널은 봇 자격 증명과 Message Content Intent를 통해 연동한다. DM/길드 정책, Components v2, 스레드 바인딩, 음성 채널 등 Discord 네이티브 기능을 폭넓게 지원한다. 봇 설정 1. 봇 생성 Discord Developer Portal에서 애플리케이션 생성 Bot 탭에서 봇 추가 Token 복사 2. Message Content Intent 활성화 봇이 메시지 내용을 읽으려면 Privileged Gateway Intents에서 Message Content Intent를 활성화해야 한다. 3. 설정 { "channels": { "discord": { "enabled": true, "botToken": "${DISCORD_BOT_TOKEN}", "dmPolicy": "pairing" } } } DM/길드 정책 DM 정책 정책 설명 pairing 페어링 승인 필요 (기본값) allowlist 허용 목록 사용자만 open 모든 사용자 허용 disabled DM 비활성화 길드(서버) 정책 에이전트가 참여할 수 있는 서버를 제한한다. ...

2 분 · 김정우

배포 개요

Paperclip은 세 가지 배포 모드를 제공합니다. 로컬 트러스티드 모드 (기본) 로그인 불필요 루프백 전용 호스트 바인딩 개인 개발자가 로컬에서 작업할 때 적합 가장 빠른 시작 경험 인증 + 프라이빗 모드 Better Auth를 통한 로그인 자격증명 필요 팀 협업을 위해 네트워크 인터페이스에서 접근 가능 Tailscale이나 로컬 네트워크 같은 공유 환경에 적합 인증 + 퍼블릭 모드 로그인 인증 강제 명시적 퍼블릭 URL 설정 필요 클라우드 배포를 위한 향상된 보안 프로토콜 모드 선택 가이드 시나리오 권장 모드 처음 탐색 로컬 트러스티드 (기본) 프라이빗 네트워크로 팀 공유 인증 + 프라이빗 클라우드 인프라 배포 인증 + 퍼블릭 설정: pnpm paperclipai onboard 또는 pnpm paperclipai configure --section server

1 분 · 김정우

Slack 채널

개요 Slack 채널은 Socket Mode(기본) 또는 HTTP Events API를 통해 연동한다. 봇 토큰과 앱 토큰으로 인증하며, 스레딩, Block Kit, 네이티브 명령어 등 Slack 네이티브 기능을 지원한다. 인증 토큰 토큰 형식 용도 Bot Token xoxb-... 메시지 읽기/쓰기, 채널 관리 App Token xapp-... Socket Mode 연결 Slack 앱 생성 Slack API에서 앱 생성 OAuth & Permissions에서 Bot Token Scopes 설정 Socket Mode 활성화 및 App Token 생성 워크스페이스에 앱 설치 연결 모드 Socket Mode (기본) WebSocket을 통한 실시간 연결. 방화벽 뒤에서도 동작하며 별도의 공개 URL이 필요 없다. ...

2 분 · 김정우

배포 모드

로컬 트러스티드 모드 (기본) 솔로 운영자를 위한 표준 설정: localhost에만 바인딩 인증 불필요 로컬 보드 사용자 자동 생성 pnpm paperclipai onboard로 활성화 인증 모드 Better Auth를 통한 사용자 로그인 필수. 두 가지 하위 설정: 프라이빗 네트워크 Tailscale, VPN, LAN 같은 제한된 네트워크용 자동 베이스 URL 감지 프라이빗 호스트 신뢰 검증 필요 커스텀 Tailscale 호스트명: pnpm paperclipai allowed-hostname 퍼블릭 인터넷 인터넷 접근 가능한 배포용 명시적 퍼블릭 URL 필요 doctor 진단 체크 시 향상된 보안 검증 보드 소유권 이전 로컬에서 인증 모드로 마이그레이션하면 일회성 클레임 메커니즘이 트리거됩니다: ...

1 분 · 김정우

데이터베이스

Paperclip은 세 가지 데이터베이스 배포 방식을 지원합니다. 임베디드 PostgreSQL (기본) 설정 제로. DATABASE_URL을 설정하지 않으면 서버가 자동으로 임베디드 PostgreSQL 인스턴스를 시작합니다. 데이터 경로: ~/.paperclip/instances/default/db/ 첫 시작 시 마이그레이션 자동 실행 로컬 Docker PostgreSQL docker compose up -d PostgreSQL 17이 localhost:5432에서 실행됩니다. DATABASE_URL 환경 변수를 설정하고 Drizzle Kit으로 스키마 마이그레이션을 실행합니다. 호스팅 PostgreSQL (Supabase 등) 프로덕션 환경에서는 Supabase 같은 외부 데이터베이스 프로바이더 사용: 프로바이더에서 연결 문자열 획득 환경 변수로 설정 설정 결정 방식 DATABASE_URL 모드 미설정 임베디드 모드 localhost 주소 Docker Supabase 도메인 호스팅 모드 풀링된 연결의 경우 Drizzle 클라이언트 설정에서 prepared statements를 비활성화해야 합니다. ...

1 분 · 김정우

샌드박싱

개요 샌드박싱은 에이전트의 도구 실행을 격리된 백엔드에서 수행하여 호스트 시스템을 보호한다. Docker, SSH, OpenShell 백엔드를 지원하며, 도구별로 샌드박스 적용 여부가 다르다. 샌드박스 대상 도구 샌드박스 적용 샌드박스 미적용 exec (셸 실행) Gateway 도구 read (파일 읽기) 상위 권한 작업 write (파일 쓰기) edit (파일 편집) process (프로세스 관리) browser (브라우저) 샌드박스 모드 모드 설명 off 샌드박싱 비활성화. 모든 도구가 호스트에서 직접 실행 non-main 서브 에이전트만 샌드박싱 (기본값) all 주 에이전트 포함 모든 에이전트 샌드박싱 { "sandbox": { "mode": "all" } } 샌드박스 스코프 스코프 설명 agent 에이전트별 독립 샌드박스 (기본값) session 세션별 독립 샌드박스 shared 모든 에이전트가 하나의 샌드박스 공유 백엔드 Docker (로컬) 로컬 Docker 컨테이너를 사용한 격리. ...

2 분 · 김정우

Docker

빠른 시작 (Compose 방식, 권장) docker compose -f docker-compose.quickstart.yml up --build http://localhost:3100 에서 접근 가능합니다. 환경 변수로 커스터마이징: PAPERCLIP_PORT — 호스트 포트 PAPERCLIP_DATA_DIR — 데이터 디렉토리 수동 빌드 방식 docker build -t paperclip . docker run -p 3100:3100 -v ~/.paperclip:/root/.paperclip paperclip 데이터 저장 바인드 마운트 디렉토리에 영구 저장되는 항목: 임베디드 PostgreSQL 데이터베이스 사용자 업로드 에셋 로컬 시크릿 에이전트 워크스페이스 정보 사전 설치된 도구 Docker 이미지에 포함: Claude Code CLI OpenAI Codex CLI API 키를 전달하여 컨테이너 내 로컬 어댑터 실행 활성화: ...

1 분 · 김정우

시크릿 관리

개요 OpenClaw 게이트웨이는 세 가지 소스에서 시크릿(API 키, 인증 정보 등)을 로드한다. 활성화 시점에 즉시 해석(eager resolution)하고, 리로드 시 원자적 교체(atomic swap)를 수행하여 안전한 시크릿 관리를 제공한다. 시크릿 소스 1. 환경 변수 (Environment Variables) 가장 일반적인 방식. .env 파일 또는 시스템 환경 변수에서 로드한다. { "secrets": { "OPENAI_API_KEY": "${OPENAI_API_KEY}", "TELEGRAM_TOKEN": "${TELEGRAM_BOT_TOKEN}" } } 2. 파일 JSON 포인터 (File Pointers) JSON/YAML 파일 내 특정 경로의 값을 시크릿으로 사용한다. { "secrets": { "DB_PASSWORD": { "file": "/etc/openclaw/secrets.json", "pointer": "/database/password" } } } 3. 실행 명령 (Executable Commands) 외부 시크릿 매니저(Vault, AWS Secrets Manager 등)에서 값을 조회하는 명령을 실행한다. ...

2 분 · 김정우
CEO, SPACEBAR Corp.