Assuming you're interested in intelligent agents (a software agent is merely an application with a particular life cycle), as pointed out, Norvig's textbook and maybe Wooldridge's "Introduction to MAS" are a great start for the general stuff.
If you're going for rational agents, you may want to take a look at the BDI model and layered architectures. The study of reactive agents is inhomogeneous and closely tied to the problem - maybe give us more details of what you're interested in, if this is the case, because the implementations range from optimized for swarm intelligence to optimized for HW implementations.
For rational agents, one of the more high-profile issues is how agents communicate (because this impacts the architecture of the MAS), with one emerging communication standard (FIPA-ACL) superseding the old KQML. Using and dissecting JADE (in Java or through its .NET adapter if you only do C#) is a very good starting point for understanding the architecture of a MAS because a) JADE is a general, mature, FIPA-ACL compliant platform and b) JADE is relatively simple - it's actually in the curricula for many postgraduate MAS courses.
If you're less into the AI stuff and more into the hardcore CS stuff, take a look at the Actor model, which formalizes software agents. One way to start here for a C# developer is the (discontinued) Axum programming language from MS Research, which is an implementation of the actor model in a C#-like language.