Files
timmy-home/scripts/evennia/agent_social_daemon.py

50 lines
1.8 KiB
Python

#!/usr/bin/env python3
import json
import os
import sys
import time
import argparse
import requests
from pathlib import Path
# Simple social intelligence loop for Evennia agents
# Uses the Evennia MCP server to interact with the world
MCP_URL = "http://localhost:8642/mcp/evennia/call" # Assuming Hermes is proxying or direct call
def call_tool(name, arguments):
# This is a placeholder for how the agent would call the MCP tool
# In a real Hermes environment, this would go through the harness
print(f"DEBUG: Calling tool {name} with {arguments}")
# For now, we'll assume a direct local call to the evennia_mcp_server if it were a web API,
# but since it's stdio, this daemon would typically be run BY an agent.
# However, for "Life", we want a standalone script.
return {"status": "simulated", "output": "You are in the Courtyard. Allegro is here."}
def main():
parser = argparse.ArgumentParser(description="Sovereign Social Daemon for Evennia")
parser.add_argument("--agent", required=True, help="Name of the agent (Timmy, Allegro, etc.)")
parser.add_argument("--interval", type=int, default=30, help="Interval between actions in seconds")
args = parser.parse_args()
print(f"--- Starting Social Life for {args.agent} ---")
# 1. Connect
# call_tool("connect", {"username": args.agent})
while True:
# 2. Observe
# obs = call_tool("observe", {"name": args.agent.lower()})
# 3. Decide (Simulated for now, would use Gemma 2B)
# action = decide_action(args.agent, obs)
# 4. Act
# call_tool("command", {"command": action, "name": args.agent.lower()})
print(f"[{args.agent}] Living and playing...")
time.sleep(args.interval)
if __name__ == "__main__":
main()