Document Comparison toolkit is not working 
Labels: name: area: agent, name: auto:bug

### System Info

First, Thank you so much for your work on Langchain, it's very good. 

I am trying to compare two documents following  the guide from langchain https://python.langchain.com/docs/integrations/toolkits/document_comparison_toolkit

I have done exactly the same code:
I have one class to use for the args_schema on the tools creation:
```
class DocumentInput(BaseModel):
    question: str = Field()
```
    
I have created the tools :
 ```
 tools.append(
                    Tool(
                        args_schema=DocumentInput,
                        name=file_name,
                        description=f"useful when you want to answer questions about {file_name}",
                        func=RetrievalQA.from_chain_type(llm=llm, retriever=retriever)
                    )
                )
```
 ```
agent = initialize_agent(
        agent=AgentType.OPENAI_FUNCTIONS,
        tools=tools,
        llm=llm,
        verbose=True,
    )
```
                
And here I am getting the error:

 "1 validation error for Tool\nargs_schema\n  subclass of BaseModel expected (type=type_error.subclass; expected_class=BaseModel)",

I have changed the args_schema class to :

```
from abc import ABC
from langchain.tools import BaseTool
from pydantic import Field

class DocumentInput(BaseTool, ABC):
    question: str = Field()
```
    
    
And now the error, I am getting is:

("Value not declarable with JSON Schema, field: name='_callbacks_List[langchain.callbacks.base.BaseCallbackHandler]' type=BaseCallbackHandler required=True",)
    

I only want to compare the content between two documents, Do you have some example to compare two files which is working? Maybe I am calling wrong the creation of the tools. 




### Who can help?

@yajunDai 


### Information

- [X] The official example notebooks/scripts
- [ ] My own modified scripts

### Related Components

- [ ] LLMs/Chat Models
- [ ] Embedding Models
- [ ] Prompts / Prompt Templates / Prompt Selectors
- [ ] Output Parsers
- [ ] Document Loaders
- [ ] Vector Stores / Retrievers
- [ ] Memory
- [X] Agents / Agent Executors
- [ ] Tools / Toolkits
- [ ] Chains
- [ ] Callbacks/Tracing
- [ ] Async

### Reproduction

I have follow exactly the guide for ->https://python.langchain.com/docs/integrations/toolkits/document_comparison_toolkit to compare two documents, and I am getting the error :

 "1 validation error for Tool\nargs_schema\n  subclass of BaseModel expected (type=type_error.subclass; expected_class=BaseModel)",

The args_schema class is :
```
class DocumentInput(BaseModel):
    question: str = Field()
```
    
I trying to create the tools :
 ```
 tools.append(
                    Tool(
                        args_schema=DocumentInput,
                        name=file_name,
                        description=f"useful when you want to answer questions about {file_name}",
                        func=RetrievalQA.from_chain_type(llm=llm, retriever=retriever)
                    )
                )
```
and here I am getting the error:
 "1 validation error for Tool\nargs_schema\n  subclass of BaseModel expected (type=type_error.subclass; expected_class=BaseModel)",

After that I am doing this, but I can't get to initialize_agent                
```
 agent = initialize_agent(
        agent=AgentType.OPENAI_FUNCTIONS,
        tools=tools,
        llm=llm,
        verbose=True,
    )
```
                
It's exactly the guide for the Document comparsion on Langchain

### Expected behavior

Expected behaviour, that I can compare the content for two documents without error