harishkotra/agent-office큐레이터 픽

Watch AI agents walk to desks, think, collaborate, hire interns, assign tasks to each other, execute code, search the web, and grow their team - all rendered in real-time pixel art with persistent memory across sessions.

178
GitHub 스타
68
포크
TypeScript
언어
MIT
라이선스
2026.05.15
최근 푸시
2026.05.21
별표한 날

AI 분석

설치 난이도: 보통
큐레이터 노트
에이전트 기반 시뮬레이션, 게임 NPC 엔진, 또는 자율 워크플로우 데모를 구축하려는 프로젝트에 적합합니다. 특히 시각적 피드백이 중요한 경우 유용합니다.

강점

  • 로컬 LLM(Ollama) 기반으로 완전히 오프라인에서 실행 가능하며, 벤더 종속이 없음
  • 에이전트 간 자율 대화, 동적 고용, 도구 실행 등 고급 기능을 실시간 픽셀 아트로 시각화
  • SQLite 기반 지속 메모리와 의미론적 검색으로 장기 기억 및 컨텍스트 유지 가능

약점

  • README에 명시된 성능 벤치마크나 확장성 테스트 결과가 없음
  • 에이전트 수가 많아질 때의 동작이나 리소스 사용량에 대한 정보 부족
  • 보안 관련 내용(샌드박스 코드 실행의 격리 수준 등)이 구체적으로 설명되지 않음

주의사항

  • Ollama 모델을 로컬에서 실행해야 하므로 충분한 하드웨어 리소스(특히 GPU)가 필요할 수 있음
  • 에이전트의 자율적 행동(고용, 작업 생성)이 예상치 못한 결과를 초래할 수 있으므로 모니터링 필요
  • Docker 배포 시 GPU 설정이 복잡할 수 있으며, CPU 전용 모드로 전환 시 성능 저하 가능

시작 가이드

  • 로컬 환경에 Ollama와 Node.js를 설치하고 빠른 시작 가이드대로 실행해보기
  • 에이전트 성격과 시스템 프롬프트를 수정하여 원하는 시나리오에 맞게 커스터마이징
  • 사용자 정의 도구를 추가하여 프로젝트별 기능 확장

README 한국어 번역

이 번역은 AI가 원문 README를 옮긴 것입니다. 원문이 항상 우선합니다.

🏢 AgentOffice

자체 성장하는 AI 팀이 픽셀 아트 가상 사무실에서 — 로컬 LLM으로 구동.

AI 에이전트가 책상으로 걸어가고, 생각하고, 협업하고, 인턴을 고용하고, 서로 작업을 할당하고, 코드를 실행하고, 웹을 검색하고, 팀을 성장시키는 모습을 실시간 픽셀 아트로 지켜보세요 — 세션 간 지속되는 메모리와 함께.

제로 락인. Ollama로 100% 로컬 실행. OpenAI 호환 API로 교체 가능.

https://youtu.be/GgrK8K9RlIA

<img width="1697" height="1272" alt="Screenshot at Feb 25 00-15-59" src="https://github.com/user-attachments/assets/9ed16692-09d9-44e4-a258-f796f9479afb" /> <img width="1694" height="1272" alt="Screenshot at Feb 25 00-16-31" src="https://github.com/user-attachments/assets/f592359a-ba96-45fc-bb5e-07ec88583a10" /> <img width="1699" height="1278" alt="screencapture-localhost-5173-2026-02-25-000515" src="https://github.com/user-attachments/assets/4a604b86-1aaf-4b0d-985b-51afe7d71586" /> <img width="1699" height="1278" alt="screencapture-localhost-5173-2026-02-25-000454" src="https://github.com/user-attachments/assets/4f2811ff-a66e-47e3-9d0f-184123e75e01" /> <img width="1699" height="1278" alt="screencapture-localhost-5173-2026-02-25-000444" src="https://github.com/user-attachments/assets/8773814e-9414-4c62-a098-8f5a205db187" /> <img width="1695" height="1270" alt="Screenshot at Feb 25 00-18-57" src="https://github.com/user-attachments/assets/1591cb0e-9aea-4728-8f01-9f7a2c8d5ac2" /> <img width="2018" height="1268" alt="Screenshot at Feb 25 00-34-36" src="https://github.com/user-attachments/assets/f719ad99-f4ba-4998-8c9b-68818061bc60" />


✨ 무엇을 할 수 있나요?

