From 956e5112ff590d898c8a3ae7026fb306e2d6a99e Mon Sep 17 00:00:00 2001 From: reibs Date: Wed, 4 Dec 2024 01:21:09 -0500 Subject: [PATCH 1/7] add default tags for agentops.init --- .../src/main.py | 9 ++++---- .../src/main.py | 14 ++++++------- examples/howards_agent/src/main.py | 9 +++++--- examples/job_posting/src/main.py | 21 +++++++++++-------- examples/stock_analysis/src/main.py | 11 ++++++---- examples/trip_planner/src/main.py | 11 ++++++---- examples/web_researcher/src/main.py | 10 +++++---- 7 files changed, 50 insertions(+), 35 deletions(-) diff --git a/agentstack/templates/autogen/{{cookiecutter.project_metadata.project_slug}}/src/main.py b/agentstack/templates/autogen/{{cookiecutter.project_metadata.project_slug}}/src/main.py index d64ae8a1..add2f2e6 100644 --- a/agentstack/templates/autogen/{{cookiecutter.project_metadata.project_slug}}/src/main.py +++ b/agentstack/templates/autogen/{{cookiecutter.project_metadata.project_slug}}/src/main.py @@ -4,7 +4,7 @@ from autogen import ConversableAgent, UserProxyAgent, config_list_from_json, register_function -agentops.init() +agentops.init(default_tags=['autogen', 'agentstack']) def main(): @@ -14,7 +14,7 @@ def main(): # For example, if you have created a OAI_CONFIG_LIST file in the current working directory, that file will be used. config_list = config_list_from_json(env_or_file="OAI_CONFIG_LIST") - {%- for agent in cookiecutter.structure.agents %} + {%- for agent in cookiecutter.structure.agents % } {{agent.name}}_agent = ConversableAgent( name="{{agent.name}}", @@ -28,14 +28,15 @@ def main(): """, llm_config={"config_list": config_list}, # TODO: support other models ) - {%- endfor %} + {%- endfor % } # # The user proxy agent is used for interacting with the assistant agent # # and executes tool calls. user_proxy = ConversableAgent( name="User", llm_config=False, - is_termination_msg=lambda msg: msg.get("content") is not None and "TERMINATE" in msg["content"], + is_termination_msg=lambda msg: msg.get( + "content") is not None and "TERMINATE" in msg["content"], human_input_mode="NEVER", ) diff --git a/agentstack/templates/crewai/{{cookiecutter.project_metadata.project_slug}}/src/main.py b/agentstack/templates/crewai/{{cookiecutter.project_metadata.project_slug}}/src/main.py index 2d48645c..798ff102 100644 --- a/agentstack/templates/crewai/{{cookiecutter.project_metadata.project_slug}}/src/main.py +++ b/agentstack/templates/crewai/{{cookiecutter.project_metadata.project_slug}}/src/main.py @@ -1,11 +1,11 @@ #!/usr/bin/env python import sys -from crew import {{cookiecutter.project_metadata.project_name|replace('-', '')|replace('_', '')|capitalize}}Crew +from crew import {{cookiecutter.project_metadata.project_name | replace('-', '') | replace('_', '') | capitalize}}Crew import agentops from dotenv import load_dotenv load_dotenv() -agentops.init() +agentops.init(default_tags=['crewai', 'agentstack']) def run(): @@ -15,7 +15,7 @@ def run(): inputs = { 'topic': 'AI LLMs' } - {{cookiecutter.project_metadata.project_name|replace('-', '')|replace('_', '')|capitalize}}Crew().crew().kickoff(inputs=inputs) + {{cookiecutter.project_metadata.project_name | replace('-', '') | replace('_', '') | capitalize}}Crew().crew().kickoff(inputs=inputs) def train(): @@ -26,7 +26,7 @@ def train(): "topic": "AI LLMs" } try: - {{cookiecutter.project_metadata.project_name|replace('-', '')|replace('_', '')|capitalize}}Crew().crew().train(n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs) + {{cookiecutter.project_metadata.project_name | replace('-', '') | replace('_', '') | capitalize}}Crew().crew().train(n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs) except Exception as e: raise Exception(f"An error occurred while training the crew: {e}") @@ -37,7 +37,7 @@ def replay(): Replay the crew execution from a specific task. """ try: - {{cookiecutter.project_metadata.project_name|replace('-', '')|replace('_', '')|capitalize}}Crew().crew().replay(task_id=sys.argv[1]) + {{cookiecutter.project_metadata.project_name | replace('-', '') | replace('_', '') | capitalize}}Crew().crew().replay(task_id=sys.argv[1]) except Exception as e: raise Exception(f"An error occurred while replaying the crew: {e}") @@ -51,11 +51,11 @@ def test(): "topic": "AI LLMs" } try: - {{cookiecutter.project_metadata.project_name|replace('-', '')|replace('_', '')|capitalize}}Crew().crew().test(n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs) + {{cookiecutter.project_metadata.project_name | replace('-', '') | replace('_', '') | capitalize}}Crew().crew().test(n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs) except Exception as e: raise Exception(f"An error occurred while replaying the crew: {e}") if __name__ == '__main__': - run() \ No newline at end of file + run() diff --git a/examples/howards_agent/src/main.py b/examples/howards_agent/src/main.py index 605268f4..7810d6e5 100644 --- a/examples/howards_agent/src/main.py +++ b/examples/howards_agent/src/main.py @@ -5,13 +5,14 @@ from dotenv import load_dotenv load_dotenv() -agentops.init() +agentops.init(default_tags=['howards_agent', 'agentstack']) # This main file is intended to be a way for your to run your # crew locally, so refrain from adding necessary logic into this file. # Replace with inputs you want to test with, it will automatically # interpolate any tasks and agents information + def run(): """ Run the crew. @@ -30,7 +31,8 @@ def train(): "topic": "AI LLMs" } try: - HowardsagentCrew().crew().train(n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs) + HowardsagentCrew().crew().train(n_iterations=int( + sys.argv[1]), filename=sys.argv[2], inputs=inputs) except Exception as e: raise Exception(f"An error occurred while training the crew: {e}") @@ -55,7 +57,8 @@ def test(): "topic": "AI LLMs" } try: - HowardsagentCrew().crew().test(n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs) + HowardsagentCrew().crew().test(n_iterations=int( + sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs) except Exception as e: raise Exception(f"An error occurred while replaying the crew: {e}") diff --git a/examples/job_posting/src/main.py b/examples/job_posting/src/main.py index 8abd6f2d..0df1fdf5 100644 --- a/examples/job_posting/src/main.py +++ b/examples/job_posting/src/main.py @@ -5,14 +5,15 @@ from dotenv import load_dotenv load_dotenv() -agentops.init() +agentops.init(default_tags=['job_posting', 'agentstack']) inputs = { - 'company_domain': 'https://agen.cy', - 'company_description': "From open source AI agent developer tools like AgentOps to Fortune 500 enterprises, we help clients create safe, reliable, and scalable AI agents.", - 'hiring_needs': 'Infrastructure engineer for deploying AI agents at scale', - 'specific_benefits': 'Daily lunch', - } + 'company_domain': 'https://agen.cy', + 'company_description': "From open source AI agent developer tools like AgentOps to Fortune 500 enterprises, we help clients create safe, reliable, and scalable AI agents.", + 'hiring_needs': 'Infrastructure engineer for deploying AI agents at scale', + 'specific_benefits': 'Daily lunch', +} + def run(): """ @@ -26,7 +27,8 @@ def train(): Train the crew for a given number of iterations. """ try: - JobpostingCrew().crew().train(n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs) + JobpostingCrew().crew().train(n_iterations=int( + sys.argv[1]), filename=sys.argv[2], inputs=inputs) except Exception as e: raise Exception(f"An error occurred while training the crew: {e}") @@ -48,11 +50,12 @@ def test(): Test the crew execution and returns the results. """ try: - JobpostingCrew().crew().test(n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs) + JobpostingCrew().crew().test(n_iterations=int( + sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs) except Exception as e: raise Exception(f"An error occurred while replaying the crew: {e}") if __name__ == '__main__': - run() \ No newline at end of file + run() diff --git a/examples/stock_analysis/src/main.py b/examples/stock_analysis/src/main.py index 11ad98b9..59e51ee5 100644 --- a/examples/stock_analysis/src/main.py +++ b/examples/stock_analysis/src/main.py @@ -5,13 +5,14 @@ from dotenv import load_dotenv load_dotenv() -agentops.init() +agentops.init(default_tags=['stock_analysis', 'agentstack']) # This main file is intended to be a way for your to run your # crew locally, so refrain from adding necessary logic into this file. # Replace with inputs you want to test with, it will automatically # interpolate any tasks and agents information + def run(): """ Run the crew. @@ -30,7 +31,8 @@ def train(): "topic": "AI LLMs" } try: - StockanalysisCrew().crew().train(n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs) + StockanalysisCrew().crew().train(n_iterations=int( + sys.argv[1]), filename=sys.argv[2], inputs=inputs) except Exception as e: raise Exception(f"An error occurred while training the crew: {e}") @@ -55,11 +57,12 @@ def test(): "topic": "AI LLMs" } try: - StockanalysisCrew().crew().test(n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs) + StockanalysisCrew().crew().test(n_iterations=int( + sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs) except Exception as e: raise Exception(f"An error occurred while replaying the crew: {e}") if __name__ == '__main__': - run() \ No newline at end of file + run() diff --git a/examples/trip_planner/src/main.py b/examples/trip_planner/src/main.py index aca11667..4690b770 100644 --- a/examples/trip_planner/src/main.py +++ b/examples/trip_planner/src/main.py @@ -3,13 +3,14 @@ from crew import TripplannerCrew import agentops -agentops.init() +agentops.init(default_tags=['trip_planner', 'agentstack']) # This main file is intended to be a way for your to run your # crew locally, so refrain from adding necessary logic into this file. # Replace with inputs you want to test with, it will automatically # interpolate any tasks and agents information + def run(): """ Run the crew. @@ -31,7 +32,8 @@ def train(): "topic": "AI LLMs" } try: - TripplannerCrew().crew().train(n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs) + TripplannerCrew().crew().train(n_iterations=int( + sys.argv[1]), filename=sys.argv[2], inputs=inputs) except Exception as e: raise Exception(f"An error occurred while training the crew: {e}") @@ -56,11 +58,12 @@ def test(): "topic": "AI LLMs" } try: - TripplannerCrew().crew().test(n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs) + TripplannerCrew().crew().test(n_iterations=int( + sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs) except Exception as e: raise Exception(f"An error occurred while replaying the crew: {e}") if __name__ == '__main__': - run() \ No newline at end of file + run() diff --git a/examples/web_researcher/src/main.py b/examples/web_researcher/src/main.py index feceaed6..9645fd24 100644 --- a/examples/web_researcher/src/main.py +++ b/examples/web_researcher/src/main.py @@ -8,7 +8,7 @@ from dotenv import load_dotenv load_dotenv() -agentops.init() +agentops.init(default_tags=['web_researcher', 'agentstack']) def run(inputs: Optional[dict] = None): @@ -33,7 +33,8 @@ def train(): "topic": "AI LLMs" } try: - WebresearcherCrew().crew().train(n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs) + WebresearcherCrew().crew().train(n_iterations=int( + sys.argv[1]), filename=sys.argv[2], inputs=inputs) except Exception as e: raise Exception(f"An error occurred while training the crew: {e}") @@ -58,7 +59,8 @@ def test(): "topic": "AI LLMs" } try: - WebresearcherCrew().crew().test(n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs) + WebresearcherCrew().crew().test(n_iterations=int( + sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs) except Exception as e: raise Exception(f"An error occurred while replaying the crew: {e}") @@ -69,4 +71,4 @@ def test(): if len(sys.argv) > 1: data_str = sys.argv[1] data = json.loads(data_str) - run(data) \ No newline at end of file + run(data) From 77d8c3501b15eec5acbe88790ff8abcc22459345 Mon Sep 17 00:00:00 2001 From: reibs Date: Wed, 4 Dec 2024 02:48:52 -0500 Subject: [PATCH 2/7] revert formatting on crew --- .../src/main.py | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/agentstack/templates/crewai/{{cookiecutter.project_metadata.project_slug}}/src/main.py b/agentstack/templates/crewai/{{cookiecutter.project_metadata.project_slug}}/src/main.py index 798ff102..f5a35501 100644 --- a/agentstack/templates/crewai/{{cookiecutter.project_metadata.project_slug}}/src/main.py +++ b/agentstack/templates/crewai/{{cookiecutter.project_metadata.project_slug}}/src/main.py @@ -1,11 +1,11 @@ #!/usr/bin/env python import sys -from crew import {{cookiecutter.project_metadata.project_name | replace('-', '') | replace('_', '') | capitalize}}Crew +from crew import {{cookiecutter.project_metadata.project_name|replace('-', '')|replace('_', '')|capitalize}}Crew import agentops from dotenv import load_dotenv load_dotenv() -agentops.init(default_tags=['crewai', 'agentstack']) +agentops.init(default_tags=['autogen', 'agentstack']) def run(): @@ -13,9 +13,11 @@ def run(): Run the crew. """ inputs = { - 'topic': 'AI LLMs' +{%- for input in cookiecutter.structure.inputs %} + "{{input}}": "", +{%- endfor %} } - {{cookiecutter.project_metadata.project_name | replace('-', '') | replace('_', '') | capitalize}}Crew().crew().kickoff(inputs=inputs) + {{cookiecutter.project_metadata.project_name|replace('-', '')|replace('_', '')|capitalize}}Crew().crew().kickoff(inputs=inputs) def train(): @@ -23,10 +25,12 @@ def train(): Train the crew for a given number of iterations. """ inputs = { - "topic": "AI LLMs" +{%- for input in cookiecutter.structure.inputs %} + "{{input}}": "", +{%- endfor %} } try: - {{cookiecutter.project_metadata.project_name | replace('-', '') | replace('_', '') | capitalize}}Crew().crew().train(n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs) + {{cookiecutter.project_metadata.project_name|replace('-', '')|replace('_', '')|capitalize}}Crew().crew().train(n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs) except Exception as e: raise Exception(f"An error occurred while training the crew: {e}") @@ -37,7 +41,7 @@ def replay(): Replay the crew execution from a specific task. """ try: - {{cookiecutter.project_metadata.project_name | replace('-', '') | replace('_', '') | capitalize}}Crew().crew().replay(task_id=sys.argv[1]) + {{cookiecutter.project_metadata.project_name|replace('-', '')|replace('_', '')|capitalize}}Crew().crew().replay(task_id=sys.argv[1]) except Exception as e: raise Exception(f"An error occurred while replaying the crew: {e}") @@ -48,14 +52,16 @@ def test(): Test the crew execution and returns the results. """ inputs = { - "topic": "AI LLMs" +{%- for input in cookiecutter.structure.inputs %} + "{{input}}": "", +{%- endfor %} } try: - {{cookiecutter.project_metadata.project_name | replace('-', '') | replace('_', '') | capitalize}}Crew().crew().test(n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs) + {{cookiecutter.project_metadata.project_name|replace('-', '')|replace('_', '')|capitalize}}Crew().crew().test(n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs) except Exception as e: raise Exception(f"An error occurred while replaying the crew: {e}") if __name__ == '__main__': - run() + run() \ No newline at end of file From 8ed52a9bc37255c85e7a8d92e2c853c27ae1e6f4 Mon Sep 17 00:00:00 2001 From: reibs Date: Wed, 4 Dec 2024 02:49:49 -0500 Subject: [PATCH 3/7] revert autogen formatting --- .../src/main.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/agentstack/templates/autogen/{{cookiecutter.project_metadata.project_slug}}/src/main.py b/agentstack/templates/autogen/{{cookiecutter.project_metadata.project_slug}}/src/main.py index add2f2e6..4bd463c0 100644 --- a/agentstack/templates/autogen/{{cookiecutter.project_metadata.project_slug}}/src/main.py +++ b/agentstack/templates/autogen/{{cookiecutter.project_metadata.project_slug}}/src/main.py @@ -14,7 +14,7 @@ def main(): # For example, if you have created a OAI_CONFIG_LIST file in the current working directory, that file will be used. config_list = config_list_from_json(env_or_file="OAI_CONFIG_LIST") - {%- for agent in cookiecutter.structure.agents % } + {%- for agent in cookiecutter.structure.agents %} {{agent.name}}_agent = ConversableAgent( name="{{agent.name}}", @@ -28,15 +28,14 @@ def main(): """, llm_config={"config_list": config_list}, # TODO: support other models ) - {%- endfor % } + {%- endfor %} # # The user proxy agent is used for interacting with the assistant agent # # and executes tool calls. user_proxy = ConversableAgent( name="User", llm_config=False, - is_termination_msg=lambda msg: msg.get( - "content") is not None and "TERMINATE" in msg["content"], + is_termination_msg=lambda msg: msg.get("content") is not None and "TERMINATE" in msg["content"], human_input_mode="NEVER", ) @@ -60,4 +59,4 @@ def main(): if __name__ == "__main__": - main() + main() \ No newline at end of file From 59583d034a18b7ed60e9b9d249b139c68f55d50d Mon Sep 17 00:00:00 2001 From: reibs Date: Wed, 4 Dec 2024 02:50:58 -0500 Subject: [PATCH 4/7] revert crew --- .../{{cookiecutter.project_metadata.project_slug}}/src/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agentstack/templates/crewai/{{cookiecutter.project_metadata.project_slug}}/src/main.py b/agentstack/templates/crewai/{{cookiecutter.project_metadata.project_slug}}/src/main.py index f5a35501..bba6c84f 100644 --- a/agentstack/templates/crewai/{{cookiecutter.project_metadata.project_slug}}/src/main.py +++ b/agentstack/templates/crewai/{{cookiecutter.project_metadata.project_slug}}/src/main.py @@ -5,7 +5,7 @@ from dotenv import load_dotenv load_dotenv() -agentops.init(default_tags=['autogen', 'agentstack']) +agentops.init(default_tags=['crewai', 'agentstack']) def run(): From 6f179d9f227ce9a2568ee0128b12a6621c530677 Mon Sep 17 00:00:00 2001 From: reibs Date: Wed, 4 Dec 2024 02:57:07 -0500 Subject: [PATCH 5/7] ruff --- examples/howards_agent/src/crew.py | 67 ++++----- examples/howards_agent/src/main.py | 25 ++-- examples/howards_agent/src/tools/__init__.py | 1 - .../howards_agent/src/tools/composio_tool.py | 1 - examples/howards_agent/src/tools/mem0_tool.py | 6 +- examples/job_posting/src/crew.py | 53 +++---- examples/job_posting/src/main.py | 23 +-- examples/job_posting/src/tools/__init__.py | 20 --- .../job_posting/src/tools/firecrawl_tool.py | 12 +- examples/stock_analysis/src/crew.py | 18 +-- examples/stock_analysis/src/main.py | 27 ++-- examples/stock_analysis/src/tools/__init__.py | 1 - .../src/tools/perplexity_tool.py | 19 +-- examples/trip_planner/src/crew.py | 132 ++++++++++-------- examples/trip_planner/src/main.py | 30 ++-- examples/trip_planner/src/tools/__init__.py | 1 - .../trip_planner/src/tools/browserbase.py | 2 +- examples/web_researcher/src/crew.py | 48 ++++--- examples/web_researcher/src/main.py | 27 ++-- examples/web_researcher/src/tools/__init__.py | 1 - .../src/tools/firecrawl_tool.py | 12 +- 21 files changed, 256 insertions(+), 270 deletions(-) diff --git a/examples/howards_agent/src/crew.py b/examples/howards_agent/src/crew.py index ad09087f..47ea56de 100644 --- a/examples/howards_agent/src/crew.py +++ b/examples/howards_agent/src/crew.py @@ -2,39 +2,42 @@ from crewai.project import CrewBase, agent, crew, task import tools + @CrewBase -class HowardsagentCrew(): - """howards_agent crew""" +class HowardsagentCrew: + """howards_agent crew""" + + # Agent definitions + @agent + def agent1(self) -> Agent: + return Agent( + config=self.agents_config["agent1"], + tools=[ + *tools.composio_tools, + ], # Pass in what tools this agent should have + verbose=True, + ) - # Agent definitions - @agent - def agent1(self) -> Agent: - return Agent( - config=self.agents_config['agent1'], - tools=[*tools.composio_tools,], # Pass in what tools this agent should have - verbose=True - ) + # Task definitions + @task + def new_task(self) -> Task: + return Task( + config=self.tasks_config["new_task"], + ) - # Task definitions - @task - def new_task(self) -> Task: - return Task( - config=self.tasks_config['new_task'], - ) - - @task - def task1(self) -> Task: - return Task( - config=self.tasks_config['task1'], - ) + @task + def task1(self) -> Task: + return Task( + config=self.tasks_config["task1"], + ) - @crew - def crew(self) -> Crew: - """Creates the Test crew""" - return Crew( - agents=self.agents, # Automatically created by the @agent decorator - tasks=self.tasks, # Automatically created by the @task decorator - process=Process.sequential, - verbose=True, - # process=Process.hierarchical, # In case you wanna use that instead https://docs.crewai.com/how-to/Hierarchical/ - ) + @crew + def crew(self) -> Crew: + """Creates the Test crew""" + return Crew( + agents=self.agents, # Automatically created by the @agent decorator + tasks=self.tasks, # Automatically created by the @task decorator + process=Process.sequential, + verbose=True, + # process=Process.hierarchical, # In case you wanna use that instead https://docs.crewai.com/how-to/Hierarchical/ + ) diff --git a/examples/howards_agent/src/main.py b/examples/howards_agent/src/main.py index 7810d6e5..27a5b8e7 100644 --- a/examples/howards_agent/src/main.py +++ b/examples/howards_agent/src/main.py @@ -3,9 +3,10 @@ from crew import HowardsagentCrew import agentops from dotenv import load_dotenv + load_dotenv() -agentops.init(default_tags=['howards_agent', 'agentstack']) +agentops.init(default_tags=["howards_agent", "agentstack"]) # This main file is intended to be a way for your to run your # crew locally, so refrain from adding necessary logic into this file. @@ -17,9 +18,7 @@ def run(): """ Run the crew. """ - inputs = { - 'topic': 'AI LLMs' - } + inputs = {"topic": "AI LLMs"} HowardsagentCrew().crew().kickoff(inputs=inputs) @@ -27,12 +26,11 @@ def train(): """ Train the crew for a given number of iterations. """ - inputs = { - "topic": "AI LLMs" - } + inputs = {"topic": "AI LLMs"} try: - HowardsagentCrew().crew().train(n_iterations=int( - sys.argv[1]), filename=sys.argv[2], inputs=inputs) + HowardsagentCrew().crew().train( + n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs + ) except Exception as e: raise Exception(f"An error occurred while training the crew: {e}") @@ -53,12 +51,11 @@ def test(): """ Test the crew execution and returns the results. """ - inputs = { - "topic": "AI LLMs" - } + inputs = {"topic": "AI LLMs"} try: - HowardsagentCrew().crew().test(n_iterations=int( - sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs) + HowardsagentCrew().crew().test( + n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs + ) except Exception as e: raise Exception(f"An error occurred while replaying the crew: {e}") diff --git a/examples/howards_agent/src/tools/__init__.py b/examples/howards_agent/src/tools/__init__.py index ed0105e1..4330ab36 100644 --- a/examples/howards_agent/src/tools/__init__.py +++ b/examples/howards_agent/src/tools/__init__.py @@ -1,4 +1,3 @@ - # tool import diff --git a/examples/howards_agent/src/tools/composio_tool.py b/examples/howards_agent/src/tools/composio_tool.py index 9ad350ec..197c7e00 100644 --- a/examples/howards_agent/src/tools/composio_tool.py +++ b/examples/howards_agent/src/tools/composio_tool.py @@ -4,4 +4,3 @@ # change App.CODEINTERPRETER to be the app you want to use # For more info on tool selection, see https://docs.agentstack.sh/tools/tool/composio - diff --git a/examples/howards_agent/src/tools/mem0_tool.py b/examples/howards_agent/src/tools/mem0_tool.py index 1798da5b..134e92e4 100644 --- a/examples/howards_agent/src/tools/mem0_tool.py +++ b/examples/howards_agent/src/tools/mem0_tool.py @@ -12,11 +12,11 @@ "provider": "neo4j", "config": { "url": os.getenv("NEO4J_URL"), - "username": os.getenv("NEO4J_USERNAME", 'neo4j'), + "username": os.getenv("NEO4J_USERNAME", "neo4j"), "password": os.getenv("NEO4J_PASSWORD"), - } + }, }, - "version": "v1.1" + "version": "v1.1", } memory = Memory.from_config(config) diff --git a/examples/job_posting/src/crew.py b/examples/job_posting/src/crew.py index 2a341e2c..0e6385a5 100644 --- a/examples/job_posting/src/crew.py +++ b/examples/job_posting/src/crew.py @@ -8,45 +8,48 @@ class JobpostingCrew: """job_posting crew""" @agent - def review_agent(self) ->Agent: - return Agent(config=self.agents_config['review_agent'], tools=[], - verbose=True) + def review_agent(self) -> Agent: + return Agent(config=self.agents_config["review_agent"], tools=[], verbose=True) @agent - def writer_agent(self) ->Agent: - return Agent(config=self.agents_config['writer_agent'], tools=[], - verbose=True) + def writer_agent(self) -> Agent: + return Agent(config=self.agents_config["writer_agent"], tools=[], verbose=True) @agent - def researcher_agent(self) ->Agent: - return Agent(config=self.agents_config['research_agent'], tools=[ - tools.web_scrape, tools.web_crawl, tools.retrieve_web_crawl], - verbose=True) + def researcher_agent(self) -> Agent: + return Agent( + config=self.agents_config["research_agent"], + tools=[tools.web_scrape, tools.web_crawl, tools.retrieve_web_crawl], + verbose=True, + ) @task - def research_company_culture_task(self) ->Task: - return Task(config=self.tasks_config['research_company_culture_task']) + def research_company_culture_task(self) -> Task: + return Task(config=self.tasks_config["research_company_culture_task"]) @task - def research_role_requirements_task(self) ->Task: - return Task(config=self.tasks_config['research_role_requirements_task'] - ) + def research_role_requirements_task(self) -> Task: + return Task(config=self.tasks_config["research_role_requirements_task"]) @task - def draft_job_posting_task(self) ->Task: - return Task(config=self.tasks_config['draft_job_posting_task']) + def draft_job_posting_task(self) -> Task: + return Task(config=self.tasks_config["draft_job_posting_task"]) @task - def review_and_edit_job_posting_task(self) ->Task: - return Task(config=self.tasks_config[ - 'review_and_edit_job_posting_task']) + def review_and_edit_job_posting_task(self) -> Task: + return Task(config=self.tasks_config["review_and_edit_job_posting_task"]) @task - def industry_analysis_task(self) ->Task: - return Task(config=self.tasks_config['industry_analysis_task']) + def industry_analysis_task(self) -> Task: + return Task(config=self.tasks_config["industry_analysis_task"]) @crew - def crew(self) ->Crew: + def crew(self) -> Crew: """Creates the Test crew""" - return Crew(agents=self.agents, tasks=self.tasks, verbose=True, - process=Process.hierarchical, manager_llm='openai/gpt-4o') + return Crew( + agents=self.agents, + tasks=self.tasks, + verbose=True, + process=Process.hierarchical, + manager_llm="openai/gpt-4o", + ) diff --git a/examples/job_posting/src/main.py b/examples/job_posting/src/main.py index 0df1fdf5..9860b620 100644 --- a/examples/job_posting/src/main.py +++ b/examples/job_posting/src/main.py @@ -3,15 +3,16 @@ from crew import JobpostingCrew import agentops from dotenv import load_dotenv + load_dotenv() -agentops.init(default_tags=['job_posting', 'agentstack']) +agentops.init(default_tags=["job_posting", "agentstack"]) inputs = { - 'company_domain': 'https://agen.cy', - 'company_description': "From open source AI agent developer tools like AgentOps to Fortune 500 enterprises, we help clients create safe, reliable, and scalable AI agents.", - 'hiring_needs': 'Infrastructure engineer for deploying AI agents at scale', - 'specific_benefits': 'Daily lunch', + "company_domain": "https://agen.cy", + "company_description": "From open source AI agent developer tools like AgentOps to Fortune 500 enterprises, we help clients create safe, reliable, and scalable AI agents.", + "hiring_needs": "Infrastructure engineer for deploying AI agents at scale", + "specific_benefits": "Daily lunch", } @@ -27,8 +28,9 @@ def train(): Train the crew for a given number of iterations. """ try: - JobpostingCrew().crew().train(n_iterations=int( - sys.argv[1]), filename=sys.argv[2], inputs=inputs) + JobpostingCrew().crew().train( + n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs + ) except Exception as e: raise Exception(f"An error occurred while training the crew: {e}") @@ -50,12 +52,13 @@ def test(): Test the crew execution and returns the results. """ try: - JobpostingCrew().crew().test(n_iterations=int( - sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs) + JobpostingCrew().crew().test( + n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs + ) except Exception as e: raise Exception(f"An error occurred while replaying the crew: {e}") -if __name__ == '__main__': +if __name__ == "__main__": run() diff --git a/examples/job_posting/src/tools/__init__.py b/examples/job_posting/src/tools/__init__.py index f1654b8d..b1387c10 100644 --- a/examples/job_posting/src/tools/__init__.py +++ b/examples/job_posting/src/tools/__init__.py @@ -1,24 +1,4 @@ - # tool import from .firecrawl_tool import web_scrape, web_crawl, retrieve_web_crawl - - - - - - - - - - - - - - - - - - - diff --git a/examples/job_posting/src/tools/firecrawl_tool.py b/examples/job_posting/src/tools/firecrawl_tool.py index 65c66c24..4f1cf1e0 100644 --- a/examples/job_posting/src/tools/firecrawl_tool.py +++ b/examples/job_posting/src/tools/firecrawl_tool.py @@ -2,7 +2,7 @@ from firecrawl import FirecrawlApp import os -app = FirecrawlApp(api_key=os.getenv('FIRECRAWL_API_KEY')) +app = FirecrawlApp(api_key=os.getenv("FIRECRAWL_API_KEY")) @tool @@ -11,7 +11,7 @@ def web_scrape(url: str): Scrape a url and return markdown. Use this to read a singular page and web_crawl only if you need to read all other links as well. """ - scrape_result = app.scrape_url(url, params={'formats': ['markdown']}) + scrape_result = app.scrape_url(url, params={"formats": ["markdown"]}) return scrape_result @@ -29,11 +29,8 @@ def web_crawl(url: str): crawl_status = app.crawl_url( url, - params={ - 'limit': 100, - 'scrapeOptions': {'formats': ['markdown']} - }, - poll_interval=30 + params={"limit": 100, "scrapeOptions": {"formats": ["markdown"]}}, + poll_interval=30, ) return crawl_status @@ -47,4 +44,3 @@ def retrieve_web_crawl(crawl_id: str): will tell you if the crawl is finished. If it is not, wait some more time then try again. """ return app.check_crawl_status(crawl_id) - diff --git a/examples/stock_analysis/src/crew.py b/examples/stock_analysis/src/crew.py index 1bef7a62..165eeee8 100644 --- a/examples/stock_analysis/src/crew.py +++ b/examples/stock_analysis/src/crew.py @@ -4,37 +4,39 @@ @CrewBase -class StockanalysisCrew(): +class StockanalysisCrew: """stock_analysis crew""" # Agent definitions @agent def analyst(self) -> Agent: return Agent( - config=self.agents_config['analyst'], + config=self.agents_config["analyst"], tools=[], # add tools here or use `agentstack tools add - verbose=True + verbose=True, ) @agent def researcher(self) -> Agent: return Agent( - config=self.agents_config['researcher'], - tools=[tools.query_perplexity, ], # add tools here or use `agentstack tools add - verbose=True + config=self.agents_config["researcher"], + tools=[ + tools.query_perplexity, + ], # add tools here or use `agentstack tools add + verbose=True, ) # Task definitions @task def research_stock(self) -> Task: return Task( - config=self.tasks_config['research_stock'], + config=self.tasks_config["research_stock"], ) @task def buy_sell_decision(self) -> Task: return Task( - config=self.tasks_config['buy_sell_decision'], + config=self.tasks_config["buy_sell_decision"], ) @crew diff --git a/examples/stock_analysis/src/main.py b/examples/stock_analysis/src/main.py index 59e51ee5..3447ddfd 100644 --- a/examples/stock_analysis/src/main.py +++ b/examples/stock_analysis/src/main.py @@ -3,9 +3,10 @@ from crew import StockanalysisCrew import agentops from dotenv import load_dotenv + load_dotenv() -agentops.init(default_tags=['stock_analysis', 'agentstack']) +agentops.init(default_tags=["stock_analysis", "agentstack"]) # This main file is intended to be a way for your to run your # crew locally, so refrain from adding necessary logic into this file. @@ -17,9 +18,7 @@ def run(): """ Run the crew. """ - inputs = { - 'topic': 'AI LLMs' - } + inputs = {"topic": "AI LLMs"} StockanalysisCrew().crew().kickoff(inputs=inputs) @@ -27,12 +26,11 @@ def train(): """ Train the crew for a given number of iterations. """ - inputs = { - "topic": "AI LLMs" - } + inputs = {"topic": "AI LLMs"} try: - StockanalysisCrew().crew().train(n_iterations=int( - sys.argv[1]), filename=sys.argv[2], inputs=inputs) + StockanalysisCrew().crew().train( + n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs + ) except Exception as e: raise Exception(f"An error occurred while training the crew: {e}") @@ -53,16 +51,15 @@ def test(): """ Test the crew execution and returns the results. """ - inputs = { - "topic": "AI LLMs" - } + inputs = {"topic": "AI LLMs"} try: - StockanalysisCrew().crew().test(n_iterations=int( - sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs) + StockanalysisCrew().crew().test( + n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs + ) except Exception as e: raise Exception(f"An error occurred while replaying the crew: {e}") -if __name__ == '__main__': +if __name__ == "__main__": run() diff --git a/examples/stock_analysis/src/tools/__init__.py b/examples/stock_analysis/src/tools/__init__.py index ca62890f..4fdccde1 100644 --- a/examples/stock_analysis/src/tools/__init__.py +++ b/examples/stock_analysis/src/tools/__init__.py @@ -1,4 +1,3 @@ - # tool import from .perplexity_tool import query_perplexity diff --git a/examples/stock_analysis/src/tools/perplexity_tool.py b/examples/stock_analysis/src/tools/perplexity_tool.py index a5a361b5..acdb7544 100644 --- a/examples/stock_analysis/src/tools/perplexity_tool.py +++ b/examples/stock_analysis/src/tools/perplexity_tool.py @@ -4,11 +4,13 @@ from crewai_tools import tool from dotenv import load_dotenv + load_dotenv() url = "https://api.perplexity.ai/chat/completions" api_key = os.getenv("PERPLEXITY_API_KEY") + @tool def query_perplexity(query: str): """ @@ -18,14 +20,8 @@ def query_perplexity(query: str): payload = { "model": "llama-3.1-sonar-small-128k-online", "messages": [ - { - "role": "system", - "content": "Be precise and concise." - }, - { - "role": "user", - "content": query - } + {"role": "system", "content": "Be precise and concise."}, + {"role": "user", "content": query}, ], # "max_tokens": "Optional", "temperature": 0.2, @@ -38,12 +34,9 @@ def query_perplexity(query: str): "top_k": 0, "stream": False, "presence_penalty": 0, - "frequency_penalty": 1 - } - headers = { - "Authorization": f"Bearer {api_key}", - "Content-Type": "application/json" + "frequency_penalty": 1, } + headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"} response = requests.request("POST", url, json=payload, headers=headers) if response.status_code == 200 and response.text: diff --git a/examples/trip_planner/src/crew.py b/examples/trip_planner/src/crew.py index 9d479dd2..3558ac1c 100644 --- a/examples/trip_planner/src/crew.py +++ b/examples/trip_planner/src/crew.py @@ -2,62 +2,78 @@ from crewai.project import CrewBase, agent, crew, task import tools + @CrewBase -class TripplannerCrew(): - """trip_planner crew""" - - # Agent definitions - @agent - def city_selection_expert(self) -> Agent: - return Agent( - config=self.agents_config['city_selection_expert'], - tools=[tools.Browserbase, tools.Browserbase, tools.Browserbase, tools.Browserbase, tools.Browserbase, ], # Pass in what tools this agent should have - verbose=True - ) - - @agent - def local_expert(self) -> Agent: - return Agent( - config=self.agents_config['local_expert'], - tools=[tools.Browserbase, tools.Browserbase, tools.Browserbase, tools.Browserbase, tools.Browserbase, ], # Pass in what tools this agent should have - verbose=True - ) - - @agent - def travel_concierge(self) -> Agent: - return Agent( - config=self.agents_config['travel_concierge'], - tools=[tools.Browserbase, tools.Browserbase, tools.Browserbase, tools.Browserbase, tools.Browserbase, ], # Pass in what tools this agent should have - verbose=True - ) - - # Task definitions - @task - def identify_task(self) -> Task: - return Task( - config=self.tasks_config['identify_task'], - ) - - @task - def gather_task(self) -> Task: - return Task( - config=self.tasks_config['gather_task'], - ) - - @task - def plan_task(self) -> Task: - return Task( - config=self.tasks_config['plan_task'], - output_file="itinerary.md" - ) - - @crew - def crew(self) -> Crew: - """Creates the Test crew""" - return Crew( - agents=self.agents, # Automatically created by the @agent decorator - tasks=self.tasks, # Automatically created by the @task decorator - process=Process.sequential, - verbose=True, - # process=Process.hierarchical, # In case you wanna use that instead https://docs.crewai.com/how-to/Hierarchical/ - ) \ No newline at end of file +class TripplannerCrew: + """trip_planner crew""" + + # Agent definitions + @agent + def city_selection_expert(self) -> Agent: + return Agent( + config=self.agents_config["city_selection_expert"], + tools=[ + tools.Browserbase, + tools.Browserbase, + tools.Browserbase, + tools.Browserbase, + tools.Browserbase, + ], # Pass in what tools this agent should have + verbose=True, + ) + + @agent + def local_expert(self) -> Agent: + return Agent( + config=self.agents_config["local_expert"], + tools=[ + tools.Browserbase, + tools.Browserbase, + tools.Browserbase, + tools.Browserbase, + tools.Browserbase, + ], # Pass in what tools this agent should have + verbose=True, + ) + + @agent + def travel_concierge(self) -> Agent: + return Agent( + config=self.agents_config["travel_concierge"], + tools=[ + tools.Browserbase, + tools.Browserbase, + tools.Browserbase, + tools.Browserbase, + tools.Browserbase, + ], # Pass in what tools this agent should have + verbose=True, + ) + + # Task definitions + @task + def identify_task(self) -> Task: + return Task( + config=self.tasks_config["identify_task"], + ) + + @task + def gather_task(self) -> Task: + return Task( + config=self.tasks_config["gather_task"], + ) + + @task + def plan_task(self) -> Task: + return Task(config=self.tasks_config["plan_task"], output_file="itinerary.md") + + @crew + def crew(self) -> Crew: + """Creates the Test crew""" + return Crew( + agents=self.agents, # Automatically created by the @agent decorator + tasks=self.tasks, # Automatically created by the @task decorator + process=Process.sequential, + verbose=True, + # process=Process.hierarchical, # In case you wanna use that instead https://docs.crewai.com/how-to/Hierarchical/ + ) diff --git a/examples/trip_planner/src/main.py b/examples/trip_planner/src/main.py index 4690b770..0e171ecc 100644 --- a/examples/trip_planner/src/main.py +++ b/examples/trip_planner/src/main.py @@ -3,7 +3,7 @@ from crew import TripplannerCrew import agentops -agentops.init(default_tags=['trip_planner', 'agentstack']) +agentops.init(default_tags=["trip_planner", "agentstack"]) # This main file is intended to be a way for your to run your # crew locally, so refrain from adding necessary logic into this file. @@ -16,10 +16,10 @@ def run(): Run the crew. """ inputs = { - 'origin': 'San Francisco', - 'cities': 'austin,berlin,tokyo', - 'interests': 'techno,history,culture,art,music', - 'range': 'one week between next may to july', + "origin": "San Francisco", + "cities": "austin,berlin,tokyo", + "interests": "techno,history,culture,art,music", + "range": "one week between next may to july", } TripplannerCrew().crew().kickoff(inputs=inputs) @@ -28,12 +28,11 @@ def train(): """ Train the crew for a given number of iterations. """ - inputs = { - "topic": "AI LLMs" - } + inputs = {"topic": "AI LLMs"} try: - TripplannerCrew().crew().train(n_iterations=int( - sys.argv[1]), filename=sys.argv[2], inputs=inputs) + TripplannerCrew().crew().train( + n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs + ) except Exception as e: raise Exception(f"An error occurred while training the crew: {e}") @@ -54,16 +53,15 @@ def test(): """ Test the crew execution and returns the results. """ - inputs = { - "topic": "AI LLMs" - } + inputs = {"topic": "AI LLMs"} try: - TripplannerCrew().crew().test(n_iterations=int( - sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs) + TripplannerCrew().crew().test( + n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs + ) except Exception as e: raise Exception(f"An error occurred while replaying the crew: {e}") -if __name__ == '__main__': +if __name__ == "__main__": run() diff --git a/examples/trip_planner/src/tools/__init__.py b/examples/trip_planner/src/tools/__init__.py index b0e4ead8..5cfb9bb7 100644 --- a/examples/trip_planner/src/tools/__init__.py +++ b/examples/trip_planner/src/tools/__init__.py @@ -1,4 +1,3 @@ - # tool import diff --git a/examples/trip_planner/src/tools/browserbase.py b/examples/trip_planner/src/tools/browserbase.py index 08057260..00eaa919 100644 --- a/examples/trip_planner/src/tools/browserbase.py +++ b/examples/trip_planner/src/tools/browserbase.py @@ -1,3 +1,3 @@ from crewai_tools import BrowserbaseLoadTool -Browserbase = BrowserbaseLoadTool(text_content=True) \ No newline at end of file +Browserbase = BrowserbaseLoadTool(text_content=True) diff --git a/examples/web_researcher/src/crew.py b/examples/web_researcher/src/crew.py index aaf94506..fdec4c27 100644 --- a/examples/web_researcher/src/crew.py +++ b/examples/web_researcher/src/crew.py @@ -9,36 +9,46 @@ class WebresearcherCrew: # Agent definitions @agent - def content_summarizer(self) ->Agent: - return Agent(config=self.agents_config['content_summarizer'], tools - =[], verbose=True) + def content_summarizer(self) -> Agent: + return Agent( + config=self.agents_config["content_summarizer"], tools=[], verbose=True + ) @agent - def web_scraper(self) ->Agent: - return Agent(config=self.agents_config['web_scraper'], tools=[tools - .web_scrape], verbose=True) + def web_scraper(self) -> Agent: + return Agent( + config=self.agents_config["web_scraper"], + tools=[tools.web_scrape], + verbose=True, + ) @agent - def content_storer(self) ->Agent: - return Agent(config=self.agents_config['content_storer'], tools=[ - tools.create_database, tools.execute_sql_ddl, tools. - run_sql_query], verbose=True) + def content_storer(self) -> Agent: + return Agent( + config=self.agents_config["content_storer"], + tools=[tools.create_database, tools.execute_sql_ddl, tools.run_sql_query], + verbose=True, + ) # Task definitions @task - def scrape_site(self) ->Task: - return Task(config=self.tasks_config['scrape_site']) + def scrape_site(self) -> Task: + return Task(config=self.tasks_config["scrape_site"]) @task - def summarize(self) ->Task: - return Task(config=self.tasks_config['summarize']) + def summarize(self) -> Task: + return Task(config=self.tasks_config["summarize"]) @task - def store(self) ->Task: - return Task(config=self.tasks_config['store']) + def store(self) -> Task: + return Task(config=self.tasks_config["store"]) @crew - def crew(self) ->Crew: + def crew(self) -> Crew: """Creates the Test crew""" - return Crew(agents=self.agents, tasks=self.tasks, process=Process. - sequential, verbose=True) + return Crew( + agents=self.agents, + tasks=self.tasks, + process=Process.sequential, + verbose=True, + ) diff --git a/examples/web_researcher/src/main.py b/examples/web_researcher/src/main.py index 9645fd24..69c048a6 100644 --- a/examples/web_researcher/src/main.py +++ b/examples/web_researcher/src/main.py @@ -6,9 +6,10 @@ from crew import WebresearcherCrew import agentops from dotenv import load_dotenv + load_dotenv() -agentops.init(default_tags=['web_researcher', 'agentstack']) +agentops.init(default_tags=["web_researcher", "agentstack"]) def run(inputs: Optional[dict] = None): @@ -19,9 +20,7 @@ def run(inputs: Optional[dict] = None): print(inputs) if not inputs: - inputs = { - 'url': 'https://github.com/AgentOps-AI/AgentStack/tree/main' - } + inputs = {"url": "https://github.com/AgentOps-AI/AgentStack/tree/main"} return WebresearcherCrew().crew().kickoff(inputs=inputs) @@ -29,12 +28,11 @@ def train(): """ Train the crew for a given number of iterations. """ - inputs = { - "topic": "AI LLMs" - } + inputs = {"topic": "AI LLMs"} try: - WebresearcherCrew().crew().train(n_iterations=int( - sys.argv[1]), filename=sys.argv[2], inputs=inputs) + WebresearcherCrew().crew().train( + n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs + ) except Exception as e: raise Exception(f"An error occurred while training the crew: {e}") @@ -55,18 +53,17 @@ def test(): """ Test the crew execution and returns the results. """ - inputs = { - "topic": "AI LLMs" - } + inputs = {"topic": "AI LLMs"} try: - WebresearcherCrew().crew().test(n_iterations=int( - sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs) + WebresearcherCrew().crew().test( + n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs + ) except Exception as e: raise Exception(f"An error occurred while replaying the crew: {e}") -if __name__ == '__main__': +if __name__ == "__main__": data = None if len(sys.argv) > 1: data_str = sys.argv[1] diff --git a/examples/web_researcher/src/tools/__init__.py b/examples/web_researcher/src/tools/__init__.py index fafc6f7e..db89c8c8 100644 --- a/examples/web_researcher/src/tools/__init__.py +++ b/examples/web_researcher/src/tools/__init__.py @@ -1,4 +1,3 @@ - # tool import from .firecrawl_tool import web_scrape, web_crawl, retrieve_web_crawl from .neon_tool import create_database, execute_sql_ddl, run_sql_query diff --git a/examples/web_researcher/src/tools/firecrawl_tool.py b/examples/web_researcher/src/tools/firecrawl_tool.py index 65c66c24..4f1cf1e0 100644 --- a/examples/web_researcher/src/tools/firecrawl_tool.py +++ b/examples/web_researcher/src/tools/firecrawl_tool.py @@ -2,7 +2,7 @@ from firecrawl import FirecrawlApp import os -app = FirecrawlApp(api_key=os.getenv('FIRECRAWL_API_KEY')) +app = FirecrawlApp(api_key=os.getenv("FIRECRAWL_API_KEY")) @tool @@ -11,7 +11,7 @@ def web_scrape(url: str): Scrape a url and return markdown. Use this to read a singular page and web_crawl only if you need to read all other links as well. """ - scrape_result = app.scrape_url(url, params={'formats': ['markdown']}) + scrape_result = app.scrape_url(url, params={"formats": ["markdown"]}) return scrape_result @@ -29,11 +29,8 @@ def web_crawl(url: str): crawl_status = app.crawl_url( url, - params={ - 'limit': 100, - 'scrapeOptions': {'formats': ['markdown']} - }, - poll_interval=30 + params={"limit": 100, "scrapeOptions": {"formats": ["markdown"]}}, + poll_interval=30, ) return crawl_status @@ -47,4 +44,3 @@ def retrieve_web_crawl(crawl_id: str): will tell you if the crawl is finished. If it is not, wait some more time then try again. """ return app.check_crawl_status(crawl_id) - From d7b6c6cb0f92240760b7ded4209524a80d68ae4f Mon Sep 17 00:00:00 2001 From: reibs Date: Wed, 4 Dec 2024 17:22:44 -0500 Subject: [PATCH 6/7] restore examples --- examples/howards_agent/src/crew.py | 67 +++++---- examples/howards_agent/src/main.py | 24 ++-- examples/howards_agent/src/tools/__init__.py | 1 + .../howards_agent/src/tools/composio_tool.py | 1 + examples/howards_agent/src/tools/mem0_tool.py | 6 +- examples/job_posting/src/crew.py | 53 ++++--- examples/job_posting/src/main.py | 26 ++-- examples/job_posting/src/tools/__init__.py | 20 +++ .../job_posting/src/tools/firecrawl_tool.py | 12 +- examples/stock_analysis/src/crew.py | 18 ++- examples/stock_analysis/src/main.py | 28 ++-- examples/stock_analysis/src/tools/__init__.py | 1 + .../src/tools/perplexity_tool.py | 19 ++- examples/trip_planner/src/crew.py | 132 ++++++++---------- examples/trip_planner/src/main.py | 31 ++-- examples/trip_planner/src/tools/__init__.py | 1 + .../trip_planner/src/tools/browserbase.py | 2 +- examples/web_researcher/src/crew.py | 48 +++---- examples/web_researcher/src/main.py | 27 ++-- examples/web_researcher/src/tools/__init__.py | 1 + .../src/tools/firecrawl_tool.py | 12 +- 21 files changed, 265 insertions(+), 265 deletions(-) diff --git a/examples/howards_agent/src/crew.py b/examples/howards_agent/src/crew.py index 47ea56de..ad09087f 100644 --- a/examples/howards_agent/src/crew.py +++ b/examples/howards_agent/src/crew.py @@ -2,42 +2,39 @@ from crewai.project import CrewBase, agent, crew, task import tools - @CrewBase -class HowardsagentCrew: - """howards_agent crew""" - - # Agent definitions - @agent - def agent1(self) -> Agent: - return Agent( - config=self.agents_config["agent1"], - tools=[ - *tools.composio_tools, - ], # Pass in what tools this agent should have - verbose=True, - ) +class HowardsagentCrew(): + """howards_agent crew""" - # Task definitions - @task - def new_task(self) -> Task: - return Task( - config=self.tasks_config["new_task"], - ) + # Agent definitions + @agent + def agent1(self) -> Agent: + return Agent( + config=self.agents_config['agent1'], + tools=[*tools.composio_tools,], # Pass in what tools this agent should have + verbose=True + ) - @task - def task1(self) -> Task: - return Task( - config=self.tasks_config["task1"], - ) + # Task definitions + @task + def new_task(self) -> Task: + return Task( + config=self.tasks_config['new_task'], + ) + + @task + def task1(self) -> Task: + return Task( + config=self.tasks_config['task1'], + ) - @crew - def crew(self) -> Crew: - """Creates the Test crew""" - return Crew( - agents=self.agents, # Automatically created by the @agent decorator - tasks=self.tasks, # Automatically created by the @task decorator - process=Process.sequential, - verbose=True, - # process=Process.hierarchical, # In case you wanna use that instead https://docs.crewai.com/how-to/Hierarchical/ - ) + @crew + def crew(self) -> Crew: + """Creates the Test crew""" + return Crew( + agents=self.agents, # Automatically created by the @agent decorator + tasks=self.tasks, # Automatically created by the @task decorator + process=Process.sequential, + verbose=True, + # process=Process.hierarchical, # In case you wanna use that instead https://docs.crewai.com/how-to/Hierarchical/ + ) diff --git a/examples/howards_agent/src/main.py b/examples/howards_agent/src/main.py index 27a5b8e7..605268f4 100644 --- a/examples/howards_agent/src/main.py +++ b/examples/howards_agent/src/main.py @@ -3,22 +3,22 @@ from crew import HowardsagentCrew import agentops from dotenv import load_dotenv - load_dotenv() -agentops.init(default_tags=["howards_agent", "agentstack"]) +agentops.init() # This main file is intended to be a way for your to run your # crew locally, so refrain from adding necessary logic into this file. # Replace with inputs you want to test with, it will automatically # interpolate any tasks and agents information - def run(): """ Run the crew. """ - inputs = {"topic": "AI LLMs"} + inputs = { + 'topic': 'AI LLMs' + } HowardsagentCrew().crew().kickoff(inputs=inputs) @@ -26,11 +26,11 @@ def train(): """ Train the crew for a given number of iterations. """ - inputs = {"topic": "AI LLMs"} + inputs = { + "topic": "AI LLMs" + } try: - HowardsagentCrew().crew().train( - n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs - ) + HowardsagentCrew().crew().train(n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs) except Exception as e: raise Exception(f"An error occurred while training the crew: {e}") @@ -51,11 +51,11 @@ def test(): """ Test the crew execution and returns the results. """ - inputs = {"topic": "AI LLMs"} + inputs = { + "topic": "AI LLMs" + } try: - HowardsagentCrew().crew().test( - n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs - ) + HowardsagentCrew().crew().test(n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs) except Exception as e: raise Exception(f"An error occurred while replaying the crew: {e}") diff --git a/examples/howards_agent/src/tools/__init__.py b/examples/howards_agent/src/tools/__init__.py index 4330ab36..ed0105e1 100644 --- a/examples/howards_agent/src/tools/__init__.py +++ b/examples/howards_agent/src/tools/__init__.py @@ -1,3 +1,4 @@ + # tool import diff --git a/examples/howards_agent/src/tools/composio_tool.py b/examples/howards_agent/src/tools/composio_tool.py index 197c7e00..9ad350ec 100644 --- a/examples/howards_agent/src/tools/composio_tool.py +++ b/examples/howards_agent/src/tools/composio_tool.py @@ -4,3 +4,4 @@ # change App.CODEINTERPRETER to be the app you want to use # For more info on tool selection, see https://docs.agentstack.sh/tools/tool/composio + diff --git a/examples/howards_agent/src/tools/mem0_tool.py b/examples/howards_agent/src/tools/mem0_tool.py index 134e92e4..1798da5b 100644 --- a/examples/howards_agent/src/tools/mem0_tool.py +++ b/examples/howards_agent/src/tools/mem0_tool.py @@ -12,11 +12,11 @@ "provider": "neo4j", "config": { "url": os.getenv("NEO4J_URL"), - "username": os.getenv("NEO4J_USERNAME", "neo4j"), + "username": os.getenv("NEO4J_USERNAME", 'neo4j'), "password": os.getenv("NEO4J_PASSWORD"), - }, + } }, - "version": "v1.1", + "version": "v1.1" } memory = Memory.from_config(config) diff --git a/examples/job_posting/src/crew.py b/examples/job_posting/src/crew.py index 0e6385a5..2a341e2c 100644 --- a/examples/job_posting/src/crew.py +++ b/examples/job_posting/src/crew.py @@ -8,48 +8,45 @@ class JobpostingCrew: """job_posting crew""" @agent - def review_agent(self) -> Agent: - return Agent(config=self.agents_config["review_agent"], tools=[], verbose=True) + def review_agent(self) ->Agent: + return Agent(config=self.agents_config['review_agent'], tools=[], + verbose=True) @agent - def writer_agent(self) -> Agent: - return Agent(config=self.agents_config["writer_agent"], tools=[], verbose=True) + def writer_agent(self) ->Agent: + return Agent(config=self.agents_config['writer_agent'], tools=[], + verbose=True) @agent - def researcher_agent(self) -> Agent: - return Agent( - config=self.agents_config["research_agent"], - tools=[tools.web_scrape, tools.web_crawl, tools.retrieve_web_crawl], - verbose=True, - ) + def researcher_agent(self) ->Agent: + return Agent(config=self.agents_config['research_agent'], tools=[ + tools.web_scrape, tools.web_crawl, tools.retrieve_web_crawl], + verbose=True) @task - def research_company_culture_task(self) -> Task: - return Task(config=self.tasks_config["research_company_culture_task"]) + def research_company_culture_task(self) ->Task: + return Task(config=self.tasks_config['research_company_culture_task']) @task - def research_role_requirements_task(self) -> Task: - return Task(config=self.tasks_config["research_role_requirements_task"]) + def research_role_requirements_task(self) ->Task: + return Task(config=self.tasks_config['research_role_requirements_task'] + ) @task - def draft_job_posting_task(self) -> Task: - return Task(config=self.tasks_config["draft_job_posting_task"]) + def draft_job_posting_task(self) ->Task: + return Task(config=self.tasks_config['draft_job_posting_task']) @task - def review_and_edit_job_posting_task(self) -> Task: - return Task(config=self.tasks_config["review_and_edit_job_posting_task"]) + def review_and_edit_job_posting_task(self) ->Task: + return Task(config=self.tasks_config[ + 'review_and_edit_job_posting_task']) @task - def industry_analysis_task(self) -> Task: - return Task(config=self.tasks_config["industry_analysis_task"]) + def industry_analysis_task(self) ->Task: + return Task(config=self.tasks_config['industry_analysis_task']) @crew - def crew(self) -> Crew: + def crew(self) ->Crew: """Creates the Test crew""" - return Crew( - agents=self.agents, - tasks=self.tasks, - verbose=True, - process=Process.hierarchical, - manager_llm="openai/gpt-4o", - ) + return Crew(agents=self.agents, tasks=self.tasks, verbose=True, + process=Process.hierarchical, manager_llm='openai/gpt-4o') diff --git a/examples/job_posting/src/main.py b/examples/job_posting/src/main.py index 9860b620..8abd6f2d 100644 --- a/examples/job_posting/src/main.py +++ b/examples/job_posting/src/main.py @@ -3,18 +3,16 @@ from crew import JobpostingCrew import agentops from dotenv import load_dotenv - load_dotenv() -agentops.init(default_tags=["job_posting", "agentstack"]) +agentops.init() inputs = { - "company_domain": "https://agen.cy", - "company_description": "From open source AI agent developer tools like AgentOps to Fortune 500 enterprises, we help clients create safe, reliable, and scalable AI agents.", - "hiring_needs": "Infrastructure engineer for deploying AI agents at scale", - "specific_benefits": "Daily lunch", -} - + 'company_domain': 'https://agen.cy', + 'company_description': "From open source AI agent developer tools like AgentOps to Fortune 500 enterprises, we help clients create safe, reliable, and scalable AI agents.", + 'hiring_needs': 'Infrastructure engineer for deploying AI agents at scale', + 'specific_benefits': 'Daily lunch', + } def run(): """ @@ -28,9 +26,7 @@ def train(): Train the crew for a given number of iterations. """ try: - JobpostingCrew().crew().train( - n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs - ) + JobpostingCrew().crew().train(n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs) except Exception as e: raise Exception(f"An error occurred while training the crew: {e}") @@ -52,13 +48,11 @@ def test(): Test the crew execution and returns the results. """ try: - JobpostingCrew().crew().test( - n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs - ) + JobpostingCrew().crew().test(n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs) except Exception as e: raise Exception(f"An error occurred while replaying the crew: {e}") -if __name__ == "__main__": - run() +if __name__ == '__main__': + run() \ No newline at end of file diff --git a/examples/job_posting/src/tools/__init__.py b/examples/job_posting/src/tools/__init__.py index b1387c10..f1654b8d 100644 --- a/examples/job_posting/src/tools/__init__.py +++ b/examples/job_posting/src/tools/__init__.py @@ -1,4 +1,24 @@ + # tool import from .firecrawl_tool import web_scrape, web_crawl, retrieve_web_crawl + + + + + + + + + + + + + + + + + + + diff --git a/examples/job_posting/src/tools/firecrawl_tool.py b/examples/job_posting/src/tools/firecrawl_tool.py index 4f1cf1e0..65c66c24 100644 --- a/examples/job_posting/src/tools/firecrawl_tool.py +++ b/examples/job_posting/src/tools/firecrawl_tool.py @@ -2,7 +2,7 @@ from firecrawl import FirecrawlApp import os -app = FirecrawlApp(api_key=os.getenv("FIRECRAWL_API_KEY")) +app = FirecrawlApp(api_key=os.getenv('FIRECRAWL_API_KEY')) @tool @@ -11,7 +11,7 @@ def web_scrape(url: str): Scrape a url and return markdown. Use this to read a singular page and web_crawl only if you need to read all other links as well. """ - scrape_result = app.scrape_url(url, params={"formats": ["markdown"]}) + scrape_result = app.scrape_url(url, params={'formats': ['markdown']}) return scrape_result @@ -29,8 +29,11 @@ def web_crawl(url: str): crawl_status = app.crawl_url( url, - params={"limit": 100, "scrapeOptions": {"formats": ["markdown"]}}, - poll_interval=30, + params={ + 'limit': 100, + 'scrapeOptions': {'formats': ['markdown']} + }, + poll_interval=30 ) return crawl_status @@ -44,3 +47,4 @@ def retrieve_web_crawl(crawl_id: str): will tell you if the crawl is finished. If it is not, wait some more time then try again. """ return app.check_crawl_status(crawl_id) + diff --git a/examples/stock_analysis/src/crew.py b/examples/stock_analysis/src/crew.py index 165eeee8..1bef7a62 100644 --- a/examples/stock_analysis/src/crew.py +++ b/examples/stock_analysis/src/crew.py @@ -4,39 +4,37 @@ @CrewBase -class StockanalysisCrew: +class StockanalysisCrew(): """stock_analysis crew""" # Agent definitions @agent def analyst(self) -> Agent: return Agent( - config=self.agents_config["analyst"], + config=self.agents_config['analyst'], tools=[], # add tools here or use `agentstack tools add - verbose=True, + verbose=True ) @agent def researcher(self) -> Agent: return Agent( - config=self.agents_config["researcher"], - tools=[ - tools.query_perplexity, - ], # add tools here or use `agentstack tools add - verbose=True, + config=self.agents_config['researcher'], + tools=[tools.query_perplexity, ], # add tools here or use `agentstack tools add + verbose=True ) # Task definitions @task def research_stock(self) -> Task: return Task( - config=self.tasks_config["research_stock"], + config=self.tasks_config['research_stock'], ) @task def buy_sell_decision(self) -> Task: return Task( - config=self.tasks_config["buy_sell_decision"], + config=self.tasks_config['buy_sell_decision'], ) @crew diff --git a/examples/stock_analysis/src/main.py b/examples/stock_analysis/src/main.py index 3447ddfd..11ad98b9 100644 --- a/examples/stock_analysis/src/main.py +++ b/examples/stock_analysis/src/main.py @@ -3,22 +3,22 @@ from crew import StockanalysisCrew import agentops from dotenv import load_dotenv - load_dotenv() -agentops.init(default_tags=["stock_analysis", "agentstack"]) +agentops.init() # This main file is intended to be a way for your to run your # crew locally, so refrain from adding necessary logic into this file. # Replace with inputs you want to test with, it will automatically # interpolate any tasks and agents information - def run(): """ Run the crew. """ - inputs = {"topic": "AI LLMs"} + inputs = { + 'topic': 'AI LLMs' + } StockanalysisCrew().crew().kickoff(inputs=inputs) @@ -26,11 +26,11 @@ def train(): """ Train the crew for a given number of iterations. """ - inputs = {"topic": "AI LLMs"} + inputs = { + "topic": "AI LLMs" + } try: - StockanalysisCrew().crew().train( - n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs - ) + StockanalysisCrew().crew().train(n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs) except Exception as e: raise Exception(f"An error occurred while training the crew: {e}") @@ -51,15 +51,15 @@ def test(): """ Test the crew execution and returns the results. """ - inputs = {"topic": "AI LLMs"} + inputs = { + "topic": "AI LLMs" + } try: - StockanalysisCrew().crew().test( - n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs - ) + StockanalysisCrew().crew().test(n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs) except Exception as e: raise Exception(f"An error occurred while replaying the crew: {e}") -if __name__ == "__main__": - run() +if __name__ == '__main__': + run() \ No newline at end of file diff --git a/examples/stock_analysis/src/tools/__init__.py b/examples/stock_analysis/src/tools/__init__.py index 4fdccde1..ca62890f 100644 --- a/examples/stock_analysis/src/tools/__init__.py +++ b/examples/stock_analysis/src/tools/__init__.py @@ -1,3 +1,4 @@ + # tool import from .perplexity_tool import query_perplexity diff --git a/examples/stock_analysis/src/tools/perplexity_tool.py b/examples/stock_analysis/src/tools/perplexity_tool.py index acdb7544..a5a361b5 100644 --- a/examples/stock_analysis/src/tools/perplexity_tool.py +++ b/examples/stock_analysis/src/tools/perplexity_tool.py @@ -4,13 +4,11 @@ from crewai_tools import tool from dotenv import load_dotenv - load_dotenv() url = "https://api.perplexity.ai/chat/completions" api_key = os.getenv("PERPLEXITY_API_KEY") - @tool def query_perplexity(query: str): """ @@ -20,8 +18,14 @@ def query_perplexity(query: str): payload = { "model": "llama-3.1-sonar-small-128k-online", "messages": [ - {"role": "system", "content": "Be precise and concise."}, - {"role": "user", "content": query}, + { + "role": "system", + "content": "Be precise and concise." + }, + { + "role": "user", + "content": query + } ], # "max_tokens": "Optional", "temperature": 0.2, @@ -34,9 +38,12 @@ def query_perplexity(query: str): "top_k": 0, "stream": False, "presence_penalty": 0, - "frequency_penalty": 1, + "frequency_penalty": 1 + } + headers = { + "Authorization": f"Bearer {api_key}", + "Content-Type": "application/json" } - headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"} response = requests.request("POST", url, json=payload, headers=headers) if response.status_code == 200 and response.text: diff --git a/examples/trip_planner/src/crew.py b/examples/trip_planner/src/crew.py index 3558ac1c..9d479dd2 100644 --- a/examples/trip_planner/src/crew.py +++ b/examples/trip_planner/src/crew.py @@ -2,78 +2,62 @@ from crewai.project import CrewBase, agent, crew, task import tools - @CrewBase -class TripplannerCrew: - """trip_planner crew""" - - # Agent definitions - @agent - def city_selection_expert(self) -> Agent: - return Agent( - config=self.agents_config["city_selection_expert"], - tools=[ - tools.Browserbase, - tools.Browserbase, - tools.Browserbase, - tools.Browserbase, - tools.Browserbase, - ], # Pass in what tools this agent should have - verbose=True, - ) - - @agent - def local_expert(self) -> Agent: - return Agent( - config=self.agents_config["local_expert"], - tools=[ - tools.Browserbase, - tools.Browserbase, - tools.Browserbase, - tools.Browserbase, - tools.Browserbase, - ], # Pass in what tools this agent should have - verbose=True, - ) - - @agent - def travel_concierge(self) -> Agent: - return Agent( - config=self.agents_config["travel_concierge"], - tools=[ - tools.Browserbase, - tools.Browserbase, - tools.Browserbase, - tools.Browserbase, - tools.Browserbase, - ], # Pass in what tools this agent should have - verbose=True, - ) - - # Task definitions - @task - def identify_task(self) -> Task: - return Task( - config=self.tasks_config["identify_task"], - ) - - @task - def gather_task(self) -> Task: - return Task( - config=self.tasks_config["gather_task"], - ) - - @task - def plan_task(self) -> Task: - return Task(config=self.tasks_config["plan_task"], output_file="itinerary.md") - - @crew - def crew(self) -> Crew: - """Creates the Test crew""" - return Crew( - agents=self.agents, # Automatically created by the @agent decorator - tasks=self.tasks, # Automatically created by the @task decorator - process=Process.sequential, - verbose=True, - # process=Process.hierarchical, # In case you wanna use that instead https://docs.crewai.com/how-to/Hierarchical/ - ) +class TripplannerCrew(): + """trip_planner crew""" + + # Agent definitions + @agent + def city_selection_expert(self) -> Agent: + return Agent( + config=self.agents_config['city_selection_expert'], + tools=[tools.Browserbase, tools.Browserbase, tools.Browserbase, tools.Browserbase, tools.Browserbase, ], # Pass in what tools this agent should have + verbose=True + ) + + @agent + def local_expert(self) -> Agent: + return Agent( + config=self.agents_config['local_expert'], + tools=[tools.Browserbase, tools.Browserbase, tools.Browserbase, tools.Browserbase, tools.Browserbase, ], # Pass in what tools this agent should have + verbose=True + ) + + @agent + def travel_concierge(self) -> Agent: + return Agent( + config=self.agents_config['travel_concierge'], + tools=[tools.Browserbase, tools.Browserbase, tools.Browserbase, tools.Browserbase, tools.Browserbase, ], # Pass in what tools this agent should have + verbose=True + ) + + # Task definitions + @task + def identify_task(self) -> Task: + return Task( + config=self.tasks_config['identify_task'], + ) + + @task + def gather_task(self) -> Task: + return Task( + config=self.tasks_config['gather_task'], + ) + + @task + def plan_task(self) -> Task: + return Task( + config=self.tasks_config['plan_task'], + output_file="itinerary.md" + ) + + @crew + def crew(self) -> Crew: + """Creates the Test crew""" + return Crew( + agents=self.agents, # Automatically created by the @agent decorator + tasks=self.tasks, # Automatically created by the @task decorator + process=Process.sequential, + verbose=True, + # process=Process.hierarchical, # In case you wanna use that instead https://docs.crewai.com/how-to/Hierarchical/ + ) \ No newline at end of file diff --git a/examples/trip_planner/src/main.py b/examples/trip_planner/src/main.py index 0e171ecc..aca11667 100644 --- a/examples/trip_planner/src/main.py +++ b/examples/trip_planner/src/main.py @@ -3,23 +3,22 @@ from crew import TripplannerCrew import agentops -agentops.init(default_tags=["trip_planner", "agentstack"]) +agentops.init() # This main file is intended to be a way for your to run your # crew locally, so refrain from adding necessary logic into this file. # Replace with inputs you want to test with, it will automatically # interpolate any tasks and agents information - def run(): """ Run the crew. """ inputs = { - "origin": "San Francisco", - "cities": "austin,berlin,tokyo", - "interests": "techno,history,culture,art,music", - "range": "one week between next may to july", + 'origin': 'San Francisco', + 'cities': 'austin,berlin,tokyo', + 'interests': 'techno,history,culture,art,music', + 'range': 'one week between next may to july', } TripplannerCrew().crew().kickoff(inputs=inputs) @@ -28,11 +27,11 @@ def train(): """ Train the crew for a given number of iterations. """ - inputs = {"topic": "AI LLMs"} + inputs = { + "topic": "AI LLMs" + } try: - TripplannerCrew().crew().train( - n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs - ) + TripplannerCrew().crew().train(n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs) except Exception as e: raise Exception(f"An error occurred while training the crew: {e}") @@ -53,15 +52,15 @@ def test(): """ Test the crew execution and returns the results. """ - inputs = {"topic": "AI LLMs"} + inputs = { + "topic": "AI LLMs" + } try: - TripplannerCrew().crew().test( - n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs - ) + TripplannerCrew().crew().test(n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs) except Exception as e: raise Exception(f"An error occurred while replaying the crew: {e}") -if __name__ == "__main__": - run() +if __name__ == '__main__': + run() \ No newline at end of file diff --git a/examples/trip_planner/src/tools/__init__.py b/examples/trip_planner/src/tools/__init__.py index 5cfb9bb7..b0e4ead8 100644 --- a/examples/trip_planner/src/tools/__init__.py +++ b/examples/trip_planner/src/tools/__init__.py @@ -1,3 +1,4 @@ + # tool import diff --git a/examples/trip_planner/src/tools/browserbase.py b/examples/trip_planner/src/tools/browserbase.py index 00eaa919..08057260 100644 --- a/examples/trip_planner/src/tools/browserbase.py +++ b/examples/trip_planner/src/tools/browserbase.py @@ -1,3 +1,3 @@ from crewai_tools import BrowserbaseLoadTool -Browserbase = BrowserbaseLoadTool(text_content=True) +Browserbase = BrowserbaseLoadTool(text_content=True) \ No newline at end of file diff --git a/examples/web_researcher/src/crew.py b/examples/web_researcher/src/crew.py index fdec4c27..aaf94506 100644 --- a/examples/web_researcher/src/crew.py +++ b/examples/web_researcher/src/crew.py @@ -9,46 +9,36 @@ class WebresearcherCrew: # Agent definitions @agent - def content_summarizer(self) -> Agent: - return Agent( - config=self.agents_config["content_summarizer"], tools=[], verbose=True - ) + def content_summarizer(self) ->Agent: + return Agent(config=self.agents_config['content_summarizer'], tools + =[], verbose=True) @agent - def web_scraper(self) -> Agent: - return Agent( - config=self.agents_config["web_scraper"], - tools=[tools.web_scrape], - verbose=True, - ) + def web_scraper(self) ->Agent: + return Agent(config=self.agents_config['web_scraper'], tools=[tools + .web_scrape], verbose=True) @agent - def content_storer(self) -> Agent: - return Agent( - config=self.agents_config["content_storer"], - tools=[tools.create_database, tools.execute_sql_ddl, tools.run_sql_query], - verbose=True, - ) + def content_storer(self) ->Agent: + return Agent(config=self.agents_config['content_storer'], tools=[ + tools.create_database, tools.execute_sql_ddl, tools. + run_sql_query], verbose=True) # Task definitions @task - def scrape_site(self) -> Task: - return Task(config=self.tasks_config["scrape_site"]) + def scrape_site(self) ->Task: + return Task(config=self.tasks_config['scrape_site']) @task - def summarize(self) -> Task: - return Task(config=self.tasks_config["summarize"]) + def summarize(self) ->Task: + return Task(config=self.tasks_config['summarize']) @task - def store(self) -> Task: - return Task(config=self.tasks_config["store"]) + def store(self) ->Task: + return Task(config=self.tasks_config['store']) @crew - def crew(self) -> Crew: + def crew(self) ->Crew: """Creates the Test crew""" - return Crew( - agents=self.agents, - tasks=self.tasks, - process=Process.sequential, - verbose=True, - ) + return Crew(agents=self.agents, tasks=self.tasks, process=Process. + sequential, verbose=True) diff --git a/examples/web_researcher/src/main.py b/examples/web_researcher/src/main.py index 69c048a6..feceaed6 100644 --- a/examples/web_researcher/src/main.py +++ b/examples/web_researcher/src/main.py @@ -6,10 +6,9 @@ from crew import WebresearcherCrew import agentops from dotenv import load_dotenv - load_dotenv() -agentops.init(default_tags=["web_researcher", "agentstack"]) +agentops.init() def run(inputs: Optional[dict] = None): @@ -20,7 +19,9 @@ def run(inputs: Optional[dict] = None): print(inputs) if not inputs: - inputs = {"url": "https://github.com/AgentOps-AI/AgentStack/tree/main"} + inputs = { + 'url': 'https://github.com/AgentOps-AI/AgentStack/tree/main' + } return WebresearcherCrew().crew().kickoff(inputs=inputs) @@ -28,11 +29,11 @@ def train(): """ Train the crew for a given number of iterations. """ - inputs = {"topic": "AI LLMs"} + inputs = { + "topic": "AI LLMs" + } try: - WebresearcherCrew().crew().train( - n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs - ) + WebresearcherCrew().crew().train(n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs) except Exception as e: raise Exception(f"An error occurred while training the crew: {e}") @@ -53,19 +54,19 @@ def test(): """ Test the crew execution and returns the results. """ - inputs = {"topic": "AI LLMs"} + inputs = { + "topic": "AI LLMs" + } try: - WebresearcherCrew().crew().test( - n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs - ) + WebresearcherCrew().crew().test(n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs) except Exception as e: raise Exception(f"An error occurred while replaying the crew: {e}") -if __name__ == "__main__": +if __name__ == '__main__': data = None if len(sys.argv) > 1: data_str = sys.argv[1] data = json.loads(data_str) - run(data) + run(data) \ No newline at end of file diff --git a/examples/web_researcher/src/tools/__init__.py b/examples/web_researcher/src/tools/__init__.py index db89c8c8..fafc6f7e 100644 --- a/examples/web_researcher/src/tools/__init__.py +++ b/examples/web_researcher/src/tools/__init__.py @@ -1,3 +1,4 @@ + # tool import from .firecrawl_tool import web_scrape, web_crawl, retrieve_web_crawl from .neon_tool import create_database, execute_sql_ddl, run_sql_query diff --git a/examples/web_researcher/src/tools/firecrawl_tool.py b/examples/web_researcher/src/tools/firecrawl_tool.py index 4f1cf1e0..65c66c24 100644 --- a/examples/web_researcher/src/tools/firecrawl_tool.py +++ b/examples/web_researcher/src/tools/firecrawl_tool.py @@ -2,7 +2,7 @@ from firecrawl import FirecrawlApp import os -app = FirecrawlApp(api_key=os.getenv("FIRECRAWL_API_KEY")) +app = FirecrawlApp(api_key=os.getenv('FIRECRAWL_API_KEY')) @tool @@ -11,7 +11,7 @@ def web_scrape(url: str): Scrape a url and return markdown. Use this to read a singular page and web_crawl only if you need to read all other links as well. """ - scrape_result = app.scrape_url(url, params={"formats": ["markdown"]}) + scrape_result = app.scrape_url(url, params={'formats': ['markdown']}) return scrape_result @@ -29,8 +29,11 @@ def web_crawl(url: str): crawl_status = app.crawl_url( url, - params={"limit": 100, "scrapeOptions": {"formats": ["markdown"]}}, - poll_interval=30, + params={ + 'limit': 100, + 'scrapeOptions': {'formats': ['markdown']} + }, + poll_interval=30 ) return crawl_status @@ -44,3 +47,4 @@ def retrieve_web_crawl(crawl_id: str): will tell you if the crawl is finished. If it is not, wait some more time then try again. """ return app.check_crawl_status(crawl_id) + From 50b3c48c1931f5a0cefa6871f2fd17e4210c4a4b Mon Sep 17 00:00:00 2001 From: reibs Date: Wed, 4 Dec 2024 17:23:36 -0500 Subject: [PATCH 7/7] update tags in examples --- examples/howards_agent/src/main.py | 2 +- examples/job_posting/src/main.py | 2 +- examples/stock_analysis/src/main.py | 2 +- examples/trip_planner/src/main.py | 2 +- examples/web_researcher/src/main.py | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/howards_agent/src/main.py b/examples/howards_agent/src/main.py index 605268f4..a5813cb1 100644 --- a/examples/howards_agent/src/main.py +++ b/examples/howards_agent/src/main.py @@ -5,7 +5,7 @@ from dotenv import load_dotenv load_dotenv() -agentops.init() +agentops.init(default_tags=['howards_agent', 'agentstack']) # This main file is intended to be a way for your to run your # crew locally, so refrain from adding necessary logic into this file. diff --git a/examples/job_posting/src/main.py b/examples/job_posting/src/main.py index 8abd6f2d..09edcbb0 100644 --- a/examples/job_posting/src/main.py +++ b/examples/job_posting/src/main.py @@ -5,7 +5,7 @@ from dotenv import load_dotenv load_dotenv() -agentops.init() +agentops.init(default_tags=['job_posting', 'agentstack']) inputs = { 'company_domain': 'https://agen.cy', diff --git a/examples/stock_analysis/src/main.py b/examples/stock_analysis/src/main.py index 11ad98b9..398574a1 100644 --- a/examples/stock_analysis/src/main.py +++ b/examples/stock_analysis/src/main.py @@ -5,7 +5,7 @@ from dotenv import load_dotenv load_dotenv() -agentops.init() +agentops.init(default_tags=['stock_analysis', 'agentstack']) # This main file is intended to be a way for your to run your # crew locally, so refrain from adding necessary logic into this file. diff --git a/examples/trip_planner/src/main.py b/examples/trip_planner/src/main.py index aca11667..35b591b5 100644 --- a/examples/trip_planner/src/main.py +++ b/examples/trip_planner/src/main.py @@ -3,7 +3,7 @@ from crew import TripplannerCrew import agentops -agentops.init() +agentops.init(default_tags=['trip_planner', 'agentstack']) # This main file is intended to be a way for your to run your # crew locally, so refrain from adding necessary logic into this file. diff --git a/examples/web_researcher/src/main.py b/examples/web_researcher/src/main.py index feceaed6..fadd41eb 100644 --- a/examples/web_researcher/src/main.py +++ b/examples/web_researcher/src/main.py @@ -8,7 +8,7 @@ from dotenv import load_dotenv load_dotenv() -agentops.init() +agentops.init(default_tags=['web_researcher', 'agentstack']) def run(inputs: Optional[dict] = None):