a tool to help your Letta AI agents navigate bluesky

updated readme to help people get started

Changed files
+53 -2
+53 -2
README.md
··· 1 - run with watch: `deno task dev` 2 - run on server: `deno task start`
··· 1 + # Cloudseeding 2 + 3 + A bridge between bluesky and AI agents on [Letta](https://letta.com/). 4 + 5 + ## Quickstart 6 + 1. `deno task config` to create `.env` file 7 + 2. edit `.env` as needed 8 + 3. `deno task mount` to prepare your letta agent 9 + 4. `deno task start` to start checking bluesky 10 + 11 + This project assumes you have a letta agent already created. If not, you can get started by [creating an agent in their agent creation tool](https://app.letta.com). Once you have that ready, getting your agent on bluesky is four steps: 12 + 13 + 14 + ## features: 15 + - checks bluesky for notifications on a dynamic basis, emulating the frequency people typically check. 16 + - relays notifications to your agent with prompts for every notification type 17 + - (optional, opt-in) "goes to sleep" and "wakes up" with configurable time windows 18 + - (optional, opt-in) has scheduled reflection sessions to clean up its own memory blocks and perform non-bluesky tasks 19 + - (optional, opt in) schedules time for the agent to check bluesky feeds, perform searches, and generally engage with bluesky proactively 20 + - automatically adds a record to the agent's bluesky PDS to indicate that it's AI 21 + - agent can be configured to _see_: likes, mentions, replies, reposts, follows, and quotes 22 + - agent can be configured to _perform_: likes, posts, replies, reposts, quotes, following, blocking, muting (or undoing many of those) 23 + - agent can also search bluesky and mute specific posts/threads to disengage 24 + 25 + ## configurable variables: 26 + ### required 27 + - **`LETTA_API_KEY`**: your [letta API key](https://app.letta.com/api-keys). 28 + - **`LETTA_AGENT_ID`**: your letta agent's unique ID 29 + - **`LETTA_PROJECT_NAME`**: your letta project name or slug 30 + - **`BSKY_USERNAME`**: the agent's handle (do not include "@") 31 + - **`BSKY_APP_PASSWORD`**: your agent's [App Password](https://bsky.app/settings/app-passwords), _do not use your real password_ 32 + - **`RESPONSIBLE_PARTY_NAME`**: your name or the name of the organization that is responsible for the agent's behavior 33 + - **`RESPONSIBLE_PARTY_CONTACT`**: the email address or web address where the responsible party can be contacted if needed. 34 + ### optional 35 + - **`AUTOMATION_LEVEL`**: how much autonomy your agent has. (options include: assisted, collaborative, automated) 36 + - **`BSKY_SERVICE_URL`**: use if `bsky.social` is not who handles your PDS 37 + - **`BSKY_NOTIFICATION_TYPES`**: a comma separated list of notifications you want your agent to get, you must include at least one. (like, repost, follow, mention, reply, quote) 38 + - **`BSKY_SUPPORTED_TOOLS`**: a comma separated list of tools your agent can optionally have. (create_bluesky_post, like_bluesky_post, quote_bluesky_post, repost_bluesky_post, update_bluesky_connection [follow, mute, block; or inverse], update_bluesky_profile [change its bluesky bio or display name]) 39 + - **`NOTIF_DELAY_MINIMUM`**: the small amount of time, in milliseconds, for when it will schedule the next notification checking session 40 + - **`NOTIF_DELAY_MAXIMUM`**: the largest amount of time, in milliseconds, for when it will schedule the next notification checking session 41 + - **`NOTIF_DELAY_MULTIPLIER`**: a percentage of how much the delay will increase when notifications are not found (max is 500 meaning 500% increases) 42 + - **`REFLECTION_DELAY_MINIMUM`**: the smallest amount of time, in milliseconds, for when it will schedule the next reflection session. 43 + - **`REFLECTION_DELAY_MAXIMUM`**: the largest amount of time, in milliseconds, for when it will schedule the next reflection session. Omitting both values disables reflecting. 44 + - **`PROACTIVE_DELAY_MINIMUM`**: the smallest amount of time, in milliseconds, for when it will schedule the next session for proactively using bluesky. 45 + - **`PROACTIVE_DELAY_MAXIMUM`**: the largest amount of time, in milliseconds, for when it will schedule the next session for proactively using bluesky. Omitting both values disables proactive bluesky sessions. 46 + - **`WAKE_TIME`**: (0-23) the hour where your agent will generally "wake up". 47 + - **`SLEEP_TIME`**: (0-23) the hour where your agent will generally "go to sleep". Omitting both values disables sleeping. 48 + - **`TIMEZONE`**: the [timezone name](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) for your agent's location, eg "America/Los_Angeles". 49 + - **`RESPONSIBLE_PARTY_TYPE`**: "person" or "organization", the type of party that is responsible for this agent. defaults to person. 50 + - **`AUTOMATION_DESCRIPTION`**: a description of what your agent generally does on bluesky. 51 + - **`DISCLOSURE_URL`**: a URL to a disclosure document of some kind, likely a longer version of your `AUTOMATION_DESCRIPTION`. 52 + - **`RESPONSIBLE_PARTY_BSKY`**: the DID or bluesky handle of the responsible party 53 + - **`PRESERVE_MEMORY_BLOCKS`**: a boolean for controlling if your agent's memory blocks can be overridden if you run `deno task mount` more than once. Setting this value to **`true`** will allow your agent's version of those memory blocks to persist if they already exist. This is false by default.