기능 설명
🧠 LLM 기반 에이전트 각 에이전트는 성격 특성을 가진 자체 Ollama 기반 두뇌를 가짐
💬 에이전트 간 대화 에이전트가 자율적으로 서로 대화하고 메시지에 응답
🎯 클릭하여 따라가기 포커스 모드 에이전트 스프라이트를 클릭하면 카메라가 부드럽게 따라감
📋 UI 작업 할당 TaskBoard에서 작업을 할당하거나 에이전트가 서로 작업을 생성
🤝 동적 고용 에이전트가 스스로 새 팀원(인턴, 개발자, 디자이너)을 고용 가능
🔧 도구 실행 샌드박스 JS 실행, 웹 검색, 메모 작성, 파일 읽기
💾 지속적 메모리 SQLite 기반 메모리는 서버 재시작 후에도 유지되며 중요도 가중치 회상 지원
🔍 의미론적 메모리 검색 Ollama 임베딩 + 코사인 유사도로 지능적 메모리 검색
🏗️ 레이아웃 편집기 드래그 앤 드롭 가구 배치, 데이터베이스에 저장
📊 시스템 활동 로그 모든 에이전트 이벤트의 실시간 피드 (중복 제거)
💡 이모트 버블 에이전트 스프라이트 위에 행동별 이모지 (💻💬😌🔧🚶💡) 표시
🪑 가구 상호작용 에이전트가 작업을 위해 책상으로 걸어가고, 대화를 위해 서로에게 접근

🎬 작동 방식

브라우저를 엽니다 → 픽셀 아트 사무실 로드 → Alice (엔지니어)와 Bob (PM) 생성
  → 각 에이전트는 Ollama를 통해 약 15초마다 생각 루프 실행
  → LLM 반환: { thought, action, target, toolCall }
  → 서버가 액션 실행 (이동, 대화, 도구 사용, 에이전트 고용)
  → Colyseus가 상태를 모든 연결된 브라우저에 실시간 동기화
  → 에이전트는 SQLite + Ollama 임베딩을 통해 모든 것을 기억
  → 에이전트가 새 멤버를 고용하기로 결정하면 팀 성장 🚀

🏗️ 아키텍처

agent-office/
├── packages/
│   ├── core/          # 에이전트 상태 머신, 메모리, 작업, 사무실 그리드
│   ├── adapters/      # OllamaAdapter, OpenAICompatibleAdapter, PromptBuilder
│   ├── server/        # Colyseus 방, ToolExecutor, MemoryStore (SQLite)
│   ├── ui/            # Phaser.js 게임 + React 오버레이 (채팅, TaskBoard, SystemLog)
│   └── cli/           # 스캐폴드 및 관리 명령어
├── examples/
│   └── ollama-startup/  # 2개 에이전트 데모 사무실
├── docs/              # 문서 (Docusaurus)
└── docker-compose.yml # 원커맨드 배포

데이터 흐름:

Ollama ←→ OllamaAdapter ←→ Agent.think() ←→ Colyseus State ←→ Phaser + React UI
                                  ↕                  ↕
                           MemoryStore (SQLite)   ToolExecutor
                           Embeddings (Ollama)    (code, search, tasks)

🚀 빠른 시작

사전 요구사항

도구 버전 목적
Node.js ≥ 18 런타임
npm ≥ 9 패키지 매니저 (워크스페이스)
Ollama 최신 로컬 LLM 추론

설정

# 클론 및 설치
git clone https://github.com/AjStraworern/agent-office.git
cd agent-office
npm install

# 모델 다운로드
ollama pull llama3.2

# 모든 패키지 빌드
npm run build

# 터미널 1: 서버 시작
npm run start --workspace=@agent-office/server

# 터미널 2: UI 시작
npm run dev --workspace=@agent-office/ui

http://localhost:5173을 열면 Alice와 Bob이 살아 움직이는 모습을 확인하세요! 🎉


🐳 Docker 배포

docker compose up --build

이 명령어는 서버 (포트 3000), UI (포트 80), Ollama (GPU 포함), Redis (스케일링용)를 시작합니다.

CPU 전용인 경우 docker-compose.yml에서 deploy.resources 섹션을 제거하세요.


🔧 설정

LLM 모델 변경

packages/server/src/rooms/OfficeRoom.ts 편집:

inference: {
    provider: 'ollama',
    model: 'llama3.2:latest',  // ← 원하는 Ollama 모델로 변경
    systemPrompt: '...',
},

OpenAI / Gaia / OpenRouter 사용

import { OpenAICompatibleAdapter } from '@agent-office/adapters';

private adapter = new OpenAICompatibleAdapter(
    'https://api.openai.com/v1',
    'sk-your-key-here',
    'gpt-4o-mini'
);

수동으로 에이전트 추가

await setupCoreAgent('charlie', 'Charlie', 'Designer', 15, 15);

또는 기존 에이전트가 LLM을 통해 동적으로 고용하도록 할 수 있습니다! 🤝


🍴 포크하여 나만의 것으로 만들기

AgentOffice는 포크 및 커스터마이징을 위해 설계되었습니다. 방법은 다음과 같습니다:

1단계: 포크 & 클론

