HKUDS/OpenHarness

"OpenHarness: Open Agent Harness with a Built-in Personal Agent--Ohmo!"

14,692
GitHub 스타
2,394
포크
Python
언어
MIT
라이선스
2026.06.04
최근 푸시
2026.05.04
별표한 날

AI 분석

설치 난이도: 쉬움
큐레이터 노트
OpenHarness는 연구자와 개발자에게 적합한 오픈소스 에이전트 프레임워크로, 특히 장기 실행 개인 비서나 다중 에이전트 협업이 필요한 프로젝트에 유용합니다. ohmo의 채널 통합 기능은 팀 커뮤니케이션 도구와의 연동을 원하는 경우 강력한 선택지가 됩니다.

강점

  • 경량 에이전트 인프라를 제공하며, 도구 사용, 스킬, 메모리, 다중 에이전트 조정 등 핵심 기능을 갖춤
  • ohmo라는 개인 AI 에이전트가 내장되어 있어 Feishu/Slack/Telegram/Discord 등에서 장기 세션 작업 가능
  • 43개 이상의 도구, 자동 컨텍스트 압축, 다중 레벨 권한, Swarm 조정 등 다양한 고급 기능 지원
  • Claude Code/Codex 구독만으로 ohmo 사용 가능 (추가 API 키 불필요)
  • 설치가 간편하고 (원클릭 스크립트 또는 pip), 다양한 LLM 공급자와 호환

약점

  • README가 매우 길고 상세하여 초보자가 핵심을 파악하기 어려울 수 있음
  • Windows PowerShell에서 'oh' 명령어 충돌 문제가 있어 'openh'를 사용해야 하는 불편함
  • 아직 v0.1.x 단계로, 일부 기능이 로드맵 상에 있거나 미완성 상태 (예: ClawTeam 통합)

주의사항

  • Windows 사용자는 PowerShell에서 'oh' 대신 'openh'를 사용해야 함
  • Dry-run 모드는 실제 실행 전 설정을 미리 확인할 수 있지만, 모든 시나리오를 완벽히 검증하지는 않음
  • MCP 서버 연결이 끊어질 경우 자동 재연결되지만, 일부 상황에서는 수동 개입이 필요할 수 있음

시작 가이드

  • 원클릭 설치 스크립트 또는 pip로 OpenHarness 설치
  • oh setup 명령으로 원하는 LLM 공급자 인증 및 구성
  • oh 명령으로 기본 에이전트 실행 및 테스트
  • ohmo init/config/gateway start로 개인 에이전트 설정 및 채널 연동
  • 문서(docs/SHOWCASE.md, CONTRIBUTING.md)를 참고하여 고급 기능 탐색 및 기여

README 한국어 번역

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

<h1 align="center"> <img src="assets/logo.png" alt="OpenHarness" width="64" style="vertical-align: middle;"> &nbsp;&nbsp; <img src="assets/ohmo.png" alt="ohmo" width="64" style="vertical-align: middle;"> <br> <code>oh</code> — OpenHarness &amp; <code>ohmo</code> </h1>

<p align="center"> <a href="README.md"><strong>English</strong></a> · <a href="README.zh-CN.md"><strong>简体中文</strong></a> </p>

OpenHarness는 핵심 경량 에이전트 인프라를 제공합니다: 도구 사용, 스킬, 메모리, 다중 에이전트 조정.

ohmo는 OpenHarness 위에 구축된 개인 AI 에이전트입니다. 또 다른 챗봇이 아니라, 장기 세션 동안 실제로 당신을 위해 작업하는 어시스턴트입니다. Feishu / Slack / Telegram / Discord에서 ohmo와 채팅하면, ohmo가 브랜치를 포크하고, 코드를 작성하고, 테스트를 실행하고, PR을 직접 엽니다. ohmo는 기존 Claude Code 또는 Codex 구독으로 실행됩니다. 추가 API 키가 필요하지 않습니다.

커뮤니티에 참여하세요: 오픈 에이전트 개발을 위한 Harness에 기여하세요.

<p align="center"> <a href="#-quick-start"><img src="https://img.shields.io/badge/QuickStart-5min-blue?style=for-the-badge" alt="Quick Start"></a> <a href="#-harness-architecture"><img src="https://img.shields.io/badge/Harness-Architecture-ff69b4?style=for-the-badge" alt="Architecture"></a> <a href="#-features"><img src="https://img.shields.io/badge/Tools-43+-green?style=for-the-badge" alt="Tools"></a> <a href="#-test-results"><img src="https://img.shields.io/badge/Tests-114_Passing-brightgreen?style=for-the-badge" alt="Tests"></a> <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-yellow?style=for-the-badge" alt="License"></a> </p>

