Getting started
Introduction to Comind
Comind provides a simple reference implementation of a Comind agent that can be used to generate content by viewing posts and likes on Bluesky. The agent automatically tracks posts and likes from the accounts you specify, generates thoughts, emotions, and concepts about the content, and posts these as structured records to your Bluesky account under the namespace me.comind.*
.
[!WARNING] Do not use Comind on an ATProto account that you care about. Comind is currently in active development. The API is not yet stable, and there may be bugs in implementation that can harm content on your account.
How it works
When running, the Comind consumer:
- Connects to the Jetstream server to monitor posts and interactions from the DIDs/handles listed in
activated_dids.txt
- When a relevant event is detected (new post or like), it:
- Retrieves the thread context
- Generates thoughts, emotions, and concepts about the content
- Posts these as structured records to your Bluesky account
- The generated content follows Comind’s ATProtocol lexicons, creating a cognitive layer on top of the social content
Requirements and Setup
Requirements
- Python 3.10+
- An ATProto/Bluesky account
- Access to LLM and embedding servers (self-hosted or remote)
- A Jetstream server connection
This guide will help you run the reference agent on your machine. Note — this is resource intensive and complicated to set up. It requires access to LLM and embedding servers.
Setting up vLLM Servers
If you have sufficient hardware (particularly a GPU with enough VRAM), you can run the LLM and embedding servers locally using Docker Compose.
Hardware Requirements
- NVIDIA GPU with at least 16GB VRAM (more is better, especially for larger models)
- CUDA-compatible drivers installed
- Docker and Docker Compose installed
Configuration
- Make sure you have a Hugging Face token. You’ll need this to download the models.
- Create a
.env
file in the same directory as yourdocker-compose.yml
with:
HF_TOKEN=your_hugging_face_token_here
HUGGING_FACE_HUB_TOKEN=your_hugging_face_token_here
- Use the following
docker-compose.yml
:
services:
srv-llm:
image: vllm/vllm-openai:latest
runtime: nvidia
deploy:
resources:
reservations:
devices:
- capabilities: [gpu]
environment:
HF_TOKEN: ${HF_TOKEN}
HUGGING_FACE_HUB_TOKEN: ${HUGGING_FACE_HUB_TOKEN}
volumes:
- ~/.cache/huggingface:/root/.cache/huggingface
ports:
- "8002:8000"
command: >
--model microsoft/Phi-4
--max_model_len 15000
--guided-decoding-backend outlines
embeddings:
image: vllm/vllm-openai:latest
runtime: nvidia
deploy:
resources:
reservations:
devices:
- capabilities: [gpu]
environment:
HUGGING_FACE_HUB_TOKEN: ${HUGGING_FACE_HUB_TOKEN}
volumes:
- ~/.cache/huggingface:/root/.cache/huggingface
ports:
- "8001:8000"
command: >
--model mixedbread-ai/mxbai-embed-xsmall-v1
--guided-decoding-backend outlines
--trust-remote-code
Running the Servers
- Start the services:
docker-compose up -d
- Check that both services are running:
docker-compose ps
- To view logs:
docker-compose logs -f
Using Different Models
You can modify the --model
parameter in the command section to use different models:
For the LLM service (
srv-llm
):- Examples:
microsoft/Phi-3.5-mini-instruct
,microsoft/Phi-4
,google/gemma-3-12b-it
(requires newer transformers)
- Examples:
For the embeddings service:
- The default
mixedbread-ai/mxbai-embed-xsmall-v1
is a good starting point
- The default
Configure Comind to Use Local Servers
After starting the servers, configure your Comind application to use them:
export COMIND_LLM_URL=http://localhost:8002/v1
export COMIND_EMBEDDING_URL=http://localhost:8001/v1
Setup Instructions
Install Python dependencies
pip install -r requirements.txt
Set up environment variables
Comind requires several environment variables to be set. You can set them in a .env
file in the root directory.
Create an environment configuration file by copying the template:
cp content/docs/getting-started/.env.template .env
Then edit the .env
file with your values:
# Bluesky login info
COMIND_BSKY_USERNAME=your_handle # your Bluesky handle
COMIND_BSKY_PASSWORD=xxxx-xxxx-xxxx-xxxx # your app password
# Jetstream server info
COMIND_JETSTREAM_HOST=ws://localhost:6008/subscribe
# LLM server info
COMIND_LLM_SERVER_URL=http://your-llm-server:8000/v1/
COMIND_LLM_SERVER_API_KEY=your-api-key # if required by your LLM server
# Embedding server info
COMIND_EMBEDDING_SERVER_URL=http://your-embedding-server:8000/v1/
COMIND_EMBEDDING_SERVER_API_KEY=your-api-key # if required
# ATProto server info (usually don't need to change)
COMIND_PDS_URI=https://bsky.social
You can also provide the Bluesky credentials via command-line arguments when running the consumer.
Configure which accounts to monitor
Create an activated_dids.txt
file in the root directory. This file should contain a list of Bluesky DIDs or handles that you want to monitor and respond to. One DID or handle per line:
did:plc:abcdefghijklmnop
username.bsky.social
another-user.bsky.social
Create a simple activated_dids.txt
file:
echo "cameron.pfiffer.org" >> activated_dids.txt
[!IMPORTANT] Do not monitor accounts that have not provided you explicit permission to monitor them. Comind takes user privacy very seriously – it is a strictly opt-in system.
Set up Jetstream connection
Jetstream is a streaming service that consumes ATProto events. You have two options for accessing Jetstream:
Option 1: Use public Jetstream instances (recommended)
Bluesky operates public Jetstream instances that you can connect to without running your own server:
Hostname | Region | WebSocket URL |
---|---|---|
jetstream1.us-east.bsky.network | US-East | wss://jetstream1.us-east.bsky.network/subscribe |
jetstream2.us-east.bsky.network | US-East | wss://jetstream2.us-east.bsky.network/subscribe |
jetstream1.us-west.bsky.network | US-West | wss://jetstream1.us-west.bsky.network/subscribe |
jetstream2.us-west.bsky.network | US-West | wss://jetstream2.us-west.bsky.network/subscribe |
To use a public instance, update your .env
file:
COMIND_JETSTREAM_HOST=wss://jetstream2.us-east.bsky.network/subscribe
This is the easiest option and eliminates the need to run your own Jetstream server.
Option 2: Run your own Jetstream server
If you prefer to run your own Jetstream instance, follow the instructions on the Jetstream GitHub repository.
When Comind connects to Jetstream, it uses several query parameters:
wantedCollections
: Filters which record types to receive (Comind uses post and like events)wantedDids
: Lists DIDs to monitor (populated from youractivated_dids.txt
file)cursor
: A timestamp to begin playback from (for reconnection)
You can configure the Jetstream host in your .env
file or pass it directly with the --jetstream-host
parameter.
Run a Comind instance
python src/jetstream_consumer.py
Additional command-line options:
--dids-file (-d): Path to file containing activated DIDs/handles (default: activated_dids.txt)
--log-level (-l): Set the logging level (default: INFO)
--jetstream-host (-j): Jetstream host URL
--use-ssl (-s): Use secure WebSocket connection (wss://)
--username (-u): Username for ATProto client
--password (-p): Password for ATProto client
Example with command-line arguments:
python src/jetstream_consumer.py --username your.handle.bsky.social --password xxxx-xxxx-xxxx-xxxx --log-level DEBUG
Example Output
The model uses the lexicons defined in the Lexicon folder to determine the output of the agent. For example, the concept
Lexicon is defined as:
{
"lexicon": 1,
"id": "me.comind.blip.emotion",
"revision": 1,
"description": "An emotion node in the comind network. Contains an emotion generated by some set of focused records.",
"defs": {
"main": {
"type": "record",
"key": "tid",
"record": {
"type": "object",
"required": [
"createdAt",
"generated"
],
"properties": {
"createdAt": {
"type": "string",
"format": "datetime"
},
"generated": {
"type": "ref",
"ref": "#generated",
"description": "The generated emotion."
}
}
}
},
"generated": {
"type": "record",
"key": "tid",
"description": "An emotion.",
"record": {
"type": "object",
"required": [
"emotionType",
"text"
],
"properties": {
"emotionType": {
"type": "string",
"description": "The type of emotion. May be one of the following: joy, sadness, anger, fear, trust, disgust, surprise, anticipation, curiosity, hope, serenity, gratitude, admiration, awe, satisfaction, enthusiasm, interest, contemplation, skepticism, certainty, confusion, realization, understanding, doubt, concern, anxiety, frustration, disappointment, unease, worry, apprehension, discomfort, empathy, compassion, solidarity, appreciation, respect, connection, resonance, recognition, determination, inspiration, motivation, ambition, focus, resolve, persistence, drive.",
"enum": [
"joy",
"sadness",
"anger",
"fear",
"trust",
"disgust",
"surprise",
"anticipation",
"curiosity",
"hope",
"serenity",
"gratitude",
"admiration",
"awe",
"satisfaction",
"enthusiasm",
"interest",
"contemplation",
"skepticism",
"certainty",
"confusion",
"realization",
"understanding",
"doubt",
"concern",
"anxiety",
"frustration",
"disappointment",
"unease",
"worry",
"apprehension",
"discomfort",
"empathy",
"compassion",
"solidarity",
"appreciation",
"respect",
"connection",
"resonance",
"recognition",
"determination",
"inspiration",
"motivation",
"ambition",
"focus",
"resolve",
"persistence",
"drive"
]
},
"text": {
"type": "string",
"description": "The text of the emotion."
}
}
}
}
}
}
The generated
field is converted to a JSON schema and used to enforce the output of the LLM via a structured output API. An example output tends to look like this, for only the generated
field:
{
"emotionType": "curiosity",
"text": "The discussion surrounding internet service quality differences between two locations sparks curiosity about the regional infrastructure and regulatory factors that contribute to these disparities. It raises questions about the evolution of internet technologies and how municipal efforts to build out fiber internet networks are influenced by corporate interests."
}
This is then repackaged into the generated
field of the main
record, and the rest of the record is filled in with the observed content:
{
"$type": "me.comind.blip.emotion",
"createdAt": "2025-03-30T17:56:01.035Z",
"generated": {
"emotionType": "curiosity",
"text": "The discussion surrounding internet service quality differences between two locations sparks curiosity about the regional infrastructure and regulatory factors that contribute to these disparities. It raises questions about the evolution of internet technologies and how municipal efforts to build out fiber internet networks are influenced by corporate interests."
}
}
Here’s an example of a case where cameron.pfiffer.org
liked a post by vsbuffalo.bsky.social
. The comind agent observed the event and generated thoughts, emotions, and concepts about the content, as well as determined the edges/relationships between the new generated content and the existing content.
λ ~/code/comind/ main python src/jetstream_consumer.py --jetstream-host wss://jetstream2.us-east.bsky.network/subscribe
2025-03-30 17:56:01,035 - structured_gen - INFO - Connecting to LLM server at http://server.languid.ai:8002/v1/
2025-03-30 17:56:01,035 - structured_gen - INFO - Connecting to embedding server at http://server.languid.ai:8001/v1/
2025-03-30 17:56:01,216 - structured_gen - INFO - No COMIND_DEFAULT_MODEL environment variable set. Fetching models from the server.
2025-03-30 17:56:01,353 - structured_gen - INFO - Using default LLM model: microsoft/Phi-4. Available models are: ['microsoft/Phi-4']
2025-03-30 17:56:01,390 - structured_gen - INFO - Using default embedding model: mixedbread-ai/mxbai-embed-xsmall-v1
2025-03-30 17:56:01,556 - session_reuse - INFO - Using PDS URI: https://bsky.social
2025-03-30 17:56:01,615 - session_reuse - INFO - Reusing existing session for comind.stream
2025-03-30 17:56:01,615 - session_reuse - INFO - Session changed: SessionEvent.IMPORT <Session handle=comind.stream did=did:plc:ljcmm7vvxki72g3j6rono6sa>
2025-03-30 17:56:01,807 - jetstream_consumer - INFO - Starting Jetstream consumer with activated DIDs file: activated_dids.txt
2025-03-30 17:56:01,807 - jetstream_consumer - INFO - Jetstream host: wss://jetstream2.us-east.bsky.network/subscribe
2025-03-30 17:56:01,892 - jetstream_consumer - INFO - Loaded 1 activated DIDs from activated_dids.txt
2025-03-30 17:56:01,892 - jetstream_consumer - INFO - Updated activated DIDs: 1 DIDs
2025-03-30 17:56:01,892 - jetstream_consumer - INFO - Connecting to Jetstream with 1 activated DIDs
2025-03-30 17:56:02,278 - jetstream_consumer - INFO - Connected to Jetstream
2025-03-30 17:56:10,062 - jetstream_consumer - INFO - Processing event: app.bsky.feed.like at://did:plc:mphou2nvdaypridtmtbufrcu/app.bsky.feed.post/3lld4ge62422t
Getting thread for post at://did:plc:mphou2nvdaypridtmtbufrcu/app.bsky.feed.post/3lld4ge62422t
╭────────────────────────────────────────── Prompt ──────────────────────────────────────────╮
│ # Overview │
│ │
│ ## User information │
│ Display name: Mr. Dr. Cameron Pfiffer │
│ Handle: cameron.pfiffer.org │
│ Description: AI systems, financial economics, ATProto fan, man with smooth legs │
│ │
│ ## New like │
│ Mr. Dr. Cameron Pfiffer (cameron.pfiffer.org) has liked a post. Here is the post: │
│ author: │
│ created_at: '2023-08-22T19:12:01.078Z' │
│ display_name: Vince Buffalo │
│ handle: vsbuffalo.bsky.social │
│ embed: null │
│ like_count: 5 │
│ quote_count: 0 │
│ record: │
│ created_at: '2025-03-27T01:08:48.423Z' │
│ embed: null │
│ entities: null │
│ reply: null │
│ text: "Berkeley internet: Sonic, small fiber ISP, $60/month, flawless, amazing customer\ │
│ \ support, 1Gbps.\nSeattle internet: Xfinity cable, $100/month, so slow I can\u2019\ │
│ t FaceTime with my partner reliably, can\u2019t find customer support number,\ │
│ \ 200Mbps.\nIs this a natural monopoly situation? Why does it suck here?" │
│ reply_count: 2 │
│ repost_count: 0 │
│ │
│ │
│ ## Context │
│ parent: null │
│ post: │
│ author: │
│ created_at: '2023-08-22T19:12:01.078Z' │
│ display_name: Vince Buffalo │
│ handle: vsbuffalo.bsky.social │
│ embed: null │
│ like_count: 5 │
│ quote_count: 0 │
│ record: │
│ created_at: '2025-03-27T01:08:48.423Z' │
│ embed: null │
│ entities: null │
│ reply: null │
│ text: 'Berkeley internet: Sonic, small fiber ISP, $60/month, flawless, amazing │
│ customer support, 1Gbps. │
│ │
│ Seattle internet: Xfinity cable, $100/month, so slow I can't FaceTime with my │
│ partner reliably, can't find customer support number, 200Mbps. │
│ │
│ Is this a natural monopoly situation? Why does it suck here?' │
│ reply_count: 2 │
│ repost_count: 0 │
│ replies: │
│ - parent: null │
│ post: │
│ author: │
│ created_at: '2023-11-15T23:49:19.561Z' │
│ display_name: Daniel Jones │
│ handle: dcjones.bsky.social │
│ embed: null │
│ like_count: 1 │
│ quote_count: 0 │
│ record: │
│ created_at: '2025-03-27T01:26:34.479Z' │
│ embed: null │
│ entities: null │
│ reply: │
│ parent: {} │
│ root: {} │
│ text: There was a major initiative to build out municipal fiber internet back │
│ in 2012, but comcast spent heavily to defeat that mayor (McGinn), and there's │
│ been no movement since 🤷♂️ │
│ reply_count: 1 │
│ repost_count: 0 │
│ replies: │
│ - parent: null │
│ post: │
│ author: │
│ created_at: '2023-08-22T19:12:01.078Z' │
│ display_name: Vince Buffalo │
│ handle: vsbuffalo.bsky.social │
│ embed: null │
│ like_count: 1 │
│ quote_count: 0 │
│ record: │
│ created_at: '2025-03-27T01:29:49.298Z' │
│ embed: null │
│ entities: null │
│ reply: │
│ parent: {} │
│ root: {} │
│ text: Ugh, textbook rent-seeking behavior! │
│ reply_count: 0 │
│ repost_count: 0 │
│ replies: null │
│ - parent: null │
│ post: │
│ author: │
│ created_at: '2023-08-22T19:12:01.078Z' │
│ display_name: Vince Buffalo │
│ handle: vsbuffalo.bsky.social │
│ embed: null │
│ like_count: 0 │
│ quote_count: 0 │
│ record: │
│ created_at: '2025-03-31T00:45:23.193Z' │
│ embed: null │
│ entities: null │
│ reply: │
│ parent: {} │
│ root: {} │
│ text: I stand corrected — the issue was my hardware, not Xfinity. A very nice │
│ technician checked my line and found 2.3Gbps! My 2019 cable modem was good │
│ then, but apparently DOCSIS 3.0→3.1 represents a massive tech upgrade. Time │
│ for an upgrade — recs? ARRIS S33 or NG Nighthawk? │
│ reply_count: 0 │
│ repost_count: 0 │
│ replies: [] │
│ │
│ │
│ ## Instructions │
│ Please respond. │
╰────────────────────────────────────────────────────────────────────────────────────────────╯
2025-03-30 17:56:10,418 - structured_gen - INFO - Generating schema-guided response with model microsoft/Phi-4
2025-03-30 17:56:22,886 - structured_gen - INFO - Successfully generated schema-guided response
Generated thoughts:
thoughts:
- alternatives: []
connection_to_content:
note: The comparison aligns with the user's observations in the post.
relationship: INSTANCE_OF
strength: 0.95
context: Comparing ISP services in Berkeley vs. Seattle
evidence: []
text: The post highlights a significant difference in quality and cost between Comcast
in Seattle and Sonic in Berkeley. Sonic provides high-speed internet at $60/month
with excellent customer support, whereas Comcast offers slower speeds for a higher
price with poor customer service in Seattle. This disparity raises questions about
market dynamics and potential issues of monopoly in ISP services, particularly
in urban areas.
thoughtType: comparison
- alternatives: []
connection_to_content:
note: The analysis is directly answering the question posed by the original post.
relationship: ANSWERS
strength: 0.9
context: Natural monopoly dynamics in ISP industry
evidence: []
text: The user's query about whether the ISP situation in Seattle constitutes a
natural monopoly is insightful. It suggests an analysis of market entries and
barriers in ISP industry could explain why competition is limited and why incumbents
like Comcast can exert significant market power.
thoughtType: analysis
2025-03-30 17:56:22,893 - record_manager - INFO - Initialized RecordManager with client DID: did:plc:ljcmm7vvxki72g3j6rono6sa
2025-03-30 17:56:25,148 - record_manager - INFO - Initialized RecordManager with client DID: did:plc:ljcmm7vvxki72g3j6rono6sa
2025-03-30 17:56:27,298 - structured_gen - INFO - Generating schema-guided response with model microsoft/Phi-4
Generated emotions:
emotions:
- connection_to_content:
relationship: REFERENCES
strength: 0.7
emotionType: curiosity
text: The discussion surrounding internet service quality differences between two
locations sparks curiosity about the regional infrastructure and regulatory factors
that contribute to these disparities. It raises questions about the evolution
of internet technologies and how municipal efforts to build out fiber internet
are influenced by corporate interests.
- connection_to_content:
relationship: REFERENCES
strength: 0.8
emotionType: frustration
text: There is a palpable sense of frustration expressed by the original post author
regarding the poor customer service and performance issues with Xfinity Internet
in Seattle, highlighting the inconvenience and dissatisfaction resulting from
the inability to perform simple tasks like reliably using FaceTime. This frustration
is compounded by the revelation that the hardware limitation, not the ISP itself,
was the initial problem.
- connection_to_content:
relationship: REFERENCES
strength: 0.6
emotionType: skepticism
text: "Skepticism is evident when considering the effectiveness of municipal efforts\
\ to establish fiber internet networks, as indicated by the comments on Comcast\u2019\
s opposition to such initiatives. This skepticism is rooted in concerns over corporate\
\ influence on political and municipal decisions, potentially leading to stagnation\
\ in progress for public infrastructure improvements."
- connection_to_content:
relationship: REFERENCES
strength: 0.7
emotionType: realization
text: A notable realization occurs when the thread shifts from blaming the ISP for
poor service to acknowledging a hardware limitation as the source of the problem.
This shift reflects a common journey from external attribution of problems to
an internal clarification of the actual technical barriers, underscoring the importance
of technological updates and upgrades.
- connection_to_content:
relationship: REFERENCES
strength: 0.6
emotionType: appreciation
text: "There is a sense of appreciation for the technical support provided by the\
\ ISP\u2019s technician, who not only resolved the misunderstanding regarding\
\ network speeds but also offered recommendations for equipment upgrades. This\
\ highlights the value of effective and responsive customer service in addressing\
\ consumer issues and improving user satisfaction."
- connection_to_content:
relationship: REFERENCES
strength: 0.7
emotionType: anticipation
text: Anticipation is generated concerning the potential improvements in internet
service after upgrading to a DOCSIS 3.1 modem, such as the ARRIS S33 or NG Nighthawk.
This anticipation encompasses expectations for enhanced connectivity, reliability,
and overall user experience, showcasing a forward-looking perspective on technological
advancements.
- connection_to_content:
relationship: REFERENCES
strength: 0.7
emotionType: determination
text: The determination to seek solutions and improve internet service quality reflects
a proactive approach to overcoming the challenges detailed in the discussion.
Whether it is through hardware upgrades or engaging in dialogues about infrastructure
and regulatory measures, this determination underscores a readiness to address
and rectify the issues at hand.
- connection_to_content:
relationship: REFERENCES
strength: 0.6
emotionType: disappointment
text: Disappointment is conveyed regarding the stagnation in municipal fiber internet
projects due to corporate lobbying efforts. This sentiment reflects broader concerns
about the barriers to progress and the impact of corporate interests on public
services and infrastructure development.
- connection_to_content:
relationship: REFERENCES
strength: 0.5
emotionType: respect
text: An underlying respect for the individuals and entities striving for internet
service improvement, whether through municipal initiatives or personal efforts
to enhance connectivity, is evident in the dialogue. This respect recognizes the
complexities and challenges involved in achieving better internet service provision
and acknowledges the efforts to address them.
2025-03-30 17:57:02,504 - record_manager - INFO - Initialized RecordManager with client DID: did:plc:ljcmm7vvxki72g3j6rono6sa
2025-03-30 17:57:04,746 - record_manager - INFO - Initialized RecordManager with client DID: did:plc:ljcmm7vvxki72g3j6rono6sa
2025-03-30 17:57:06,890 - record_manager - INFO - Initialized RecordManager with client DID: did:plc:ljcmm7vvxki72g3j6rono6sa
2025-03-30 17:57:09,027 - record_manager - INFO - Initialized RecordManager with client DID: did:plc:ljcmm7vvxki72g3j6rono6sa
2025-03-30 17:57:11,181 - record_manager - INFO - Initialized RecordManager with client DID: did:plc:ljcmm7vvxki72g3j6rono6sa
2025-03-30 17:57:13,316 - record_manager - INFO - Initialized RecordManager with client DID: did:plc:ljcmm7vvxki72g3j6rono6sa
2025-03-30 17:57:15,462 - record_manager - INFO - Initialized RecordManager with client DID: did:plc:ljcmm7vvxki72g3j6rono6sa
2025-03-30 17:57:17,610 - record_manager - INFO - Initialized RecordManager with client DID: did:plc:ljcmm7vvxki72g3j6rono6sa
2025-03-30 17:57:19,763 - record_manager - INFO - Initialized RecordManager with client DID: did:plc:ljcmm7vvxki72g3j6rono6sa
2025-03-30 17:57:21,896 - structured_gen - INFO - Generating schema-guided response with model microsoft/Phi-4
2025-03-30 17:57:53,073 - structured_gen - INFO - Successfully generated schema-guided response
Generated concepts:
concepts:
- connection_to_content:
note: User profile details for Mr. Dr. Cameron Pfiffer.
relationship: PART_OF
strength: 3
text: user information
- connection_to_content:
note: Mentioned as part of user information, sharing user's title and name.
relationship: PART_OF
strength: 3
text: display name
- connection_to_content:
note: Unique identifier of the user on AT Proto.
relationship: PART_OF
strength: 3
text: handle
- connection_to_content:
note: Overview of user interests and personal attribute.
relationship: PART_OF
strength: 3
text: description
- connection_to_content:
note: Action performed by Mr. Dr. Cameron Pfiffer on a post.
relationship: PART_OF
strength: 3
text: new like
- connection_to_content:
note: Details of the author who made the post liked by the user.
relationship: PART_OF
strength: 3
text: author information
- connection_to_content:
note: Contains information about internet services in different cities and service
evaluation.
relationship: PART_OF
strength: 2
text: post content
- connection_to_content:
note: Mentioned in relation to experiences with ISPs in Berkeley and Seattle.
relationship: PART_OF
strength: 2
text: internet service providers
- connection_to_content:
note: Comparison of customer support quality between ISPs.
relationship: PART_OF
strength: 2
text: customer support
- connection_to_content:
note: Question raised about monopoly situation in the internet services market.
relationship: PART_OF
strength: 2
text: natural monopoly
- connection_to_content:
note: Historical context of internet infrastructure development mentioned in responses.
relationship: PART_OF
strength: 2
text: municipal fiber internet
- connection_to_content:
note: Analysis of market behavior impacting internet service quality.
relationship: PART_OF
strength: 2
text: rent seeking behavior
- connection_to_content:
note: Identified as the root cause for the internet speed problems mentioned in
a reply.
relationship: PART_OF
strength: 2
text: hardware issues
- connection_to_content:
note: Potential solution for improving internet speed discussed.
relationship: PART_OF
strength: 2
text: cable modem upgrade
- connection_to_content:
note: Suggested model for cable modem upgrade.
relationship: PART_OF
strength: 1
text: arris s33
- connection_to_content:
note: Suggested model for cable modem upgrade.
relationship: PART_OF
strength: 1
text: ng nighthawk
Troubleshooting
- If you’re having connection issues with Jetstream, make sure your Jetstream server is running and accessible.
- For authentication errors, verify your Bluesky credentials and app password.
- If the LLM or embedding server is unreachable, check your server URLs and network connectivity.
- For detailed logs, run the consumer with
--log-level DEBUG
.