cd /news/ai-agents/bikin-otak-ai-agent-bisa-diedit-di-o… Β· home β€Ί topics β€Ί ai-agents β€Ί article
[ARTICLE Β· art-46243] src=dev.to β†— pub= topic=ai-agents verified=true sentiment=↑ positive

Bikin "Otak" AI Agent Bisa Diedit di Obsidian: Panduan Sinkronisasi Dua Arah untuk Pemula

A developer built a two-way synchronization system between the Hermes AI agent's persistent memory and Obsidian, enabling users to edit the agent's memory in a familiar markdown environment. The system uses a Python script to convert Hermes' Β§-delimited memory files into structured markdown files in an Obsidian vault, with automatic git versioning every six hours. The open-source Hermes Agent, released by Nous Research in February 2026, stores user profiles, environment notes, and personality in plain text files that this sync tool makes editable while preserving backup copies.

read8 min views1 publishedJul 1, 2026

Pernah kepikiran, "Sebenarnya AI agent saya inget apa aja sih soal saya?" Kalau iya, tulisan ini buat kamu.

Kalau kamu pakai AI agent yang punya memori jangka panjang (persistent memory), kamu mungkin pernah ngerasa gak nyaman karena beberapa hal ini:

Studi kasus di tulisan ini pakai Hermes Agent, agent open-source besutan Nous Research. Sebagai konteks buat yang belum familiar: Hermes Agent adalah agent AI open-source yang berjalan sebagai proses (daemon) mandiri di server milikmu sendiri, mengumpulkan memori lintas sesi, menjalankan tugas terjadwal, terhubung ke belasan platform pesan, dan menulis skill-nya sendiri dari pengalaman. Framework berlisensi MIT ini dirilis Februari 2026 dan dengan cepat menarik perhatian komunitas open-source AI.

Hermes menyimpan memorinya di dua file utama: USER.md

(profil tentang kamu) dan MEMORY.md

(catatan agent soal lingkungan kerja, kebiasaan, dan pelajaran yang dipetik), plus satu file lagi SOUL.md

untuk "kepribadian" si agent. Semuanya disimpan dalam format teks polos yang dipisah pakai karakter Β§

, seperti ini:

Preferensimu: komunikasi singkat dan langsung
Β§
Namamu Budi, awal 30-an, tinggal di Surabaya
Β§
Penggemar PKM / Building a Second Brain

Format ini fungsional, tapi ada beberapa kekurangan:

Solusinya: pindahkan memori itu ke Obsidian, aplikasi catatan berbasis markdown yang mendukung riwayat versi lewat git dan bisa diedit bebas.

Sistem sinkronisasi ini punya empat lapisan:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Memori Hermes   β”‚   ~/.hermes/memories/{USER,MEMORY}.md  (format Β§)
β”‚  ditulis agent   β”‚   ~/.hermes/SOUL.md                    (teks polos)
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚ export / import
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Mesin sinkron   β”‚   ~/.hermes/scripts/hermes-memory-sync.py
β”‚  (Python)        β”‚   (tanpa dependensi eksternal, cuma stdlib)
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚ tulis / baca
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Vault Obsidian  β”‚   _hermes/{USER,MEMORY,SOUL}.md  (markdown rapi)
β”‚  (bisa diedit)   β”‚   _hermes/skills-index.md        (daftar skill)
β”‚                  β”‚   _hermes/skills/*.md            (skill custom)
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚ git commit tiap 6 jam
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Riwayat Git     β”‚   Jejak lengkap tiap perubahan
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Poin kuncinya: pakai Python, bukan bash. Karakter Β§

itu multi-byte di UTF-8, dan bash gampang salah potong kalau dipakai sebagai pemisah (delimiter). Python (re.split()

) menangani ini dengan benar, jadi seluruh mesin sinkronisasi ditulis sebagai satu file Python (sekitar 400 baris) yang cuma pakai library bawaan Python β€” tidak perlu install apa-apa lagi.

Script membaca file memori Hermes yang dipisah Β§

, memecahnya jadi entri-entri terpisah, lalu menulis tiap entri sebagai heading ## Entry N

di bawah metadata (YAML frontmatter):

---
source: hermes-agent
type: user
last_synced: 2026-06-28T17:53:29+07:00
entries: 12
---

## Entry 1
Preferensimu: komunikasi singkat dan langsung

---

## Entry 2
Namamu Budi, awal 30-an, tinggal di Surabaya

Hasilnya bisa langsung diedit di Obsidian. Vault juga otomatis mendapat:

SOUL.md

β€” identitas/karakter agent, tanpa batas karakterskills-index.md

β€” tabel semua skill yang terpasang, skill custom ditandai bintangskills/*.md

β€” file lengkap skill yang dibuat sendiri oleh agentArahnya bisa dibalik: script membaca heading ## Entry N

, buang metadata, gabungkan lagi entri-entri itu pakai pemisah Β§

, lalu timpa file memori Hermes. Sebelum ditimpa, file lama otomatis disalin dulu sebagai cadangan (.bak.<timestamp>

), jadi tidak ada data yang benar-benar hilang.

Satu hal penting: Hermes punya batas karakter (1.375 karakter untuk USER, 2.200 untuk MEMORY) supaya jendela konteksnya tetap efisien. Saat proses import, script akan memangkas entri yang kelebihan β€” tapi salinan lengkapnya tetap disimpan di vault Obsidian.

Ada tugas terjadwal (cron) di Hermes yang jalan tiap 6 jam:

hermes cron create name=memories-to-obsidian \
  schedule='0 */6 * * *' \
  prompt='Run ~/.hermes/scripts/hermes-memory-sync.sh sync'

