Skip to content

Commit f09dde7

Browse files
authored
Merge pull request #80 from AgentOps-AI/ast-with-comments
preserve comments with AST
2 parents 6dee4fb + 194fd90 commit f09dde7

File tree

2 files changed

+22
-5
lines changed

2 files changed

+22
-5
lines changed

agentstack/generation/tool_generation.py

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -378,17 +378,32 @@ def modify_agent_tools(
378378

379379
filename = _framework_filename(framework, path)
380380

381-
with open(filename, 'r') as f:
382-
source = f.read()
381+
with open(filename, 'r', encoding='utf-8') as f:
382+
source_lines = f.readlines()
383383

384-
tree = ast.parse(source)
384+
# Create a map of line numbers to comments
385+
comments = {}
386+
for i, line in enumerate(source_lines):
387+
stripped = line.strip()
388+
if stripped.startswith('#'):
389+
comments[i + 1] = line
390+
391+
tree = ast.parse(''.join(source_lines))
385392

386393
class ModifierTransformer(ast.NodeTransformer):
387394
def visit_FunctionDef(self, node):
388395
return _modify_agent_tools(node, tool_data, operation, agents, base_name)
389396

390397
modified_tree = ModifierTransformer().visit(tree)
391398
modified_source = astor.to_source(modified_tree)
399+
modified_lines = modified_source.splitlines()
400+
401+
# Reinsert comments
402+
final_lines = []
403+
for i, line in enumerate(modified_lines, 1):
404+
if i in comments:
405+
final_lines.append(comments[i])
406+
final_lines.append(line + '\n')
392407

393-
with open(filename, 'w') as f:
394-
f.write(modified_source)
408+
with open(filename, 'w', encoding='utf-8') as f:
409+
f.write(''.join(final_lines))

examples/web_researcher/src/crew.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
class WebresearcherCrew:
88
"""web_researcher crew"""
99

10+
# Agent definitions
1011
@agent
1112
def content_summarizer(self) ->Agent:
1213
return Agent(config=self.agents_config['content_summarizer'], tools
@@ -23,6 +24,7 @@ def content_storer(self) ->Agent:
2324
tools.create_database, tools.execute_sql_ddl, tools.
2425
run_sql_query], verbose=True)
2526

27+
# Task definitions
2628
@task
2729
def scrape_site(self) ->Task:
2830
return Task(config=self.tasks_config['scrape_site'])

0 commit comments

Comments
 (0)