Hosted onhyperacademia.orgvia theHypermedia Protocol

Modular Tools

The idea is that humans, agents, and developers need access to some sort of reusable "function", or "tool". Some tools are low-level and built-in, like PublishBlobs . Other tools will build upon existing tools. For example MoveDocument tool is going to utilize PublishBlobs under the hood.

Eventually, many tools will be provided by extension. Every extension will define what tools (or other info) it requires to run. If the user approves, the extension will be able to call those tools. And, a plug-in may provide tools to the user, agents, and to other extensions.

A tool has the following attributes:

    Meant for quick operations, not long lived operations.

      A tool should fail or succeed - "partial success" should be avoided

    Optional Context - a tool may be ran in the context of a site, document, or specific URL.

      Maybe identity/permissions are also considered part of context?

    Input and Output schemas defined - the schemas will be used to precisely describe the input and output of a given tool

    Tool requires a description for how and when to use the tool

    Optional custom UI for users who access the tool

With these features, even something as essential as "Move Document" could be implemented as a plug-in. Even though this feature is going to be built-in always, it demonstrates the power of the plugin system design

Do you like what you are reading? Subscribe to receive updates.

Unsubscribe anytime