Initial commit: Natiris AI Agent Orchestration System
This commit is contained in:
60
core/MaturityEngine.py
Executable file
60
core/MaturityEngine.py
Executable file
@@ -0,0 +1,60 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
MaturityEngine – berechnet stability, dependency_bias, regression_factor
|
||||
Input: age, bond_duration, conflict_history, loneliness_history
|
||||
Output: maturity_output.json
|
||||
"""
|
||||
|
||||
import json
|
||||
import os
|
||||
|
||||
PATHS = {
|
||||
"config": os.path.expanduser("~/natiris/config/character_genesis.json"),
|
||||
"core_state": os.path.expanduser("~/natiris/core/core_state.json"),
|
||||
"history": os.path.expanduser("~/natiris/memory/long/history.json"),
|
||||
"output": os.path.expanduser("~/natiris/core/maturity_output.json"),
|
||||
}
|
||||
|
||||
def clamp(val, lo=0.0, hi=1.0):
|
||||
return max(lo, min(hi, float(val)))
|
||||
|
||||
def compute_maturity(config, core, history):
|
||||
start_age = config.get("initial_traits", {}).get("mood", 20)
|
||||
bond_started = core.get("bond_started_at")
|
||||
|
||||
conflict_history = history.get("conflict_history", [])
|
||||
loneliness_history = history.get("loneliness_history", [2])
|
||||
|
||||
age = start_age + (len(conflict_history) * 0.5)
|
||||
bond_duration = len([c for c in conflict_history if c]) if bond_started else 0
|
||||
|
||||
conflict_rate = len([c for c in conflict_history if c]) / max(len(conflict_history), 1)
|
||||
avg_loneliness = sum(loneliness_history) / max(len(loneliness_history), 1)
|
||||
|
||||
stability_bias = clamp(age / 100 + (bond_duration * 0.01) - (conflict_rate * 0.5))
|
||||
dependency_bias = clamp(0.3 + (bond_duration * 0.02) - (avg_loneliness * 0.02))
|
||||
regression_factor = clamp(conflict_rate * 0.7 + (1 - age / 100) * 0.5 + (avg_loneliness * 0.05))
|
||||
|
||||
return {
|
||||
"stability_bias": round(stability_bias, 3),
|
||||
"dependency_bias": round(dependency_bias, 3),
|
||||
"regression_factor": round(regression_factor, 3)
|
||||
}
|
||||
|
||||
def main():
|
||||
with open(PATHS["config"]) as f:
|
||||
config = json.load(f)
|
||||
with open(PATHS["core_state"]) as f:
|
||||
core = json.load(f)
|
||||
with open(PATHS["history"]) as f:
|
||||
history = json.load(f)
|
||||
|
||||
result = compute_maturity(config, core, history)
|
||||
|
||||
with open(PATHS["output"], "w") as f:
|
||||
json.dump(result, f, indent=2)
|
||||
|
||||
print(json.dumps(result, indent=2))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user