The semantic Web, as presented under W3C recommendations, deals with hard semantics in the description and manipulation of crisp data. It does not have the capability to process soft semantics, but much of real world knowledge consists of uncertain or imprecise information. In order to bridge the gap between human understandable soft logic and machine-readable hard logic, a service-oriented multi-agent framework is proposed to better integrated Web services and agents. In the proposed service discovery framework, agents are classified into three types: service-agent, request-agent and broker. Two key issues in the framework are discussed: a service description language and a service matchmaking mechanism. A fuzzy Petri nets-based service description language is proposed as a specification to publish or request for a service, and transition is used to represent a service or request; input places denote preconditions expected to hold before performing the services, and output places denote effects expected to hold after performing the services. Meanwhile, through ontology's class hierarchy, a semantic-based service matchmaking is given, which can find an appropriate service for a request. Degree of truth is used to quantify the service level that the service can satisfy a request, that is, supporting loose matching.