could the existing tool implementation be extended to add new types of tools for drag and drop, or does it need extensive work for each tool. if you add that in readme documentation, how to add custom tools/agents/chains, developers can contribute PRs