An effective and efficient Grid resource brokering system is fundamentally important in Grid systems. However, such undertaking is very complex due to the nature of Grid. The shared resources in Grid are heterogeneous, geographically distributed and each one with its own local policies on their usage. In addition, Grid systems are very dynamic in terms of network traffic, number of available resources and their level of usage. Considering these challenges, in this paper we propose a framework for Grid scheduling based on multiple agents. We identify organizational abstractions necessary for designing a framework that addresses and deals with some of major problems faced in grid environments, such as efficient resource discovery, resource trading, resource selection, fault tolerance, QoS support and expression of complex requirements for jobs/tasks. We discuss several aspects of this architecture, such as agent types, agent activities, and the data flow and influence between multiple agents involved in the proposed framework.