I've spent seven months building one, so I've thought about this more than is healthy.
What surprised me: capability was never the hard part. Models got good enough a while ago. The hard part is finishing. Getting something to still be working at 4am, recover when a page changes shape or a login expires, and leave you something usable by breakfast is a completely different engineering problem from getting it to start well.