feat(agentFactory): modularized agentFactory
feat(agent): modularized agent