langchaingo
langchaingo copied to clipboard
docs: establish project design principles for contributors
As I've been doing some maintenance and improvements I've noticed some things creep in that we should clean up and codify in design principles.
A few topics this should cover:
- interface design
- package api design
- registry and provider patterns
- dependency policies
Another related document should cover the patterns and best practices employ when adding/extending which might include:
- test design / strategy
Here is a running scratchpad of things I'd like to see cleaned up and codified in some soft of automated checks:
- [ ] token counting mixed into llm package
- [ ] any model/provider specifics in any core package