diff --git a/agentstack/generation/tool_generation.py b/agentstack/generation/tool_generation.py index c4e19fc0..d7dd6114 100644 --- a/agentstack/generation/tool_generation.py +++ b/agentstack/generation/tool_generation.py @@ -378,10 +378,17 @@ def modify_agent_tools( filename = _framework_filename(framework, path) - with open(filename, 'r') as f: - source = f.read() + with open(filename, 'r', encoding='utf-8') as f: + source_lines = f.readlines() - tree = ast.parse(source) + # Create a map of line numbers to comments + comments = {} + for i, line in enumerate(source_lines): + stripped = line.strip() + if stripped.startswith('#'): + comments[i + 1] = line + + tree = ast.parse(''.join(source_lines)) class ModifierTransformer(ast.NodeTransformer): def visit_FunctionDef(self, node): @@ -389,6 +396,14 @@ def visit_FunctionDef(self, node): modified_tree = ModifierTransformer().visit(tree) modified_source = astor.to_source(modified_tree) + modified_lines = modified_source.splitlines() + + # Reinsert comments + final_lines = [] + for i, line in enumerate(modified_lines, 1): + if i in comments: + final_lines.append(comments[i]) + final_lines.append(line + '\n') - with open(filename, 'w') as f: - f.write(modified_source) \ No newline at end of file + with open(filename, 'w', encoding='utf-8') as f: + f.write(''.join(final_lines)) \ No newline at end of file diff --git a/examples/web_researcher/src/crew.py b/examples/web_researcher/src/crew.py index 01cfac22..aaf94506 100644 --- a/examples/web_researcher/src/crew.py +++ b/examples/web_researcher/src/crew.py @@ -7,6 +7,7 @@ class WebresearcherCrew: """web_researcher crew""" + # Agent definitions @agent def content_summarizer(self) ->Agent: return Agent(config=self.agents_config['content_summarizer'], tools @@ -23,6 +24,7 @@ def content_storer(self) ->Agent: 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'])