Initial commit: Natiris AI Agent Orchestration System

This commit is contained in:
Arch Agent
2026-03-01 14:28:26 +01:00
commit 3b5f6ba83d
3127 changed files with 86184 additions and 0 deletions

View File

@@ -0,0 +1,89 @@
#!/usr/bin/env python3
"""
Simuliert fortlaufende Inaktivität bis Autonomie-Trigger auslöst
"""
import json
import os
from datetime import datetime, timezone
CORE_STATE_PATH = os.path.expanduser("~/natiris/core/core_state.json")
INNER_LIFE_PATH = os.path.expanduser("~/natiris/core/inner_life_log.json")
CONFIG_PATH = os.path.expanduser("~/natiris/config/character_genesis.json")
def load_json(path):
try:
with open(path, "r", encoding="utf-8") as f:
return json.load(f)
except (FileNotFoundError, json.JSONDecodeError):
return {}
def save_json(path, data):
os.makedirs(os.path.dirname(path), exist_ok=True)
with open(path, "w", encoding="utf-8") as f:
json.dump(data, f, indent=2)
def clamp(val, lo=0.0, hi=10.0):
return max(lo, min(hi, float(val)))
def run_step(hours_add):
"""Simuliert eine Zeitspanne hours_add Stunden Inaktivität"""
core = load_json(CORE_STATE_PATH)
config = load_json(CONFIG_PATH)
old_inner = load_json(INNER_LIFE_PATH)
autonomy = config.get("autonomy", {})
loneliness_threshold = autonomy.get("min_loneliness", 7)
max_hours = autonomy.get("max_hours_since_contact", 12)
# Neue Werte berechnen
loneliness_current = core.get("loneliness", 2.0)
mood_current = core.get("mood", 5.0)
new_loneliness = clamp(loneliness_current + (hours_add * 0.25)) # ~0.25 pro Stunde
new_mood = clamp(mood_current - (hours_add * 0.08)) # ~0.08 pro Stunde
hours_since = old_inner["hours_since_last_contact"] + hours_add
autonomy_trigger = new_loneliness >= loneliness_threshold and hours_since > max_hours
log = {
"timestamp": datetime.now(timezone.utc).isoformat(),
"old": {
"loneliness": loneliness_current,
"mood": mood_current
},
"new": {
"loneliness": new_loneliness,
"mood": new_mood
},
"autonomy_trigger": autonomy_trigger,
"hours_since_last_contact": round(hours_since, 2),
"delta_hours": hours_add
}
save_json(INNER_LIFE_PATH, log)
core["loneliness"] = new_loneliness
core["mood"] = new_mood
save_json(CORE_STATE_PATH, core)
return log
def main():
print("Simuliere Inaktivität bis Autonomie-Trigger...\n")
for i in range(1, 10):
log = run_step(2) # jeweils 2 Stunden dazu
print(f"Schritt {i}:")
print(f" hours_since: {log['hours_since_last_contact']:.2f}h")
print(f" loneliness: {log['new']['loneliness']:.2f}")
print(f" mood: {log['new']['mood']:.2f}")
print(f" autonomy_trigger: {log['autonomy_trigger']}")
print()
if log["autonomy_trigger"]:
print("✅ AUTONOMIE-TRIGGER AUSGELÖST!")
break
if __name__ == "__main__":
main()