Leitfäden
Todo-Listen
Verfolgen und anzeigen von Todos mit dem Claude Agent SDK für organisiertes Aufgabenmanagement
Todo-Verfolgung bietet eine strukturierte Möglichkeit, Aufgaben zu verwalten und den Fortschritt den Benutzern anzuzeigen. Das Claude Agent SDK enthält integrierte Todo-Funktionalität, die dabei hilft, komplexe Arbeitsabläufe zu organisieren und Benutzer über den Aufgabenfortschritt zu informieren.
Todo-Lebenszyklus
Todo-Lebenszyklus
Todos folgen einem vorhersagbaren Lebenszyklus:
- Erstellt als
pending, wenn Aufgaben identifiziert werden - Aktiviert zu
in_progress, wenn die Arbeit beginnt - Abgeschlossen, wenn die Aufgabe erfolgreich beendet wird
- Entfernt, wenn alle Aufgaben in einer Gruppe abgeschlossen sind
Wann Todos verwendet werden
Wann Todos verwendet werden
Das SDK erstellt automatisch Todos für:
- Komplexe mehrstufige Aufgaben, die 3 oder mehr unterschiedliche Aktionen erfordern
- Vom Benutzer bereitgestellte Aufgabenlisten, wenn mehrere Elemente erwähnt werden
- Nicht-triviale Operationen, die von Fortschrittsverfolgung profitieren
- Explizite Anfragen, wenn Benutzer um Todo-Organisation bitten
Beispiele
Beispiele
Überwachung von Todo-Änderungen
Überwachung von Todo-Änderungen
TypeScript
import { query } from "@anthropic-ai/claude-agent-sdk";
for await (const message of query({
prompt: "Optimiere die Leistung meiner React-App und verfolge den Fortschritt mit Todos",
options: { maxTurns: 15 }
})) {
// Todo-Updates werden im Nachrichtenstrom widergespiegelt
if (message.type === "tool_use" && message.name === "TodoWrite") {
const todos = message.input.todos;
console.log("Todo-Status-Update:");
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="Optimiere die Leistung meiner React-App und verfolge den Fortschritt mit Todos",
options={"max_turns": 15}
):
# Todo-Updates werden im Nachrichtenstrom widergespiegelt
if message.get("type") == "tool_use" and message.get("name") == "TodoWrite":
todos = message["input"]["todos"]
print("Todo-Status-Update:")
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']}")Echtzeit-Fortschrittsanzeige
Echtzeit-Fortschrittsanzeige
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(`\nFortschritt: ${completed}/${total} abgeschlossen`);
console.log(`Arbeitet derzeit an: ${inProgress} Aufgabe(n)\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();
}
}
}
}
// Verwendung
const tracker = new TodoTracker();
await tracker.trackQuery("Erstelle ein vollständiges Authentifizierungssystem mit Todos");Verwandte Dokumentation
Verwandte Dokumentation