Prozkoumejte data v persistentním kernelu
Tenhle návod ukazuje, jak nechat agenta načíst něco drahého jednou a pak se toho ptát několikrát, místo aby načtení platil u každé otázky.
Nástroj eval spouští persistentní interpret. Proměnné, importy a načtená data mezi voláními přežijí.
Proč nespustit jen skript
Sekce “Proč nespustit jen skript”Jednorázové python -c platí přípravu u každé otázky. Načtení dataframe stojí sekundy a stovku megabajtů; graf z něj milisekundy. Když každá otázka stojí načtení, agent se ptá míň, než by měl — a každá odpověď se vrátí jako text, který pak musí znovu rozebrat.
Načti jednou, pak se ptej
Sekce “Načti jednou, pak se ptej”Načti
data/runs.csva řekni mi p95 trvání podle agenta.
import pandas as pdruns = pd.read_csv("data/runs.csv")len(runs)Poslední výraz se vypíše jako v notebooku, takže len(runs) ohlásí počet řádků i bez print.
Potom, v samostatném volání:
runs.groupby("agent")["duration_ms"].quantile(0.95).sort_values()runs je pořád načtený. Frame z pandas se vrátí vykreslený jako tabulka, ne jako repr.
Grafy skončí v chatu
Sekce “Grafy skončí v chatu”import matplotlib.pyplot as pltruns.groupby("agent")["duration_ms"].mean().plot.bar()Figury se po buňce zachytí a vrátí jako obrázky, které vykreslí přepis. Graf vidíš ty i agent.
Po zachycení se figury zavřou. Figura, kterou kód nesebral, by se překreslila a znovu odeslala i v další buňce, takže relace o pěti buňkách by první graf vyslala pětkrát.
Idiomy, které bys napsal i tak
Sekce “Idiomy, které bys napsal i tak”Přepíšou se na obyčejný kód, místo aby skončily chybou:
| Napíšeš | Co se stane |
|---|---|
%pip install x |
Spustí pip a pak vyčistí cache modulů, aby ho viděl další import |
%cd path |
os.chdir |
!command |
Zachycený podproces |
%%bash |
Zbytek buňky jako shellový skript |
%%timeit |
1000 měřených opakování |
Vyklizení cache u %pip je to jediné, na čem záleží: instalace do živého interpretu s už importovaným modulem nic nezmění, takže bez něj neběží verze, kterou jsi právě nainstaloval.
Volání vlastních nástrojů z buňky
Sekce “Volání vlastních nástrojů z buňky”paths = tool("find", {"pattern": "**/*.dart", "path": "lib"})for path in paths.splitlines()[:100]: contents = tool("read", {"path": path}) ...tool(name, args) znovu vstoupí do vlastního registru nástrojů agenta. Buňka tak může rozvětvit práci přes stovku souborů, nebo ji přes task delegovat, aniž by model za každou položku utrácel tah.
Volání přes most pozastaví časový limit buňky, dokud není vyřízené. Rozpočet měří nečinnost, ne reálný čas — buňka, která se rozvětví na podagenty a čtyři minuty čeká, není zaseknutá, a její zabití uprostřed rozvětvení by přišlo o stav celého kernelu.
Začít znovu
Sekce “Začít znovu”eval(code: "…", reset: true, description: "Start a clean interpreter")Zahodí interpret a spustí čistý. Všechno načtené je pryč, a o to jde.
Kde kernel běží
Sekce “Kde kernel běží”V izolovaném prostředí konverzace, pokud nějaké má, jinak na hostiteli.
Persistentní interpret poháněný modelem, který čte nedůvěryhodný repozitář, je přesně případ, pro který existuje provádění jen v izolovaném prostředí: jednorázové volání bash aspoň skončí, kernel je shell, který si pamatuje.
Aby tam kernel běžel, izolované prostředí nenabootuje — stejné pravidlo, které brání kartě stanice naběhnout sama. Když chceš kernel v izolovaném prostředí, nejdřív otevři shell konverzace. Viz Dejte agentovi stroj na testování.
Limity
Sekce “Limity”- Jedna buňka najednou na kernel. Dvě buňky, které se v jednom interpretu předhánějí, jsou dvě půlky dvou programů proložené v jednom jmenném prostoru.
- Výstup je omezený. Buňka ve smyčce s printy se ořízne, místo aby směla zaplnit kontextové okno.
- Čtyři obrázky na buňku. Smyčka s grafy umí v každé iteraci vydat figuru a každý obrázek je v požadavku, který ho veze, velký pevný náklad.
- Kernel umírá s během. Ten, který po skončení konverzace pořád drží dataframe, je únik.
Související
Sekce “Související”- Sandbox a zabezpečení — co tu znamená „v izolovaném prostředí“
- Dejte agentovi stroj na testování — otevření izolovaného prostředí
- Vestavěné nástroje agentů — argumenty