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!