Cadiax is an autonomous AI agent framework designed to think, plan, and act.
The name "Cadiax" is derived from the Minangkabau word "Cadiak", meaning intelligent or wise.
Pronunciation: cha-di-aks (/tʃa.di.aks/)
Cadiax is a public autonomous AI agent framework with durable state, planning, memory, execution, privacy controls, and an optional monitoring dashboard.
./install.ps1 -Mode installAtau:
install.bat -Mode installchmod +x ./install.sh
./install.sh --mode installLifecycle installer yang sekarang didukung:
install: first install; jika runtime sudah ada, installer akan meminta konfirmasi untuk lanjut sebagaireinstallreinstall: rebuild/update runtime tanpa menghapus data useruninstall: hapus runtime dan shim, data user tetap aman kecuali dipurge
Setelah install:
cadiax
cadiax setup
cadiax status
cadiax pathscadiax setup sekarang membuka TUI setup sebagai jalur konfigurasi utama.
Jika Anda membutuhkan wizard prompt lama, gunakan cadiax setup --classic.
Gunakan cadiax paths untuk memeriksa mode runtime aktif:
project mode: saat Anda menjalankan Cadiax dari checkout repo/sourceuser install mode: saat Anda menjalankan Cadiax dari layout native OS hasil installer
Jika command cadiax di shell masih menunjuk ke instalasi global lama, buka shell baru setelah install. Installer sekarang mendaftarkan shim user-level untuk cadiax.
Jika Anda sedang bekerja dari source repo, Anda juga masih bisa memakai executable dari virtual environment proyek:
.\.venv\Scripts\Activate.ps1
cadiaxInstaller Cadiax akan:
- membuat runtime aplikasi di direktori install native OS
- membuat virtual environment aplikasi di dalam direktori itu
- menginstall paket
cadiaxke runtime aplikasi, bukan ke folder source checkout - menyiapkan layout native per-OS untuk user install:
- Windows:
- app:
%LOCALAPPDATA%\Cadiax\app\ - dashboard:
%LOCALAPPDATA%\Cadiax\app\monitoring-dashboard\ - config:
%APPDATA%\Cadiax\config.env - state:
%LOCALAPPDATA%\Cadiax\state\ - workspace:
%USERPROFILE%\Cadiax\workspace\
- app:
- Linux:
- app:
~/.local/share/cadiax/app/ - dashboard:
~/.local/share/cadiax/app/monitoring-dashboard/ - config:
~/.config/cadiax/config.env - state:
~/.local/state/cadiax/ - workspace:
~/cadiax/workspace/
- app:
- Windows:
- men-seed dokumen workspace aktif ke workspace root
- menjalankan
cadiax setup(TUI setup) kecuali diminta skip - mendaftarkan shim user-level agar command
cadiaxlebih mudah dipakai
- autonomous runtime dengan memory, planning, execution, review, dan research
- workspace docs aktif yang bisa diedit user:
AGENTS.mdSOUL.mdUSER.mdIDENTITY.mdTOOLS.mdHEARTBEAT.md
- internal durable state di
.cadiax/padaproject mode, atau native state dir padauser install mode - installer Windows/Linux dengan bootstrap workspace aktif
- dashboard monitoring TypeScript opsional
- multi-channel runtime dan service wrappers
- target service utama
cadiaxuntuk Windows/Linux, dengan Telegram polling terintegrasi bila diaktifkan user
Setelah install selesai, executable Cadiax tidak lagi bergantung pada folder git/source yang dipakai saat install.
- Docs index:
docs/README.md - Install guide:
docs/operations/INSTALL.md - Release notes:
docs/release/RELEASE_NOTES.md - Release notes
v1.1.2:docs/release/RELEASE_NOTES_v1.1.2.md - Release notes
v1.1.3:docs/release/RELEASE_NOTES_v1.1.3.md - Release notes
v1.1.4:docs/release/RELEASE_NOTES_v1.1.4.md - Release notes
v1.1.5:docs/release/RELEASE_NOTES_v1.1.5.md - Release notes
v1.1.6:docs/release/RELEASE_NOTES_v1.1.6.md - Deployment checklist:
docs/release/DEPLOYMENT_CHECKLIST.md - Security policy:
SECURITY.md - Code of conduct:
CODE_OF_CONDUCT.md - Support guide:
SUPPORT.md - Contributing guide:
CONTRIBUTING.md
Cadiax sekarang sudah mencakup:
- state persisten antar sesi
- personalisasi markdown
- memory dan lessons yang dibaca ulang otomatis
- planner, executor, dan runner untuk loop semi-otonom
- penyimpanan kredensial lokal yang terpisah dari konteks belajar
- TUI setup interaktif untuk first-run dan reconfigure
- doctor/status read-only untuk audit konfigurasi
- structured result + universal formatter lintas skill inti
- secret storage lintas-OS untuk menjaga service utama tetap portable
Dokumen acuan utama terbaru ada di docs/specs/autonomous_ai_system_spec_extended.md.
Dokumen pendukung:
docs/architecture/ROADMAP.md: urutan delivery menuju target rilis publik terbarudocs/architecture/TARGET_ARCHITECTURE_V2.md: target boundary dan module architecturedocs/architecture/ARCHITECTURE.md: snapshot arsitektur implementasi saat inidocs/README.md: indeks dokumentasi repo
Target resmi repo sekarang bergerak pada baseline rilis v1.1.6: fondasi inti stabil dengan namespace Cadiax, installer native per-OS, lifecycle install/reinstall/uninstall, preflight dependency checks lintas OS, bootstrap workspace aktif, dashboard monitoring opsional di app root native, dan service wrapper yang lebih lengkap.
Tiga lapisan capability yang sekarang sudah terbentuk:
memoryplannerprofileagent-loopexecutorrunner
workspaceairesearch
self-reviewsecrets
Selain pembagian core / capability / governance, skill sekarang mulai memakai taxonomy yang lebih dekat ke agent otonom populer:
planningmemoryknowledgeenvironmentexecutiongovernance
Mapping saat ini:
planner,agent-loop->planningmemory,profile->memoryai,research->knowledgeworkspace->environmentexecutor,runner->executionself-review,secrets->governance
Setiap skill juga bisa mendeklarasikan:
risk_levelside_effectsrequiresidempotency
Ini dipakai untuk memperkaya konteks routing AI dan audit skill layer.
State agent disimpan di:
.cadiax/
├── memory.jsonl
├── planner.json
├── profile.md
├── lessons.md
├── secrets.json
└── telegram_auth.json
Makna file:
memory.jsonl: memori mentahplanner.json: task/goalprofile.md: personalisasi agentlessons.md: pembelajaran yang dikonsolidasikansecrets.json: kredensial lokaltelegram_auth.json: allowlist dan request pairing Telegram
.cadiax/ sekarang di-ignore oleh git, jadi data lokal dan secret tidak ikut ter-commit.
Di Windows, value secret sekarang disimpan terenkripsi lokal memakai DPAPI sebelum ditulis ke secrets.json.
Di Linux/macOS, runtime memakai backend portable berbasis local file key agar service utama tetap bisa berjalan lintas OS.
State JSON penting seperti planner dan secrets sekarang ditulis secara atomik untuk mengurangi risiko file parsial.
Akses file workspace sekarang dibatasi oleh guard terpusat:
- semua path harus tetap berada di dalam root workspace
- traversal seperti
../..ke luar workspace ditolak - symlink yang resolve ke luar workspace di-skip saat traversal
- mode akses workspace default adalah read-only secara kebijakan:
CADIAX_WORKSPACE_ACCESS=ro
Konfigurasi:
CADIAX_WORKSPACE_ROOT=
CADIAX_WORKSPACE_ACCESS=roDefault workspace sekarang mengikuti mode install:
project mode:workspace/di root projectuser install mode:- Windows:
%USERPROFILE%\Cadiax\workspace\ - Linux:
~/cadiax/workspace/
- Windows:
Ini menjadi lokasi default untuk file kerja user, skill tambahan, dan aset eksternal yang dikelola di dalam boundary workspace.
Saat ini skill inspeksi file seperti workspace dan self-review file memakai guard ini.
Untuk kredensial yang ingin dipakai oleh AI/agent:
- simpan di
secrets.jsonmelalui skillsecrets - runtime akan membaca environment variable terlebih dulu, lalu fallback ke
secrets - jangan simpan di
memory.jsonl - jangan simpan di
lessons.md - jangan simpan di
profile.md
Alasannya:
memory,lessons, danprofiledipakai sebagai konteks promptsecretssengaja dipisahkan agar tidak otomatis masuk ke prompt AI
Untuk pemakaian internal di masa depan, runtime bisa mengambil secret terdekripsi lewat helper internal, tetapi nilainya tetap tidak ditampilkan ke user atau dikirim ke prompt secara default.
Contoh:
assistant: secrets set github_token ghp_xxx
assistant: secrets set openai_api_key sk-...
assistant: secrets set anthropic_api_key sk-ant-...
assistant: secrets import-env
assistant: secrets list
assistant: secrets show github_token
secrets import-env akan mengimpor credential umum dari environment seperti OPENAI_API_KEY, ANTHROPIC_API_KEY, dan TELEGRAM_BOT_TOKEN ke storage terenkripsi lokal tanpa menampilkan nilainya.
Urutan yang sekarang sudah bisa berjalan:
plannermenyimpan taskexecutor nextmenjalankan task berikutnyaself-reviewmenulis hasil audit ke memory, lessons, dan planneragent-loopmerefleksikan state agentrunnerdapat menjalankan beberapa langkah berturut-turut atau sampai idle
Stabilisasi yang sudah diterapkan:
executormengenali prefix native penting sepertiresearch,runner, dansecrets- task otonom dibatasi agar tidak diam-diam memutasi
secretsatauprofile self-reviewmendedupe follow-up task terbuka agar backlog tidak meledakrunner until-idlesekarang merefleksikan state setiap langkah- lesson yang identik di recent window tidak ditulis berulang-ulang
Contoh:
assistant: planner add workspace read README.md
assistant: runner steps 2
assistant: agent-loop next
assistant: ai apa langkah berikutnya berdasarkan seluruh state yang ada?
aimemoryplannerprofileagent-loopexecutorrunnerworkspaceself-reviewsecretsresearch
Jalur install resmi:
./install.ps1Atau:
install.batchmod +x ./install.sh
./install.shInstaller ini:
- memastikan dependency dasar tersedia
- membuat
.venv - menginstall paket
cadiax - men-seed dokumen workspace aktif ke
workspace root:AGENTS.mdSOUL.mdUSER.mdIDENTITY.mdTOOLS.mdHEARTBEAT.md
- opsional menyiapkan dashboard dependency
- menjalankan
cadiax setup
Cadiax memang memakai dokumen hasil seed itu setelah setup selesai. User boleh mengeditnya manual, dan runtime akan membaca hasil edit tersebut pada startup berikutnya. Pada alur install awal, wizard setup juga dapat langsung mengonfigurasi monitoring dashboard: aktif/nonaktif, access mode, port, dan admin API URL.
Catatan:
pip memang menampilkan format standar seperti Successfully installed cadiax-1.1.5.
Itu perilaku normal pip. Installer Cadiax menutup proses dengan pesan publik yang lebih bersih: Cadiax installed.
.venv/bin/cadiax setup
.venv/bin/cadiax status
.venv/bin/cadiax chatDi Windows:
.venv\Scripts\cadiax.exe setup
.venv\Scripts\cadiax.exe status
.venv\Scripts\cadiax.exe chatCLI utama sekarang mendukung subcommand resmi:
cadiax setupcadiax statuscadiax doctorcadiax doctor --jsoncadiax config statuscadiax config setupcadiax chatcadiax run "<message>"cadiax telegramcadiax jobs listcadiax jobs enqueuecadiax worker --steps Ncadiax worker --until-idle --enqueue-firstcadiax metricscadiax metrics --jsoncadiax api --host 127.0.0.1 --port 8787cadiax conversation-api --host 127.0.0.1 --port 8788cadiax service statuscadiax service show worker --runtime posixcadiax service writecadiax service run worker --interval 5 --steps 5 --max-loops 0cadiax scheduler --cycles 3 --interval 5cadiax external auditcadiax external synccadiax external install <path-atau-url>cadiax external approve <name>cadiax external reject <name>cadiax skills audit
cadiax setup membuka TUI konfigurasi interaktif untuk initial install atau reconfigure setelah install. TUI ini menjadi surface setup utama untuk provider, workspace, Telegram, dashboard, dan pemeriksaan runtime. Jika Anda tetap membutuhkan wizard prompt lama, gunakan cadiax setup --classic. Setup juga memastikan dokumen workspace aktif tetap tersedia pada workspace root yang dipilih user.
cadiax status dan cadiax doctor menampilkan audit konfigurasi read-only: provider aktif, credential tersedia atau tidak, workspace guard, dan status Telegram. Report sekarang juga memberi level healthy, warning, atau critical agar hasil audit lebih cepat dibaca. Di dalam assistant, audit yang sama juga tersedia lewat command doctor atau config status.
Alias kompatibilitas lama masih didukung sementara:
cadiax --setupcadiax --doctorcadiax -icadiax <pesan>
Ekstensi eksternal sekarang diarahkan ke layout workspace:
workspace/
├── skills-external/
├── tools/
└── packages/
cadiax external audit atau command assistant external audit menampilkan inventaris asset eksternal yang teraudit, kapan terdeteksi/ditambahkan, dan di mana lokasinya.
cadiax external sync memaksa scan ulang workspace/skills-external lalu memperbarui registry audit bila ada skill baru atau metadata yang berubah.
cadiax external install <path-lokal-atau-url-git> memasang skill eksternal ke workspace/skills-external/, lalu langsung mencatat event audit install dan hasil cek kompatibilitas.
Skill eksternal bisa menambahkan manifest opsional asset.json di root skill untuk membantu audit dan cek kompatibilitas. Contoh:
{
"name": "my-skill",
"manager": "git",
"version": "1.0.0",
"requires": ["git", "python"],
"capabilities": ["workspace_read"],
"platforms": ["windows", "linux"]
}Audit akan memakai manifest itu untuk menampilkan:
- siapa/apa yang menambahkan asset
- versi yang dicatat
- requirement toolchain
- capability yang diminta asset
- status kompatibilitas
readyataudegraded - toolchain yang masih hilang
Policy trust default untuk skill eksternal sekarang adalah approval-required. Artinya skill eksternal tetap bisa di-install dan diaudit, tetapi tidak otomatis di-load sampai di-approve.
Approval sekarang juga memerlukan capability declaration yang valid di asset.json.
Secara default, capability yang diizinkan untuk skill eksternal hanya workspace_read. Capability lain harus dibuka eksplisit lewat:
CADIAX_EXTERNAL_CAPABILITY_ALLOW=workspace_read,networkContoh:
cadiax external install <path-atau-url-git>
cadiax external approve my-skill
cadiax external reject my-skillJika ingin perilaku lama yang langsung memuat semua skill eksternal, set:
CADIAX_EXTERNAL_SKILL_POLICY=allow-allTelegram runner:
cadiax telegram
cadiax-telegramBuilt-in commands:
help
list
history
metrics
skills audit
doctor
config status
debug-config
list-models
Skill inti sekarang mulai memakai structured result envelope, lalu dirender ulang oleh sistem sesuai permintaan user.
View yang didukung:
summaryshorttablemarkdownjson
Contoh:
assistant: research siapa presiden saat ini
assistant: research --view json siapa presiden saat ini
assistant: workspace cari README dalam bentuk tabel
assistant: memory summary informasi singkat
Jadi penyajian hasil tidak lagi harus ditanam di masing-masing skill; skill bisa fokus menghasilkan data yang stabil, lalu formatter mengubah presentasinya.
Skill yang sudah memakai structured result sebagai jalur utama:
researchworkspaceplannermemoryuntuk operasi baca utamaself-review
Simpan API key di secrets bila memungkinkan, dan gunakan .env untuk konfigurasi non-secret seperti provider, model, dan base URL.
Contoh secret:
assistant: secrets set openai_api_key sk-...
Contoh .env:
AI_PROVIDER=openai
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_MODEL=gpt-4.1-mini
OPENAI_FALLBACK_MODEL=gpt-4o
OPENAI_WEB_MODEL=gpt-4.1Wizard setup akan menulis nilai non-secret ke .env, lalu menawarkan penyimpanan credential ke encrypted local secrets agar miss-config lebih kecil dan secret tidak tersebar ke file konteks lain.
Fondasi Telegram sekarang sudah tersedia lewat long polling.
Konfigurasi:
TELEGRAM_OWNER_IDS=
TELEGRAM_DM_POLICY=pairing
TELEGRAM_ALLOW_FROM=
TELEGRAM_GROUP_POLICY=allowlist
TELEGRAM_GROUPS=
TELEGRAM_GROUP_ALLOW_FROM=
TELEGRAM_REQUIRE_MENTION=true
TELEGRAM_OWNER_ONLY_PREFIXES=debug-config,list-models,secrets,executor,runner
TELEGRAM_APPROVED_PREFIXES=help,list,ai,research,memory,planner,profile,agent-loop,workspace,self-reviewSimpan token bot melalui secrets bila memungkinkan:
assistant: secrets set telegram_bot_token <token>
Lalu jalankan:
cadiax-telegramPolicy authorization Telegram sekarang fail-closed:
- DM default memakai
TELEGRAM_DM_POLICY=pairing - user baru harus DM
/pairuntuk membuat request akses - owner yang ada di
TELEGRAM_OWNER_IDSdapat meninjau request dengan/auth pending - owner dapat approve/reject dengan
/auth approve <request_id>atau/auth reject <request_id> - grup hanya dilayani jika chat ada di allowlist dan, untuk
allowlist, pengirimnya juga ada di allowlist user - di grup, bot hanya merespons bila di-mention atau saat membalas pesan bot bila
TELEGRAM_REQUIRE_MENTION=true - user
approvedtidak otomatis punya hak penuh; prefix sensitif sepertisecrets,executor,runner,debug-config, danlist-modelsdefault-nya owner-only - daftar prefix owner-only dan prefix yang boleh untuk user
approvedbisa diatur lewatTELEGRAM_OWNER_ONLY_PREFIXESdanTELEGRAM_APPROVED_PREFIXES - di dalam prefix yang diizinkan pun ada gate aksi:
workspace tree|read|find|files|summaryboleh untukapprovedmemory list|search|get|summarize|contextboleh, tetapimemory add|remember|consolidateowner-onlyplanner list|next|summaryboleh, tetapiplanner add|set-goal|done|blocked|note|clearowner-onlyprofile showboleh, tetapi semua operasi ubah profile owner-onlyself-reviewdanagent-loopdibatasi untuk owner karena menulis kembali ke state pembelajaran
State authorization Telegram disimpan lokal di:
.cadiax/telegram_auth.json
Semua pesan Telegram tetap masuk ke jalur yang sama dengan CLI melalui Assistant.handle_message(...), jadi loop agent inti tidak perlu diubah.
Jika tetap ingin memakai environment variable, TELEGRAM_BOT_TOKEN masih didukung sebagai fallback.
Cadiax sekarang memiliki skill research untuk pertanyaan yang sensitif terhadap:
- tanggal
- jadwal/libur
- informasi terbaru
- fakta dunia nyata yang bisa berubah
Pada provider OpenAI, skill ini memakai web-grounded lookup sebelum menjawab. Selain itu, Assistant juga memiliki heuristic yang akan langsung memaksa query seperti:
kapan idul fitri 2026buat rencana libur idul fitri 2026siapa presiden saat ini
melewati jalur research, bukan menjawab dari model chat biasa.
Output research sekarang distabilkan sebagai data terstruktur dengan metadata verifikasi, lalu dapat dirender ulang ke summary/table/json sesuai permintaan user.
Suite test sekarang mencakup area yang paling riskan untuk operasi lebih serius:
- stabilitas loop
planner -> executor -> runner -> self-review - formatter universal di level
Assistant - authorization Telegram
- failure path AI provider
- setup wizard dan doctor/status
Fondasi observability minimum juga mulai aktif:
- setiap command inbound sekarang punya
trace_id - event inti seperti
command_received,skill_started,skill_completed, dancommand_completedditulis ke.cadiax/execution_history.jsonl - operator bisa melihat jejak terbaru lewat
cadiax history - operator bisa melihat agregat metrik lewat
cadiax metrics - timeout skill global bisa diatur dengan
CADIAX_SKILL_TIMEOUT_SECONDS doctor/statussekarang juga mendukung output machine-readable lewat--json- report
doctor/statussekarang juga memiliki section[Runtime]untuk queue worker - admin API read-only lokal tersedia untuk
/health,/status,/metrics,/jobs, dan/history - jika
CADIAX_ADMIN_TOKENdiisi, admin API memerlukan headerX-Cadiax-TokenatauAuthorization: Bearer ...
Fondasi runtime Phase 2 juga mulai aktif:
- planner task sekarang bisa membawa
priority,depends_on,retry_count, danblocked_reason planner nextsekarang memilih taskreadyberdasarkan dependency dan priority- runtime job queue lokal disimpan di
.cadiax/job_queue.json - command
jobsdanworkermemberi lapisan eksplisit antara planner dan executor - worker sekarang bisa berjalan
until-idledan mencatatlast_worker_run_at/last_worker_status - context orchestration sekarang mulai memanfaatkan retrieval memori relevan berbasis token overlap, bukan recency-only
- scheduler runtime sekarang tersedia untuk menjalankan cycle worker berkala dan mencatat state terakhir ke
.cadiax/scheduler_state.json
Perubahan ini membuat fondasi saat ini lebih layak dipakai sebagai sistem semi-otonom yang konsisten, bukan hanya eksperimen skill per skill.
Lihat ARCHITECTURE.md untuk alur detail runtime, storage, dan loop semi-otonom.
Untuk panduan install, first-run, reconfigure, audit config, operasi semi-otonom, dan troubleshooting cepat, lihat OPERATIONS.md.
Untuk jejak perubahan fitur yang sudah mendarat, lihat CHANGELOG.md. Untuk arah implementasi berikutnya, lihat ROADMAP.md yang sekarang dibagi ke:
Phase 1: Semi-Production HardeningPhase 2: Autonomous RuntimePhase 3: Production Agent Platform
Entry point pesan sekarang sudah dipisahkan lewat Assistant.handle_message(...), sehingga CLI hanyalah salah satu transport. Ini sengaja disiapkan agar input ke depan bisa datang dari Telegram atau chat transport lain tanpa mengubah loop agent inti.