Prerequisites
Python 3.10 or higher
PraisonAI Agents package installed
lxml
package installed
Use XML Tools to read, write, and manipulate XML data with AI agents.
Install Dependencies
First, install the required package:
pip install praisonaiagents
Import Components
Import the necessary components:
from praisonaiagents import Agent, Task, PraisonAIAgents
from praisonaiagents.tools import read_xml, write_xml, transform_xml, validate_xml, xml_to_dict, dict_to_xml
Create Agent
Create an XML processing agent:
xml_agent = Agent(
name = "XMLProcessor" ,
role = "XML Processing Specialist" ,
goal = "Process XML files efficiently and accurately." ,
backstory = "Expert in XML file manipulation and validation." ,
tools = [read_xml, write_xml, transform_xml, validate_xml, xml_to_dict, dict_to_xml],
self_reflect = False
)
Define Task
Define the XML processing task:
xml_task = Task(
description = "Parse and validate XML configuration files." ,
expected_output = "Validated and processed XML data." ,
agent = xml_agent,
name = "xml_processing"
)
Run Agent
Initialize and run the agent:
agents = PraisonAIAgents(
agents = [xml_agent],
tasks = [xml_task],
process = "sequential"
)
agents.start()
What are XML Tools? XML Tools provide XML processing capabilities for AI agents:
XML parsing and reading
File writing and validation
Data transformation
Dictionary conversion
Structure manipulation
Key Components
XML Agent Create specialized XML agents:
Agent( tools = [read_xml, write_xml, transform_xml, validate_xml, xml_to_dict, dict_to_xml])
XML Task Define XML tasks:
Task( description = "xml_operation" )
Process Types Sequential or parallel processing:
XML Options Customize XML parameters:
encoding = "utf-8" , pretty_print = True
Examples
Basic XML Processing Agent
from praisonaiagents import Agent, Task, PraisonAIAgents
from praisonaiagents.tools import read_xml, write_xml, transform_xml, validate_xml, xml_to_dict, dict_to_xml
# Create XML agent
xml_agent = Agent(
name = "XMLExpert" ,
role = "XML Processing Specialist" ,
goal = "Process XML files efficiently and accurately." ,
backstory = "Expert in XML file handling and validation." ,
tools = [read_xml, write_xml, transform_xml, validate_xml, xml_to_dict, dict_to_xml],
self_reflect = False
)
# Define XML task
xml_task = Task(
description = "Parse and validate XML configurations." ,
expected_output = "Processed and validated XML data." ,
agent = xml_agent,
name = "config_processing"
)
# Run agent
agents = PraisonAIAgents(
agents = [xml_agent],
tasks = [xml_task],
process = "sequential"
)
agents.start()
Advanced XML Processing with Multiple Agents
# Create XML processing agent
processor_agent = Agent(
name = "Processor" ,
role = "XML Processor" ,
goal = "Process XML files systematically." ,
tools = [read_xml, write_xml, transform_xml],
self_reflect = False
)
# Create validation agent
validator_agent = Agent(
name = "Validator" ,
role = "Data Validator" ,
goal = "Validate XML structure and content." ,
backstory = "Expert in data validation and verification." ,
tools = [validate_xml, xml_to_dict, dict_to_xml],
self_reflect = False
)
# Define tasks
processing_task = Task(
description = "Process and transform XML configurations." ,
agent = processor_agent,
name = "xml_processing"
)
validation_task = Task(
description = "Validate processed XML data." ,
agent = validator_agent,
name = "data_validation"
)
# Run agents
agents = PraisonAIAgents(
agents = [processor_agent, validator_agent],
tasks = [processing_task, validation_task],
process = "sequential"
)
agents.start()
Best Practices
Common Patterns
XML Processing Pipeline
# Processing agent
processor = Agent(
name = "Processor" ,
role = "XML Processor" ,
tools = [read_xml, write_xml, transform_xml]
)
# Validation agent
validator = Agent(
name = "Validator" ,
role = "Data Validator" ,
tools = [validate_xml, xml_to_dict, dict_to_xml]
)
# Define tasks
process_task = Task(
description = "Process XML files" ,
agent = processor
)
validate_task = Task(
description = "Validate processed data" ,
agent = validator
)
# Run workflow
agents = PraisonAIAgents(
agents = [processor, validator],
tasks = [process_task, validate_task]
)