#[Solved ✅] Local tools not working
1 messages · Page 1 of 1 (latest)
Hey @hot stump, Could you say me what error you exactly got??
Hey, sorry for the late reply. There was no error but either the terminal got stuck when I ran the main.py file or the process got killed automatically and did not start
Yes, I think the docs are a bit behind. Thanks for your support
turns out it was an issue with pyenv, reinstalling pyenv solved that. Now I tried to create my own local tool but facing import issues in the examples folder (because the new tool is not present in the installed composio package).
Please point me to any resources on this 🙏🏻
Hey @hot stump , if I may ask what kind of tool are you working on?
sql tool for postgres
can you give me 2 hours, we have made this really really easy and revamped the whole thing. I will update the docs.
Thanks a lot. Basically, it's going to be a literal python function. Something pretty cool.
Thanks.
Sounds dope
@peak night The docs are still the same, have you published your changes yet?
Composio enables your agents to connect with Various Tools and work with them
I published the new local tools process.
oh didn't see this one
Just published. 😅
I'm still not sure how to intgerate the tool into any example 😦
Just import the action from your custom tool:
from composio import action
from custom_tools import say
composio_toolset = ComposioToolSet()
# Get required tools
tools = [
*composio_toolset.get_actions(
actions=[
say, # This is an example of a custom tool
]
),
]
And add tools in your preferred framework (if taking crewAI as an example):
crewai_agent = Agent(
role="Github Agent",
goal="""You take action on Github using Github APIs""",
backstory=(
"You are AI agent that is responsible for taking actions on Github "
"on users behalf. You need to take action on Github using Github APIs"
),
verbose=True,
tools=tools, # add here
llm=llm,
)
@hot stump
In this, the say() action takes a string param called message, can I pass any params to this action or does it have to be just message?
It's totally up to you, just don't forget to give the correct type 🙌
I think the docstring is required, that's giving me an exception
Yes, it tells what your action is about 🙂
I'm getting this validation error when trying to create an agent using crewAI
Value error, 1 validation error for CrewAgentExecutor
tools -> 0
Can't instantiate abstract class BaseTool with abstract method _run (type=type_error) [type=value_error, input_value={'role': 'Query Executor ...***'), openai_proxy='')}, input_type=dict]```
looks like the custom tools have some implementation issue?
or am I missing something?
Just checking.
Yes doc string is required because agent uses the docstring information to decide if the tool should be called or not. You basically need to add description around the tool using the doc string. I will add it to the doc.
Confirming the bug does exist. Thanks for pointing out.
This is the longest I've spent on an assignment 🫠
Please just submit your code even if it's not working. I had no idea you were on assignment. We have been refactoring the local tools recently.
Hey, this has been corrected btw. Please use the latest version of the SDK.
Oh, I have already submitted the application. 🥲