Skip to content

Repository files navigation

CI Version License Python

🦞 DHYBRID-AGENT

Hybrid AI Coding Agent — Powerful & Token-Efficient

Local-first, tanpa server. Tugas mekanis dikerjakan model murah, tugas penalaran dikerjakan model besar. Dirancang seperti Hermes Agent & OpenClaw — skills, memory, sessions.


Profile Views




F E A T U R E S


🤖 Hybrid Router

Satu model utama yang bisa diganti kapan saja via /settings. Router hybrid otomatis mengirim tugas mekanis ke model murah, tugas penalaran ke model besar.

💰 12 Teknik Hemat Token

Lazy policies, context compaction, prompt caching (Anthropic cache_control), tool output cap, diff-based edit, semantic cache, early-stop, dan banyak lagi.

☁️ Multi-Provider Cloud

OpenAI, Anthropic, OpenRouter, Gemini, Groq, DeepSeek, byNara. Satu adaptor OpenAI-compatible + adaptor Anthropic native. Route gratis opencode-zen & byNara.

🛠️ 70+ Tools

Terminal, read/write, apply_patch diff, grep/find, git, pytest, TDD, todo, memory (FTS5), subagent, web, browser (Playwright), code_map, power tools.

🧠 Auto-Skill & Learning

33 built-in skills + auto-learn dari Q&A berulang. Clarify cerdas untuk prompt ambigu. Skill marketplace untuk publish, search, import/export.

👁️ Vision & Paste

Agent bisa MELIHAT gambar & screenshot. read_image, /shot, /pasteshot (clipboard), /paste — semua masuk konteks agent.

💾 Sesi & Memori

SQLite local di ~/.dhybrid/. Resume sesi via ringkasan, dashboard token & biaya. Memori jangka panjang (FTS5 + sqlite-vec) per proyek.

⚡ Anti-Stop-Prematur

Agent menolak label "DONE" tanpa bukti nyata. Escalation chain otomatis ke model lebih kuat. Quality scoring jujur — STUCK = STUCK.




T E C H   S T A C K


Languages
Python SQLite Tree-sitter


AI / LLM
LiteLLM OpenAI Anthropic Gemini


Infrastructure
Docker GitHub Actions Playwright


Tooling
Ruff Pytest Bandit




I N S T A L L


One-liner (disarankan)

curl -fsSL https://raw.githubusercontent.com/FerzDevZ/dhybrid-agent/main/install.sh | bash

Installer: clone repo ke ~/.dhybrid-agent, buat venv, pasang dependensi, buat symlink ~/.local/bin/dhybrid, dan siapkan .env dari .env.example. Lalu isi API key dan jalankan dhybrid repl (buka terminal baru).

Variabel opsional:

  • DHYBRID_INSTALL_DIR — direktori instalasi (default: ~/.dhybrid-agent)
  • DHYBRID_BIN_DIR — direktori symlink binary (default: ~/.local/bin)
  • DHYBRID_BRANCH — branch git (default: main)
  • DHYBRID_REPO_URL — repo URL (default: GitHub)
  • DHYBRID_SKIP_ENV=1 — lewati pembuatan .env
  • DHYBRID_USE_UV=1 — gunakan uv untuk install lebih cepat (butuh uv terpasang)

Reinstall / Update via CLI

dhybrid install                    # reinstall/update via installer
dhybrid install --use-uv           # pakai uv (lebih cepat)
dhybrid install --branch main      # branch spesifik
dhybrid install --install-dir ~/my-dhybrid  # direktori custom

Manual

cd dhybrid-agent
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"          # atau (lebih cepat): uv pip install -e ".[dev]"
cp .env.example .env             # isi API key yang kamu punya

Quality gates (dev)

pytest -q                        # semua test
pytest -q -n auto                # lebih cepat (pytest-xdist, paralel)
pytest -q --cov=src/dhybrid      # laporan coverage
bandit -q -r src/dhybrid -c .bandit.yml   # static security scan
pip-audit                        # cek kerentanan dependensi
pre-commit install               # ruff lint otomatis sebelum tiap commit



Q U I C K S T A R T


dhybrid repl                     # sesi interaktif — auto-resume sesi terakhir proyek ini
dhybrid repl --fresh             # mulai sesi BARU (lewat konteks lama)
dhybrid run "perbaiki bug di calc.py lalu jalankan test"
dhybrid --cwd /path/proyek repl  # kerja di proyek lain
dhybrid tokens                   # dashboard token & biaya semua sesi
dhybrid resume <session_id>      # lanjutkan sesi lama
dhybrid run --json "cek repo"    # output JSON terstruktur (scripting/CI)
dhybrid doctor                   # diagnosa config, key, chain, allowlist, skill
dhybrid install                  # reinstall/update installer
dhybrid install --use-uv         # reinstall pakai uv (lebih cepat)

