Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Pelacakan todo menyediakan cara terstruktur untuk mengelola tugas dan menampilkan kemajuan kepada pengguna. Claude Agent SDK menyertakan fungsionalitas todo bawaan yang membantu mengorganisir alur kerja yang kompleks dan menjaga pengguna tetap terinformasi tentang perkembangan tugas.
Todo mengikuti siklus hidup yang dapat diprediksi:
pending ketika tugas diidentifikasiin_progress ketika pekerjaan dimulaiSDK secara otomatis membuat todo untuk:
import { query } from "@anthropic-ai/claude-agent-sdk";
for await (const message of query({
prompt: "Optimalkan performa aplikasi React saya dan lacak kemajuan dengan todo",
options: { maxTurns: 15 }
})) {
// Pembaruan todo tercermin dalam aliran pesan
if (message.type === "tool_use" && message.name === "TodoWrite") {
const todos = message.input.todos;
console.log("Pembaruan Status Todo:");
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(`\nKemajuan: ${completed}/${total} selesai`);
console.log(`Sedang mengerjakan: ${inProgress} tugas\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();
}
}
}
}
// Penggunaan
const tracker = new TodoTracker();
await tracker.trackQuery("Bangun sistem autentikasi lengkap dengan todo");