
nonatofabio/luna-agent
Developer tools이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요. 원문 보기
영구 기억, MCP 도구 및 Discord를 가진 최소 AI 대리인
개요
지속적인 기억, MCP 공구 통합, Discord/CLI 공용영역 및 구조상 관찰성을 가진 주문 최소한 AI 대리인. 로컬 하드웨어에서 완전히 실행 - 클라우드 API 비용 없음. 우리는 기존 에이전트 프레임 워크를 평가하고 그들 모두를 거부 : - : 코드 400K 라인, 쇼단 42K 노출 인스턴스. 감사에 너무 크다. - : 평가기간 9일 토모 immature - : 너무 얇은 - 어쨌든 최대한 재구성해야합니다. 핵심 요구 (메모리, 도구, 채팅, 로깅)는 개별적으로 잘 용해 된 문제입니다. 필요로 하는 400K 선 기구 없음. 모든 LLM 트래픽은 구성 가능한 엔드포인트 URL을 가진 단일 LLMClient를 통해 흐릅니다. 오늘 그것은 로컬 호스트에 포인트:8001 (llama-server). 나중에 AI 방화벽을 삽입하려면 로컬 호스트에 URL을 변경:9000 - 0 코드 변경이 필요합니다. Luna는 모델 (Qwen3.5, etc.)을 자동으로 제거하여 reasoning content를 추출하여 콘텐츠를 비우고, 출력에서 새겨진 markup (, , 등)을 제거 할 수 있습니다.
개요(AI 번역)
루나 에이전트
지속적인 기억, MCP 공구 통합, Discord/CLI 공용영역 및 구조상 관찰성을 가진 주문 최소한 AI 대리인. 로컬 하드웨어에서 완전히 실행 - 클라우드 API 비용 없음.
파이썬의 ~2300 라인. 프레임 없음.
왜 관례
우리는 기존 에이전트 프레임 워크를 평가하고 그들 모두를 거부 :
- OpenClaw: 코드의 400K 라인, 쇼단에 42K 노출된 인스턴스. 감사에 너무 크다.
- **ZeroClaw **: 9 일 평가 시간. 토모 immature
- **NanoClaw **: 너무 얇은 - 어쨌든의 대부분을 재구성해야합니다.
핵심 요구 (메모리, 도구, 채팅, 로깅)는 개별적으로 잘 용해 된 문제입니다. 필요로 하는 400K 선 기구 없음.
건축
모든 LLM 트래픽은 구성 가능한 엔드포인트 URL을 사용하여 단일 LLMClient을 통해 흐릅니다. 오늘 그것은 localhost:8001 (llama-server). AI 방화벽을 나중에 삽입하려면 URL을 localhost:9000] - 0 코드가 필요합니다.
Thinking model support: Luna handle reasoning model (Qwen3.5, etc.) 자동적으로 - reasoning_content]를 추출하고, 내용이 비어있을 때 청소한 이유를 떨어뜨리고, 누출 된 마크 업 ([T4]], ] 등) 출력에서.
하드웨어
이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요.
README
원문 README의 일부입니다. 원문 보기.
Luna Agent
A custom minimal AI agent with persistent memory, MCP tool integration, Discord/CLI interface, and structured observability. Runs entirely on local hardware — no cloud API costs.
~2300 lines of Python. No frameworks.
Why Custom
We evaluated existing agent frameworks and rejected them all:
- OpenClaw: 400K lines of code, 42K exposed instances on Shodan. Too large to audit, too large to trust.
- ZeroClaw: 9 days old at time of evaluation. Too immature.
- NanoClaw: Too thin — would need to rebuild most of it anyway.
The core needs (memory, tools, chat, logging) are individually well-solved problems. No 400K-line framework needed.
Architecture
Discord (discord.py) CLI REPL (no token)
| |
v v
+---------------------------------+
| Luna Agent Core |
| |
| agent.py | agent loop: msg → memory → prompt → LLM → tools → respond
| ├── llm.py | single LLM client, configurable endpoint
| ├── memory.py | SQLite + FTS5 + sqlite-vec hybrid search
| ├── tools.py | native tools: bash, files, web, delegate, code_task
| ├── tool_output.py | smart output pipeline for large results
| ├── mcp_manager.py | MCP client for community tool servers
| └── observe.py | structured JSON logging
| |
+---------------------------------+
|
v
llama-server Qwen3.5-35B-A3B on 2x RTX 3090
All LLM traffic flows through a single LLMClient with a configurable endpoint URL. Today it points at localhost:8001 (llama-server). To insert an AI firewall later, change the URL to localhost:9000 — zero code changes required.
Thinking model support: Luna handles reasoning models (Qwen3.5, etc.) automatically — extracting reasoning_content, falling back to cleaned reasoning when content is empty, and stripping leaked markup (, , etc.) from output.
Hardware
- Intel i7-13700K, 64GB DDR4
- 2x NVIDIA RTX 3090 (24GB each, 48GB total)
- Qwen3.5-35B-A3B Q8_0 via llama-server with layer split across both GPUs
- 131K context window, Q8_0 KV cache
Quick Start
설치
npx -y @playwright/mcp