Baca dokumen kantor

read_document path/laporan.pdf   # PDF/DOCX/XLSX/PPTX/HTML → markdown
                                 # (via markitdown; dulu cuma file teks)

Command REPL

/help  /model [preset]  /tokens  /compact  /clear  /sessions  /skills  /skill <nama|ls|info|rm>  /quit

/skill rm <nama> hanya menghapus skill workspace (hasil auto-learn); skill bawaan ditolak. Auto-skill bisa dimatikan: skills.auto_learn: false di config atau DHYBRID_NO_SKILL=1. Debug: DHYBRID_DEBUG=1 menyimpan dump konteks & hasil tiap run ke ~/.dhybrid/debug/.




A R C H I T E C T U R E


🖥️
CLI / REPL
ui/
🧠
Agent Loop
agent/ (ReAct)
Efficiency
efficiency/
🔗
LLM Layer
llm/
💾
Persistence
session/

src/dhybrid/
├── llm/         client multi-provider + estimator token
├── efficiency/  budget, context (compaction), cache, lazy policies
├── agent/       loop ReAct, hybrid router, hooks, parsing
├── tools/       terminal, files, patch, search, git, tests, todo, memory, subagent
├── session/     store SQLite, memori FTS5, konteks sesi
├── skills/      loader SKILL.md + auto-inject
├── subagents/   delegasi agent terisolasi
└── ui/          repl, commands, statusline, render



C O N F I G


config/default.yaml — model utama, budget, preset provider:

dhybrid repl --model anthropic-big     # model utama = Claude Sonnet
dhybrid repl --model gemini-fast       # model kecil = Gemini Flash
export DHYBRID_MODEL=gpt-4o            # atau via env

Preset tersedia (21): openai-fast/big, anthropic-fast/big, openrouter-fast/big, gemini-fast/big, groq-fast, deepseek-fast, bynara-fast/medium/big (route https://router.bynara.id/v1), dan opencode-zen-* (9 preset route https://opencode.ai/zen/v1 — 6 di antaranya gratis tanpa API key: fast/big/codex/nemotron/laguna/ling/mimo/north, model *-free).

Default model = Gemini (gemini-flash-latest, via /v1beta/openai). Tanpa key Gemini, dhybrid jalan sebagai chatbot hanya dengan provider yang punya key; pilih model kapan saja via /settings (bisa input manual) atau dhybrid --model <preset>.

Provider toggle — hidup/matikan provider lewat /settings (opsi 5). Provider yang dinonaktifkan tidak akan dipakai sebagai model utama maupun di escalation chain.




H E M A T   T O K E N


Lihat docs/token-efficiency.md untuk detail 12 teknik + cara mengukur. Inti:

  1. Agent TIDAK menulis kode yang tidak diminta (lazy policies).
  2. Konteks lama diringkas (compaction), bukan dihapus.
  3. Prompt caching memangkas biaya input antar turn.
  4. Router mengirim kerja mekanis ke model murah.
  5. Semua terukur: /tokens menampilkan token, cache-hit, dan biaya per sesi.



B E N C H M A R K


python -m tests.benchmarks.run_bench        # mode hemat ON
python -m tests.benchmarks.run_bench --off  # pembanding (tanpa teknik hemat)

Bandingkan dua laporan di docs/benchmark-*.md untuk melihat % penghematan nyata.




D O C U M E N T A S I


📚 Masuk Perpustakaan → — pilih jalur: pemula, pengguna, pengembang.

📌 Tujuan 📄 Baca
🌱 Baru mulai (langkah demi langkah) docs/GETTING_STARTED.md
Instal & update Instalasi
Langsung pakai Quickstart
Semua perintah (CLI + slash) docs/QUICK_REFERENCE.md
Panduan lengkap end-to-end docs/COMPLETE_GUIDE.md
Konfigurasi lanjutan docs/ADVANCED_USAGE.md
Arsitektur sistem docs/architecture.md
12 teknik hemat token docs/token-efficiency.md
Dev mendalam per modul docs/TECHNICAL_DOCS.md
Multi-bahasa kode docs/MULTI_LANGUAGE_GUIDE.md
Hasil audit bug & perbaikan docs/BUGS_AUDIT.md
Roadmap & perencanaan docs/roadmap.md
Riwayat rilis CHANGELOG.md



S T A T S


FerzDevZ Stats    Top Languages



"Perfection is achieved, not when there is nothing more to add,
but when there is nothing left to take away."

— Antoine de Saint-Exupery


GitHub LinkedIn Email FERZPEDIA


Built with love by FerzDevZ · MIT License · Data 100% Local

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages