Pal-AI-Lab/Cortico
요약
Cortico는 이벤트 스트림을 중심으로 설계된 에이전트 하네스(agent harness)입니다. 이는 페르소나 봇, AI 스트리머 등 복잡한 실시간 입력을 처리하는 자율적이고 지속적인 AI 에이전트를 구축하도록 지원합니다. 모듈형 LLM 제공자 컴포넌트와 확장 시스템을 통해 다양한 환경에서 작동하는 강력하고 유연한 AI 개발 플랫폼을 제공합니다.
핵심 포인트
- 이벤트 스트림 기반의 에이전트 하네스로 설계되어 지속적인 AI 구현에 적합합니다.
- 모듈형 LLM 지원과 외부 확장을 통해 높은 호환성과 확장성을 자랑합니다.
- Cortina 시스템은 비개발자도 쉽게 AI 확장 기능을 만들고 적용할 수 있게 돕습니다.
- VTuber 제작 등 복잡한 실시간 미디어 통합이 가능한 환경을 제공합니다.
English | 简体中文
Quick Start | Architecture | Documentation | Design Stance | Extensions | Community | Contributing | Issue Tracker
Cortico는 이벤트 스트림을 중심으로 설계된 에이전트 하네스(agent harness)로, 혼합된 실시간 입력을 가진 자율적이고 지속적으로 실행되는 에이전트를 위해 구축되었습니다. 이는 페르소나 봇(persona bots), AI 스트리머, 역할극(roleplay), 동반자 기능 등 수많은 다운스트림 태스크에 적합합니다. Cortico 봇은 단순한 채팅 봇을 훨씬 뛰어넘습니다. 이벤트 스트림을 중심으로 설계된 확장 가능한 에이전트 시스템을 통해 Cortico는 복잡한 입력을 처리할 수 있는 지속적인(persistent) AI 에이전트를 구축하도록 돕습니다. 또한, 유연한 외부 확장을 지원하여 단일 봇이 채팅 플랫폼, 라이브 게임, 심지어 물리적 환경에 이르기까지 여러 환경에서 동시에 관찰하고 행동할 수 있도록 합니다. Cortico의 목표는 여러분의 AI를 세상으로 가져오는 것입니다!
지원 언어: WebUI는 简体中文, 繁體中文, English, 日本語, 한국어, Français, Deutsch, Español (Latinoamérica), Português (Brasil), Italiano 및 Русский로 제공됩니다. WebUI 언어는 모델이 읽는 내용을 변경하지 않으며, text Core가 모델 컨텍스트에 추가하는 내용은 영어로 되어 있습니다.
- 🆓 무료 오픈 소스!
- 🤖 네이티브 에이전트 하네스: 모든 것이 에이전트를 중심으로 설계되었습니다.
- 🔌 모듈형 LLM 제공자 컴포넌트: 내부적으로 Responses 프로토콜을 기반으로 하며, 다양한 업스트림(upstream) LLM API는 물론 외부에서 배포된 모델도 지원합니다.
- 🧠 제약 없는 내부 컨텍스트 관리: 에이전트 행동 패턴 및 Memory 시스템 설계에 많은 자유도를 제공합니다.
- 🧩 확장 시스템 (Cortico World): 내부와 격리되어 있으며, 이벤트 전달(event delivery)과 도구 호출(tool calls)을 입력 및 출력으로 사용합니다. 뛰어난 호환성과 거의 무제한의 확장성을 자랑합니다.
- 🖥️ 직관적으로 조작할 수 있는 WebUI.
- 🪄 AI 개발을 위해 구축된 확장 생성기 시스템 (Cortina): 비개발자도 AI 에이전트를 사용하여 원하는 확장을 만들거나, 기존 구현체를 Cortico로 옮길 수 있습니다!
cortico-world-vtuber를 사용하여 즉시 자신만의 AI VTuber 제작을 시작하세요: 이는 VTube Studio를 통해 Live2D 모델을 구동하고, 스트리밍 TTS(Text-to-Speech)로 음성을 출력하며, 강제 정렬기(forced aligner)로 자막 시간을 맞추고, 오버레이를 OBS에 전송합니다. 이 모든 것이 하나의 Cortico World에서 이루어집니다.
이 기능은 자체 소스 라이선스(AGPL-3.0 + CLA) 하에 배포되므로, Cortico 메인 트리가 아닌 별도의 저장소에 존재합니다.

