File size: 3,632 Bytes
e706de2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
# Contributing Guidelines
Thank you for considering contributing to AI Agents from Scratch!
## Project Philosophy
This repository teaches AI agent fundamentals by building from scratch. Every contribution should support this learning mission.
**Core Principles:**
- **Clarity over cleverness** - Code should be easy to understand
- **Fundamentals first** - No black boxes or magic
- **Progressive learning** - Each example builds on the previous
- **Local-first** - No API dependencies
## Types of Contributions
### Bug Reports
Found something broken? Open an issue with:
- Which example (`intro/`, `react-agent/`, etc.)
- What you expected vs. what happened
- Your environment (Node version, OS, model used)
- Steps to reproduce
### Documentation Improvements
- Typos and grammar fixes
- Clearer explanations
- Better code comments
- Additional examples in documentation
- Diagrams and visualizations
### New Examples
Want to add a new agent pattern? Great! Please:
1. **Open an issue first** - let's discuss if it fits
2. Follow the existing structure:
- `pattern-name/pattern-name.js` - Working code
- `pattern-name/CODE.md` - Detailed code walkthrough
- `pattern-name/CONCEPT.md` - Why it matters, use cases
3. Keep it simple and well-commented
4. Test thoroughly with at least one model
### Code Improvements
- Performance optimizations (with benchmarks)
- Better error handling
- Clearer variable names
- More helpful console output
## What We're Not Looking For
- Framework integrations (LangChain, etc.) - this repo teaches what they do
- Cloud API examples - keep it local
- Production features (monitoring, scaling) - this is educational
- Complex abstractions - keep it beginner-friendly
## Contribution Process
1. **Fork** the repository
2. **Create a branch**: `git checkout -b fix/issue-description`
3. **Make changes** and test thoroughly
4. **Commit** with clear messages: `git commit -m "Fix: clarify ReAct loop explanation"`
5. **Push**: `git push origin fix/issue-description`
6. **Open a Pull Request** with:
- Clear title
- Description of what changed and why
- Which issue it addresses (if any)
## Code Standards
- Use clear, descriptive variable names
- Add comments explaining *why*, not just *what*
- Follow existing code style (no linter, just match the patterns)
- Keep examples self-contained (one file when possible)
- Test with Qwen or Llama models before submitting
## Documentation Standards
- Use clear, simple language
- Explain concepts before code
- Include diagrams where helpful (ASCII art is fine!)
- Provide real-world use cases
- Link to related examples
## Example Structure
```
new-pattern/
βββ new-pattern.js # The working code
βββ CODE.md # Line-by-line walkthrough
βββ CONCEPT.md # High-level explanation
```
**CODE.md should include:**
- Prerequisites
- Step-by-step code breakdown
- How to run it
- Expected output
**CONCEPT.md should include:**
- What problem it solves
- Why this pattern matters
- Real-world applications
- Simple diagrams
## Getting Help
- Not sure if your idea fits? **Open an issue to discuss**
- Stuck on implementation? **Ask in the issue**
- Want to pair on something? **Reach out!**
## License
By contributing, you agree that your contributions will be licensed under the same license as the project (MIT).
## Recognition
All contributors will be recognized in the README. Thank you for helping others learn!
---
**Questions?** Open an issue or reach out. Happy to help guide your contribution! |