63 lines
2.1 KiB
Plaintext
63 lines
2.1 KiB
Plaintext
---
|
||
description: Guidelines for using PocketFlow, a minimalist LLM framework
|
||
globs: **/*.py
|
||
alwaysApply: true
|
||
---
|
||
# Pocket Flow
|
||
|
||
A [100-line](mdc:https:/github.com/the-pocket/PocketFlow/blob/main/pocketflow/__init__.py) minimalist LLM framework for *Agents, Task Decomposition, RAG, etc*.
|
||
|
||
- **Lightweight**: Just the core graph abstraction in 100 lines. ZERO dependencies, and vendor lock-in.
|
||
- **Expressive**: Everything you love from larger frameworks—([Multi-])[Agents], [Workflow], [RAG], and more.
|
||
- **Agentic-Coding**: Intuitive enough for AI agents to help humans build complex LLM applications.
|
||
|
||
|
||
|
||
|
||
## Core Abstraction
|
||
|
||
We model the LLM workflow as a **Graph + Shared Store**:
|
||
|
||
- [Node] handles simple (LLM) tasks.
|
||
- [Flow] connects nodes through **Actions** (labeled edges).
|
||
- [Shared Store] enables communication between nodes within flows.
|
||
- [Batch] nodes/flows allow for data-intensive tasks.
|
||
- [Async] nodes/flows allow waiting for asynchronous tasks.
|
||
- [(Advanced) Parallel] nodes/flows handle I/O-bound tasks.
|
||
|
||
|
||
|
||
## Design Pattern
|
||
|
||
From there, it’s easy to implement popular design patterns:
|
||
|
||
- [Agent] autonomously makes decisions.
|
||
- [Workflow] chains multiple tasks into pipelines.
|
||
- [RAG] integrates data retrieval with generation.
|
||
- [Map Reduce] splits data tasks into Map and Reduce steps.
|
||
- [Structured Output] formats outputs consistently.
|
||
- [(Advanced) Multi-Agents] coordinate multiple agents.
|
||
|
||
|
||
|
||
## Utility Function
|
||
|
||
We **do not** provide built-in utilities. Instead, we offer *examples*—please *implement your own*:
|
||
|
||
- [LLM Wrapper]
|
||
- [Viz and Debug]
|
||
- [Web Search]
|
||
- [Chunking]
|
||
- [Embedding]
|
||
- [Vector Databases]
|
||
- [Text-to-Speech]
|
||
|
||
**Why not built-in?**: I believe it's a *bad practice* for vendor-specific APIs in a general framework:
|
||
- *API Volatility*: Frequent changes lead to heavy maintenance for hardcoded APIs.
|
||
- *Flexibility*: You may want to switch vendors, use fine-tuned models, or run them locally.
|
||
- *Optimizations*: Prompt caching, batching, and streaming are easier without vendor lock-in.
|
||
|
||
## Ready to build your Apps?
|
||
|
||
Check out [Agentic Coding Guidance], the fastest way to develop LLM projects with Pocket Flow!
|