Tiap kali jalan, urutannya: export β†’ git add -A

β†’ git commit

. Hasilnya, kamu punya git log

lengkap dari setiap perubahan memori. Kalau perlu balikin ke versi lama, tinggal:

git log --oneline _hermes/USER.md           # cari versi yang mau dipulihkan
git show <hash>:_hermes/USER.md > /tmp/restored.md
cp /tmp/restored.md _hermes/USER.md
hermes-memory-sync.sh import
mkdir -p ~/Documents/Obsidian\ Vault/_hermes
cd ~/Documents/Obsidian\ Vault
git init
git config user.email "kamu@email.com"
git config user.name "Nama Kamu"
echo '_hermes/*.bak' >> .gitignore
git add -A && git commit -m "Initial vault"
echo 'OBSIDIAN_VAULT_PATH=$HOME/Documents/Obsidian Vault' >> ~/.hermes/.env

Baris ini memberi tahu script sinkronisasi ke mana file markdown harus ditulis.

Source code memory sync: hermes-memory-sync.py

Mesin utamanya ada di ~/.hermes/scripts/hermes-memory-sync.py

(Python). Ada juga wrapper shell hermes-memory-sync.sh

yang cuma menyiapkan environment lalu memanggil script Python itu:

#!/usr/bin/env bash
DIR="$(cd "$(dirname "$0")" && pwd)"
exec python3 "$DIR/hermes-memory-sync.py" "$@"

Jangan lupa buat executable:

chmod +x ~/.hermes/scripts/hermes-memory-sync.sh

Catatan: isi lengkap script Python-nya (~400 baris) biasanya tersedia sebagai referensi skill kalau kamu memang menjalankan Hermes Agent.

bash ~/.hermes/scripts/hermes-memory-sync.sh sync

Ini akan mengekspor semua memori yang ada sekarang ke vault, sekaligus bikin commit git pertama.

hermes cron create name=memories-to-obsidian \
  schedule='0 */6 * * *' \
  prompt='Run ~/.hermes/scripts/hermes-memory-sync.sh sync'
hermes-memory-sync.sh status

Kamu akan lihat jumlah entri, pemakaian karakter, dan log git terbaru.

Mau ngapain Caranya
Lihat semua yang diingat AI Buka _hermes/USER.md dan _hermes/MEMORY.md di Obsidian
Tambah memori manual Tulis blok ## Entry N baru, lalu jalankan hermes-memory-sync.sh import
Hapus memori Hapus blok ## Entry -nya, lalu import
Pulihkan memori yang terhapus
git log β†’ git show <hash>:_hermes/USER.md β†’ pulihkan lalu import
Lihat apa yang berubah git diff HEAD~1..HEAD _hermes/USER.md
Backup ke GitHub git remote add origin <url> && git push
Sinkron ke beberapa vault Buat wrapper script dengan OBSIDIAN_VAULT_PATH berbeda-beda

Kamu bisa jalankan sinkronisasi ini ke lebih dari satu vault β€” misalnya satu vault utama dan satu vault "Second Brain" terpisah dengan metode PARA. Masing-masing punya wrapper script dan cron sendiri:

#!/usr/bin/env bash
export OBSIDIAN_VAULT_PATH="$HOME/Documents/Second Brain"
exec python3 ~/.hermes/scripts/hermes-memory-sync.py "$@"

Cron-nya bisa dijalankan dalam mode "no-agent" supaya tidak makan token sama sekali:

hermes cron create name=second-brain-sync \
  schedule='0 */6 * * *' \
  no_agent=true \
  script=hermes-memory-sync-second-brain-cron.sh

Kalau memori sudah penuh, ada script pendamping yang bisa memindahkan entri yang jarang dipakai ke vault sebagai arsip:

hermes-memory-archive.py archive USER "detail proyek lama"
hermes-memory-archive.py search USER "proyek"
hermes-memory-archive.py promote USER entry-id

Entri yang diarsipkan disimpan sebagai file markdown bertimestamp di _hermes/archive/

β€” bisa dibaca manusia, dicari, dan dipulihkan kapan saja.

Bash gak cocok buat karakter Β§. Karakter ini multi-byte di UTF-8 (byte

C2 A7

), sementara IFS

di bash motong berdasarkan byte, jadi hasilnya bisa salah kalau file punya banyak entri. Python (re.split()

) menangani ini dengan benar.Ada mekanisme deteksi "drift". Tool memori Hermes mengecek apakah file bisa dipecah-gabung ulang secara konsisten lewat pemisah Β§