<p align="center"> <img src="https://img.shields.io/badge/python-≥3.10-blue?logo=python&logoColor=white" alt="Python"> <img src="https://img.shields.io/badge/React+Ink-TUI-61DAFB?logo=react&logoColor=white" alt="React"> <img src="https://img.shields.io/badge/pytest-114pass-brightgreen" alt="Pytest"> <img src="https://img.shields.io/badge/E2E-6suites-orange" alt="E2E"> <img src="https://img.shields.io/badge/output-text|json|stream--json-blueviolet" alt="Output"> <a href="https://github.com/HKUDS/OpenHarness/actions/workflows/ci.yml"><img src="https://github.com/HKUDS/OpenHarness/actions/workflows/ci.yml/badge.svg" alt="CI"></a> <a href="https://github.com/HKUDS/.github/blob/main/profile/README.md"><img src="https://img.shields.io/badge/Feishu-Group-E9DBFC?style=flat&logo=feishu&logoColor=white" alt="Feishu"></a> <a href="https://github.com/HKUDS/.github/blob/main/profile/README.md"><img src="https://img.shields.io/badge/WeChat-Group-C5EAB4?style=flat&logo=wechat&logoColor=white" alt="WeChat"></a> </p>

하나의 명령(oh)으로 OpenHarness를 실행하고 모든 에이전트 Harness를 잠금 해제하세요.

OpenClaw, nanobot, Cursor 등을 포함한 CLI 에이전트 통합을 지원합니다.

<p align="center"> <img src="assets/cli-typing.gif" alt="OpenHarness Terminal Demo" width="800"> </p>


✨ OpenHarness의 주요 Harness 기능

<table align="center" width="100%"> <tr> <td width="20%" align="center" style="vertical-align: top; padding: 15px;">

<h3>🔄 에이전트 루프</h3>

<div align="center"> <img src="https://img.shields.io/badge/Engine-06B6D4?style=for-the-badge&logo=lightning&logoColor=white" alt="Engine" /> </div>

<img src="assets/scene-agentloop.png" width="140">

<p align="center"><strong>• 스트리밍 도구 호출 사이클</strong></p> <p align="center"><strong>• 지수 백오프를 사용한 API 재시도</strong></p> <p align="center"><strong>• 병렬 도구 실행</strong></p> <p align="center"><strong>• 토큰 계산 및 비용 추적</strong></p>

</td> <td width="20%" align="center" style="vertical-align: top; padding: 15px;">

<h3>🔧 Harness 도구 키트</h3>

<div align="center"> <img src="https://img.shields.io/badge/43+_Tools-10B981?style=for-the-badge&logo=toolbox&logoColor=white" alt="Toolkit" /> </div>

<img src="assets/scene-toolkit.png" width="140">

<p align="center"><strong>• 43개 도구 (파일, 셸, 검색, 웹, MCP)</strong></p> <p align="center"><strong>• 주문형 스킬 로딩 (.md)</strong></p> <p align="center"><strong>• 플러그인 생태계 (스킬 + 훅 + 에이전트)</strong></p> <p align="center"><strong>• anthropics/skills 및 플러그인과 호환</strong></p>

</td> <td width="20%" align="center" style="vertical-align: top; padding: 15px;">

<h3>🧠 컨텍스트 및 메모리</h3>

<div align="center"> <img src="https://img.shields.io/badge/Persistent-8B5CF6?style=for-the-badge&logo=brain&logoColor=white" alt="Context" /> </div>

<img src="assets/scene-context.png" width="140">

<p align="center"><strong>• CLAUDE.md 발견 및 주입</strong></p> <p align="center"><strong>• 컨텍스트 압축 (자동 압축)</strong></p> <p align="center"><strong>• MEMORY.md 영구 메모리</strong></p> <p align="center"><strong>• 세션 재개 및 기록</strong></p>

</td> <td width="20%" align="center" style="vertical-align: top; padding: 15px;">

<h3>🛡️ 거버넌스</h3>

<div align="center"> <img src="https://img.shields.io/badge/Permissions-F59E0B?style=for-the-badge&logo=shield&logoColor=white" alt="Governance" /> </div>

<img src="assets/scene-governance.png" width="140">

