Skip to content

d3group/D3PA_demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

D3PA - Data-Driven-Decisions Personal Assistant

A hackathon blueprint for building your own AI-powered personal assistant using LangGraph and Slack.

Built by the D3 (Data-Driven-Decisions) Research Group at University of Würzburg.


What is This?

This repository is an educational starter kit for building conversational AI agents. In 30 minutes, you'll have:

  1. A Slack bot you can chat with
  2. An AI agent powered by LangGraph
  3. A foundation to build your own custom tools

Perfect for hackathons - everyone can build their own tools that extend the agent's capabilities.


Quick Links

Guide Description Time
Quickstart Get running in 30 minutes 30 min
How LangGraph Works Understand graphs, nodes, and state 15 min read
Building Tools Create your own custom tools 20 min
Slack Setup Detailed Slack app configuration 15 min
OneDrive Setup Connect to Microsoft OneDrive 20 min

Architecture Overview

┌─────────────────────────────────────────────────────────────────┐
│                         SLACK                                   │
│                    (User Interface)                             │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│                      LANGGRAPH AGENT                            │
│  ┌─────────┐    ┌─────────┐    ┌─────────┐    ┌─────────┐      │
│  │  Input  │───▶│  Agent  │───▶│  Tools  │───▶│ Output  │      │
│  │  Node   │    │  Node   │◀───│  Node   │    │  Node   │      │
│  └─────────┘    └─────────┘    └─────────┘    └─────────┘      │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│                         TOOLS                                   │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────────┐    │
│  │ OneDrive │  │ Calendar │  │ Web      │  │ Your Custom  │    │
│  │ Tools    │  │ Tools    │  │ Search   │  │ Tools Here!  │    │
│  └──────────┘  └──────────┘  └──────────┘  └──────────────┘    │
└─────────────────────────────────────────────────────────────────┘

Key Concepts

What is LangGraph?

LangGraph is a framework for building stateful, multi-step AI agents. Unlike simple chatbots that just send messages to an LLM, LangGraph agents can:

  • Use tools - Call APIs, search the web, access files
  • Maintain state - Remember context across multiple steps
  • Make decisions - Route between different paths based on intent
  • Loop - Keep working until a task is complete

What are Tools?

Tools are functions the AI can call to interact with the outside world. Examples:

@tool
def search_onedrive(query: str) -> str:
    """Search files in OneDrive."""
    # Your code here
    return results

@tool
def get_weather(city: str) -> str:
    """Get current weather for a city."""
    # Your code here
    return weather_info

The AI decides when to call tools and what arguments to pass.


Project Structure

D3PA/
├── README.md                    # You are here
├── docs/                        # Step-by-step guides
│   ├── 01-quickstart.md         # Get running fast
│   ├── 02-how-langgraph-works.md # Understanding LangGraph
│   ├── 03-building-tools.md     # Create custom tools
│   ├── 04-slack-setup.md        # Slack app setup
│   └── 05-onedrive-setup.md     # OneDrive integration
│
├── src/
│   ├── agent/                   # LangGraph agent
│   │   ├── graph.py             # Graph definition
│   │   ├── state.py             # State schema
│   │   └── prompts.py           # System prompts
│   │
│   ├── tools/                   # Agent tools
│   │   ├── example_tools.py     # Example tools to learn from
│   │   └── onedrive.py          # OneDrive tools
│   │
│   ├── integrations/            # API clients
│   │   └── onedrive_client.py   # OneDrive API wrapper
│   │
│   └── config/                  # Configuration
│       └── settings.py          # Environment settings
│
├── scripts/
│   └── run_slack_bot.py         # Main entry point
│
├── config/
│   └── users.yaml               # User mappings
│
├── .env.example                 # Environment template
└── requirements.txt             # Python dependencies

Hackathon Ideas

Here are some tools you could build during the hackathon:

Productivity

  • Slack summarizer - Summarize Slack channels and threads
  • OneDrive integration - Search and manage OneDrive files
  • Personal Notion integration - Connect to your Notion workspace
  • Personal Drive integration - Access Google Drive files

Research

  • Paper search - Search arXiv, Semantic Scholar
  • Paper retrieval - Download and extract paper content
  • RAG - Retrieval-augmented generation over documents

Fun

  • Weather bot - Get weather forecasts
  • News summarizer - Summarize top news
  • Quiz generator - Generate quiz questions from documents

Tech Stack


Resources

Want to learn more? Check out these resources:


Contributing

This is a hackathon project! Feel free to:

  1. Add new tools in src/tools/
  2. Improve documentation
  3. Fix bugs
  4. Share your creations

License

MIT License - Use freely for research and education.


Credits

Created for the D3 Research Group Hackathon 2025.

Based on patterns from production LangGraph systems, simplified for educational purposes.

About

D3 Personal Assistant Demo

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages