ai:openclaw_agent_googlechat
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판 | |||
| ai:openclaw_agent_googlechat [2026-10-30 12:08] – DokuWiki 솔루션 이전; 공개 인증정보 정제. 기존 본문/목차 보존. migration | ai:openclaw_agent_googlechat [2026-10-30 14:55] (현재) – 바깥 편집 127.0.0.1 | ||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| + | ====== OpenClaw 에이전트 추가 + Google Chat 연동 가이드 ====== | ||
| + | |||
| + | 이 문서는 **OpenClaw에 새로운 에이전트를 추가**하고, | ||
| + | |||
| + | > 이 페이지는 실제 설정/ | ||
| + | |||
| + | ----- | ||
| + | |||
| + | ===== 1. 개념 정리 ===== | ||
| + | |||
| + | ==== 1.1 OpenClaw 에이전트 구조 ==== | ||
| + | |||
| + | OpenClaw에서 " | ||
| + | |||
| + | * **workspace**: | ||
| + | * AGENTS.md, SOUL.md, MEMORY.md 등 텍스트 기반 운영 규칙/ | ||
| + | * **config 상의 agent 설정**: 기본 모델, 생각 모드, heartbeat, 채널 라우팅 설정 | ||
| + | * **세션 관리**: 각 채널(DM, 단톡방, Google Chat space 등)에 대한 대화 세션 JSONL | ||
| + | |||
| + | 현재 이 환경에서는 `~/ | ||
| + | |||
| + | ==== 1.2 Google Chat 채널 구조(요약) ==== | ||
| + | |||
| + | Google Chat 쪽은 하나의 **Chat 앱**이 있고, OpenClaw 쪽에 하나의 **웹훅 엔드포인트(/ | ||
| + | |||
| + | * Google Chat 앱 → HTTP Webhook: `https://< | ||
| + | * OpenClaw `channels.googlechat` 설정으로 Chat API 서비스 계정/ | ||
| + | * 각 DM/Space는 `spaces/< | ||
| + | |||
| + | 여기서 " | ||
| + | |||
| + | ----- | ||
| + | |||
| + | ===== 2. 새 에이전트 추가 흐름 (개요) ===== | ||
| + | |||
| + | 새 에이전트를 추가할 때 기본 흐름은 다음과 같습니다. | ||
| + | |||
| + | 1. **에이전트 ID/역할 정의** | ||
| + | * 예: `brand-helper`, | ||
| + | 2. **워크스페이스 준비** | ||
| + | * (옵션 A) 메인 workspace를 공유하면서, | ||
| + | * (옵션 B) 에이전트별 별도 workspace 디렉터리 생성 (권장: 역할이 많이 다를 때) | ||
| + | 3. **OpenClaw config에 agent 블록 추가** | ||
| + | * 모델, workspace 경로, heartbeat, default 채널 라우팅 등을 정의 | ||
| + | 4. **Google Chat 라우팅에서 어느 space → 어느 agent를 쓸지 결정** | ||
| + | * 실무상은 "이 space는 brand-helper 전용" | ||
| + | |||
| + | ※ 현재 버전 기준으로, | ||
| + | " | ||
| + | |||
| + | ----- | ||
| + | |||
| + | ===== 3. 에이전트 추가 – 실무 절차 ===== | ||
| + | |||
| + | 여기서는 **별도 역할용 에이전트 하나를 추가하는** 시나리오를 기준으로 정리합니다. | ||
| + | |||
| + | ==== 3.1 에이전트 ID와 workspace 결정 ==== | ||
| + | |||
| + | 예시: **브랜드 전략 문서 전용 에이전트** | ||
| + | |||
| + | * 에이전트 ID: `brand-strategy` | ||
| + | * workspace 경로: `~/ | ||
| + | |||
| + | 실제 작업: | ||
| + | |||
| + | 1. 서버에서 디렉터리 생성 | ||
| + | * `mkdir -p ~/ | ||
| + | 2. 최소 파일 세트 복사 (선택) | ||
| + | * 메인 workspace의 `AGENTS.md`, | ||
| + | 새 에이전트에 맞게 내용 축소/ | ||
| + | |||
| + | ==== 3.2 새 에이전트용 config 블록 추가 ==== | ||
| + | |||
| + | OpenClaw config(JSON5) 예시(개념용): | ||
| + | |||
| + | ```json5 | ||
| + | { | ||
| + | agent: { | ||
| + | // 메인 에이전트 기본값 | ||
| + | model: " | ||
| + | workspace: " | ||
| + | }, | ||
| + | agents: { | ||
| + | brand-strategy: | ||
| + | model: " | ||
| + | workspace: " | ||
| + | thinkingDefault: | ||
| + | heartbeat: { every: " | ||
| + | }, | ||
| + | }, | ||
| + | } | ||
| + | ``` | ||
| + | |||
| + | 포인트: | ||
| + | |||
| + | * `agent` 블록: 기본(메인) 에이전트 설정 | ||
| + | * `agents.< | ||
| + | * 실제 config 파일 위치/키 구조는 현재 서버의 `openclaw gateway config.get` 결과를 기준으로 맞춰야 합니다 (이 문서는 구조 예시). | ||
| + | |||
| + | ==== 3.3 워크스페이스 내 문서 세팅(요약) ==== | ||
| + | |||
| + | 새 workspace(`workspace-brand-strategy`) 안에는 최소 아래 파일을 두는 것을 권장합니다. | ||
| + | |||
| + | * `AGENTS.md` – 이 에이전트의 역할/ | ||
| + | * `SOUL.md` – 말투/ | ||
| + | * `TOOLS.md` – 이 에이전트가 사용할 수 있는 외부 도구/ | ||
| + | |||
| + | ----- | ||
| + | |||
| + | ===== 4. Google Chat 채널 기본 세팅 (요약) ===== | ||
| + | |||
| + | 세부 절차는 `docs/ | ||
| + | |||
| + | ==== 4.1 Google Cloud / Chat 앱 준비 ==== | ||
| + | |||
| + | 1. GCP 프로젝트 생성 후 **Google Chat API** 활성화 | ||
| + | 2. 서비스 계정 생성 → JSON Key 발급 → 서버에 저장 | ||
| + | 3. Google Chat 앱 구성 | ||
| + | * 기능: Join spaces and group conversations | ||
| + | * 연결: HTTP endpoint URL → `https://< | ||
| + | * 트리거: 모든 트리거에 공통 HTTP endpoint 사용 | ||
| + | * 가시성: 특정 사용자/ | ||
| + | 4. 앱 상태를 **Live - available to users**로 전환 | ||
| + | |||
| + | ==== 4.2 OpenClaw config에서 googlechat 채널 활성화 ==== | ||
| + | |||
| + | 예시: | ||
| + | |||
| + | ```json5 | ||
| + | { | ||
| + | channels: { | ||
| + | googlechat: { | ||
| + | enabled: true, | ||
| + | serviceAccountFile: | ||
| + | audienceType: | ||
| + | audience: " | ||
| + | webhookPath: | ||
| + | botUser: " | ||
| + | dm: { | ||
| + | policy: " | ||
| + | allowFrom: [" | ||
| + | }, | ||
| + | groupPolicy: | ||
| + | groups: { | ||
| + | // 아래 5.절에서 설명 | ||
| + | }, | ||
| + | mediaMaxMb: 20, | ||
| + | }, | ||
| + | }, | ||
| + | } | ||
| + | ``` | ||
| + | |||
| + | ----- | ||
| + | |||
| + | ===== 5. Google Chat 스페이스별 설정 (여러 " | ||
| + | |||
| + | Google Chat은 HTTP 엔드포인트는 하나이지만, | ||
| + | |||
| + | ==== 5.1 스페이스 ID 확인 방법 ==== | ||
| + | |||
| + | * Google Chat에서 해당 방을 열고, 브라우저 주소창의 `spaces/ | ||
| + | * 또는 OpenClaw 로그/ | ||
| + | * 예: `spaces/ | ||
| + | |||
| + | ==== 5.2 config.groups 에 여러 스페이스 정의 예시 ==== | ||
| + | |||
| + | ```json5 | ||
| + | { | ||
| + | channels: { | ||
| + | googlechat: { | ||
| + | // ... (상동) | ||
| + | groupPolicy: | ||
| + | groups: { | ||
| + | " | ||
| + | allow: true, | ||
| + | requireMention: | ||
| + | users: [" | ||
| + | // brand-strategy 에이전트 전용 방으로 사용 (역할을 설명으로 기록) | ||
| + | note: " | ||
| + | }, | ||
| + | " | ||
| + | allow: true, | ||
| + | requireMention: | ||
| + | users: [" | ||
| + | note: " | ||
| + | } | ||
| + | }, | ||
| + | }, | ||
| + | }, | ||
| + | } | ||
| + | ``` | ||
| + | |||
| + | 포인트: | ||
| + | |||
| + | * 각각의 `spaces/ | ||
| + | * 현재 버전 기준으로 config에서 space별로 agentId를 직접 지정하는 키는 공개되어 있지 않으므로, | ||
| + | 실제 운용 시에는: | ||
| + | * 이 Space에서는 `brand-strategy` 역할로만 질문한다 (AGENTS.md/ | ||
| + | * 필요 시 해당 Space에서만 사용하는 프롬프트/ | ||
| + | 하는 식으로 분리 운용합니다. | ||
| + | |||
| + | ----- | ||
| + | |||
| + | ===== 6. 실제 운용 패턴 (권장 예시) ===== | ||
| + | |||
| + | * **메인 에이전트(홍길동)** | ||
| + | * workspace: `~/ | ||
| + | * 채널: 개인 DM, 회사 공용 방, 메인 Google Chat space 등 | ||
| + | * **보조 에이전트 예: brand-strategy** | ||
| + | * workspace: `~/ | ||
| + | * 주 역할: 제품 표시 가이드/ | ||
| + | * Google Chat: `spaces/ | ||
| + | |||
| + | 에이전트 추가/ | ||
| + | |||
| + | 1. 새 workspace 준비 (또는 기존 workspace에 역할 섹션 추가) | ||
| + | 2. OpenClaw config에 `agents.< | ||
| + | 3. `channels.googlechat.groups`에 해당 space를 allowlist로 추가 | ||
| + | 4. Space 상단 공지 또는 위키에 "이 방은 어떤 역할의 에이전트와 상호작용하는 방인지" | ||
| + | |||
| + | 이 문서는 구조/ | ||
| + | |||
| + | ----- | ||
| + | |||
| + | ===== 7. WSL 환경에서 실제로 입력할 명령어 정리 ===== | ||
| + | |||
| + | 이 환경은 **Windows + WSL2(Ubuntu)** 조합 기준입니다. 아래 예시는 WSL 터미널(예: | ||
| + | |||
| + | ==== 7.1 새 에이전트용 workspace 디렉터리 만들기 ==== | ||
| + | |||
| + | 예시: `brand-strategy` 에이전트용 별도 워크스페이스 | ||
| + | |||
| + | ```bash | ||
| + | # 1) WSL 터미널에서 실행 (Ubuntu) | ||
| + | cd ~ | ||
| + | |||
| + | # 2) 새 워크스페이스 디렉터리 생성 | ||
| + | mkdir -p ~/ | ||
| + | |||
| + | # 3) 메인 워크스페이스 일부 파일 참고용 복사 (선택) | ||
| + | cp ~/ | ||
| + | cp ~/ | ||
| + | cp ~/ | ||
| + | |||
| + | # 이후 vi/ | ||
| + | # vi ~/ | ||
| + | ``` | ||
| + | |||
| + | ==== 7.2 현재 OpenClaw config 확인하기 ==== | ||
| + | |||
| + | OpenClaw가 WSL에서 돌아가는 경우, 보통 아래 명령으로 현재 Gateway 설정을 확인합니다. | ||
| + | |||
| + | ```bash | ||
| + | # WSL 터미널에서 | ||
| + | openclaw gateway config.get | ||
| + | ``` | ||
| + | |||
| + | 출력 결과를 복사해서 안전한 편집기로 열고, | ||
| + | `agent` / `agents` / `channels.googlechat` 블럭 위치를 확인한 다음, 앞서 예시로 든 구조에 맞게 `agents.brand-strategy` 등을 추가합니다. | ||
| + | |||
| + | > 주의: config 수정은 **JSON5 문법 오류**가 나면 Gateway가 올라오지 않을 수 있으니, | ||
| + | > 콤마/ | ||
| + | |||
| + | ==== 7.3 수정한 config 적용 + OpenClaw에 에이전트 인식시키기 ==== | ||
| + | |||
| + | 1) **수정된 config를 파일로 저장**했다고 가정할 때 (예: `/ | ||
| + | |||
| + | ```bash | ||
| + | # 1) 현재 config 백업 (선택) | ||
| + | openclaw gateway config.get > ~/ | ||
| + | |||
| + | # 2) 편집한 파일을 적용 | ||
| + | openclaw gateway config.apply --file ~/ | ||
| + | ``` | ||
| + | |||
| + | 2) 또는, `config.get` 출력에 바로 패치하는 형태로 쓸 수도 있지만, | ||
| + | | ||
| + | |||
| + | 3) config를 적용하면 Gateway가 자동으로 재시작되고, | ||
| + | 새 `agents.< | ||
| + | |||
| + | * 해당 에이전트 ID가 뜨는 세션들이 생성될 수 있고 | ||
| + | * Google Chat에서 해당 Space로 메시지가 들어오면, | ||
| + | |||
| + | > 참고: 이 문서에서는 실제 `config.apply` 실행 예시만 보여주고, | ||
| + | |||
| + | ==== 7.4 Gateway 상태 점검 ==== | ||
| + | |||
| + | config 적용 후 Gateway가 제대로 올라왔는지 확인하려면: | ||
| + | |||
| + | ```bash | ||
| + | # Gateway 전체 상태 확인 | ||
| + | openclaw status | ||
| + | |||
| + | # 로그를 보고 싶을 때 (선택) | ||
| + | openclaw gateway logs | ||
| + | ``` | ||
| + | |||
| + | 에러 없이 올라와 있고, Google Chat에서 봇에게 메시지를 보냈을 때 응답이 온다면 | ||
| + | 새 에이전트/ | ||
| + | |||