<p align="center"><strong>• 다중 레벨 권한 모드</strong></p> <p align="center"><strong>• 경로 수준 및 명령 규칙</strong></p> <p align="center"><strong>• PreToolUse / PostToolUse 훅</strong></p> <p align="center"><strong>• 대화형 승인 대화상자</strong></p>

</td> <td width="20%" align="center" style="vertical-align: top; padding: 15px;">

<h3>🤝 Swarm 조정</h3>

<div align="center"> <img src="https://img.shields.io/badge/Multi--Agent-EC4899?style=for-the-badge&logo=network&logoColor=white" alt="Swarm" /> </div>

<img src="assets/scene-swarm.png" width="140">

<p align="center"><strong>• 하위 에이전트 생성 및 위임</strong></p> <p align="center"><strong>• 팀 레지스트리 및 작업 관리</strong></p> <p align="center"><strong>• 백그라운드 작업 수명 주기</strong></p> <p align="center"><strong>• <a href="https://github.com/HKUDS/ClawTeam">ClawTeam</a> 통합 (로드맵)</strong></p>

</td> </tr> </table>


🤔 에이전트 Harness란 무엇인가?

에이전트 Harness는 LLM을 감싸서 기능적인 에이전트로 만드는 완전한 인프라입니다. 모델은 지능을 제공하고, Harness는 손, 눈, 메모리 및 안전 경계를 제공합니다.

<p align="center"> <img src="assets/harness-equation.png" alt="Harness = 도구 + 지식 + 관찰 + 행동 + 권한" width="700"> </p>

OpenHarness는 연구자, 빌더 및 커뮤니티를 위해 설계된 오픈 소스 Python 구현입니다:

  • 이해: 프로덕션 AI 에이전트가 내부에서 어떻게 작동하는지 이해
  • 실험: 최첨단 도구, 스킬 및 에이전트 조정 패턴 실험
  • 확장: 사용자 정의 플러그인, 공급자 및 도메인 지식으로 Harness 확장
  • 구축: 검증된 아키텍처 위에 특수 에이전트 구축

📰 새로운 소식

  • 미출시 🔍 Dry-run 안전 미리보기:
  • oh --dry-run은 모델, 도구 또는 하위 에이전트를 실행하지 않고 해결된 런타임 설정, 인증 상태, 스킬, 명령, 도구 및 구성된 MCP 서버를 미리 봅니다.
  • Dry-run은 이제 구체적인 다음 단계 제안(예: 인증 수정, MCP 구성 수정, 프롬프트 직접 실행)과 함께 ready / warning / blocked 준비 상태 판정을 보고합니다.
  • 프롬프트 미리보기에는 일치할 가능성이 있는 스킬 및 도구가 포함되며, 슬래시 명령 미리보기는 명령이 대부분 읽기 전용인지 상태 저장인지 보여줍니다.
  • 2026-04-18 ⚙️ v0.1.7 — 패키징 및 TUI 개선:
  • 설치 스크립트는 이제 virtualenv bin 디렉토리를 PATH에 추가하는 대신 oh, ohmo, openharness~/.local/bin에 링크하여 Conda 관리 셸을 덮어쓰지 않습니다.
  • React TUI는 이제 Shift+Enter로 줄바꿈을 삽입하고 일반 Enter는 제출로 유지합니다.
  • React TUI의 사용 중 상태 애니메이션이 더 조용해지고 Windows 터미널에서 오류 가능성이 줄었으며, 보수적인 스피너 프레임과 깜박임 감소가 적용되었습니다.
  • 2026-04-10 🧠 v0.1.6 — 자동 압축 및 Markdown TUI:
  • 자동 압축은 컨텍스트 압축 전반에 걸쳐 작업 상태와 채널 로그를 보존합니다. 에이전트는 수동 압축/정리 없이 여러 날 세션을 실행할 수 있습니다.
  • 하위 프로세스 팀원은 헤드리스 작업자 모드로 실행됩니다. 에이전트 팀 생성이 안정화되었습니다.
  • 어시스턴트 메시지는 이제 React TUI에서 전체 Markdown을 렌더링합니다.
  • ohmo는 채널 슬래시 명령과 멀티모달 첨부 파일 지원을 얻습니다.
  • 2026-04-08 🔌 v0.1.5 — MCP HTTP 전송 및 Swarm 폴링:
  • MCP 프로토콜에 HTTP 전송, 연결 끊김 시 자동 재연결, 도구 전용 서버 호환성 추가.
  • MCP 도구 입력에 대해 JSON Schema 유형이 추론됩니다. 수동 유형 매핑이 필요하지 않습니다.
  • ohmo 채널은 파일 첨부 및 멀티모달 게이트웨이 메시지를 지원합니다.
  • 하위 프로세스 에이전트는 실제 실행에서 폴링 가능합니다. 권한 모달이 직렬화되어 입력 삼킴을 방지합니다.
  • 2026-04-08 🌙 v0.1.4 — 다중 공급자 인증 및 Moonshot/Kimi:
  • 네이티브 Moonshot/Kimi 공급자, 추론 모델을 위한 reasoning_content 지원.
  • 인증 개편: 공급자 전환 키 불일치 수정, OPENAIBASEURL 환경 변수 재정의, 프로필 범위 자격 증명 우선 순위.
  • MCP는 calltool / readresource에서 연결이 끊긴 서버를 정상적으로 처리합니다.
  • 보안: PermissionChecker에 내장된 민감 경로 보호, web_fetch URL 검증 강화.
  • 안정성: Ink TUI의 EIO 충돌 복구, --debug 로깅, Windows cmd 깜박임 수정.
  • 2026-04-06 🚀 v0.1.2 — 통합 설정 흐름 및 ohmo 개인 에이전트 앱:
  • oh setup은 이제 원시 인증/공급자 내부를 노출하는 대신 워크플로로 공급자 선택을 안내합니다.
  • 호환 API 설정은 이제 프로필 범위로 지정되므로 Anthropic/OpenAI 호환 엔드포인트가 별도의 키를 유지할 수 있습니다.
  • ohmo~/.ohmo 작업 공간, 게이트웨이, 부트스트랩 프롬프트 및 채널 구성 흐름과 함께 패키지 앱으로 제공됩니다.
  • 2026-04-01 🎨 v0.1.0 — 완전한 Harness 아키텍처를 갖춘 초기 OpenHarness 오픈 소스 릴리스:

