문서 기여하기
문서 기여하기 (Contributing to documentation)
LangChain 문서 기여는 언제나 환영합니다. 새로운 기능, 통합, 기존 문서 개선이 모두 포함됩니다.
출처: 문서
본문
빠른 시작 - 로컬 개발
문서의 로컬 프리뷰를 실행하려면:
git clone https://github.com/langchain-ai/docs.git
cd docs
mise로 고정된 툴체인을 설치하세요. mise는 .mise.toml에서 Python, Node.js, uv, Vale, Mintlify CLI 버전을 읽고 저장소의 git 훅을 설치합니다:
mise trust && mise install
make install
make dev
이렇게 하면 http://localhost:3000에서 핫 리로드가 되는 개발 서버가 시작됩니다. src/의 파일을 편집하면 변경 사항이 즉시 반영됩니다.
전제 조건 (Prerequisites)
권장: mise trust && mise install을 실행해 모든 고정 버전을 한 번에 가져오세요. .mise.toml이 툴체인의 표준 핀(pin)이며, 그 postinstall 훅이 pre-commit 및 pre-push 훅을 연결합니다.
필수:
- Python 3.13+
- uv 0.9.26 이상 - Python 패키지 관리자
- Node.js 22.x 및 npm. Mintlify는 Node 25 이상을 지원하지 않습니다
- Make
- Git
선택:
- markdownlint-cli -
npm install -g markdownlint-cli - Mintlify MDX VSCode 확장
문서 편집하기
- GitHub에서 빠르게 편집 — 오타나 작은 변경은 로컬 설정 없이 GitHub에서 직접 편집: 1. 아무 페이지 하단의 Edit this page on GitHub 클릭, 2. 개인 계정으로 포크, 3. GitHub 웹 에디터에서 변경, 4. 풀 리퀘스트 생성.
품질 검사 실행하기 (Run quality checks)
변경 사항을 제출하기 전에 코드가 포맷팅과 린팅 검사를 통과하는지 확인하세요:
# Check broken links
make broken-links
# Format code automatically
make format
# Check for linting issues
make lint
# Fix markdown issues
make lint_md_fix
# Run tests to ensure your changes don't break existing functionality
make test
자세한 내용은 README의 사용 가능한 명령 섹션을 참고하세요.
문서 유형 (Documentation types)
모든 문서는 네 가지 범주 중 하나에 속합니다:
- 하우투 가이드 (How-to guides): 무엇을 이루고 싶은지 아는 사용자를 위한 작업 중심 지침
- 개념 가이드 (Conceptual guides): 더 깊은 이해와 통찰을 제공하는 설명
- 레퍼런스 (Reference): API와 구현 세부 사항의 기술적 설명
- 튜토리얼 (Tutorials): 이해를 쌓기 위해 실용적 활동을 안내하는 수업
하우투 가이드 (How-to guides)
하우투 가이드는 무엇을 이루고 싶은지 아는 사용자를 위한 작업 중심 지침입니다. 하우투 가이드의 예는 LangChain 및 LangGraph 탭에 있습니다.
특징:
- 작업 중심: 특정 작업이나 문제에 집중
- 단계별: 작업을 더 작은 단계로 분해
- 실습형: 구체적인 예시와 코드 스니펫 제공
팁:
- 어떻게(how) 보다는 **무엇(what)**에 집중... 아니, 어떻게에 집중 (why보다 how)
- 구체적인 예시와 코드 스니펫 사용
- 작업을 더 작은 단계로 분해
- 관련 개념 가이드와 레퍼런스에 연결
예시:
개념 가이드 (Conceptual guides)
개념 가이드는 핵심 개념을 추상적으로 다루며 깊은 이해를 제공합니다.
특징:
- 이해 중심: 왜 그렇게 동작하는지 설명
- 넓은 관점: 다른 유형보다 더 높고 넓은 시야
- 설계 지향: 결정과 트레이드오프 설명
- 컨텍스트 풍부: 비유와 비교 사용
팁:
- "어떻게"보다 **"왜"**에 집중
- 기능 사용에 반드시 필요하지 않은 보충 정보 제공
- 비유와 대안 참조 사용 가능
- 레퍼런스 콘텐츠를 너무 많이 섞지 않기
- 관련 튜토리얼과 하우투 가이드에 연결
예시:
레퍼런스 (Reference)
레퍼런스 문서는 어떤 기능이 존재하고 어떻게 사용하는지 정확히 설명하는 상세한 저수준 정보를 포함합니다.
좋은 레퍼런스는:
- 존재하는 것(모든 파라미터, 옵션, 반환 값)을 설명
- 쉽게 찾아볼 수 있도록 포괄적이고 구조화
- 기술적 세부 사항의 권위 있는 출처 역할
레퍼런스 기여: 생성된 API 레퍼런스는 reference.langchain.com에서 이 저장소 밖에서 구축 및 배포됩니다. 버그, 누락된 패키지, 깨진 페이지를 신고하려면 레퍼런스 문서 이슈를 여세요.
LangChain 레퍼런스 모범 사례:
- 일관성 유지; 프로바이더별 문서의 기존 패턴 따르기
- 기본 사용법(코드 스니펫)과 흔한 엣지 케이스/실패 모드 모두 포함
- 기능이 특정 버전을 요구할 때 명시
새 레퍼런스 문서를 만들 때:
- 호스티드 가이드 자격 기준(월 5만 회 이상 다운로드 또는 추천)을 충족하는 새 통합
- 복잡한 구성 옵션이 상세 설명을 요구할 때
- API 변경이 새 파라미터나 동작을 도입할 때
- 커뮤니티가 특정 기능에 대해 자주 질문할 때
튜토리얼 (Tutorials)
튜토리얼은 스스로 쌓아가는 더 긴 형식의 단계별 가이드로, 사용자를 특정 실용 활동으로 안내해 이해를 쌓게 합니다. 튜토리얼은 일반적으로 Learn 탭에서 찾을 수 있습니다.
특징:
- 실용적: 이해를 쌓기 위한 실용 활동에 집중
- 단계별: 활동을 더 작은 단계로 분해
- 실습형: 순차적인 작동 코드 스니펫 제공
- 보충적: 기능 사용에 반드시 필요하지 않은 추가 컨텍스트와 정보 제공
팁:
- 코드 스니펫은 사용자가 순서대로 따라가면 순차적이고 작동해야 함
- 활동에 대한 일부 컨텍스트를 제공하되, 상세 정보는 관련 개념 가이드와 레퍼런스에 연결
예시:
작성 표준 (Writing standards)
Mintlify 컴포넌트
Mintlify 컴포넌트를 사용해 가독성을 높이세요:
- 콜아웃(Callouts):
<Note>— 유용한 보충 정보,<Warning>— 중요한 주의와 파괴적 변경,<Tip>— 모범 사례와 조언,<Info>— 중립적 컨텍스트 정보,<Check>— 성공 확인 - 구조(Structure):
<Steps>— 순차 절차 개요 (긴 단계 목록이나 튜토리얼에는 아님),<Tabs>— 플랫폼별 콘텐츠,<AccordionGroup>/<Accordion>— 기본적으로 접힐 수 있는 있으면 좋은 정보(예: 전체 코드 예시),<CardGroup>/<Card>— 콘텐츠 강조 - 코드(Code):
<CodeGroup>— 여러 언어 예시, 코드 블록에 항상 언어 태그 지정(예:```python,```javascript), 코드 블록 제목(예:Success,Error Response)
Mermaid 다이어그램
Mermaid 다이어그램을 추가할 때는 노드 스타일링에 LangChain 브랜드 색상 팔레트를 사용하세요. 기존 다이어그램에서 classDef 줄을 복사하거나 CLAUDE.md의 참조 테이블을 사용하세요.
| 역할 | Fill | Stroke | Text |
|---|---|---|---|
| process | #E5F4FF |
#006DDD |
#030710 |
| trigger | #F6FFDB |
#6E8900 |
#2E3900 |
| decision | #FDF3FF |
#7E65AE |
#504B5F |
| output | #EBD0F0 |
#885270 |
#441E33 |
| alert | #F8E8E6 |
#B27D75 |
#634643 |
| neutral | #F2FAFF |
#40668D |
#2F4B68 |
Tailwind 기본값, Material Design 색상 또는 다른 브랜드 외 팔레트를 사용하지 마세요.
페이지 구조 (Page structure)
모든 문서 페이지는 YAML 프론트매터로 시작해야 합니다:
---
title: "Clear, specific title"
sidebarTitle: "Short title for the sidebar (optional)"
---
Python과 JavaScript/TypeScript 콘텐츠 함께 배치하기
모든 문서는 가능하면 Python과 JavaScript/TypeScript로 모두 작성되어야 합니다. 이를 위해 한 언어 또는 양 언어로 표시되어야 하는 섹션을 구분하는 커스텀 인라인 구문을 사용합니다:
:::python
Python-specific content. In real docs, the preceding backslash (before `python`) is omitted.
:::
:::js
JavaScript/TypeScript-specific content. In real docs, the preceding backslash (before `js`) is omitted.
:::
Content for both languages (not wrapped)
이렇게 하면 /oss/python/concepts/foo.mdx와 /oss/javascript/concepts/foo.mdx 두 가지 출력(각 언어당 하나)이 생성됩니다. 각 출력 페이지는 내비게이션에 포함되도록 /src/docs.json 파일에 추가해야 합니다.
Python과 JavaScript/TypeScript 사이에서 콘텐츠 번역에 도움이 필요하면 커뮤니티 슬랙에 물어보거나 PR에서 메인테이너를 태그하세요.
품질 표준 (Quality standards)
일반 지침
- 중복 피하기 — 같은 내용을 다루는 여러 페이지는 유지 관리가 어렵고 혼란을 일으킵니다. 각 개념이나 기능에는 하나의 정규 페이지만 있어야 합니다. 다시 설명하지 말고 다른 가이드에 연결하세요.
- 자주 연결하기 — 문서 섹션은 진공 상태에 존재하지 않습니다. 낯선 주제를 배울 수 있도록 다른 섹션에 자주 연결하세요. 여기에는 API 레퍼런스와 개념 섹션에 연결하는 것이 포함됩니다.
- 간결하게 — less-is-more 접근 방식을 취하세요. 좋은 설명이 있는 다른 섹션이 있으면, 새 관점을 제시하지 않는 한 다시 설명하는 대신 연결하세요.
접근성 요건 (Accessibility)
문서가 모든 사용자에게 접근 가능하도록 하세요:
- 헤더와 목록으로 쉽게 훑어볼 수 있게 콘텐츠 구성
- "click here" 대신 구체적이고 실행 가능한 링크 텍스트 사용
- 모든 이미지와 다이어그램에 설명적인 alt 텍스트 포함
상호 참조 (Cross-referencing)
일관된 상호 참조를 사용해 문서를 API 레퍼런스 문서와 연결하세요.
문서에서 API 레퍼런스로:
@[] 구문을 사용해 API 레퍼런스 페이지에 연결합니다:
See @[`ChatAnthropic`] for all configuration options.
The @[`bind_tools`][ChatAnthropic.bind_tools] method accepts...
빌드 파이프라인은 현재 언어 범위(Python 또는 JavaScript)에 따라 이들을 적절한 마크다운 링크로 변환합니다. 예를 들어 @[ChatAnthropic]은 어떤 버전의 문서를 빌드 중인지에 따라 Python 또는 JS API 레퍼런스 페이지로의 링크가 됩니다. 단, link_map.py 파일에 항목이 존재할 때만 해당합니다! 아래에서 자세히 설명합니다.
자동 링크가 작동하는 방식:
@[] 구문은 handle_auto_links.py가 처리합니다. 이 파일은 Python과 JavaScript 범위 모두에 대한 사전 매핑이 포함된 link_map.py에서 링크 키를 조회합니다.
지원 형식:
| 구문 | 결과 |
|---|---|
@[ChatAnthropic] |
"ChatAnthropic" 표시 텍스트 링크 |
@[`ChatAnthropic`] |
`ChatAnthropic` (코드 포맷) 텍스트 링크 |
@[text][ChatAnthropic] |
"text" 텍스트, ChatAnthropic을 링크 맵 키로 하는 링크 |
\@[ChatAnthropic] |
이스케이프됨: 리터럴 @[ChatAnthropic]로 렌더링 (링크 없음 – 이 페이지에서 사용 중인 것!) |
새 링크 추가하기: 맵에서 링크가 발견되지 않으면 출력에 그대로 남습니다. 새 자동 링크를 추가하려면:
pipeline/preprocessors/link_map.py열기LINK_MAPS의 적절한 범위(python또는js)에 항목 추가- 키는
@[key]또는@[text][key]에서 사용되는 링크 이름이고, 값은 레퍼런스 호스트에 대한 상대 경로
지역화 (Localization)
기능이 두 SDK에 모두 존재하는 경우 Python과 JavaScript/TypeScript를 함께 문서화하세요. 아직 한 언어만 지원된다면, 해당 기능과 그에 대한 참조가 해당 언어에서만 보이도록 하세요.
코드 내 문서화 (In-code documentation)
예시는 정확해야 하고, 가능하면 복사해서 붙여넣기 가능해야 하며, 풀 리퀘스트를 열기 전에 테스트되어야 합니다. 실행 불가능한 스니펫(예: 의사 코드나 설명용 조각)은 명확히 표시하세요.
도움 받기 (Get help)
목표는 가장 단순한 개발자 설정을 갖추는 것입니다. 설정에 어려움이 있다면 커뮤니티 슬랙에 물어보거나 포럼 게시글을 여세요. 내부 팀원은 #documentation 슬랙 채널에서 연락할 수 있습니다.
더 알아보기
- 이 문서를 MCP로 연결하면 Claude, VSCode 등에서 실시간 답변을 받을 수 있어요.
- GitHub에서 이 페이지 편집하기 또는 이슈 제출하기.