Panduan
Daftar Todo
Lacak dan tampilkan todo menggunakan Claude Agent SDK untuk manajemen tugas yang terorganisir
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.
Siklus Hidup Todo
Siklus Hidup Todo
Todo mengikuti siklus hidup yang dapat diprediksi:
- Dibuat sebagai
pendingketika tugas diidentifikasi - Diaktifkan menjadi
in_progressketika pekerjaan dimulai - Diselesaikan ketika tugas berhasil selesai
- Dihapus ketika semua tugas dalam grup telah selesai
Kapan Todo Digunakan
Kapan Todo Digunakan
SDK secara otomatis membuat todo untuk:
- Tugas multi-langkah yang kompleks yang memerlukan 3 atau lebih tindakan berbeda
- Daftar tugas yang disediakan pengguna ketika beberapa item disebutkan
- Operasi non-trivial yang mendapat manfaat dari pelacakan kemajuan
- Permintaan eksplisit ketika pengguna meminta organisasi todo
Contoh
Contoh
Memantau Perubahan Todo
Memantau Perubahan Todo
TypeScript
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}`);
});
}
}Python
from claude_agent_sdk import query
async for message in query(
prompt="Optimalkan performa aplikasi React saya dan lacak kemajuan dengan todo",
options={"max_turns": 15}
):
# Pembaruan todo tercermin dalam aliran pesan
if message.get("type") == "tool_use" and message.get("name") == "TodoWrite":
todos = message["input"]["todos"]
print("Pembaruan Status 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']}")Tampilan Kemajuan Real-time
Tampilan Kemajuan Real-time
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");Dokumentasi Terkait
Dokumentasi Terkait