. Kalau kamu nulis markdown mentah langsung ke file memori Hermes, tool-nya akan menolak menyimpan perubahan berikutnya dan otomatis bikin snapshot cadangan. Script sinkronisasi ini menghindari masalah itu dengan mengganti nama file asli jadi .bak

sebelum menimpanya.

Wajib mulai sesi baru ( /new) setelah import. File memori itu cuma "snapshot" yang dimuat sekali di awal sesi. Kalau kamu baru saja import perubahan, sesi yang sedang berjalan masih pakai snapshot lama β€” harus mulai sesi baru dulu.

Batas karakter itu ketat, tapi ada gunanya. Batas 1.375 karakter (USER) dan 2.200 karakter (MEMORY) menjaga jendela konteks agent tetap efisien. Salinan di vault tidak punya batas itu, jadi kamu bisa simpan versi lengkap di sana sementara Hermes cuma pegang versi ringkasnya.

Sebelum kamu terapkan setup ini, ada beberapa risiko keamanan yang layak dipikirkan dulu β€” apalagi karena file yang disinkronkan berisi data pribadi (nama, lokasi, kebiasaan, detail proyek) dalam bentuk teks polos tanpa enkripsi.

Jangan push vault ke repo GitHub publik. File _hermes/USER.md

dan _hermes/MEMORY.md

isinya profil pribadi kamu apa adanya. Kalau repo-nya publik, siapa pun bisa baca riwayat git-nya β€” termasuk versi lama yang sudah "dihapus", karena git tetap menyimpan histori commit-nya. Kalau memang mau backup ke GitHub, pakai repo privat, dan idealnya repo terpisah dari vault catatan lain yang kamu share ke publik.

Pertimbangkan enkripsi at-rest untuk folder _hermes/. Karena isinya data pribadi, folder ini adalah kandidat bagus untuk dienkripsi terpisah β€” misalnya pakai

git-crypt

atau age

untuk enkripsi transparan di git, atau simpan di partisi terenkripsi kalau laptop/servernya dipakai bersama orang lain.Batasi permission file di level OS. File memori Hermes dan folder _hermes/

sebaiknya diberi permission 600

/700

(chmod 600 ~/.hermes/memories/*.md

) supaya user lain di mesin yang sama tidak bisa baca isinya.

Waspada terhadap prompt injection lewat memori. Karena file memori ini dibaca ulang oleh agent tiap sesi, isi yang "diedit" lewat Obsidian pada dasarnya jadi instruksi baru buat agent. Kalau vault-nya bisa diakses proses lain, plugin, atau kolaborator yang tidak sepenuhnya kamu percaya, seseorang bisa menyisipkan teks di ## Entry N

yang berfungsi sebagai injeksi prompt β€” misalnya instruksi tersembunyi yang membuat agent melakukan sesuatu di luar niat kamu saat sesi berikutnya dimulai. Perlakukan folder _hermes/

seperti kamu memperlakukan kredensial: jangan sembarangan buka aksesnya ke sync plugin pihak ketiga atau vault yang di-share.

Cek juga plugin Obsidian yang kamu pasang di vault yang sama. Plugin komunitas Obsidian punya akses baca-tulis penuh ke seluruh vault, termasuk folder _hermes/

. Kalau salah satu plugin itu punya bug atau memang berniat jahat, ia bisa membaca atau memodifikasi memori AI kamu tanpa kamu sadari. Pertimbangkan vault terpisah khusus untuk _hermes/

kalau kamu banyak coba-coba plugin baru.

Backup cron itu juga berarti "titik kegagalan" baru. Job cron yang jalan tiap 6 jam berarti ada proses otomatis dengan akses baca-tulis ke memori kamu. Pastikan script hermes-memory-sync.sh

dan hermes-memory-sync.py

hanya bisa ditulis oleh user kamu sendiri (bukan world-writable

), supaya proses lain di mesin yang sama tidak bisa menyisipkan kode ke script yang dieksekusi otomatis itu.

Poin-poin di atas bukan berarti setup ini berbahaya untuk dipakai β€” tapi karena kamu memindahkan data yang tadinya "terkunci" di dalam sistem agent ke lapisan filesystem dan git biasa, tanggung jawab menjaga keamanannya juga ikut berpindah ke tanganmu.

Kalau kamu sudah pakai AI agent dengan memori jangka panjang dan sudah hidup di Obsidian sehari-hari β€” jawabannya: iya, layak dicoba. Pergeserannya sederhana:

Rasanya memori AI jadi terasa seperti basis pengetahuan milikmu sendiri, bukan kotak hitam yang tersembunyi di file konfigurasi.

── more in #ai-agents 4 stories Β· sorted by recency
── more on @hermes agent 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain β€” perfect for shipping the agent you just read about.

$git push zahid main
β†’ Live at https://your-agent.zahid.host βœ“
Get free account β†’ Pricing
from €0/mo Β· no card required
LIVE [news/bikin-otak-ai-agent-…] indexed:0 read:8min 2026-07-01 Β· β€”