Guide
Liste Todo
Traccia e visualizza i todo utilizzando il Claude Agent SDK per una gestione organizzata delle attività
Il tracciamento dei todo fornisce un modo strutturato per gestire le attività e mostrare i progressi agli utenti. Il Claude Agent SDK include funzionalità todo integrate che aiutano a organizzare flussi di lavoro complessi e mantenere gli utenti informati sulla progressione delle attività.
Ciclo di Vita dei Todo
Ciclo di Vita dei Todo
I todo seguono un ciclo di vita prevedibile:
- Creati come
pendingquando le attività vengono identificate - Attivati a
in_progressquando inizia il lavoro - Completati quando l'attività finisce con successo
- Rimossi quando tutte le attività in un gruppo sono completate
Quando Vengono Utilizzati i Todo
Quando Vengono Utilizzati i Todo
L'SDK crea automaticamente todo per:
- Attività complesse multi-step che richiedono 3 o più azioni distinte
- Liste di attività fornite dall'utente quando vengono menzionati più elementi
- Operazioni non banali che beneficiano del tracciamento dei progressi
- Richieste esplicite quando gli utenti chiedono l'organizzazione dei todo
Esempi
Esempi
Monitoraggio dei Cambiamenti dei Todo
Monitoraggio dei Cambiamenti dei Todo
TypeScript
import { query } from "@anthropic-ai/claude-agent-sdk";
for await (const message of query({
prompt: "Ottimizza le prestazioni della mia app React e traccia i progressi con i todo",
options: { maxTurns: 15 }
})) {
// Gli aggiornamenti dei todo si riflettono nel flusso dei messaggi
if (message.type === "tool_use" && message.name === "TodoWrite") {
const todos = message.input.todos;
console.log("Aggiornamento Stato Todo:");
todos.forEach((todo, index) => {
const status = todo.status === "completed" ? "✅" :
todo.status === "in_progress" ? "🔧" : "❌";
console.log(`${index + 1}. ${status} ${todo.content}`);
});
}
}Python
from claude_agent_sdk import query
async for message in query(
prompt="Ottimizza le prestazioni della mia app React e traccia i progressi con i todo",
options={"max_turns": 15}
):
# Gli aggiornamenti dei todo si riflettono nel flusso dei messaggi
if message.get("type") == "tool_use" and message.get("name") == "TodoWrite":
todos = message["input"]["todos"]
print("Aggiornamento Stato Todo:")
for i, todo in enumerate(todos):
status = "✅" if todo["status"] == "completed" else \
"🔧" if todo["status"] == "in_progress" else "❌"
print(f"{i + 1}. {status} {todo['content']}")Visualizzazione dei Progressi in Tempo Reale
Visualizzazione dei Progressi in Tempo Reale
import { query } from "@anthropic-ai/claude-agent-sdk";
class TodoTracker {
private todos: any[] = [];
displayProgress() {
if (this.todos.length === 0) return;
const completed = this.todos.filter(t => t.status === "completed").length;
const inProgress = this.todos.filter(t => t.status === "in_progress").length;
const total = this.todos.length;
console.log(`\nProgressi: ${completed}/${total} completati`);
console.log(`Attualmente lavorando su: ${inProgress} attività\n`);
this.todos.forEach((todo, index) => {
const icon = todo.status === "completed" ? "✅" :
todo.status === "in_progress" ? "🔧" : "❌";
const text = todo.status === "in_progress" ? todo.activeForm : todo.content;
console.log(`${index + 1}. ${icon} ${text}`);
});
}
async trackQuery(prompt: string) {
for await (const message of query({
prompt,
options: { maxTurns: 20 }
})) {
if (message.type === "tool_use" && message.name === "TodoWrite") {
this.todos = message.input.todos;
this.displayProgress();
}
}
}
}
// Utilizzo
const tracker = new TodoTracker();
await tracker.trackQuery("Costruisci un sistema di autenticazione completo con i todo");Documentazione Correlata
Documentazione Correlata