···32323333Before continuing, you must:
34343535-1. Create a project on [Letta Cloud](https://cloud.letta.com) (or your own Letta instance)
3535+1. Create a project on [Letta Cloud](https://app.letta.com) (or your own Letta instance)
36362. Have a Bluesky account
37373. Have Python 3.8+ installed
3838···40404141#### 1. Letta Setup
42424343-- Sign up for [Letta Cloud](https://cloud.letta.com)
4343+- Sign up for [Letta Cloud](https://app.letta.com)
4444- Create a new project
4545- Note your Project ID and create an API key
4646
+1-1
bsky.py
···371371 logger.info(f"Mention from @{author_handle}: {mention_text}")
372372373373 # Log prompt details to separate logger
374374- prompt_logger.debug(f"Full prompt being sent:\n{prompt}")
374374+ logger.debug(f"Full prompt being sent:\n{prompt}")
375375376376 # Log concise prompt info to main logger
377377 thread_handles_count = len(unique_handles)
+18
tools/dummy_reply.py
···11+"""Dummy reply tool for Bluesky responses."""
22+from typing import Optional
33+from pydantic import BaseModel, Field
44+55+66+class BlueskyReplyArgs(BaseModel):
77+ message: str = Field(
88+ ...,
99+ description="The message to reply with (max 300 characters)"
1010+ )
1111+1212+1313+def bluesky_reply(message: str) -> str:
1414+ """
1515+ Dummy function that just returns success. The actual reply is handled in the bsky.py process_mention function.
1616+ This exists only to make the agent think it has a bluesky_reply tool available.
1717+ """
1818+ return "Reply will be sent"