1. A human is there to keep it on the rails
2. Tools are domain specific
Most agents being shown are basically LLM calls encoded in a graph structure - which I don't think an agent is. As a part of having "agency", the agent needs to have control over its control flow, sans the start and stop node.
For example, coding agents are great because they operate in a highly predictable environment and can verify their outputs iteratively using a combination of static analysis and tests.
It's like when first self-driving cars came out. The real work is slow, painful, and involves good engineering.