0Pricing
AI Agents · Lekcja

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

  1. Wczytaj plik źródłowy
  2. Opcjonalnie podziel go według klas lub funkcji
  3. Dla każdego fragmentu poproś LLM o wyjaśnienie
  4. 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.md

Od 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

  1. Bot pytań i odpowiedzi nad Twoimi dokumentami
  2. Agent wyjaśniający kod
  3. Agent badawczy przeglądający sieć
  4. Asystent SQL dla Twojej bazy danych
← Powrót do AI Agents