This commit is contained in:
Slipstream 2025-04-28 16:52:44 -06:00
parent 2515705505
commit 80ee4f31b1
Signed by: slipstream
GPG Key ID: 13E498CE010AC6FD
2 changed files with 35 additions and 2 deletions

View File

@ -684,3 +684,36 @@ def update_conversation_sentiment(cog: 'GurtCog', channel_id: int, user_id: str,
channel_sentiment["last_update"] = now
# No need to reassign cog.conversation_sentiment[channel_id] as it's modified in place
# --- Proactive Goal Creation ---
async def proactively_create_goals(cog: 'GurtCog'):
"""
Analyzes Gurt's current state, environment, and recent interactions
to determine if any new goals should be created autonomously.
(Placeholder Implementation)
"""
logger.info("Checking for potential proactive goals...")
# --- Placeholder Logic ---
# This is where the complex decision-making would go.
# Examples of potential triggers:
# 1. Detect a long lull in a channel Gurt is interested in.
# Goal: "Generate a conversation starter related to [topic] in channel [channel_id]."
# 2. Notice repeated errors in logs (requires log access tool).
# Goal: "Search web for solutions to error '[error message]'."
# 3. Detect a significant negative sentiment shift in a channel.
# Goal: "Analyze recent messages in [channel_id] for cause of negative sentiment."
# 4. A user expresses interest in a topic Gurt knows about.
# Goal: "Share an interesting fact about [topic] with user [user_id]."
# 5. Scheduled task reminder (e.g., daily summary).
# Goal: "Generate daily summary for channel [channel_id]."
# For now, just log that the check happened.
logger.info("Proactive goal creation check complete (Placeholder - no goals created).")
# Example of adding a goal (if logic determined one was needed):
# if should_create_goal:
# goal_description = "Example: Summarize channel #general activity from the last 12 hours."
# priority = 3 # Lower priority for autonomous goals initially
# await cog.memory_manager.add_goal(goal_description, priority=priority)
# logger.info(f"Proactively created goal: {goal_description}")

View File

@ -32,8 +32,8 @@ TAVILY_DEFAULT_MAX_RESULTS = int(os.getenv("TAVILY_DEFAULT_MAX_RESULTS", 5))
TAVILY_DISABLE_ADVANCED = os.getenv("TAVILY_DISABLE_ADVANCED", "false").lower() == "true" # For cost control
# --- Model Configuration ---
DEFAULT_MODEL = os.getenv("WHEATLEY_DEFAULT_MODEL", "gemini-2.5-flash-preview-04-17") # Changed env var name
FALLBACK_MODEL = os.getenv("WHEATLEY_FALLBACK_MODEL", "gemini-2.5-flash-preview-04-17") # Changed env var name
DEFAULT_MODEL = os.getenv("WHEATLEY_DEFAULT_MODEL", "gemini-2.5-pro-preview-03-25") # Changed env var name
FALLBACK_MODEL = os.getenv("WHEATLEY_FALLBACK_MODEL", "gemini-2.5-pro-preview-03-25") # Changed env var name
SAFETY_CHECK_MODEL = os.getenv("WHEATLEY_SAFETY_CHECK_MODEL", "gemini-2.5-flash-preview-04-17") # Changed env var name
# --- Database Paths ---