There is a tradeoff between flexibility and deployability in building research agents. Because Calvin stores its information in an SQL database back end, Calvin would be difficult to deploy to end users for wide scale testing. The database back end makes is easier to manipulate and analyze data in research situations, but it makes the software bulky for deployment. To make the system deployable, the agent would only store as much data as was needed, and use a simplified database which has only the needed features needed for the functioning of the chosen analysis engine.
Another tradeoff has to do with the capabilities of the agent toolkit. Flexibility was a design goal, but it is inevitable that constraints be put on the what kinds of information Calvin-based agents could perform. The Calvin toolkit is designed to analyze documents as the user accesses them. This is consistent with many kinds of existing personal information agents, but is inconsistent with supporting some approaches, such as the one taken by Rhodes' Remembrance Agent [11] (see section 11). Remembrance Agents suggest resources which are not necessarily accessed by the user, but have previously been indexed. Calvin's nature is to index documents as they are accessed, including documents such as WWW pages which are not on the user's hard drive.
Also, Calvin's multi-agent extensibility is purchased at some expense of complexity of use. Each agent has to be started individually because it is a separate application from any particular data analysis agent. However, this is an issue that can be dealt with by improving the XML messaging component of Calvin. With improved complexity in the kinds of messages Calvin can send, Calvin could start and control different agents from a common user interface.