Prototype agent for the Collaborative Engineering project.
The project contains logic for the Bluesky Labeler developer agent workflow prototype that should:
- Answer general questions about Bluesky, the AT protocol, and Labelers using web search or RAG
- Evaluate the semantic relevance of retrieved documents based on user queries
- Reformulate user queries for better document retrieval performance
- Generate a proposal for a label based on user input and context
- Enable user approval or editing of the proposal
- Generate a sample labeler TypeScript project based on the approved proposals
Tip
Detailed Requirements and Specifications are on a live Google doc.
The project is a Langgraph Server application and follows the required application structure configuration for deployment.
└── 📁bsky-collective-eng
└── 📁brainstorming_agent
└── 📁constants
├── output_samples.py
├── prompt_templates.py
├── retrieval_sources.json
└── 📁utils
├── __init__.py
├── nodes.py
├── rag_utils.py
├── state.py
├── test_func.ipynb
├── tools.py
├── __init__.py
├── agent.py
├── requirements.txt
└── 📁data
└── 📁bsky-docs
├── .gitignore
├── langgraph.json
└── README.md
Important
The project needs a .env file with the OPENAI_API_KEY to use the GPT-4.1 model and TAVILY_API_KEY for the web search tool. Be sure to add that file after cloning this repo.
Note
You'll need to add the LANGSMITH_API_KEY to your .env file. You can create a LangSmith account if needed.
To install Langgraph Studio
Clone this repository
Add the .env file in the root of the project
Initialize and activate a virtual environment
conda create -n my_virtual_env python=3.12
conda activate my_virtual_envInstall dependencies (from the root of the project folder)
pip install -r requirements.txtand run
langgraph devNote
You'll need to run langgraph dev --tunnel if you are running on browsers that block http connections by default (e.g., Safari, Brave Browser).
- Multi-agent systems
- Langchain tools. The protoype uses the Tavily Web Search tool
- LangSmith - Get Started
- Document loaders. The prototype uses the
WebBaseLoaderdocument loader for the retrieval tool. - ChatOllama
