Agent wyjaśniający kod
Zbuduj agenta, który odczytuje pliki źródłowe, prosi LLM o wyjaśnienie i zwraca dokumentację w Markdown.
Agent wyjaśniający kod to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Agents, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Agents zawiera 4 lekcji w sumie.
Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.
Cel projektu
Zbuduj agenta, który przyjmuje plik źródłowy (Python, JS lub dowolny inny) i zwraca dokumentację w Markdownie: przeznaczenie, kluczowe funkcje oraz przykład użycia.
Dlaczego to przydatne?
Generowanie dokumentacji na podstawie kodu to jedno z najbardziej niezawodnych zastosowań LLM — kod ma strukturę, zadanie jest ograniczone, a wynik czytają ludzie, więc drobne błędy są akceptowalne.
Architektura
- Wczytaj plik źródłowy
- Opcjonalnie podziel go według klas lub funkcji
- Dla każdego fragmentu poproś LLM o wyjaśnienie
- Połącz wyniki w dokument Markdown
Step 1: Read the File
import sys
with open('example.py', 'w') as f:
f.write('print("hello")\n')
path = sys.argv[1] if len(sys.argv) > 1 else 'example.py'
with open(path) as f:
code = f.read()
print(f'Read {len(code)} characters from {path}')Step 2: Prompt for Documentation
from openai import OpenAI
oai = OpenAI()
prompt = f'''
You are a senior engineer writing developer-friendly docs.
Given this source file, produce a Markdown document with:
# {path}
## Purpose
(One paragraph)
## Public API
(Each function/class with one-line description)
## Usage Example
(One short, runnable snippet)
Source:
```
{code}
```
'''
response = oai.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': prompt}],
temperature=0.2,
)
print(response.choices[0].message.content)Obsługa długich plików
Jeśli plik jest zbyt długi, podziel go według funkcji i wyjaśnij każdą z nich osobno:
import ast
tree = ast.parse(code)
functions = [node for node in ast.walk(tree) if isinstance(node, ast.FunctionDef)]
for func in functions:
snippet = ast.unparse(func)
explain(snippet)Krok 3: Łączenie wyników
W przypadku przetwarzania wielu fragmentów połącz wyjaśnienia poszczególnych funkcji w jeden dokument:
docs = []
for func_name, snippet in functions:
explanation = explain(snippet)
docs.append(f'### {func_name}\n\n{explanation}\n')
full_doc = '\n'.join(docs)
open('docs.md', 'w').write(full_doc)Dodawanie podsumowania na poziomie projektu
Po wyjaśnieniu poszczególnych funkcji poproś LLM o przegląd całości z wysokiego poziomu:
summary_prompt = 'Summarise the purpose of this package in 3 sentences, given these function docs:\n\n' + full_doc
summary = ask(summary_prompt)Wiele języków
Ten sam prompt działa w przypadku JS, Go, Rust i innych języków. Aby uzyskać lepsze wyniki, dodaj język do promptu:
prompt = f'You are documenting {language} code. ...'Dokumentacja na podstawie różnic
W przypadku aktualizacji przyrostowych uruchamiaj ponownie proces tylko dla zmienionych plików:
import subprocess
changed = subprocess.check_output(['git', 'diff', '--name-only', 'HEAD~1']).decode().splitlines()
for path in changed:
if path.endswith('.py'):
regenerate_doc(path)Użycie narzędzia do uruchomienia przykładu
Sprawdź, czy przykład użycia wygenerowany przez LLM rzeczywiście działa — udostępnij agentowi narzędzie Python REPL:
def run_python(code):
try:
exec(code, {})
return {'stdout': 'ok', 'stderr': ''}
except Exception as e:
return {'stdout': '', 'stderr': str(e)}
tools = [{'name': 'run_python', 'description': 'Execute a Python snippet and return stdout/stderr', 'parameters': {'code': 'str'}}]
broken_example = 'print(1/0)'
result = run_python(broken_example)
if result['stderr']:
print('Example failed:', result['stderr'])
fixed_example = 'print(1)'
result = run_python(fixed_example)
print('Self-corrected result:', result)
else:
print('Example ran fine:', result)
Gdy agent halucynuje
Model czasami wymyśla funkcje lub argumenty. Możliwe rozwiązania:
- Przekazuj WYŁĄCZNIE zawartość pliku (bez wiedzy z pamięci modelu)
- Temperatura 0
- Dodaj etap weryfikacji (uruchom przykład, sprawdź fragment linterem)
Przekształcenie w produkt
Opakuj to jako CLI:
# pip install -e .
# docgen src/myproject/agent.py
# Outputs docs.mdOd narzędzia do CI
Podłącz narzędzie do CI: przy każdym PR generuj ponownie dokumentację zmienionych plików i zatwierdzaj ją z powrotem w repozytorium. Dzięki temu repozytorium będzie zawsze udokumentowane.
Dlaczego czytać cały plik?
Dlaczego przekazywać LLM-owi PEŁNY plik źródłowy zamiast samych sygnatur funkcji?
Podsumowanie
Agent w 30 wierszach, który przekształca kod w dokumentację. Można go łatwo rozszerzyć o narzędzia i weryfikację. To świetny drugi projekt po RAG.
Często zadawane pytania
Czy lekcja „Agent wyjaśniający kod” jest bezpłatna?
Tak — pełny tekst „Agent wyjaśniający kod” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Agents, przejdź na CoddyKit PRO. Kurs AI Agents zawiera 4 lekcji w sumie.
Co nauczysz się w „Agent wyjaśniający kod”?
Zbuduj agenta, który odczytuje pliki źródłowe, prosi LLM o wyjaśnienie i zwraca dokumentację w Markdown. Ćwiczysz AI Agents z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć AI Agents?
Nie wymagamy żadnego doświadczenia. AI Agents w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Agent wyjaśniający kod”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji AI Agents?
Tak. Każda lekcja AI Agents zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Bot pytań i odpowiedzi nad Twoimi dokumentami
- Agent wyjaśniający kod
- Agent badawczy przeglądający sieć
- Asystent SQL dla Twojej bazy danych