Guías
Listas de Tareas
Rastrea y muestra tareas pendientes usando el SDK de Agente Claude para una gestión organizada de tareas
El seguimiento de tareas pendientes proporciona una forma estructurada de gestionar tareas y mostrar el progreso a los usuarios. El SDK de Agente Claude incluye funcionalidad de tareas pendientes integrada que ayuda a organizar flujos de trabajo complejos y mantener a los usuarios informados sobre la progresión de tareas.
Ciclo de Vida de las Tareas Pendientes
Ciclo de Vida de las Tareas Pendientes
Las tareas pendientes siguen un ciclo de vida predecible:
- Creadas como
pendingcuando se identifican las tareas - Activadas a
in_progresscuando comienza el trabajo - Completadas cuando la tarea termina exitosamente
- Eliminadas cuando todas las tareas en un grupo están completadas
Cuándo se Usan las Tareas Pendientes
Cuándo se Usan las Tareas Pendientes
El SDK crea automáticamente tareas pendientes para:
- Tareas complejas de múltiples pasos que requieren 3 o más acciones distintas
- Listas de tareas proporcionadas por el usuario cuando se mencionan múltiples elementos
- Operaciones no triviales que se benefician del seguimiento del progreso
- Solicitudes explícitas cuando los usuarios piden organización de tareas pendientes
Ejemplos
Ejemplos
Monitoreo de Cambios en Tareas Pendientes
Monitoreo de Cambios en Tareas Pendientes
TypeScript
import { query } from "@anthropic-ai/claude-agent-sdk";
for await (const message of query({
prompt: "Optimiza el rendimiento de mi aplicación React y rastrea el progreso con tareas pendientes",
options: { maxTurns: 15 }
})) {
// Las actualizaciones de tareas pendientes se reflejan en el flujo de mensajes
if (message.type === "tool_use" && message.name === "TodoWrite") {
const todos = message.input.todos;
console.log("Actualización de Estado de Tareas Pendientes:");
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="Optimiza el rendimiento de mi aplicación React y rastrea el progreso con tareas pendientes",
options={"max_turns": 15}
):
# Las actualizaciones de tareas pendientes se reflejan en el flujo de mensajes
if message.get("type") == "tool_use" and message.get("name") == "TodoWrite":
todos = message["input"]["todos"]
print("Actualización de Estado de Tareas Pendientes:")
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']}")Visualización de Progreso en Tiempo Real
Visualización de Progreso en Tiempo Real
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(`\nProgreso: ${completed}/${total} completadas`);
console.log(`Trabajando actualmente en: ${inProgress} tarea(s)\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();
}
}
}
}
// Uso
const tracker = new TodoTracker();
await tracker.trackQuery("Construye un sistema de autenticación completo con tareas pendientes");Documentación Relacionada
Documentación Relacionada