Used KILT Knowledge Source because it comes with labeled data that can be used for evaluation. This project doesn't aim to be an agent on top of current Wikipedia. It is a bench to test and measure different approaches. And so having already available labeled data helps
Used Temporal because it provides durable workers. I see durability as an essential quality for agentic work.
Used Langfuse for tracing. It is OTEL compatible and has an easy-to-understand interface.
Used Docker compose for development. All services are dockerized, compose makes it fairly easy to spin up the stack.
Took some time getting used to Temporal's durability guarantees - workflow code is durable during replays, activity code is recoverable through retries
Was cool to reproduce random worker failures and track the durable recovery through temporal UI and Langfuse spans