Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 Local OS Agent

완전 동적 LLM 기반 Windows OS 자동화 시스템

로컬 LLM을 사용하여 Windows 환경을 음성 명령처럼 자연어로 제어할 수 있는 지능형 에이전트입니다.

Python 3.10+ Ollama License: MIT


✨ 주요 기능

🎯 완전 자동화된 시스템

  • 동적 도구 탐색: 새 도구 추가 시 코드 수정 불필요
  • 자동 프롬프트 생성: 등록된 도구 기반으로 시스템 프롬프트 자동 생성
  • Few-shot 학습: 성공 사례 자동 학습 및 프롬프트 반영
  • 실패 학습: 오류 패턴 분석 및 자동 개선

🔗 멀티-스텝 실행 (NEW!)

  • 자동 태스크 분해: 복잡한 요청을 여러 단계로 자동 분해
  • 실행 계획 프리뷰: 실행 전 계획 확인 가능
  • 도구 체인: 도구 간 데이터 자동 전달
  • 에러 복구: 실패 시 자동 재시도 및 대안 실행

🧠 지능형 에이전트

  • 29개 내장 도구: 파일, 앱, 브라우저, 시스템, Windows 자동화
  • 자연어 이해: "AI 뉴스 검색하고 메모장에 저장해줘" 같은 복잡한 요청 처리
  • 컨텍스트 유지: 대화 히스토리 및 도구 실행 기록 저장
  • 사용자 패턴 학습: 자주 사용하는 명령 패턴 인식

🚀 빠른 시작

1. 사전 요구사항

# Ollama 설치 (https://ollama.ai/)
# Windows: 인스톨러 다운로드
# 설치 후 터미널에서:
ollama pull llama3.2:3b

2. 설치

git clone <repository-url>
cd local-os-agent
pip install -r requirements.txt

3. 실행

python main.py

브라우저가 자동으로 http://localhost:7860을 엽니다.


💡 사용 예시

단일 명령

사용자: "현재 시간 알려줘"
→ ✅ 현재 시간: 2026-01-31 20:55:38

멀티-스텝 자동화 (NEW!)

사용자: "AI에 대해 웹 검색하고 그 결과를 메모장에 저장해줘"

→ 시스템이 자동으로 분석:
  1️⃣  웹 검색 (search_web)
  2️⃣  결과 요약 (summarize_text)
  3️⃣  메모장 저장 (notepad_write)

→ 실행 계획 표시 및 확인
→ 자동 실행
→ ✅ 완료! 메모장이 열렸습니다.

더 많은 예시는 docs/MULTISTEP_EXAMPLES.md를 참조하세요.


🛠️ 사용 가능한 도구 (29개)

📁 파일 작업

  • list_files, read_file, create_file, delete_file, move_file, copy_file

🚀 애플리케이션

  • launch, find_program, list_processes, kill_process, run_app

🌐 웹 & 브라우저

  • open_browser, search_web, take_screenshot, mouse_click, type_text

💻 시스템

  • get_system_info, get_time, clipboard, notify, run_shell

🪟 Windows 자동화

  • control_window, list_windows, notepad_write, send_keys, focus_window, excel_write

📝 텍스트 처리 (NEW!)

  • summarize_text, extract_keywords, format_markdown

⚙️ 설정

config.yaml

llm:
  model: "llama3.2:3b"  # 권장: tool calling 지원 모델
  temperature: 0.3      # 낮을수록 결정적
  max_tokens: 2048

agent:
  max_iterations: 10
  require_confirmation: true  # 위험한 작업 확인

memory:
  enabled: true  # 대화 히스토리 저장

실행 모드

  1. CONFIRM_ALL: 모든 도구 실행 전 확인
  2. SAFE+MODERATE (권장): 안전한 도구 자동 실행
  3. AUTO_ALL: 모든 도구 자동 실행 (⚠️ 위험)

🏗️ 아키텍처

핵심 컴포넌트

┌─────────────────────────────────────┐
│        Gradio UI (Web)              │
└──────────────┬──────────────────────┘
               │
┌──────────────▼──────────────────────┐
│          Agent Core                 │
│  ┌──────────────────────────────┐   │
│  │   TaskPlanner (NEW!)         │   │ ← 멀티-스텝 분석
│  ├──────────────────────────────┤   │
│  │   Dynamic Prompt Builder     │   │ ← 자동 프롬프트
│  ├──────────────────────────────┤   │
│  │   Tool Discovery             │   │ ← 도구 자동 탐색
│  ├──────────────────────────────┤   │
│  │   Error Recovery             │   │ ← 자동 복구
│  ├──────────────────────────────┤   │
│  │   Memory System              │   │ ← 학습 & 기억
│  └──────────────────────────────┘   │
└──────────────┬──────────────────────┘
               │
┌──────────────▼──────────────────────┐
│      Ollama LLM (Local)             │
│    llama3.2:3b (권장)               │
└─────────────────────────────────────┘

자동화 흐름

사용자 요청
    ↓
[TaskPlanner] 멀티-스텝 분석
    ↓
단일?──YES→ [Agent] 도구 호출
    ↓ NO
[ChainBuilder] 실행 계획 생성
    ↓
사용자 확인
    ↓
[ChainExecutor] 순차 실행
    - 변수 바인딩
    - 도구 호출
    - 결과 전달
    ↓
[Memory] 학습 저장

📊 성능

구분 모델 응답 시간 정확도
단일 명령 llama3.2:3b ~5-10초 95%
멀티-스텝 (3단계) llama3.2:3b ~30초 85%
복잡 작업 (6+단계) llama3.2:3b ~60초 70%

권장 모델:

  • llama3.2:3b - 최고의 균형 (권장)
  • llama3.2:1b - 빠르지만 tool calling 불안정
  • qwen2.5:3b - 대안

🔮 로드맵

✅ 완료됨

  • 동적 도구 탐색 시스템
  • 자동 프롬프트 생성
  • Few-shot & 실패 학습
  • 멀티-스텝 기본 구조
  • 실행 계획 프리뷰

🚧 개발 중

  • Agent와 TaskPlanner 완전 통합
  • UI에서 실행 계획 표시
  • 중간 결과 검증 강화

📅 계획됨

  • 조건부 실행 (if/else)
  • 병렬 실행
  • 반복 실행 (for loop)
  • 실행 계획 템플릿 저장
  • 음성 명령 지원

자세한 로드맵은 docs/ROADMAP_MULTISTEP.md를 참조하세요.


📚 문서


🧪 테스트

단위 테스트

pytest tests/unit/

통합 테스트

pytest tests/integration/

멀티-스텝 테스트 (NEW!)

python test_multistep.py

🤝 기여

기여를 환영합니다!

  1. Fork the repo
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📝 라이선스

MIT License - 자유롭게 사용, 수정, 배포 가능


🙏 감사의 말


💬 문의

문제가 있거나 제안사항이 있으면 Issue를 등록해주세요!


⭐ 이 프로젝트가 유용하다면 Star를 눌러주세요!

About

Windows OS automation agent using local LLM (Ollama)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages