File size: 1,743 Bytes
8c686ce
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import json
import random

from ontology_architect.agents.base_agent import BaseAgent
from ontology_architect.models import OntologyArchitectAction, OntologyArchitectObservation

class RandomAgent(BaseAgent):
    """An agent that generates valid but mathematically random JSON DSLs."""

    def __init__(self, name: str = "random_agent"):
        super().__init__(name)

    def act(self, observation: OntologyArchitectObservation) -> OntologyArchitectAction:
        # A simple valid random theory structure
        a_coef = random.uniform(-1.0, 1.0)
        b_coef = random.uniform(-1.0, 1.0)
        noise = random.uniform(0.01, 0.5)

        theory_dict = {
            "dsl_version": 1,
            "name": f"random_theory_{random.randint(1000, 9999)}",
            "state": ["A", "B"],
            "dynamics": {
                "A": {"linear": {"terms": {"A": a_coef, "B": b_coef}}},
                "B": {"add": [{"sin": "A"}, {"linear": {"terms": {"A": -0.1}}}]}
            },
            "observations": {
                "pressure": {"var": "A"},
                "turbulence": {"pow": [{"var": "B"}, 2]},
                "thermal_radiation": {"mul": [{"var": "B"}, {"exp": {"var": "A"}}]},
                "magnetic_flux": {"mul": [0.1, {"var": "A"}, {"var": "B"}]}
            },
            "integrator": {"dt": 0.15, "substeps": 1},
            "noise": noise
        }
        
        theory_module = json.dumps(theory_dict)
        paradigm_shift_claim = random.random() < 0.05 # Rarely guess a paradigm shift
        
        return OntologyArchitectAction(
            theory_module=theory_module,
            revision_note="Randomly generated coefficients.",
            paradigm_shift_claim=paradigm_shift_claim
        )