Yes, there are differences. For very simple agents, actors and agents might be the same thing. However, by "autonomous agents" one, or, at least, I, usually assume something like, for example, a Belief-Desire-Intention model, where the agent models internally an abstraction of the environment it finds itself in, and the agents it interacts with, so that it can make plans on how to interact with that environment to achieve it's goals.
While an actor can sure have all this, a single agent might just as well be composed of multiple actors, acting jointly to handle different parts of the BDI framework. An actor is, for all intents, a scheduling unit. If your agents are essentially linear and single-thread, they fit. If they do parallel work internally, you want multiple actors for each agent.
So, what do actors and agents have in common?
They both communicate by passing messages.
They both (usually) have an internal state -- even if implicit in the execution state.
They both are expected not to share state with other actors/agents.
They both are expected to be scheduled independently of other actors/agents.
What do agents have more than actors?
Agents usually follow models that dictate an agent's behavior -- such as, for example, BDI -- and actors usually don't. Reactive agents, though, are similar to actors in this respect.
Agents may have more than one internal unit of scheduling. Agents that do not, though, are similar to actors in this respect.
What do actors have more than agents?
- Nothing that I can think of, though Scala actors can share state.