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.
이 번역은 AI가 원문 README를 옮긴 것입니다. 원문이 항상 우선합니다.
자체 성장하는 AI 팀이 픽셀 아트 가상 사무실에서 — 로컬 LLM으로 구동.
AI 에이전트가 책상으로 걸어가고, 생각하고, 협업하고, 인턴을 고용하고, 서로 작업을 할당하고, 코드를 실행하고, 웹을 검색하고, 팀을 성장시키는 모습을 실시간 픽셀 아트로 지켜보세요 — 세션 간 지속되는 메모리와 함께.
제로 락인. Ollama로 100% 로컬 실행. OpenAI 호환 API로 교체 가능.
<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 compose up --build
이 명령어는 서버 (포트 3000), UI (포트 80), Ollama (GPU 포함), Redis (스케일링용)를 시작합니다.
CPU 전용인 경우
docker-compose.yml에서deploy.resources섹션을 제거하세요.
packages/server/src/rooms/OfficeRoom.ts 편집:
inference: {
provider: 'ollama',
model: 'llama3.2:latest', // ← 원하는 Ollama 모델로 변경
systemPrompt: '...',
},
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는 포크 및 커스터마이징을 위해 설계되었습니다. 방법은 다음과 같습니다:
# GitHub에서 포크한 후:
git clone https://github.com/YOUR_USERNAME/agent-office.git
cd agent-office && npm install
packages/server/src/rooms/OfficeRoom.ts를 편집하여 에이전트 이름, 역할, 성격 및 시스템 프롬프트를 변경하세요. 성격 특성(개방성, 성실성, 외향성, 우호성, 신경증)은 에이전트 행동에 직접 영향을 줍니다.
packages/server/src/tools/ToolExecutor.ts에 새 도구를 생성하세요:
case 'my_custom_tool':
return this.myCustomTool(params);
그런 다음 에이전트 구성에 기능을 추가하세요.
OfficeRoom.ts의 furnitureTargets를 수정하거나 브라우저 내 레이아웃 편집기를 사용하여 가구를 배치하고 저장하세요.
| 사용 사례 | 설명 | ||
|---|---|---|---|
| 🎓 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 # 어댑터만
릴리스 노트는 CHANGELOG.md를 참조하세요.
git checkout -b feature/amazing)git commit -m 'Add amazing feature')git push origin feature/amazing)Phaser.js · Colyseus · React · Ollama · SQLite · TypeScript로 구축
AI 에이전트가 자신만의 사무실을 가질 자격이 있다고 생각한다면 ⭐ 이 저장소에 별표를 눌러주세요!
💙 https://github.com/pablodelucca/pixel-agents를 구축하고 영감을 준 @pablodelucca에게 감사 인사를 전합니다.