Tutorial 25: Eksekusi Kode
Tutorial 25: Eksekusi Kode — panduan mudah dipahami berdasarkan dokumentasi resmi
Ini adalah bagian dari seri tutorial resmi Hermes Agent. Lihat semua tutorial
Bayangkan kamu sedang membuat kue dan alih-alih mengambil bahan satu per satu, kamu menuliskan seluruh resepnya, memberikannya kepada asisten, dan mereka hanya membawakan kue yang sudah jadi. Itulah yang dilakukan Code Execution untuk Hermes Agent — ia memungkinkan agen menjalankan skrip Python lengkap yang memanggil banyak alat di dalamnya, lalu hanya mengembalikan hasil akhir ke percakapan.
Apa itu Code Execution?
Biasanya, ketika Hermes perlu mencari di web, membaca file, atau menjalankan perintah, ia melakukannya satu per satu — dan setiap hasil antara dimuat ke dalam “memori”-nya (jendela konteks). Itu lambat dan boros token.
Dengan alat execute_code, Hermes menulis skrip Python yang dapat memanggil alat secara terprogram — seperti web_search, read_file, atau patch — sekaligus dalam satu kali jalan. Skrip berjalan di proses anak terpisah, dan hanya keluaran print() yang kembali ke agen. Semua data antara yang berantakan tetap tersembunyi.
Cara Kerjanya: Langkah demi Langkah
Langkah 1: Agen menulis skrip Python
Dimulai dengan mengimpor alat dari modul khusus:
from hermes_tools import web_search, web_extract
Langkah 2: Hermes membuat modul pembantu
Secara otomatis membuat stub hermes_tools.py yang menghubungkan skripmu ke agen utama.
Langkah 3: Saluran komunikasi terbuka
Hermes membuka Unix domain socket (jalur “telepon” lokal yang cepat antar proses) dan memulai thread pendengar.
Langkah 4: Skrip berjalan di proses anak
Setiap panggilan alat di dalam skripmu berjalan melalui socket tersebut kembali ke Hermes, yang mengeksekusinya dan mengirimkan hasilnya kembali.
Langkah 5: Hanya keluaran print yang kembali
Pernyataan print() pada skrip adalah satu-satunya hal yang dilihat LLM. Semua hasil alat antara tidak pernah masuk ke jendela konteks — menghemat banyak token.
Kapan Hermes Menggunakan Ini?
Agen secara otomatis memilih execute_code ketika ia mendeteksi:
- 3 atau lebih panggilan alat dengan logika di antaranya (seperti memfilter atau membandingkan)
- Pemrosesan data massal — misalnya, mencari banyak file dan mengekstrak cuplikan
- Perulangan — mengulangi tindakan pada banyak item
Keuntungan terbesarnya? Efisiensi token. Alih-alih memasukkan setiap hasil pencarian kembali ke percakapan, hanya ringkasan akhir yang masuk.
Contoh Praktis yang Bisa Kamu Coba
1. Pipeline Pemrosesan Data
from hermes_tools import search_files, read_file
import json
# Temukan semua file konfigurasi dan ekstrak pengaturan database
matches = search_files("database", path=".", file_glob="*.yaml", limit=20)
configs = []
for match in matches.get("matches", []):
content = read_file(match["path"])
configs.append({"file": match["path"], "preview": content["content"][:200]})
print(json.dumps(configs, indent=2))
2. Riset Web Multi-Langkah
from hermes_tools import web_search, web_extract
import json
results = web_search("Rust async runtime comparison 2025", limit=5)
summaries = []
for r in results["data"]["web"]:
page = web_extract([r["url"]])
for p in page.get("results", []):
if p.get("content"):
summaries.append({
"title": r["title"],
"url": r["url"],
"excerpt": p["content"][:500]
})
print(json.dumps(summaries, indent=2))
3. Refaktor File Massal
from hermes_tools import search_files, read_file, patch
matches = search_files("old_api_call", path="src/", file_glob="*.py")
fixed = 0
for match in matches.get("matches", []):
result = patch(
path=match["path"],
old_string="old_api_call(",
new_string="new_api_call(",
replace_all=True
)
if "error" not in str(result):
fixed += 1
print(f"Fixed {fixed} files out of {len(matches.get('matches', []))} matches")
4. Pipeline Build dan Test
from hermes_tools import terminal
import json
result = terminal("cd /project && python -m pytest --tb=short -q 2>&1", timeout=120)
output = result.get("output", "")
passed = output.count(" passed")
failed = output.count(" failed")
print(json.dumps({"passed": passed, "failed": failed}, indent=2))
Poin Penting yang Perlu Diingat
- Alat yang tersedia di dalam skrip:
web_search,web_extract,read_file,write_file,search_files,patch, danterminal(hanya foreground). - Hanya keluaran
print()yang kembali — yang lainnya tetap tersembunyi. - Sangat bagus untuk perulangan, pemfilteran, dan alur kerja multi-langkah — ini seperti memberikan Hermes lingkungan pemrograman mini.
Ringkasan
Code Execution mengubah Hermes dari asisten langkah-demi-langkah menjadi pemroses batch. Ia menulis skrip, menjalankannya, dan hanya memberikanmu jawaban akhir — menghemat waktu, token, dan beban mental. Jika kamu melihat Hermes melakukan banyak panggilan alat yang berulang, kemungkinan besar ia menggunakan fitur ini di balik layar.
Selanjutnya: Tutorial 26 — Batch Processing: menjalankan ratusan prompt secara paralel.
📖 Dokumentasi resmi
この記事は Hermes Agent のDokumentasi resmiに基づいています:Dokumentasi resmi › user-guide/features/code-execution