사용 방법: 먼저, https://github.com/Pal-AI-Lab/Cortina에서 저장소를 귀하의 컴퓨터로 클론(clone)하세요.
- 해당 작업 공간을 모든 코딩 에이전트(coding agent)로 여세요.
- "안녕하세요!"라고 말하세요! Cortina는 대화를 통해 사용자가 원하는 Cortico 확장 개발/적응 과정을 지원하고 안내합니다.
- 코딩 경험이나 지식이 필요하지 않습니다.
- 확장이 완성되면, 모두와 공유하기 위해 npm에 게시하세요~
cortico-world, cortico-provider, 또는 cortico-bot 키워드를 가진 npm 패키지는 WebUI의 Extensions 페이지에 총 다운로드 수, 30일간 다운로드 수, 7일간 다운로드 수와 함께 나열됩니다.
Cortina는 Pal AI Lab이 제안한 TINA(There Is No App) 사양을 기반으로 설계되었습니다. 여기에는 앱이 없습니다: 언어 자체가 코드이며, 에이전트가 런타임입니다.
Node 22 이상이 필요합니다.
corepack pnpm install
pnpm start
빈 배포 디렉토리로 처음 실행할 때, Cortico는 자동으로 mybot이라는 기본 배포를 초기화합니다 (콘솔 채팅이 활성화된 참조 봇 cormini 사용). 그리고 다음 주소에서 WebUI를 구동합니다:
http://127.0.0.1:7788/
콘솔 페이지에는 세 가지 온보딩 단계가 열립니다: 모델 엔드포인트 구성, 활성 World 검사, 시스템 프롬프트 조정입니다. 엔드포인트가 구성되면, 봇이 대화를 시작하도록 안녕하세요를 클릭하세요. 모든 엔드포인트, 자격 증명(credentials), 및 런타임 매개변수는 WebUI에서 직접 조정할 수 있습니다. 저장된 변경 사항은 다음 요청에 적용되며, 관리되는 런타임의 실행 매개변수는 다음에 시작될 때 적용됩니다.
WebUI는 config.json에서 language로 시작하며, 그렇지 않으면 CORTICO_LANGUAGE를 사용합니다.
, 그렇지 않으면 시스템 로케일(로케일이 사용 불가능할 경우 중국어 간체)을 사용합니다. 설정 → 일반에서 봇을 재시작하지 않고 현재 브라우저에 맞게 전환할 수 있습니다.
각 배포는 deployments/ 내부의 격리된 구성 디렉터리입니다.
(deployment.md 참조). 다른 것을 추가하려면:
pnpm start --new
봇 패키지, 디렉터리 이름, 표시 이름을 선택하면 새 배포가 즉시 시작되며, 엔드포인트와 모든 것이 WebUI에서 구성됩니다. 특정 이름의 배포를 시작하려면:
pnpm start second
런처 스크립트(pnpm start, ./start.sh, Windows에서는 start.bat)는 누락된 의존성을 자동으로 설치하고, WebUI 자산이 누락되었거나 소스보다 오래된 경우 빌드하며, 상호작용 터미널에서 모든 배포를 선택 목록으로 표시(새 것을 생성하는 항목 포함)하고, WebUI의 요청에 따라 프로세스를 재시작합니다.
Cortico는 네 가지 뚜렷한 레이어를 가로질러 책임을 엄격하게 분리합니다:
| 레이어 | 책임 | 디렉터리 |
|---|---|---|
| Core | 세션 수명 주기, 이벤트 스트림 및 모델 호출을 관리합니다. 의미론적(Semantics-free)입니다. | src/core/ |
| Persona | 봇 카테고리의 의미론을 정의합니다: 컨텍스트 합성, 인지 루프 및 Memory 프로토콜. | bots/<name>/persona/ |
| Memory | 내부 상태에 대한 권위 있는 영속성 저장소입니다; 레이아웃과 수명 주기는 Persona가 선택합니다. | <deployment>/memory/ |
| World | 외부 환경에 대한 격리된 경계입니다: 이벤트 수집, 도구 선언 및 환경 프롬프트. | src/worlds/<id>/ |
| Bot | 조립 정의(Assembly definition): 하나의 Persona를 지정된 World 세트에 결합합니다. | bots/<name>/index.ts |
| 문서 | 주제 |
|---|---|
| deployment.md | 배포 레이아웃, 배포 루트 및 런처 동작 방식 |
| ... | |
| World | ID |
| --- | --- |
| Console | console |
qq | 다중 그룹 및 다이렉트 메시지 채널 (옵션 비전 모델 전사 포함) |
| Bilibili Live | bilibili |
| Minecraft | minecraft |
| Web Search | websearch |
각 릴리스는 또한 Cortico를 기반으로 구축되었으나 해당 기능을 번들링하지 않는 앱을 위해 minecraft, qq, bilibili, 및 websearch를 프레임워크 버전에서 npm에 cortico-world-<id>로 게시합니다. 프레임워크가 이미 동일한 ID를 가진 World를 가지고 있는 경우, 설치된 패키지는 로드되지 않습니다.
| 제공자 | 지원 서비스 |
|---|---|
openai-responses-compat | Responses 프로토콜 사양을 지원하는 모든 모델 API |
llamacpp | 자동 바이너리 다운로드 및 프로세스 관리가 가능한 로컬 llama-server 런타임 |
추가적인 업스트림 프로토콜 및 제공자는 확장 기능을 통해 원활하게 통합할 수 있습니다.
프로젝트를 팔로우하고 다른 개발자들과 대화하려면 저희 그룹에 참여하세요!
- QQ 그룹: 681195563
- Discord 서버: https://discord.gg/DR37WB5zJf
이슈 및 풀 리퀘스트를 환영합니다!
- 아키텍처 가이드라인 및 코드 분리 규칙은 CONTRIBUTING.md를 읽어주세요.
- 엔지니어링 컨벤션 및 코드 리뷰 체크리스트는 AGENTS.md를 참조하세요.
- AI 지원 기여도도 환영하지만, 작성자가 제출된 모든 로직을 철저히 이해하고 설명할 수 있어야 합니다.
- WebUI 텍스트는
strings.ts(각 언어별로strings.<lang>.ts에 포함됨)에 있으며, 키가 번역에서 누락되면zh-Hant와en으로 폴백됩니다.
나머지 내용은 webui.md의 언어 섹션을 참조하세요.
제출 전 자동 검증을 실행하세요:
pnpm test
pnpm run typecheck
프론트엔드 브라우저 코드를 변경하는 경우, 다음도 실행하세요:
pnpm typecheck:web
pnpm build:web
Cortico로 멋진 것을 만드셨나요? 여기로 풀 리퀘스트(pull request)를 제출하여 공유해 주세요!
- @可缇Corti — 미래의 AI VTuber
- ...및 기타!
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Codex tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기