import jsonimport torchfrom peft import PeftModelfrom transformers import AutoModelForCausalLM, AutoTokenizer base_id = "Qwen/Qwen3-0.6B"adapter_id = "Xnizzorg/pondllm-qwen3-0.6b-action-sft" tokenizer = AutoTokenizer.from_pretrained(adapter_id)base = AutoModelForCausalLM.from_pretrained( base_id, dtype=torch.bfloat16, device_map="auto",)model = PeftModel.from_pretrained(base, adapter_id)model.eval() system_prompt = """You are one bounded organism in a resource ecology.You know only the supplied local observation and your own memory. Never invent hidden world state.Choose exactly one legal action and return only one JSON object. Legal forms:{"action":"move","target":[x,y]}{"action":"forage"}{"action":"share","target":"organism_id","amount":1}{"action":"signal","message":"short message"}{"action":"rest"}{"action":"reproduce","target":[x,y]} Move and reproduce targets must be listed in open_neighbors. Share targets must be visible agents.Foraging only succeeds when current_food is positive. Energy is scarce and reaching zero is death.""" observation = { "tick": 4, "self": { "id": "organism-00001", "lineage": "lineage-01", "position": [2, 2], "energy": 7, "age": 4, "drives": { "reproduction_threshold": 16, "share_threshold": 12, "curiosity": 0.35, "sociality": 0.25, "fecundity": 0.2, }, }, "current_food": 1, "visible_food": [{"position": [3, 2], "amount": 1}], "visible_agents": [], "open_neighbors": [[1, 2], [3, 2], [2, 1], [2, 3]], "memory": [],} messages = [ {"role": "system", "content": system_prompt}, {"role": "user", "content": json.dumps(observation, separators=(",", ":"))},]inputs = tokenizer.apply_chat_template( messages, tokenize=True, add_generation_prompt=True, enable_thinking=False, return_tensors="pt", return_dict=True,).to(model.device) with torch.inference_mode(): output = model.generate( **inputs, max_new_tokens=64, do_sample=False, pad_token_id=tokenizer.eos_token_id, ) generated = output[0, inputs["input_ids"].shape[-1]:]print(tokenizer.decode(generated, skip_special_tokens=True))