AnkaLoop: 터미널, 서버, Telegram에서 작동하는 배터리 포함 코드 에이전트 런타임
요약
AnkaLoop는 터미널, 서버, Telegram 등 다양한 환경에서 지속적으로 작동하는 코드 에이전트 런타임입니다. 강력한 도구 루프와 영속적인 컨텍스트를 단일 Python 패키지에 통합하여 개발자가 즉시 활용할 수 있도록 설계되었습니다. OpenAI, Anthropic 등 여러 모델 제공자를 지원하며 확장성이 뛰어납니다.
핵심 포인트
- 터미널/서버/Telegram에서 작동하는 코드 에이전트 런타임.
- 영속적인 컨텍스트와 검색 가능한 기록을 유지합니다.
- 내장된 explorer, planner, coder 등 다중 에이전트를 제공합니다.
- OpenAI, Anthropic 등 다양한 모델 제공자를 지원하여 유연성이 높습니다.
터미널, 서버, 그리고 Telegram 전반에 걸쳐 계속 작동하는 배터리가 포함된 코딩 에이전트 런타임입니다.
Quick start · Why AnkaLoop · Configuration · Docs · Contributing
AnkaLoop는 당장 유용한 코딩 에이전트를 원하는 개발자를 위한 것입니다. 조립해야 할 또 다른 프레임워크가 아닙니다. 이는 강력한 도구 루프(tool loop), 영속적인 컨텍스트(persistent context), 다중 에이전트 위임(multi-agent delegation), 스킬(skills), 메모리(memory), MCP, 훅(hooks) 및 자동화를 단일 Python 패키지에 결합했으며, 이 패키지는 로컬에서 실행하거나 자체 호스팅할 수 있습니다.
python -m pip install ankaloop
# 또는: uv tool install ankaloop
anka init
...
첫 실행부터 유용합니다— 내장 도구를 사용하여 코드를 읽고, 검색하고, 편집하고, 패치하고, 실행할 수 있습니다.설계상 영속적입니다— 세션, 검색 가능한 기록(searchable history), 프로젝트 규칙, 장기 메모리가 단일 프롬프트를 넘어 유지됩니다.하나의 런타임, 여러 인터페이스— CLI, HTTP/WebSocket 서버 또는 Telegram에서 동일한 에이전트를 사용할 수 있습니다.실제 작업을 위해 구축되었습니다— 컨텍스트 압축(context compaction), 진행 이벤트(progress events), 취소(cancellation), 경계가 있는 도구 사용(bounded tool use), 제공자 재시도(provider retries) 기능은 장시간 실행되는 작업의 관찰 가능성과 제어 가능성을 높여줍니다.플러밍이 필요 없는 다중 에이전트— 내장 탐색기(explorer), 플래너(planner), 코더(coder) 에이전트에 집중적인 작업을 위임할 수 있습니다.개방적이고 확장 가능합니다— 기본 경험을 대체하지 않고 MCP 서버, 재사용 가능한 스킬, 슬래시 명령어(slash commands), 훅, 사용자 지정 에이전트 사양을 추가할 수 있습니다.제공자 유연성— OpenAI, Anthropic, GMI 또는 모든 OpenAI 호환 엔드포인트에 연결할 수 있습니다.
AnkaLoop는 Python 3.11 이상과 지원되는 모델 제공자의 자격 증명(credentials)을 필요로 합니다.
# 최신 안정화 버전을 설치합니다 (pip 사용)
python -m pip install ankaloop
# 또는 uv를 사용하여 설치
...
이 패키지는 anka (권장) 및 ankaloop 명령어를 모두 설치합니다.
uvx ankaloop init
uvx ankaloop
python -m pip install
| 영역 (Area) | 기능 (Capabilities) |
|---|---|
| 코딩 루프 (Coding loop) | 파일 읽기 및 검색, 패치 및 쓰기, 셸 실행, 계획 수립, 할 일 목록(todos), 서브 에이전트 작업 수행 |
| 컨텍스트 (Context) | 영속적인 세션, `AGENTS.md` 규칙, 점진적 로딩, 스마트 압축 기능 |
| 메모리 (Memory) | 지속 가능한 사실(Durable facts), 에피소드 기록(episodic history), 페르소나 파일, 전체 텍스트 세션 검색 |
| 에이전트 (Agents) | 내장된 `coder`, `explorer`, `planner`, `focused_coder` 역할 제공 |
| 인터페이스 (Interfaces) | 풍부한 터미널 UI, FastAPI HTTP/WebSocket 서버, Telegram 봇 지원 |
| 리서치 (Research) | 내장 웹 검색/페치 기능 및 stdio와 HTTP/SSE를 통한 MCP 통합 |
| 확장 (Extensions) | 스킬(Skills), 슬래시 명령어(slash commands), 후크(hooks), 사용자 지정 YAML 에이전트 사양, 이벤트 버스 지원 |
| 자동화 (Automation) | systemd, Kubernetes 및 외부 스케줄러용 Cron 호환 작업 지원 |
CLI ───────────────┐
HTTP / WebSocket ──┼──▶ Agent runtime ──▶ 도구/MCP ──▶ 프로젝트
Telegram ──────────┘ │
...
모든 인터페이스는 동일한 핵심 런타임을 사용합니다. 대화 상태는 영속적이며, 프로젝트 규칙, 스킬 및 메모리는 요청 간 컨텍스트를 제공합니다.
채팅 및 일회성 작업 (Chat and one-shot tasks)
anka
anka --once "hello.py 파일 생성하기"
...
전체 명령어 참조는 `anka --help` 또는 `anka <명령어> --help`를 실행하세요.
대화형 제공자 마법사(interactive provider wizard)를 사용하려면 `anka init`을 실행하세요. 설정은 `~/.config/ankaloop/config.toml`에 저장됩니다.
레거시(`~/.config/amcp/`) 경로를 유지하려면 `ANKA_CONFIG_DIR_NAME=amcp`로 설정하세요.
[chat]
active_provider = "primary"
[chat.providers.primary]
...
자격 증명(credentials)은 버전 관리에서 제외하고 환경 변수를 통해 키를 제공하세요:
export OPENAI_API_KEY="your-api-key"
anka --once "이 저장소의 아키텍처를 설명해 주세요"
여러 개의 `[chat.providers.<이름>]` 프로필을 정의할 수 있습니다. Telegram 관리자는 `/models`로 이를 나열하고, `/model use <이름>`으로 활성 프로필을 전환할 수 있습니다.
**런타임 및 도구 설정 (Runtime and tool settings)**
[chat]
request_timeout_seconds = 120
max_retries = 2
...
**MCP 서버**
## MCP 서버
HTTP/SSE transport
[servers.remote]
url = "https://example.com/mcp"
...
구성된 도구들은 `mcp__<server>__<tool>`로 노출됩니다.
도구 이름은 엄격한 함수명 요구사항을 가진 제공자(provider)에 맞게 정규화됩니다.
더 많은 구성 예시는 빠른 시작 가이드(quick-start guide), 스킬 및 명령어 가이드(skills and commands guide), 후크 가이드(hooks guide)를 참조하세요.
| 에이전트 | 모드 | 목적 |
|---|---|---|
`coder` | Primary | 쓰기 접근 권한과 위임 기능이 있는 일반 코딩 에이전트 |
`explorer` | Subagent | 빠르고 읽기 전용의 코드베이스 탐색 |
`planner` | Subagent | 읽기 전용 분석 및 구현 계획 수립 |
`focused_coder` | Subagent | 특정 변경 사항에 대한 경계가 있는(bounded) 구현
`anka -t <name>`을 사용하여 에이전트를 선택하세요.
Primary 에이전트는 `task` 도구를 사용하여 하위 에이전트에게 독립적인 작업을 위임할 수 있습니다.
**스킬(Skills)**은 관련성이 있을 때만 재사용 가능한 지침과 리소스를 주입합니다. **슬래시 명령어(/Slash commands)**는 반복 가능한 프롬프트를 인자, 셸 출력 및 파일 참조를 가진 `/명령어` 단축키로 변환합니다. **후크(Hooks)**는 도구 호출을 실행 전후에 검증, 수정, 차단 또는 감사합니다.
프로젝트 확장은 `.ankaloop/` 아래에 위치합니다:
.ankaloop/
├── commands/ # TOML 슬래시 명령어
├── hooks.toml # pre/post 도구 후크
...
anka serve # 루프백 전용, http://localhost:8080
anka serve --host 0.0.0.0 # 인증 필요
anka attach https://agent.example # 다른 터미널에서 연결
서버는 세션(session), 프롬프트(prompt), 스트리밍(streaming), 취소(cancellation), 타임라인(timeline), 도구(tool), 에이전트(agent) API를 노출합니다. OpenAPI 인터페이스가 필요하면 실행 중인 서버의 `/docs`를 방문하세요.
루프백이 아닌 바인딩에는 서버 API 키가 필요합니다. `[server.auth]`를 구성하거나 `--api-key`를 전달하여 TLS 또는 신뢰할 수 있는 리버스 프록시 뒤에 배포하세요.
**Docker**
docker build -t ankaloop .
안전한 루프백 전용 기본 설정
docker run -it ankaloop serve
...
프로토콜 세부 정보는 클라이언트/서버 아키텍처 및 API 호환성 참고 사항을 참조하세요.
선택적 Telegram 통합 기능은 다이렉트 메시지(direct messages), 그룹 및 토픽, 허용 목록(allowlists), 페어링(pairing), 스트리밍 응답(streaming responses), 제한된 대기열(bounded queues), 취소(cancellation), 세션 전환(session switching)을 지원합니다.
python -m pip install "ankaloop[telegram]"
anka telegram setup
anka telegram start
공유 명령어에는 `/new`,
`/clear`,
`/cancel`,
`/session list`,
그리고
`/session switch <id>`가 포함됩니다.
git clone https://github.com/tao12345666333/ankaloop.git
cd ankaloop
uv sync --extra dev --extra telegram
...
로컬 품질 검사 스위트(local quality suite)를 실행합니다:
ruff format --check src tests
ruff check src tests
mypy src/ankaloop --ignore-missing-imports
...
`llm`으로 표시된 테스트는 라이브 제공자 호출(live provider calls)을 수행하며 자격 증명(credentials)이 필요합니다. 풀 리퀘스트를 열기 전에 CONTRIBUTING.md를 참조하십시오.
- FastAPI 서버를 직접 실행하거나 포함된 Dockerfile로 패키징하여 사용하십시오.
- Docker, Kubernetes, VM 배포 및 GMI Cloud에 대한 제공된 예제를 사용하십시오.
- AnkaLoop을 GMI Cloud에 배포하거나 유지 관리자의 선택적 추천 링크를 사용하십시오.
AnkaLoop은 활발하게 개발 중입니다. 피드백, 버그 보고서, 문서 개선 사항 및 집중적인 풀 리퀘스트가 환영받습니다.
- 이슈 열기
- 기여 가이드 읽기
- AnkaLoop이 유용하다면, 더 많은 개발자가 찾을 수 있도록 저장소에 별표(starring)를 누르는 것을 고려해 주십시오.
Apache License 2.0 하에 라이선스되었습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기