<p align="center"> <strong>여기서 시작하세요:</strong> <a href="#-quick-start">빠른 시작</a> · <a href="#-provider-compatibility">공급자 호환성</a> · <a href="docs/SHOWCASE.md">쇼케이스</a> · <a href="CONTRIBUTING.md">기여하기</a> · <a href="CHANGELOG.md">변경 로그</a> </p>


🚀 빠른 시작

1. 설치

Linux / macOS / WSL

# 원클릭 설치
curl -fsSL https://raw.githubusercontent.com/HKUDS/OpenHarness/main/scripts/install.sh | bash

# 또는 pip 사용
pip install openharness-ai

Windows (네이티브)

# 원클릭 설치 (PowerShell)
iex (Invoke-WebRequest -Uri 'https://raw.githubusercontent.com/HKUDS/OpenHarness/main/scripts/install.ps1')

# 또는 pip 사용
pip install openharness-ai

참고: Windows 지원은 이제 네이티브입니다. PowerShell에서는 oh 대신 openh를 사용하세요. oh는 내장 Out-Host 별칭으로 확인될 수 있기 때문입니다.

2. 구성

oh setup    # 대화형 마법사 — 공급자 선택, 인증, 완료
# Windows PowerShell에서는: openh setup

Claude / OpenAI / Copilot / Codex / Moonshot(Kimi) / GLM / MiniMax / NVIDIA NIM 및 모든 호환 엔드포인트를 지원합니다.

3. 실행

oh
# Windows PowerShell에서는: openh

<p align="center"> <img src="assets/landing.png" alt="OpenHarness 시작 화면" width="700"> </p>

4. ohmo 설정 (개인 에이전트)

Feishu / Slack / Telegram / Discord에서 당신을 위해 작업하는 AI 에이전트를 원하시나요?

ohmo init             # ~/.ohmo 작업 공간 초기화
ohmo config           # 채널 및 공급자 구성
ohmo gateway start    # 게이트웨이 시작 — 이제 ohmo가 채팅 앱에서 활성화됩니다.

ohmo는 기존 Claude Code 구독 또는 Codex 구독으로 실행됩니다. 추가 API 키가 필요하지 않습니다.

비대화형 모드 (파이프 및 스크립트)

# 단일 프롬프트 → stdout
oh -p "이 코드베이스 설명"

# 프로그래밍 방식 사용을 위한 JSON 출력
oh -p "main.py의 모든 함수 나열" --output-format json

# 실시간 JSON 이벤트 스트림
oh -p "버그 수정" --output-format stream-json

원본 저장소: HKUDS/OpenHarness

라이선스: MIT

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