Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
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.
Las tareas pendientes siguen un ciclo de vida predecible:
pending cuando se identifican las tareasin_progress cuando comienza el trabajoEl SDK crea automáticamente tareas pendientes para:
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}`);
});
}
}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");