Many of the languages proposed for describing agent behavior and inter-agent protocols are based on agent internal mechanisms. Examples include SOAR  and KQML . For social agents, however, we should consider protocols among agents and humans. Q is a language for describing interaction between agents and humans based on agent external roles. Q does not depend on agent internal mechanisms; its goal is to describe how scenario writers should be able to request agents to behave.
|(1)Agent Description||(2)Interaction Design||(3)Protocol Description|
|Fig.1 Design Consept of Q|
The change of focus from agent internal mechanisms to interaction scenarios significantly impacts the language syntax and semantics. For example, if an agent accepts only two requests, "on" and "off," Q allows scenario writers to use just two commands, "on" and "off." This does not mean that the agent is not intelligent, only that the agent is not controllable once it is turned on.
Furthermore, the semantics of commands cannot be known unless they are actually tried. For example, the semantics of the command "move" depend on whether the agent can run rapidly with a light step or move slowly in a thoughtful manner. Since Q cannot control the internal mechanism of the agent, Q does not have executable functions, such as Java function calls, that are often used to explicitly control agent behavior.
The scenarios also contribute to establish a bridge between agent designers (computer professionals) and application designers (scenario writers). To maximize this benefit, we introduced IPC (Interaction Pattern Card) with Excel interface. We expect that effective dialog emerges from the interplay between the two different perspectives during the process of formalizing interaction patterns.