# GitHub에서 포크한 후:
git clone https://github.com/YOUR_USERNAME/agent-office.git
cd agent-office && npm install

2단계: 에이전트 커스터마이징

packages/server/src/rooms/OfficeRoom.ts를 편집하여 에이전트 이름, 역할, 성격 및 시스템 프롬프트를 변경하세요. 성격 특성(개방성, 성실성, 외향성, 우호성, 신경증)은 에이전트 행동에 직접 영향을 줍니다.

3단계: 사용자 정의 도구 추가

packages/server/src/tools/ToolExecutor.ts에 새 도구를 생성하세요:

case 'my_custom_tool':
    return this.myCustomTool(params);

그런 다음 에이전트 구성에 기능을 추가하세요.

4단계: 사무실 레이아웃 변경

OfficeRoom.tsfurnitureTargets를 수정하거나 브라우저 내 레이아웃 편집기를 사용하여 가구를 배치하고 저장하세요.


💡 아이디어: 이것으로 무엇을 만들 수 있나요?

사용 사례 설명
🎓 AI 교실 교사 에이전트가 수업을 할당하고, 학생 에이전트가 배우고 질문
🏥 가상 병원 의사, 간호사, 환자 에이전트가 의료 워크플로우 시뮬레이션
🏭 공장 시뮬레이션 에이전트가 조립 라인, 품질 관리, 물류 관리
🎮 게임 NPC 엔진 AgentOffice를 게임 NPC의 두뇌로 사용
📊 비즈니스 시뮬레이션 CEO, CTO 및 팀 에이전트가 스타트업 운영 — 전략이 나타나는 모습 관찰
🧪 연구실 에이전트가 논문을 읽고, 결과를 논의하고, 협업 보고서 작성
🤖 AI 면접 시뮬레이터 면접관과 지원자 에이전트가 기술 면접 연습
🎭 사회 실험 다양한 성격을 가진 AI 에이전트 그룹의 창발적 행동 연구
📚 스터디 그룹 에이전트가 서로 퀴즈를 내고, 개념을 설명하고, 학습 진행 상황 추적
🏗️ DevOps 팀 에이전트가 서비스를 모니터링하고, 인시던트 티켓을 생성하고, 수정 조정

📦 패키지 개요

패키지 설명
@agent-office/core 에이전트 생명주기 (인지 → 생각 → 행동), 사무실 그리드, 작업 시스템, 중요도 점수 메모리
@agent-office/adapters InferenceAdapter 인터페이스, OllamaAdapter, OpenAICompatibleAdapter, PromptBuilder
@agent-office/server Colyseus 방, 게임 루프, ToolExecutor (코드/검색/메모), MemoryStore (SQLite + 임베딩)
@agent-office/ui Phaser.js 렌더러, React 오버레이 (채팅, TaskBoard, Inspector, SystemLog, LayoutEditor)
@agent-office/cli create-agent-office 스캐폴드, add-agent 명령어

🧪 테스트

npm test                                    # 모든 테스트
npm test --workspace=@agent-office/core     # 코어만
npm test --workspace=@agent-office/adapters # 어댑터만

🗺️ 로드맵

  • [x] 다중 에이전트 대화
  • [x] UI 작업 할당
  • [x] 지속적 메모리 (SQLite)
  • [x] 도구 실행 (코드, 검색)
  • [x] 사용자 정의 레이아웃 편집기
  • [x] 에이전트 포커스 모드
  • [x] 동적 에이전트 고용
  • [x] 의미론적 메모리 검색
  • [x] 시스템 활동 로그
  • [x] 이모트 버블
  • [ ] 음성 모드 (TTS/STT)
  • [ ] GitHub PR 통합
  • [ ] Slack/Discord 브리지
  • [ ] 여러 사무실 층
  • [ ] 사용자 정의 행동을 위한 플러그인 시스템
  • [ ] 모바일 동반 앱

📘 변경 로그

릴리스 노트는 CHANGELOG.md를 참조하세요.


🤝 기여

  1. 저장소를 포크하세요
  2. 기능 브랜치를 생성하세요 (git checkout -b feature/amazing)
  3. 변경 사항을 커밋하세요 (git commit -m 'Add amazing feature')
  4. 브랜치에 푸시하세요 (git push origin feature/amazing)
  5. 풀 리퀘스트를 열어주세요

Phaser.js · Colyseus · React · Ollama · SQLite · TypeScript로 구축

AI 에이전트가 자신만의 사무실을 가질 자격이 있다고 생각한다면 ⭐ 이 저장소에 별표를 눌러주세요!

💙 https://github.com/pablodelucca/pixel-agents를 구축하고 영감을 준 @pablodelucca에게 감사 인사를 전합니다.

원본 저장소: harishkotra/agent-office

라이선스: MIT

게재 제외를 원하시면 삭제 요청을 보내주세요.